123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- # Copyright 2014 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
- import("//build/buildflag_header.gni")
- import("//build/config/features.gni")
- import("//pdf/features.gni")
- import("//ppapi/buildflags/buildflags.gni")
- import("//testing/libfuzzer/fuzzer_test.gni")
- import("//testing/test.gni")
- import("//third_party/pdfium/pdfium.gni")
- import("//tools/grit/repack.gni")
- import("//v8/gni/v8.gni")
- # Generate a buildflag header for compile-time checking of PDF support.
- buildflag_header("buildflags") {
- header = "buildflags.h"
- flags = [
- "ENABLE_INK=$enable_ink",
- "ENABLE_PDF=$enable_pdf",
- ]
- }
- if (enable_pdf) {
- config("strict") {
- configs = [ "//build/config/compiler:wexit_time_destructors" ]
- }
- config("pdfium_includes") {
- include_dirs = [ "//third_party/pdfium" ]
- }
- static_library("pdf") {
- sources = [ "pdf.cc" ]
- configs += [ ":strict" ]
- public = [ "pdf.h" ]
- deps = [
- ":internal",
- "//base",
- "//build:chromeos_buildflags",
- "//ui/gfx/geometry",
- ]
- }
- source_set("features") {
- sources = [ "pdf_features.cc" ]
- configs += [ ":strict" ]
- public = [ "pdf_features.h" ]
- deps = [
- "//base",
- "//build:chromeos_buildflags",
- ]
- }
- source_set("internal") {
- visibility = [ ":*" ]
- sources = [
- "accessibility.cc",
- "accessibility.h",
- "document_attachment_info.cc",
- "document_attachment_info.h",
- "document_layout.cc",
- "document_layout.h",
- "document_metadata.cc",
- "document_metadata.h",
- "draw_utils/coordinates.cc",
- "draw_utils/coordinates.h",
- "draw_utils/shadow.cc",
- "draw_utils/shadow.h",
- "file_extension.cc",
- "file_extension.h",
- "metrics_handler.cc",
- "metrics_handler.h",
- "page_orientation.cc",
- "page_orientation.h",
- "paint_aggregator.cc",
- "paint_aggregator.h",
- "paint_manager.cc",
- "paint_manager.h",
- "paint_ready_rect.cc",
- "paint_ready_rect.h",
- "parsed_params.cc",
- "parsed_params.h",
- "pdf_engine.h",
- "pdf_init.cc",
- "pdf_init.h",
- "pdf_transform.cc",
- "pdf_transform.h",
- "pdf_utils/dates.cc",
- "pdf_utils/dates.h",
- "pdf_view_plugin_base.cc",
- "pdf_view_plugin_base.h",
- "pdfium/pdfium_api_string_buffer_adapter.cc",
- "pdfium/pdfium_api_string_buffer_adapter.h",
- "pdfium/pdfium_document.cc",
- "pdfium/pdfium_document.h",
- "pdfium/pdfium_engine.cc",
- "pdfium/pdfium_engine.h",
- "pdfium/pdfium_engine_exports.cc",
- "pdfium/pdfium_engine_exports.h",
- "pdfium/pdfium_form_filler.cc",
- "pdfium/pdfium_form_filler.h",
- "pdfium/pdfium_mem_buffer_file_write.cc",
- "pdfium/pdfium_mem_buffer_file_write.h",
- "pdfium/pdfium_page.cc",
- "pdfium/pdfium_page.h",
- "pdfium/pdfium_permissions.cc",
- "pdfium/pdfium_permissions.h",
- "pdfium/pdfium_print.cc",
- "pdfium/pdfium_print.h",
- "pdfium/pdfium_range.cc",
- "pdfium/pdfium_range.h",
- "pdfium/pdfium_unsupported_features.cc",
- "pdfium/pdfium_unsupported_features.h",
- "preview_mode_client.cc",
- "preview_mode_client.h",
- "ui/document_properties.cc",
- "ui/document_properties.h",
- "ui/file_name.cc",
- "ui/file_name.h",
- "ui/thumbnail.cc",
- "ui/thumbnail.h",
- ]
- public_configs = [ ":pdfium_includes" ]
- configs += [ ":strict" ]
- public_deps = [
- "//printing/mojom",
- "//skia",
- "//v8",
- ]
- deps = [
- ":accessibility",
- ":buildflags",
- ":content_restriction",
- ":features",
- "//base",
- "//base:i18n",
- "//build:chromeos_buildflags",
- "//components/strings",
- "//gin",
- "//pdf/loader",
- "//printing",
- "//third_party/blink/public:blink_headers",
- "//third_party/blink/public/common:headers",
- "//third_party/icu",
- "//third_party/pdfium",
- "//ui/base",
- "//ui/base/cursor/mojom:cursor_type",
- "//ui/events:events_base",
- "//ui/events/blink",
- "//ui/gfx/codec",
- "//ui/gfx/range",
- ]
- if (is_linux || is_chromeos) {
- sources += [
- "pdfium/pdfium_font_linux.cc",
- "pdfium/pdfium_font_linux.h",
- ]
- deps += [
- ":font_table_linux",
- "//components/services/font/public/cpp",
- ]
- }
- }
- source_set("assert_enums") {
- visibility = [ ":*" ]
- testonly = true
- sources = [ "pdfium/pdfium_assert_matching_enums.cc" ]
- deps = [
- ":accessibility",
- ":content_restriction",
- ":internal",
- ":pdf",
- "//third_party/blink/public/common:headers",
- "//third_party/pdfium",
- "//ui/base",
- ]
- }
- source_set("content_restriction") {
- # Exists separately to expose this header for testing.
- public = [ "content_restriction.h" ]
- }
- source_set("accessibility") {
- visibility = [
- ":*",
- "//components:components_browsertests${exec_target_suffix}",
- "//components/pdf/renderer",
- "//components/pdf/renderer:unit_tests",
- ]
- sources = [
- "accessibility_helper.cc",
- "accessibility_helper.h",
- "accessibility_structs.cc",
- "accessibility_structs.h",
- "pdf_accessibility_action_handler.h",
- "pdf_accessibility_data_handler.h",
- ]
- configs += [ ":strict" ]
- deps = [
- "//base",
- "//skia",
- "//ui/gfx/geometry",
- ]
- }
- static_library("pdf_view_web_plugin") {
- # The PDF viewer relies on plugin infrastructure, which is currently tied to
- # PPAPI support. Fuchsia does not have plugins enabled and is in a state
- # where this code builds but does not work in Chrome.
- # TODO(crbug.com/1306610): Remove this assert when this is no longer true.
- assert(enable_plugins || is_fuchsia)
- visibility = [
- ":*",
- "//components/pdf/renderer",
- ]
- sources = [
- "pdf_view_web_plugin.cc",
- "post_message_receiver.cc",
- "post_message_receiver.h",
- "v8_value_converter.h",
- ]
- configs += [ ":strict" ]
- public = [ "pdf_view_web_plugin.h" ]
- public_deps = [ "//pdf/mojom" ]
- deps = [
- ":accessibility",
- ":buildflags",
- ":content_restriction",
- ":internal",
- "//base",
- "//base:i18n",
- "//cc/paint",
- "//gin",
- "//net",
- "//pdf/loader",
- "//printing",
- "//services/network/public/mojom:url_loader_base",
- "//skia",
- "//third_party/blink/public:blink_headers",
- "//third_party/blink/public/common:headers",
- "//ui/base/cursor",
- "//ui/base/cursor/mojom:cursor_type",
- "//ui/events/blink",
- "//ui/gfx/range",
- "//v8",
- ]
- }
- source_set("pdf_test_utils") {
- visibility = [ "//pdf/*" ]
- testonly = true
- sources = [
- "test/mock_web_associated_url_loader.cc",
- "test/mock_web_associated_url_loader.h",
- "test/test_client.cc",
- "test/test_client.h",
- "test/test_document_loader.cc",
- "test/test_document_loader.h",
- "test/test_helpers.cc",
- "test/test_helpers.h",
- "test/test_pdfium_engine.cc",
- "test/test_pdfium_engine.h",
- ]
- deps = [
- ":internal",
- "//base",
- "//cc:test_support",
- "//pdf/loader",
- "//testing/gmock",
- "//testing/gtest",
- "//third_party/blink/public:blink",
- "//ui/gfx/range",
- "//ui/latency:latency",
- ]
- }
- if (is_linux || is_chromeos) {
- # TODO(crbug.com/1302059): After PPAPI deprecation, there will only be one
- # caller left. Move inside the file with the caller.
- static_library("font_table_linux") {
- sources = [ "font_table_linux.cc" ]
- configs += [ ":strict" ]
- public = [ "font_table_linux.h" ]
- deps = [ "//base" ]
- }
- }
- test("pdf_unittests") {
- testonly = true
- sources = [
- "document_layout_unittest.cc",
- "draw_utils/coordinates_unittest.cc",
- "file_extension_unittest.cc",
- "page_orientation_unittest.cc",
- "paint_manager_unittest.cc",
- "parsed_params_unittest.cc",
- "pdf_transform_unittest.cc",
- "pdf_utils/dates_unittest.cc",
- "pdf_view_web_plugin_unittest.cc",
- "pdfium/accessibility_unittest.cc",
- "pdfium/findtext_unittest.cc",
- "pdfium/pdfium_engine_exports_unittest.cc",
- "pdfium/pdfium_engine_unittest.cc",
- "pdfium/pdfium_form_filler_unittest.cc",
- "pdfium/pdfium_page_unittest.cc",
- "pdfium/pdfium_permissions_unittest.cc",
- "pdfium/pdfium_print_unittest.cc",
- "pdfium/pdfium_test_base.cc",
- "pdfium/pdfium_test_base.h",
- "test/run_all_unittests.cc",
- "ui/document_properties_unittest.cc",
- "ui/file_name_unittest.cc",
- "ui/thumbnail_unittest.cc",
- ]
- data = [ "test/data/" ]
- deps = [
- ":accessibility",
- ":assert_enums",
- ":buildflags",
- ":content_restriction",
- ":features",
- ":internal",
- ":pdf",
- ":pdf_test_utils",
- ":pdf_view_web_plugin",
- "//base",
- "//base:i18n",
- "//base/test:test_support",
- "//cc:test_support",
- "//gin",
- "//mojo/core/embedder",
- "//mojo/public/cpp/bindings",
- "//net",
- "//pdf/loader",
- "//pdf/loader:unit_tests",
- "//printing",
- "//skia",
- "//testing/gmock",
- "//testing/gtest",
- "//third_party/blink/public:blink",
- "//third_party/blink/public:test_support",
- "//third_party/blink/public/common:headers",
- "//third_party/pdfium",
- "//ui/base",
- "//ui/base/cursor",
- "//ui/events/blink:blink",
- "//ui/gfx:test_support",
- "//ui/gfx/geometry",
- "//ui/gfx/range",
- "//v8",
- ]
- if (v8_use_external_startup_data) {
- deps += [ "//tools/v8_context_snapshot" ]
- configs += [
- "//tools/v8_context_snapshot:use_v8_context_snapshot",
- "//v8:external_startup_data",
- ]
- }
- data_deps = [
- ":pdf_unittests_pak",
- "//ui/resources:ui_test_pak_data",
- ]
- assert_no_deps = [
- "//ppapi/c/*",
- "//ppapi/cpp/*",
- ]
- }
- repack("pdf_unittests_pak") {
- sources =
- [ "$root_gen_dir/components/strings/components_strings_en-US.pak" ]
- output = "$root_out_dir/pdf_tests_resources.pak"
- deps = [ "//components/strings" ]
- }
- fuzzer_test("pdf_dates_fuzzer") {
- sources = [ "pdf_utils/dates_fuzzer.cc" ]
- deps = [
- ":internal",
- "//base",
- ]
- }
- } else {
- # Dummy groups when PDF support is disabled so targets can unconditionally
- # depend on it.
- group("features") {
- }
- group("pdf") {
- }
- }
|