# Copyright 2018 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//chrome/common/features.gni") import("//components/guest_view/buildflags/buildflags.gni") import("//pdf/features.gni") assert(enable_extensions_core) # APIs and features included in both normal desktop builds and the experimental # desktop-android build. # TODO(https://crbug.com/356905053): Continue moving more here. schema_sources_ = [ "activity_log_private.json", "bookmarks.json", "content_settings.json", "context_menus.json", "cookies.json", "debugger.json", "desktop_capture.json", "developer_private.webidl", "downloads_internal.webidl", "downloads.webidl", "enterprise_hardware_platform.webidl", "font_settings.json", "gcm.json", "glic_private.webidl", "history.json", "identity.webidl", "instance_id.json", "notifications.webidl", "omnibox.json", "page_capture.json", "permissions.json", "processes.idl", "reading_list.webidl", "search.idl", "sessions.json", "tab_capture.idl", "tab_groups.json", "tabs.json", "web_navigation.json", # Despite the name, these APIs do not rely on any WebRTC-specific bits and # as such do not belong in a conditional. "webrtc_logging_private.idl", "windows.json", ] if (enable_service_discovery) { schema_sources_ += [ "mdns.idl" ] } if (enable_guest_view) { schema_sources_ += [ "chrome_web_view_internal.json" ] } # Schemas that should be used only to generate the JSON strings and function # registration. These do not generate the strong C++ types. uncompiled_sources_ = [ "action.json", "browsing_data.json", "commands.json", "extension.json", "top_sites.json", ] # Some APIs rely on types and headers from other APIs. types_only_schema_sources_ = [] if (enable_extensions) { types_only_schema_sources_ += [ "accessibility_features.json", "proxy_override_rules_private.json", ] schema_sources_ += [ "autofill_private.idl", "autotest_private.webidl", "bookmark_manager_private.json", "braille_display_private.webidl", "command_line_private.json", "crash_report_private.webidl", "dictation_private.webidl", "enterprise_reporting_private.webidl", "experimental_actor.webidl", "experimental_ai_data.webidl", "image_writer_private.webidl", "indigo_private.webidl", "language_settings_private.webidl", "passwords_private.idl", "resources_private.idl", "safe_browsing_private.idl", "settings_private.idl", "side_panel.idl", "system_private.json", # Despite the name, these APIs do not rely on any WebRTC-specific bits and # as such do not belong in a conditional. "webrtc_desktop_capture_private.idl", ] if (is_win || is_mac || is_linux) { schema_sources_ += [ "web_authentication_proxy.webidl" ] } if (is_win || is_mac || is_linux || is_chromeos) { schema_sources_ += [ "contextual_tasks_private.webidl" ] } if (is_chromeos) { schema_sources_ += [ "accessibility_private.json", "accessibility_service_private.webidl", "certificate_provider.webidl", "certificate_provider_internal.webidl", "document_scan.webidl", "echo_private.json", "enterprise_device_attributes.webidl", "enterprise_kiosk_input.webidl", "enterprise_login.webidl", "enterprise_networking_attributes.webidl", "enterprise_platform_keys.webidl", "enterprise_platform_keys_internal.webidl", "enterprise_platform_keys_private.json", "file_manager_private.idl", "file_manager_private_internal.webidl", "file_system_provider.webidl", "file_system_provider_internal.idl", "image_loader_private.webidl", "input_method_private.json", "login.webidl", "login_screen_storage.webidl", "login_screen_ui.webidl", "login_state.idl", "odfs_config_private.idl", "platform_keys.idl", "platform_keys_internal.idl", "quick_unlock_private.idl", "smart_card_provider_private.idl", "system_log.idl", "terminal_private.json", "users_private.idl", "vpn_provider.idl", "wallpaper.json", "wm_desks_private.idl", ] if (use_cups) { schema_sources_ += [ "printing.idl", "printing_metrics.idl", ] } } if (is_linux || is_win || is_chromeos) { schema_sources_ += [ "input_ime.json" ] } if (enable_pdf) { schema_sources_ += [ "pdf_viewer_private.idl" ] } uncompiled_sources_ += [ "browser_action.json", "page_action.json", ] if (is_chromeos) { uncompiled_sources_ += [ "chromeos_info_private.json", "media_player_private.json", ] } } chrome_extensions_api_schema_sources = get_path_info(schema_sources_, "abspath") chrome_extensions_types_only_schema_sources = get_path_info(types_only_schema_sources_, "abspath") chrome_extensions_manifest_only_schema_sources = get_path_info([ "manifest_types.json" ], "abspath") chrome_extensions_api_uncompiled_sources = get_path_info(uncompiled_sources_, "abspath") chrome_extensions_api_root_namespace = "extensions::api::%(namespace)s" chrome_extensions_api_schema_include_rules = "extensions/common/api:extensions::api::%(namespace)s"