diff options
Diffstat (limited to 'chromium/chrome/common')
52 files changed, 618 insertions, 554 deletions
diff --git a/chromium/chrome/common/BUILD.gn b/chromium/chrome/common/BUILD.gn index 1d56a194972..82682ddc6aa 100644 --- a/chromium/chrome/common/BUILD.gn +++ b/chromium/chrome/common/BUILD.gn @@ -45,10 +45,9 @@ buildflag_header("buildflags") { "ENABLE_NATIVE_NOTIFICATIONS=$enable_native_notifications", "ENABLE_SERVICE_DISCOVERY=$enable_service_discovery", "ENABLE_SESSION_SERVICE=$enable_session_service", - "ENABLE_SIMPLE_BROWSER_SERVICE_IN_PROCESS=$enable_simple_browser_service_in_process", - "ENABLE_SIMPLE_BROWSER_SERVICE_OUT_OF_PROCESS=$enable_simple_browser_service_out_of_process", "ENABLE_SUPERVISED_USERS=$enable_supervised_users", "ENABLE_WAYLAND_SERVER=$enable_wayland_server", + "ENABLE_WEBUI_TAB_STRIP=$enable_webui_tab_strip", "PGO_BUILD=$pgo_build", "OPTIMIZE_WEBUI=$optimize_webui", ] @@ -138,7 +137,7 @@ static_library("common") { "google_url_loader_throttle.h", "heap_profiler_controller.cc", "heap_profiler_controller.h", - "instant_struct_traits.h", + "instant_mojom_traits.h", "logging_chrome.cc", "logging_chrome.h", "mac/app_shim_launch.h", @@ -158,11 +157,6 @@ static_library("common") { "multi_process_lock_win.cc", "origin_trials/chrome_origin_trial_policy.cc", "origin_trials/chrome_origin_trial_policy.h", - "page_load_metrics/page_load_metrics_constants.h", - "page_load_metrics/page_load_metrics_util.cc", - "page_load_metrics/page_load_metrics_util.h", - "page_load_metrics/page_load_timing.cc", - "page_load_metrics/page_load_timing.h", "pdf_util.cc", "pdf_util.h", "pref_names_util.cc", @@ -188,9 +182,6 @@ static_library("common") { "stack_sampling_configuration.h", "thread_profiler.cc", "thread_profiler.h", - "tts_messages.h", - "tts_utterance_request.cc", - "tts_utterance_request.h", "url_constants.cc", "url_constants.h", "web_application_info.cc", @@ -215,7 +206,6 @@ static_library("common") { ":ini_parser", ":mojo_bindings", ":offline_page_auto_fetcher_mojom", - ":page_load_metrics_mojom", ":supervised_user_commands_mojom", "//base", "//base:base_static", @@ -239,7 +229,7 @@ static_library("common") { "//components/gcm_driver/common", "//components/metrics", "//components/metrics:net", - "//components/metrics/public/interfaces:call_stack_mojo_bindings", + "//components/metrics/public/mojom:call_stack_mojo_bindings", "//components/nacl/common:buildflags", "//components/nacl/common:process_type", "//components/nacl/common:switches", @@ -249,10 +239,12 @@ static_library("common") { "//components/offline_pages/buildflags", "//components/offline_pages/core:switches", "//components/omnibox/common", + "//components/page_load_metrics/common:page_load_metrics_mojom", "//components/password_manager/core/common", "//components/policy:generated", "//components/policy/core/common", "//components/prefs", + "//components/safe_browsing:buildflags", "//components/safe_browsing/web_ui:constants", "//components/services/heap_profiling/public/cpp", "//components/strings", @@ -286,12 +278,15 @@ static_library("common") { "//ui/gfx/ipc/skia", "//ui/gl", "//ui/message_center/public/cpp", + "//ui/native_theme", "//ui/resources:resources", "//url", ] deps = [ + "//build:branding_buildflags", "//components/metrics:call_stack_profile_builder", + "//components/page_load_metrics/common:common", ] if (enable_plugins) { @@ -466,6 +461,13 @@ static_library("common") { libs = [ "wintrust.lib" ] } + if (is_posix && !is_android) { + sources += [ + "process_singleton_lock_posix.cc", + "process_singleton_lock_posix.h", + ] + } + if (is_mac) { public_deps += [ "//third_party/google_toolbox_for_mac" ] @@ -670,8 +672,6 @@ static_library("test_support") { visibility = [ "//chrome/test:*" ] sources = [ - "page_load_metrics/test/page_load_metrics_test_util.cc", - "page_load_metrics/test/page_load_metrics_test_util.h", "search/mock_embedded_search_client.cc", "search/mock_embedded_search_client.h", ] @@ -717,7 +717,6 @@ mojom("mojo_bindings") { sources = [ "cache_stats_recorder.mojom", "chrome_render_frame.mojom", - "constants.mojom", "content_settings_renderer.mojom", "media/webrtc_logging.mojom", "navigation_corrector.mojom", @@ -754,7 +753,7 @@ mojom("mojo_bindings") { "//content/public/common:interfaces", "//mojo/public/mojom/base", "//third_party/blink/public/mojom:mojom_platform", - "//ui/gfx/geometry/mojo", + "//ui/gfx/geometry/mojom", "//url/mojom:url_mojom_gurl", "//url/mojom:url_mojom_origin", ] @@ -786,18 +785,6 @@ mojom("search_mojom") { ] } -mojom("page_load_metrics_mojom") { - sources = [ - "page_load_metrics/page_load_metrics.mojom", - ] - - public_deps = [ - "//mojo/public/mojom/base", - "//third_party/blink/public/mojom:web_feature_mojo_bindings", - "//url/mojom:url_mojom_origin", - ] -} - mojom("client_hints_mojom") { sources = [ "client_hints.mojom", diff --git a/chromium/chrome/common/browser_controls_state.typemap b/chromium/chrome/common/browser_controls_state.typemap index 2fe16447158..328a45042ef 100644 --- a/chromium/chrome/common/browser_controls_state.typemap +++ b/chromium/chrome/common/browser_controls_state.typemap @@ -10,4 +10,4 @@ public_deps = [ ] type_mappings = - [ "chrome.mojom.BrowserControlsState=content::BrowserControlsState" ] + [ "chrome.mojom.BrowserControlsState=::content::BrowserControlsState" ] diff --git a/chromium/chrome/common/chrome_constants.cc b/chromium/chrome/common/chrome_constants.cc index 9d79e4e1025..fabb5226585 100644 --- a/chromium/chrome/common/chrome_constants.cc +++ b/chromium/chrome/common/chrome_constants.cc @@ -123,6 +123,9 @@ const base::FilePath::CharType kFrameworkExecutableName[] = #if defined(OS_WIN) const base::FilePath::CharType kBrowserResourcesDll[] = FPL("chrome.dll"); +// Only relevant if building with is_multi_dll_chrome=true. +const base::FilePath::CharType kChildDll[] = FPL("chrome_child.dll"); +const base::FilePath::CharType kElfDll[] = FPL("chrome_elf.dll"); const base::FilePath::CharType kStatusTrayWindowClass[] = FPL("Chrome_StatusTrayWindow"); #endif // defined(OS_WIN) @@ -149,6 +152,8 @@ const base::FilePath::CharType kFeatureEngagementTrackerStorageDirname[] = FPL("Feature Engagement Tracker"); const base::FilePath::CharType kFirstRunSentinel[] = FPL("First Run"); const base::FilePath::CharType kGCMStoreDirname[] = FPL("GCM Store"); +const base::FilePath::CharType kHeavyAdInterventionOptOutDBFilename[] = + FPL("heavy_ad_intervention_opt_out.db"); const base::FilePath::CharType kLocalStateFilename[] = FPL("Local State"); const base::FilePath::CharType kMediaCacheDirname[] = FPL("Media Cache"); const base::FilePath::CharType kNetworkPersistentStateFilename[] = @@ -212,6 +217,7 @@ const int kHighestRendererOomScore = 1000; const char kProfileDirPrefix[] = "u-"; const char kLegacyProfileDir[] = "user"; const char kTestUserProfileDir[] = "test-user"; +const char kLockScreenAppProfile[] = "LockScreenAppsProfile"; #endif // This GUID is associated with any 'don't ask me again' settings that the diff --git a/chromium/chrome/common/chrome_constants.h b/chromium/chrome/common/chrome_constants.h index 54d54810d20..541a58fa6b5 100644 --- a/chromium/chrome/common/chrome_constants.h +++ b/chromium/chrome/common/chrome_constants.h @@ -33,6 +33,8 @@ extern const base::FilePath::CharType kFrameworkExecutableName[]; #endif // OS_MACOSX #if defined(OS_WIN) extern const base::FilePath::CharType kBrowserResourcesDll[]; +extern const base::FilePath::CharType kChildDll[]; +extern const base::FilePath::CharType kElfDll[]; extern const base::FilePath::CharType kStatusTrayWindowClass[]; #endif // defined(OS_WIN) @@ -52,6 +54,7 @@ extern const base::FilePath::CharType kExtensionsCookieFilename[]; extern const base::FilePath::CharType kFeatureEngagementTrackerStorageDirname[]; extern const base::FilePath::CharType kFirstRunSentinel[]; extern const base::FilePath::CharType kGCMStoreDirname[]; +extern const base::FilePath::CharType kHeavyAdInterventionOptOutDBFilename[]; extern const base::FilePath::CharType kLocalStateFilename[]; extern const base::FilePath::CharType kMediaCacheDirname[]; extern const base::FilePath::CharType kNetworkPersistentStateFilename[]; @@ -110,6 +113,8 @@ extern const char kLegacyProfileDir[]; // This must be kept in sync with TestingProfile::kTestUserProfileDir. extern const char kTestUserProfileDir[]; + +extern const char kLockScreenAppProfile[]; #endif // Used to identify the application to the system AV function in Windows. diff --git a/chromium/chrome/common/chrome_paths.cc b/chromium/chrome/common/chrome_paths.cc index a322ad90dbf..a7542ef69e9 100644 --- a/chromium/chrome/common/chrome_paths.cc +++ b/chromium/chrome/common/chrome_paths.cc @@ -383,7 +383,8 @@ bool PathProvider(int key, base::FilePath* result) { .AppendASCII(base::GetNativeLibraryName(kWidevineCdmLibraryName)); break; #endif // BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS) - case chrome::FILE_RESOURCES_PACK: + case chrome::FILE_RESOURCES_PACK: // Falls through. + case chrome::FILE_DEV_UI_RESOURCES_PACK: #if defined(OS_MACOSX) cur = base::mac::FrameworkBundlePath(); cur = cur.Append(FILE_PATH_LITERAL("Resources")) @@ -392,14 +393,21 @@ bool PathProvider(int key, base::FilePath* result) { #elif defined(OS_ANDROID) if (!base::PathService::Get(ui::DIR_RESOURCE_PAKS_ANDROID, &cur)) return false; + if (key == chrome::FILE_DEV_UI_RESOURCES_PACK) { + cur = cur.Append(FILE_PATH_LITERAL("dev_ui_resources.pak")); + } else { + DCHECK_EQ(chrome::FILE_RESOURCES_PACK, key); + cur = cur.Append(FILE_PATH_LITERAL("resources.pak")); + } #else // If we're not bundled on mac or Android, resources.pak should be next // to the binary (e.g., for unit tests). if (!base::PathService::Get(base::DIR_MODULE, &cur)) return false; -#endif cur = cur.Append(FILE_PATH_LITERAL("resources.pak")); +#endif break; + #if defined(OS_CHROMEOS) case chrome::DIR_CHROMEOS_WALLPAPERS: if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) @@ -416,6 +424,17 @@ bool PathProvider(int key, base::FilePath* result) { return false; cur = cur.Append(FILE_PATH_LITERAL("custom_wallpapers")); break; + case chrome::FILE_CHROMEOS_CROSTINI_ANSIBLE_SOFTWARE_CONFIG: + if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) + return false; + cur = cur.Append(FILE_PATH_LITERAL("ansible_software_config.json")); + break; + case chrome::DIR_CHROMEOS_CROSTINI_ANSIBLE_PLAYBOOK_STAGING: + if (!base::PathService::Get(chrome::DIR_USER_DATA, &cur)) + return false; + cur = cur.Append(FILE_PATH_LITERAL("ansible_playbook_staging")); + create_dir = true; + break; #endif #if BUILDFLAG(ENABLE_SUPERVISED_USERS) case chrome::DIR_SUPERVISED_USER_INSTALLED_WHITELISTS: diff --git a/chromium/chrome/common/chrome_paths.h b/chromium/chrome/common/chrome_paths.h index d5926424215..e554d78efd6 100644 --- a/chromium/chrome/common/chrome_paths.h +++ b/chromium/chrome/common/chrome_paths.h @@ -94,9 +94,13 @@ enum { DIR_PNACL_COMPONENT, // Full path to the latest PNaCl version // (subdir of DIR_PNACL_BASE). FILE_WIDEVINE_CDM, // Full path to the Widevine CDM. - FILE_RESOURCES_PACK, // Full path to the .pak file containing - // binary data (e.g., html files and images - // used by internal pages). + FILE_RESOURCES_PACK, // Full path to the .pak file containing binary data. + // This includes data for internal pages (e.g., html + // files and images), unless these resources are + // purposefully split into a separate file. + FILE_DEV_UI_RESOURCES_PACK, // Full path to the .pak file containing + // binary data for internal pages (e.g., html + // files and images). #if defined(OS_CHROMEOS) DIR_CHROMEOS_WALLPAPERS, // Directory where downloaded chromeos // wallpapers reside. @@ -104,6 +108,13 @@ enum { // wallpaper thumbnails reside. DIR_CHROMEOS_CUSTOM_WALLPAPERS, // Directory where custom wallpapers // reside. + // Managed Crostini deployments. + FILE_CHROMEOS_CROSTINI_ANSIBLE_SOFTWARE_CONFIG, // A file with JSON + // configuration for Ansible + // package management. + DIR_CHROMEOS_CROSTINI_ANSIBLE_PLAYBOOK_STAGING, // Directory where Ansible + // playbooks pending + // execution reside. #endif DIR_SUPERVISED_USER_INSTALLED_WHITELISTS, // Directory where sanitized // supervised user whitelists are diff --git a/chromium/chrome/common/chrome_paths_linux.cc b/chromium/chrome/common/chrome_paths_linux.cc index 5659ef5d6f9..b81cd35ffe4 100644 --- a/chromium/chrome/common/chrome_paths_linux.cc +++ b/chromium/chrome/common/chrome_paths_linux.cc @@ -12,6 +12,7 @@ #include "base/nix/xdg_util.h" #include "base/path_service.h" #include "base/strings/string_util.h" +#include "build/branding_buildflags.h" #include "build/build_config.h" #include "chrome/common/channel_info.h" #include "chrome/common/chrome_paths_internal.h" @@ -87,7 +88,7 @@ bool GetDefaultUserDataDirectory(base::FilePath* result) { GetXDGDirectory(env.get(), kXdgConfigHomeEnvVar, kDotConfigDir); } -#if defined(GOOGLE_CHROME_BUILD) +#if BUILDFLAG(GOOGLE_CHROME_BRANDING) *result = config_dir.Append("google-chrome" + GetChannelSuffixForDataDir()); #else *result = config_dir.Append("chromium"); diff --git a/chromium/chrome/common/chrome_paths_unittest.cc b/chromium/chrome/common/chrome_paths_unittest.cc index 5a9e2c6983d..cdf8b776a9d 100644 --- a/chromium/chrome/common/chrome_paths_unittest.cc +++ b/chromium/chrome/common/chrome_paths_unittest.cc @@ -11,6 +11,7 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/path_service.h" +#include "build/branding_buildflags.h" #include "build/build_config.h" #include "chrome/common/chrome_constants.h" #include "testing/gtest/include/gtest/gtest.h" @@ -73,7 +74,7 @@ TEST(ChromePaths, DefaultUserDataDir) { base::PathService::Get(base::DIR_HOME, &home_dir); std::string expected_branding; -#if defined(GOOGLE_CHROME_BUILD) +#if BUILDFLAG(GOOGLE_CHROME_BRANDING) // TODO(skobes): Test channel suffixes with $CHROME_VERSION_EXTRA. expected_branding = "google-chrome"; #else diff --git a/chromium/chrome/common/chrome_render_frame.mojom b/chromium/chrome/common/chrome_render_frame.mojom index a352543d5a2..b26a8a3d8cf 100644 --- a/chromium/chrome/common/chrome_render_frame.mojom +++ b/chromium/chrome/common/chrome_render_frame.mojom @@ -6,7 +6,7 @@ module chrome.mojom; import "mojo/public/mojom/base/string16.mojom"; import "third_party/blink/public/mojom/window_features/window_features.mojom"; -import "ui/gfx/geometry/mojo/geometry.mojom"; +import "ui/gfx/geometry/mojom/geometry.mojom"; enum ImageFormat { JPEG, diff --git a/chromium/chrome/common/chrome_switches.cc b/chromium/chrome/common/chrome_switches.cc index 67f4d93b7a4..1ef2f31635d 100644 --- a/chromium/chrome/common/chrome_switches.cc +++ b/chromium/chrome/common/chrome_switches.cc @@ -377,17 +377,6 @@ const char kKioskMode[] = "kiosk"; // Enable automatically pressing the print button in print preview. const char kKioskModePrinting[] = "kiosk-printing"; -// Launches an in-process instance of the simple_browser service on startup if -// this Chrome build supports it. See |enable_simple_browser_service_in_process| -// in chrome/common/features.gni. -const char kLaunchInProcessSimpleBrowserSwitch[] = - "launch-in-process-simple-browser"; - -// Launches a sandboxed out-of-process instance of the simple_browser service on -// startup if this Chrome build supports it. See -// |enable_simple_browser_service_out_of_process| in chrome/common/features.gni. -const char kLaunchSimpleBrowserSwitch[] = "launch-simple-browser"; - // Loads the Media Router component extension on startup. const char kLoadMediaRouterComponentExtension[] = "load-media-router-component-extension"; @@ -410,6 +399,11 @@ const char kNativeMessagingConnectHost[] = "native-messaging-connect-host"; const char kNativeMessagingConnectExtension[] = "native-messaging-connect-extension"; +// If set when kNativeMessagingConnectHost and kNativeMessagingConnectExtension +// are specified, is reflected to the native messaging host as a command line +// parameter. +const char kNativeMessagingConnectId[] = "native-messaging-connect-id"; + // Disables the default browser check. Useful for UI/browser tests where we // want to avoid having the default browser info-bar displayed. const char kNoDefaultBrowserCheck[] = "no-default-browser-check"; @@ -715,11 +709,6 @@ const char kDisableLoggingRedirect[] = "disable-logging-redirect"; // installed through policy. const char kDisableLoginScreenApps[] = "disable-login-screen-apps"; -// Provides the name of the mojo service running in a mash utility process. -// NOTE: Used by the Chrome OS crash_reporter to identify mash processes. If you -// change or remove the flag please update platform2/crash_reporter. -const char kMashServiceName[] = "mash-service-name"; - // Use a short (1 second) timeout for merge session loader throttle testing. const char kShortMergeSessionTimeoutForTest[] = "short-merge-session-timeout-for-test"; @@ -837,6 +826,10 @@ const char kShowIcons[] = "show-icons"; // Runs un-installation steps that were done by chrome first-run. const char kUninstall[] = "uninstall"; +// Indicates that this process is the product of a relaunch following migration +// of User Data. +const char kUserDataMigrated[] = "user-data-migrated"; + // Causes the process to run as a watcher process. const char kWatcherProcess[] = "watcher"; #endif // defined(OS_WIN) diff --git a/chromium/chrome/common/chrome_switches.h b/chromium/chrome/common/chrome_switches.h index d1333f454fd..fb8623a2052 100644 --- a/chromium/chrome/common/chrome_switches.h +++ b/chromium/chrome/common/chrome_switches.h @@ -126,6 +126,7 @@ extern const char kMakeDefaultBrowser[]; extern const char kMonitoringDestinationID[]; extern const char kNativeMessagingConnectHost[]; extern const char kNativeMessagingConnectExtension[]; +extern const char kNativeMessagingConnectId[]; extern const char kNewNetErrorPageUI[]; extern const char kNoDefaultBrowserCheck[]; extern const char kNoExperiments[]; @@ -211,7 +212,6 @@ extern const char kWebApkServerUrl[]; extern const char kCroshCommand[]; extern const char kDisableLoggingRedirect[]; extern const char kDisableLoginScreenApps[]; -extern const char kMashServiceName[]; extern const char kShortMergeSessionTimeoutForTest[]; extern const char kSchedulerConfiguration[]; extern const char kSchedulerConfigurationConservative[]; @@ -250,6 +250,7 @@ extern const char kPrefetchArgumentBrowserBackground[]; extern const char kPrefetchArgumentWatcher[]; extern const char kShowIcons[]; extern const char kUninstall[]; +extern const char kUserDataMigrated[]; extern const char kWatcherProcess[]; #endif // defined(OS_WIN) diff --git a/chromium/chrome/common/constants.mojom b/chromium/chrome/common/constants.mojom deleted file mode 100644 index 881a179673b..00000000000 --- a/chromium/chrome/common/constants.mojom +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2017 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. - -module chrome.mojom; - -const string kServiceName = "chrome"; - -const string kRendererServiceName = "chrome_renderer"; diff --git a/chromium/chrome/common/custom_handlers/protocol_handler.cc b/chromium/chrome/common/custom_handlers/protocol_handler.cc index 19649d527c6..9afb863f903 100644 --- a/chromium/chrome/common/custom_handlers/protocol_handler.cc +++ b/chromium/chrome/common/custom_handlers/protocol_handler.cc @@ -9,6 +9,8 @@ #include "base/strings/utf_string_conversions.h" #include "base/value_conversions.h" #include "chrome/grit/generated_resources.h" +#include "content/public/common/origin_util.h" +#include "extensions/common/constants.h" #include "net/base/escape.h" #include "ui/base/l10n/l10n_util.h" @@ -34,6 +36,36 @@ bool ProtocolHandler::IsValidDict(const base::DictionaryValue* value) { return value->HasKey("protocol") && value->HasKey("url"); } +bool ProtocolHandler::IsValid() const { + // TODO(https://crbug.com/977083): Consider limiting to secure contexts. + + // This matches SupportedSchemes() in blink's NavigatorContentUtils. + + // Although not enforced in the spec the spec gives freedom to do additional + // security checks. Bugs have arisen from allowing non-http/https URLs, e.g. + // https://crbug.com/971917 so we check this here. + if (!url_.SchemeIsHTTPOrHTTPS() && + !url_.SchemeIs(extensions::kExtensionScheme)) { + return false; + } + + // From: + // https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme + static constexpr const char* const kProtocolSafelist[] = { + "bitcoin", "geo", "im", "irc", "ircs", "magnet", "mailto", + "mms", "news", "nntp", "openpgp4fpr", "sip", "sms", "smsto", + "ssh", "tel", "urn", "webcal", "wtai", "xmpp"}; + static constexpr const char kWebPrefix[] = "web+"; + + bool has_web_prefix = + base::StartsWith(protocol_, kWebPrefix, + base::CompareCase::INSENSITIVE_ASCII) && + protocol_ != kWebPrefix; + + return has_web_prefix || + base::Contains(kProtocolSafelist, base::ToLowerASCII(protocol_)); +} + bool ProtocolHandler::IsSameOrigin( const ProtocolHandler& handler) const { return handler.url().GetOrigin() == url_.GetOrigin(); diff --git a/chromium/chrome/common/custom_handlers/protocol_handler.h b/chromium/chrome/common/custom_handlers/protocol_handler.h index 36b56799947..d538705421a 100644 --- a/chromium/chrome/common/custom_handlers/protocol_handler.h +++ b/chromium/chrome/common/custom_handlers/protocol_handler.h @@ -34,6 +34,9 @@ class ProtocolHandler { // define a ProtocolHandler. static bool IsValidDict(const base::DictionaryValue* value); + // Return true if the protocol handler meets security constraints. + bool IsValid() const; + // Returns true if this handler's url has the same origin as the given one. bool IsSameOrigin(const ProtocolHandler& handler) const; diff --git a/chromium/chrome/common/extensions/api/_api_features.json b/chromium/chrome/common/extensions/api/_api_features.json index eb5041dd62a..3a24e6d4369 100644 --- a/chromium/chrome/common/extensions/api/_api_features.json +++ b/chromium/chrome/common/extensions/api/_api_features.json @@ -61,6 +61,9 @@ "dependencies": ["manifest:action"], "contexts": ["blessed_extension"] }, + "action.setIcon": { + "disallow_for_service_workers": true + }, "activityLogPrivate": [{ "dependencies": ["permission:activityLogPrivate"], "contexts": ["blessed_extension"] @@ -158,8 +161,7 @@ }, "browserAction": { "dependencies": ["manifest:browser_action"], - "contexts": ["blessed_extension"], - "disallow_for_service_workers": false + "contexts": ["blessed_extension"] }, // This API is whitelisted on stable and should not be enabled for a wider // audience without resolving security issues raised in API proposal and @@ -235,6 +237,7 @@ "channel": "stable", "contexts": ["webui"], "matches": [ + "chrome://cellular-setup/*", "chrome://chrome-signin/*", "chrome://discards/*", "chrome://hats/*", @@ -263,8 +266,7 @@ }, "contextMenus": { "dependencies": ["permission:contextMenus"], - "contexts": ["blessed_extension"], - "disallow_for_service_workers": false + "contexts": ["blessed_extension"] }, "contextMenusInternal": { "internal": true, @@ -321,8 +323,7 @@ "contexts": ["webui"], "matches": [ "chrome://extensions/*", - "chrome://extensions-frame/*", - "chrome://chrome/extensions/*" + "chrome://extensions-frame/*" // TODO(dbeam): still needed? ] }], // All devtools APIs are implemented by hand, so don't compile them. @@ -364,12 +365,14 @@ }, "enterprise.platformKeys": { "dependencies": ["permission:enterprise.platformKeys"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "enterprise.platformKeysInternal": { "dependencies": ["permission:enterprise.platformKeys"], "internal": true, - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "enterprise.platformKeysPrivate": { "dependencies": ["permission:enterprise.platformKeysPrivate"], @@ -394,15 +397,23 @@ "extension_types": ["extension", "legacy_packaged_app"], "contexts": ["blessed_extension"] }, + "extension.getBackgroundPage": { + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true + }, + "extension.getExtensionTabs": { + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true + }, "extension.getURL": { - "contexts": ["blessed_extension", "unblessed_extension", "content_script"], - "disallow_for_service_workers": false + "contexts": ["blessed_extension", "unblessed_extension", "content_script"] }, "extension.getViews": [ { "channel": "stable", "contexts": ["blessed_extension"], - "extension_types": ["extension", "legacy_packaged_app"] + "extension_types": ["extension", "legacy_packaged_app"], + "disallow_for_service_workers": true }, { // TODO(yoz): Eliminate this usage. @@ -411,7 +422,8 @@ "extension_types": ["platform_app"], "whitelist": [ "A948368FC53BE437A55FEB414106E207925482F5" // File manager - ] + ], + "disallow_for_service_workers": true } ], "extension.inIncognitoContext": { @@ -445,12 +457,14 @@ }, "fileBrowserHandler": { "dependencies": ["permission:fileBrowserHandler"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "fileBrowserHandlerInternal": { "internal": true, "dependencies": ["permission:fileBrowserHandler"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "fileManagerPrivate": { "dependencies": ["permission:fileManagerPrivate"], @@ -463,12 +477,14 @@ }, "fileSystemProvider": { "dependencies": ["permission:fileSystemProvider"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "fileSystemProviderInternal": { "internal": true, "dependencies": ["permission:fileSystemProvider"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "fontSettings": { "dependencies": ["permission:fontSettings"], @@ -486,7 +502,11 @@ "channel": "stable", "extension_types": ["extension", "legacy_packaged_app", "platform_app"], "contexts": ["blessed_extension", "unblessed_extension", "content_script", - "lock_screen_extension"] + "lock_screen_extension"], + "disallow_for_service_workers": true + }, + "i18n.getAcceptLanguages": { + "disallow_for_service_workers": false }, "identity": { "dependencies": ["permission:identity"], @@ -545,12 +565,21 @@ }, "login": { "dependencies": ["permission:login"], + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true + }, + "loginScreenStorage": { + "dependencies": ["permission:loginScreenStorage"], "contexts": ["blessed_extension"] }, "loginScreenUi": { "dependencies": ["permission:loginScreenUi"], "contexts": ["blessed_extension"] }, + "loginState": { + "dependencies": ["permission:loginState"], + "contexts": ["blessed_extension"] + }, "webcamPrivate": { "dependencies": ["permission:webcamPrivate"], "contexts": ["blessed_extension"] @@ -591,11 +620,13 @@ }, "pageAction": { "dependencies": ["manifest:page_action"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "pageCapture": { "dependencies": ["permission:pageCapture"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "passwordsPrivate": [{ "dependencies": ["permission:passwordsPrivate"], @@ -617,16 +648,19 @@ }, "platformKeys": { "dependencies": ["permission:platformKeys"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "platformKeysInternal": [{ "dependencies": ["permission:platformKeys"], "internal": true, - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true },{ "dependencies": ["permission:enterprise.platformKeys"], "internal": true, - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }], "privacy": { "dependencies": ["permission:privacy"], @@ -706,18 +740,19 @@ }, "tabCapture": { "dependencies": ["permission:tabCapture"], - "contexts": ["blessed_extension"] + "contexts": ["blessed_extension"], + "disallow_for_service_workers": true }, "tabs": [{ "channel": "stable", "extension_types": ["extension", "legacy_packaged_app"], - "contexts": ["blessed_extension"], - "disallow_for_service_workers": false + "contexts": ["blessed_extension"] }, { "channel": "stable", "contexts": ["webui"], "matches": [ "chrome://bookmarks/*", + "chrome://tab-strip/*", "chrome://terminal/*" ] }], @@ -773,8 +808,7 @@ }, "webNavigation": { "dependencies": ["permission:webNavigation"], - "contexts": ["blessed_extension"], - "disallow_for_service_workers": false + "contexts": ["blessed_extension"] }, "webrtcAudioPrivate": { "dependencies": ["permission:webrtcAudioPrivate"], @@ -820,6 +854,7 @@ "contexts": ["webui"], "matches": [ "chrome://bookmarks/*", + "chrome://tab-strip/*", "chrome://terminal/*" ] }] diff --git a/chromium/chrome/common/extensions/api/_manifest_features.json b/chromium/chrome/common/extensions/api/_manifest_features.json index 77eb698c1da..11940a5726b 100644 --- a/chromium/chrome/common/extensions/api/_manifest_features.json +++ b/chromium/chrome/common/extensions/api/_manifest_features.json @@ -221,7 +221,12 @@ }, "storage": { "channel": "stable", - "extension_types": ["extension", "legacy_packaged_app", "platform_app"], + "extension_types": [ + "extension", + "legacy_packaged_app", + "platform_app", + "login_screen_extension" + ], "min_manifest_version": 2 }, "system_indicator": [ diff --git a/chromium/chrome/common/extensions/api/_permission_features.json b/chromium/chrome/common/extensions/api/_permission_features.json index 3b9c335698b..195d76f14f8 100644 --- a/chromium/chrome/common/extensions/api/_permission_features.json +++ b/chromium/chrome/common/extensions/api/_permission_features.json @@ -259,12 +259,21 @@ "channel": "trunk", "extension_types": ["extension"] }, - "enterprise.deviceAttributes": { + "enterprise.deviceAttributes": [{ "channel": "stable", "platforms": ["chromeos"], "extension_types": ["extension", "platform_app"], "location": "policy" - }, + }, { + "channel": "stable", + "extension_types": ["login_screen_extension"], + "location": "policy", + "platforms": ["chromeos"], + "whitelist": [ + "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) + "4DBFC1C52D6660DD90791976DF7FEF7B3D360509" // Imprivata (login screen) DEV + ] + }], "enterprise.hardwarePlatform": { "channel": "stable", "extension_types": ["extension"], @@ -436,25 +445,45 @@ ] }, "login": { - "channel": "dev", - "extension_types": ["login_screen_extension"], + "channel": "stable", + "extension_types": ["login_screen_extension", "extension"], "location": "policy", "platforms": ["chromeos"], "whitelist": [ "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) - "A24DE1B21A67E25FB62AC8491642038FE25DA75B" // Imprivata (in session) + "4DBFC1C52D6660DD90791976DF7FEF7B3D360509", // Imprivata (login screen) DEV + "A24DE1B21A67E25FB62AC8491642038FE25DA75B", // Imprivata (in session) + "6B25164FFE2BADB5F1DBBD301CC022170267022D" // Imprivata (in session) DEV + ] + }, + "loginScreenStorage": { + "channel": "stable", + "extension_types": ["login_screen_extension", "extension"], + "location": "policy", + "platforms": ["chromeos"], + "whitelist": [ + "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) + "4DBFC1C52D6660DD90791976DF7FEF7B3D360509", // Imprivata (login screen) DEV + "A24DE1B21A67E25FB62AC8491642038FE25DA75B", // Imprivata (in session) + "6B25164FFE2BADB5F1DBBD301CC022170267022D" // Imprivata (in session) DEV ] }, "loginScreenUi": { - "channel": "dev", + "channel": "stable", "extension_types": ["login_screen_extension"], "location": "policy", "platforms": ["chromeos"], "whitelist": [ "7FE4A999359A456C4B0FB7B7AD85CEA29CA50519", // chrome.loginScreenUi test extension - "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE" // Imprivata (login screen) + "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) + "4DBFC1C52D6660DD90791976DF7FEF7B3D360509" // Imprivata (login screen) DEV ] }, + "loginState": { + "channel": "stable", + "extension_types": ["login_screen_extension", "extension"], + "platforms": ["chromeos"] + }, "webcamPrivate": { "channel": "stable", "extension_types": ["extension", "platform_app"], diff --git a/chromium/chrome/common/extensions/api/accessibility_private.json b/chromium/chrome/common/extensions/api/accessibility_private.json index d4ac4066ae2..a0429a4de2d 100644 --- a/chromium/chrome/common/extensions/api/accessibility_private.json +++ b/chromium/chrome/common/extensions/api/accessibility_private.json @@ -257,24 +257,6 @@ ] }, { - "name": "setSwitchAccessKeys", - "type": "function", - "description": "Change the keyboard keys captured by Switch Access.", - "parameters": [ - { - "name": "key_codes", - "type": "array", - "items": { - "type": "integer", - "minimum": 48, // '0' key - "maximum": 90 // 'z' key - }, - "description": "The key codes for the keys that will be captured." - } - ], - "platforms": ["chromeos"] - }, - { "name": "setSwitchAccessMenuState", "type": "function", "description": "Shows or hides the Switch Access menu. If shown, it is at the indicated location.", diff --git a/chromium/chrome/common/extensions/api/api_sources.gni b/chromium/chrome/common/extensions/api/api_sources.gni index 9c0c100530f..67e412b393a 100644 --- a/chromium/chrome/common/extensions/api/api_sources.gni +++ b/chromium/chrome/common/extensions/api/api_sources.gni @@ -98,7 +98,9 @@ if (is_chromeos) { "input_method_private.json", "launcher_search_provider.idl", "login.idl", + "login_screen_storage.idl", "login_screen_ui.idl", + "login_state.idl", "platform_keys.idl", "platform_keys_internal.idl", "quick_unlock_private.idl", diff --git a/chromium/chrome/common/extensions/api/autotest_private.idl b/chromium/chrome/common/extensions/api/autotest_private.idl index d52f2e0e5f9..93e712596f7 100644 --- a/chromium/chrome/common/extensions/api/autotest_private.idl +++ b/chromium/chrome/common/extensions/api/autotest_private.idl @@ -13,6 +13,40 @@ namespace autotestPrivate { Bottom, Left, Right }; + // A mapping of ash::ShelfItemType. + enum ShelfItemType { + App, + PinnedApp, + BrowserShortcut, + Dialog + }; + + // A mapping of ash::ShelfItemStatus. + enum ShelfItemStatus { + Closed, + Running, + Attention + }; + + // A mapping of apps::mojom::Type + enum AppType { + Arc, + BuiltIn, + Crostini, + Extension, + Web + }; + + // A mapping of apps::mojom::Readiness + enum AppReadiness { + Ready, + DisabledByBlacklist, + DisabledByPolicy, + DisabledByUser, + Terminated, + UninstalledByUser + }; + // A subset of Window State types in ash::WindowStateType. We may add more // into the set in the future. enum WindowStateType { @@ -21,7 +55,8 @@ namespace autotestPrivate { Maximized, Fullscreen, LeftSnapped, - RightSnapped + RightSnapped, + PIP }; // A subset of WM event types in ash::WMEventType. We may add more in the @@ -70,7 +105,7 @@ namespace autotestPrivate { callback LoginStatusCallback = void (LoginStatusDict status); // |all_policies| will be the full list of policies as returned by the - // GetAllPolicyValuesAsArray function. + // DictionaryPolicyConversions.ToValue function. callback AllEnterprisePoliciesCallback = void (any all_policies); dictionary ExtensionInfoDict { @@ -119,6 +154,8 @@ namespace autotestPrivate { }; callback PrinterArrayCallback = void (Printer[] printers); + callback ArcStartTimeCallback = void (double startTime); + dictionary ArcState { // Whether the ARC is provisioned. boolean provisioned; @@ -192,6 +229,20 @@ namespace autotestPrivate { }; callback GetArcPackageCallback = void (ArcPackageDict package); + dictionary Bounds { + double left; + double top; + double width; + double height; + }; + + dictionary ArcAppWindowInfo { + Bounds bounds; + boolean isAnimating; + DOMString displayId; + }; + callback GetArcAppWindowInfoCallback = void (ArcAppWindowInfo info); + callback LaunchArcAppCallback = void (boolean appLaunched); callback TakeScreenshotCallback = void (DOMString base64Png); @@ -202,11 +253,39 @@ namespace autotestPrivate { callback SetTabletModeEnabledCallback = void(boolean enabled); + callback SetOverviewModeStateCallback = void(boolean finished); + + dictionary App { + DOMString appId; + DOMString name; + DOMString shortName; + AppType? type; + AppReadiness? readiness; + DOMString[] additionalSearchTerms; + boolean? showInLauncher; + boolean? showInSearch; + }; + + callback GetAllInstalledAppsCallback = void (App[] apps); + + dictionary ShelfItem { + DOMString appId; + DOMString launchId; + DOMString title; + ShelfItemType? type; + ShelfItemStatus status; + boolean showsTooltip; + boolean pinnedByPolicy; + boolean hasNotification; + }; + + callback GetShelfItemsCallback = void (ShelfItem[] items); + callback GetShelfAutoHideBehaviorCallback = void (DOMString behavior); callback GetShelfAlignmentCallback = void (ShelfAlignmentType alignment); - callback WindowStateChangedCallback = void (WindowStateType currentType); + callback WindowStateCallback = void (WindowStateType currentType); callback VoidCallback = void (); @@ -275,6 +354,9 @@ namespace autotestPrivate { // Get visible notifications on the system. static void getVisibleNotifications(NotificationArrayCallback callback); + // Get ARC start time. + static void getArcStartTime(ArcStartTimeCallback callback); + // Get state of the ARC session. static void getArcState(ArcStateCallback callback); @@ -351,6 +433,11 @@ namespace autotestPrivate { // |callback|: Called when the operation has completed. static void importCrostini(DOMString path, VoidCallback callback); + // Register a component with CrOSComponentManager. + // |name|: The name of the component. + // |path|: Path to the component. + static void registerComponent(DOMString name, DOMString path); + // Takes a screenshot and returns the data in base64 encoded PNG format. static void takeScreenshot(TakeScreenshotCallback callback); @@ -398,6 +485,12 @@ namespace autotestPrivate { static void setTabletModeEnabled(boolean enabled, SetTabletModeEnabledCallback callback); + // Get the list of all installed applications + static void getAllInstalledApps(GetAllInstalledAppsCallback callback); + + // Get the list of all shelf items + static void getShelfItems(GetShelfItemsCallback callback); + // Get the shelf auto hide behavior. // |displayId|: display that contains the shelf. // |callback| is invoked with the shelf auto hide behavior. Possible @@ -425,15 +518,42 @@ namespace autotestPrivate { static void setShelfAlignment(DOMString displayId, ShelfAlignmentType alignment, VoidCallback callback); + // Enter or exit the overview mode. + // |start|: whether entering to or exiting from the overview mode. + // |callback|: called after the overview mode switch finishes. + static void setOverviewModeState(boolean start, + SetOverviewModeStateCallback callback); + // Show virtual keyboard of the current input method if it's available. static void showVirtualKeyboardIfEnabled(); - // Sends WM event to change the ARC app window's window state. + // Send WM event to change the ARC app window's window state. // |packageName|: the package name of the ARC app window. // |eventType|: WM event type to send to the ARC app window. // |callback|: called when the window state is changed. static void setArcAppWindowState(DOMString packageName, WindowStateChangeDict change, - WindowStateChangedCallback callback); + WindowStateCallback callback); + + // Get ARC app window's window state. + // |packageName|: the package name of the ARC app window. + // |callback| is invoked with the window state. + static void getArcAppWindowState(DOMString packageName, WindowStateCallback callback); + + // Get various information on an ARC window. + // |packageName|: the package name of the ARC app window. + // |callback|: called when the operation has completed. + static void getArcAppWindowInfo(DOMString packageName, + GetArcAppWindowInfoCallback callback); + + // Swap the windows in the split view. + // |callback|: Called when the operation has completed. + static void swapWindowsInSplitView(VoidCallback callback); + + // Set ARC app window focused. + // |packageName|: the package name of the ARC app window. + // |callback|: called when the operation has completed. + static void setArcAppWindowFocus(DOMString packageName, + VoidCallback callback); }; }; diff --git a/chromium/chrome/common/extensions/api/file_manager_private.idl b/chromium/chrome/common/extensions/api/file_manager_private.idl index 40a3933c413..04ed11c167a 100644 --- a/chromium/chrome/common/extensions/api/file_manager_private.idl +++ b/chromium/chrome/common/extensions/api/file_manager_private.idl @@ -229,7 +229,14 @@ enum SourceRestriction { native_or_drive_source }; -enum CrostiniEventType { enable, disable, share, unshare }; +enum CrostiniEventType { + enable, + disable, + root_access_allow, + root_access_disallow, + share, + unshare +}; // A file task represents an action that the file manager can perform over the // currently selected files. See @@ -1041,11 +1048,6 @@ interface Functions { // |changeInfo| static void setPreferences(PreferencesChange changeInfo); - // Sets the flag for remembering if the toast UI for ARC storage - // has already been shown. - // |callback| Completion callback with the original value of the flag. - static void setArcStorageToastShownFlag(BooleanCallback callback); - // Performs drive content search. // |searchParams| // |callback| @@ -1220,7 +1222,7 @@ interface Functions { // |vmName| VM to get shared paths of. // first time this function has been called with observeFirstForSession true. [nocompile] static void getCrostiniSharedPaths( - boolean observeFirstForSession, DOMString vmName, + boolean observeFirstForSession, DOMString vmName, GetCrostiniSharedPathsCallback callback); // Requests information about a Linux package. |entry| is a .deb file. @@ -1233,6 +1235,11 @@ interface Functions { static void installLinuxPackage([instanceof=Entry] object entry, InstallLinuxPackageCallback callback); + // Imports a Crostini Image File (.tini). This overrides the existing Linux + // apps and files. + [nocompile] + static void importCrostiniImage([instanceof=Entry] object entry); + // For a file in DriveFS, retrieves its thumbnail. If |cropToSquare| is true, // returns a thumbnail appropriate for file list or grid views; otherwise, // returns a thumbnail appropriate for quickview. diff --git a/chromium/chrome/common/extensions/api/file_manager_private_internal.idl b/chromium/chrome/common/extensions/api/file_manager_private_internal.idl index 53e6874b36e..133f340ae60 100644 --- a/chromium/chrome/common/extensions/api/file_manager_private_internal.idl +++ b/chromium/chrome/common/extensions/api/file_manager_private_internal.idl @@ -115,6 +115,7 @@ namespace fileManagerPrivateInternal { GetLinuxPackageInfoCallback callback); static void installLinuxPackage(DOMString url, InstallLinuxPackageCallback callback); + static void importCrostiniImage(DOMString url); static void getThumbnail(DOMString url, boolean cropToSquare, GetThumbnailCallback callback); diff --git a/chromium/chrome/common/extensions/api/launcher_page.idl b/chromium/chrome/common/extensions/api/launcher_page.idl deleted file mode 100644 index 7e7896a8693..00000000000 --- a/chromium/chrome/common/extensions/api/launcher_page.idl +++ /dev/null @@ -1,53 +0,0 @@ -// 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. - -// The <code>chrome.launcherPage</code> API provides launcher pages in the -// Chrome Launcher with the capabilities and events they need. -namespace launcherPage { - callback PushSubpageCallback = void(); - callback ShowCallback = void(); - callback HideCallback = void(); - callback SetEnabledCallback = void(); - - interface Functions { - // Pushes a subpage state onto a state stack for the launcher page. This - // state will be popped when the launcher's back button is pressed, - // preventing the launcher from hiding the launcher page and sending an - // onPopSubpage event to the launcher page. Once all states are popped, the - // next press of the back button will cause the launcher to be hidden. - // - // Note: All subpages are immediately popped when the launcher is closed or - // the launcher page is otherwise hidden. - static void pushSubpage(optional PushSubpageCallback callback); - - // Opens the launcher if it isn't currently open and shows the launcher - // page. - static void show(optional ShowCallback callback); - - // Returns the launcher to the start page if the launcher page is showing. - static void hide(optional HideCallback callback); - - // Sets whether the launcher page is enabled in the launcher. If disabled, - // the launcher page will not be shown when the area at the bottom of the - // launcher is pressed. - // - // Note: The launcher page will still be displayed at the bottom of the - // launcher's start page and launcherPage.show() will still show the - // launcher page. - static void setEnabled(boolean enabled, - optional SetEnabledCallback callback); - }; - - interface Events { - // Fired when the launcher page is transitioning between hidden and shown. - // It's possible for this to be called with a pushed subpage so this - // event handler should account for transitioning from any subpage to a - // collapsed view. - static void onTransitionChanged(double progress); - - // Fired when the launcher's back button is pressed if there are remaining - // subpages on the state stack pushed by pushSubpage(). - static void onPopSubpage(); - }; -}; diff --git a/chromium/chrome/common/extensions/api/login.idl b/chromium/chrome/common/extensions/api/login.idl index 8beca81edab..4231b217529 100644 --- a/chromium/chrome/common/extensions/api/login.idl +++ b/chromium/chrome/common/extensions/api/login.idl @@ -7,7 +7,6 @@ implemented_in="chrome/browser/chromeos/extensions/login_screen/login/login_api.h"] namespace login { callback VoidCallback = void (); - callback BooleanCallback = void (boolean result); callback StringCallback = void (DOMString result); interface Functions { @@ -23,12 +22,6 @@ namespace login { static void exitCurrentSession(optional DOMString dataForNextLoginAttempt, optional VoidCallback callback); - // Checks whether the caller extension is running in the login screen - // profile. - // |callback|: Called with true if the caller extension is running in the - // login screen profile, or false otherwise. - static void isRunningInLoginProfile(BooleanCallback callback); - // Reads the <code>dataForNextLoginAttempt</code> set by // <code>exitCurrentSession()</code>. Clears the previously stored data // after reading so it can only be read once. diff --git a/chromium/chrome/common/extensions/api/login_screen_storage.idl b/chromium/chrome/common/extensions/api/login_screen_storage.idl new file mode 100644 index 00000000000..21e90a1e502 --- /dev/null +++ b/chromium/chrome/common/extensions/api/login_screen_storage.idl @@ -0,0 +1,47 @@ +// Copyright 2019 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. + +// Use the <code>chrome.loginScreenStorage</code> API to store persistent data +// from the login screen or inject data into the session. +[platforms=("chromeos"), + implemented_in="chrome/browser/chromeos/extensions/login_screen/login_screen_storage/login_screen_storage_api.h"] +namespace loginScreenStorage { + callback StoreCallback = void (); + callback RetrieveCallback = void (DOMString data); + + interface Functions { + // Stores persistent data from the login screen. This data can be accessed + // later using $(ref:retrievePersistentData) by any extension from the + // specified extension ids. This method will fail if called while a user + // session is active. + // |extensionIds|: IDs of the extensions that should have access to the + // stored data. + // |data|: The data to store. + static void storePersistentData(DOMString[] extensionIds, + DOMString data, + StoreCallback callback); + + // Retrieves persistent data that was previously stored using + // $(ref:storePersistentData) for the caller's extension ID. + // |ownerId|: ID of the extension that saved the data that the caller is + // trying to retrieve. + static void retrievePersistentData(DOMString ownerId, + RetrieveCallback callback); + + // Stores credentials for later access from the user session. This method + // will fail if called while a user session is active. + // |extensionId|: ID of the in-session extension that should have access to + // these credentials. Credentials stored using this method are deleted on + // session exit. + // |credentials|: The credentials to store. + static void storeCredentials(DOMString extensionId, + DOMString credentials, + StoreCallback callback); + + // Retrieves credentials that were previosly stored using + // $(ref:storeCredentials). The caller's extension ID should be the same as + // the extension id passed to the $(ref:storeCredentials). + static void retrieveCredentials(RetrieveCallback callback); + }; +}; diff --git a/chromium/chrome/common/extensions/api/login_state.idl b/chromium/chrome/common/extensions/api/login_state.idl new file mode 100644 index 00000000000..c8195e4f1bb --- /dev/null +++ b/chromium/chrome/common/extensions/api/login_state.idl @@ -0,0 +1,51 @@ +// Copyright 2019 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. + +// Use the <code>chrome.loginState</code> API to read and monitor the login +// state. +[platforms=("chromeos"), + implemented_in="chrome/browser/chromeos/extensions/login_screen/login_state/login_state_api.h"] +namespace loginState { + enum ProfileType { + // The extension is in the signin profile. + SIGNIN_PROFILE, + + // The extension is in the user profile. + USER_PROFILE + }; + + enum SessionState { + // The session state is unknown. + UNKNOWN, + + // The user is in the out-of-box-experience screen. + IN_OOBE_SCREEN, + + // The user is in the login screen. + IN_LOGIN_SCREEN, + + // The user is in the session. + IN_SESSION, + + // The user is in the lock screen. + IN_LOCK_SCREEN + }; + + callback ProfileTypeCallback = void (ProfileType result); + callback SessionStateCallback = void (SessionState result); + + interface Functions { + // Gets the type of the profile the extension is in. + static void getProfileType(ProfileTypeCallback callback); + + // Gets the current session state. + static void getSessionState(SessionStateCallback callback); + }; + + interface Events { + // Dispatched when the session state changes. <code>sessionState</code> + // is the new session state. + static void onSessionStateChanged(SessionState sessionState); + }; +}; diff --git a/chromium/chrome/common/extensions/api/settings_private.idl b/chromium/chrome/common/extensions/api/settings_private.idl index 9e8b90a2a39..b4a1848df5a 100644 --- a/chromium/chrome/common/extensions/api/settings_private.idl +++ b/chromium/chrome/common/extensions/api/settings_private.idl @@ -20,10 +20,19 @@ namespace settingsPrivate { // Preferences are controlled neither by parent nor the child user. // Preference values are hard-coded values and can not be changed. - CHILD_RESTRICTIONS + CHILD_RESTRICTION }; - enum Enforcement { ENFORCED, RECOMMENDED }; + enum Enforcement { + // Value cannot be changed by user. + ENFORCED, + // Value can be changed, but the administrator recommends a default. + RECOMMENDED, + // Value is protected by a code that only parents can access. The logic to + // require the code is NOT automatically added to a preference using this + // enforcement. This is only used to display the correct pref indicator. + PARENT_SUPERVISED + }; dictionary PrefObject { // The key for the pref. diff --git a/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc b/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc index 623aa14232f..606258cef12 100644 --- a/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc +++ b/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc @@ -669,6 +669,9 @@ ChromePermissionMessageRule::GetAllRules() { {IDS_EXTENSION_PROMPT_WARNING_LOGIN_SCREEN_UI, {APIPermission::kLoginScreenUi}, {}}, + {IDS_EXTENSION_PROMPT_WARNING_LOGIN_SCREEN_STORAGE, + {APIPermission::kLoginScreenStorage}, + {}}, {IDS_EXTENSION_PROMPT_WARNING_TRANSIENT_BACKGROUND, {APIPermission::kTransientBackground}, {}}, diff --git a/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc b/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc index baf8d3fbee9..e43cd3f564d 100644 --- a/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc +++ b/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc @@ -766,13 +766,13 @@ TEST(PermissionsTest, PermissionMessages) { skip.insert(APIPermission::kDns); skip.insert(APIPermission::kDownloadsShelf); skip.insert(APIPermission::kEmbeddedExtensionOptions); - skip.insert(APIPermission::kExtensionView); skip.insert(APIPermission::kFontSettings); skip.insert(APIPermission::kFullscreen); skip.insert(APIPermission::kGcm); skip.insert(APIPermission::kIdle); skip.insert(APIPermission::kImeWindowEnabled); skip.insert(APIPermission::kIdltest); + skip.insert(APIPermission::kLoginState); skip.insert(APIPermission::kOverrideEscFullscreen); skip.insert(APIPermission::kPointerLock); skip.insert(APIPermission::kPower); diff --git a/chromium/chrome/common/features.gni b/chromium/chrome/common/features.gni index 80d1116ab9b..0eab01ba586 100644 --- a/chromium/chrome/common/features.gni +++ b/chromium/chrome/common/features.gni @@ -7,6 +7,7 @@ import("//build/config/chromecast_build.gni") import("//build/config/compiler/compiler.gni") import("//build/config/dcheck_always_on.gni") import("//build/config/features.gni") +import("//components/safe_browsing/buildflags.gni") import("//device/vr/buildflags/buildflags.gni") import("//extensions/buildflags/buildflags.gni") import("//media/media_options.gni") @@ -49,16 +50,7 @@ declare_args() { # Android stores them separately on the Java side. enable_session_service = !is_android && !is_chromecast - # Enables embedding of the simple_browser service, a lightweight browser - # application which consumes the Content Service. Useful primarily for - # developer testing. - enable_simple_browser_service_in_process = - use_aura && (is_debug || dcheck_always_on) && !is_chromecast - enable_simple_browser_service_out_of_process = - is_chromeos && (is_debug || dcheck_always_on) - - # TODO(crbug.com/980869): Change this to is_chromeos || is_android. - enable_supervised_users = !is_chromecast + enable_supervised_users = is_chromeos || is_android # Indicates if Wayland display server support is enabled. enable_wayland_server = is_chromeos @@ -85,7 +77,9 @@ chrome_grit_defines = [ "enable_print_preview=$enable_print_preview", "enable_printing=$enable_basic_printing", "enable_service_discovery=$enable_service_discovery", + "enable_supervised_users=$enable_supervised_users", "enable_vr=$enable_vr", + "enable_webui_tab_strip=$enable_webui_tab_strip", "safe_browsing_mode=$safe_browsing_mode", "optimize_webui=$optimize_webui", ] diff --git a/chromium/chrome/common/importer/profile_import.mojom b/chromium/chrome/common/importer/profile_import.mojom index 3733b3d2daa..a61e549f6ea 100644 --- a/chromium/chrome/common/importer/profile_import.mojom +++ b/chromium/chrome/common/importer/profile_import.mojom @@ -8,8 +8,6 @@ import "components/autofill/core/common/mojom/autofill_types.mojom"; import "mojo/public/mojom/base/string16.mojom"; import "url/mojom/url.mojom"; -const string kProfileImportServiceName = "profile_import"; - [Native] struct ImportedBookmarkEntry; diff --git a/chromium/chrome/common/mac/app_shim.mojom b/chromium/chrome/common/mac/app_shim.mojom index 0db620473ec..0f3f31815db 100644 --- a/chromium/chrome/common/mac/app_shim.mojom +++ b/chromium/chrome/common/mac/app_shim.mojom @@ -31,12 +31,6 @@ interface AppShim { // creates chrome-scoped objects that implement remote_cocoa interfaces. CreateCommandDispatcherForWidget(uint64 widget_id); - // Instructs the shim to hide the app. - Hide(); - - // Instructs the shim to show the app. - UnhideWithoutActivation(); - // Instructs the shim to request or cancel user attention. SetUserAttention(AppShimAttentionType attention_type); @@ -52,12 +46,6 @@ interface AppShimHost { // if the focus type indicates a reopen and there are no open windows. FocusApp(AppShimFocusType focus_type, array<mojo_base.mojom.FilePath> files); - - // Sent when the app shim is hidden or unhidden. - SetAppHidden(bool hidden); - - // Called when the app shim process notifies that the app should quit. - QuitApp(); }; // The initial interface provided by the browser process. Used to bootstrap to diff --git a/chromium/chrome/common/mac/app_shim.typemap b/chromium/chrome/common/mac/app_shim.typemap index fd5b3f6804f..1d51a18e630 100644 --- a/chromium/chrome/common/mac/app_shim.typemap +++ b/chromium/chrome/common/mac/app_shim.typemap @@ -9,8 +9,8 @@ public_headers = [ "//chrome/common/mac/app_shim_launch.h" ] traits_headers = [ "//chrome/common/mac/app_shim_param_traits.h" ] type_mappings = [ - "chrome.mojom.AppShimLaunchType=apps::AppShimLaunchType", - "chrome.mojom.AppShimLaunchResult=apps::AppShimLaunchResult", - "chrome.mojom.AppShimFocusType=apps::AppShimFocusType", - "chrome.mojom.AppShimAttentionType=apps::AppShimAttentionType", + "chrome.mojom.AppShimLaunchType=::apps::AppShimLaunchType", + "chrome.mojom.AppShimLaunchResult=::apps::AppShimLaunchResult", + "chrome.mojom.AppShimFocusType=::apps::AppShimFocusType", + "chrome.mojom.AppShimAttentionType=::apps::AppShimAttentionType", ] diff --git a/chromium/chrome/common/media_router/BUILD.gn b/chromium/chrome/common/media_router/BUILD.gn index 7a70515f1a7..2f253237591 100644 --- a/chromium/chrome/common/media_router/BUILD.gn +++ b/chromium/chrome/common/media_router/BUILD.gn @@ -27,8 +27,6 @@ static_library("router") { "media_sink.h", "media_source.cc", "media_source.h", - "media_status.cc", - "media_status.h", "route_request_result.cc", "route_request_result.h", ] diff --git a/chromium/chrome/common/media_router/mojo/media_status.typemap b/chromium/chrome/common/media_router/mojo/media_status.typemap deleted file mode 100644 index 81ce6ec517e..00000000000 --- a/chromium/chrome/common/media_router/mojo/media_status.typemap +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright 2017 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. - -mojom = "//chrome/common/media_router/mojo/media_status.mojom" -public_headers = [ "//chrome/common/media_router/media_status.h" ] -traits_headers = - [ "//chrome/common/media_router/mojo/media_status_struct_traits.h" ] -sources = [ - "//chrome/common/media_router/mojo/media_status_struct_traits.cc", -] -type_mappings = [ "media_router.mojom.MediaStatus=media_router::MediaStatus" ] diff --git a/chromium/chrome/common/media_router/mojo/BUILD.gn b/chromium/chrome/common/media_router/mojom/BUILD.gn index e7c020cf70c..3a43ecb8bd5 100644 --- a/chromium/chrome/common/media_router/mojo/BUILD.gn +++ b/chromium/chrome/common/media_router/mojom/BUILD.gn @@ -12,6 +12,8 @@ mojom("media_controller") { public_deps = [ "//mojo/public/mojom/base", + "//ui/gfx/geometry/mojom", + "//url/mojom:url_mojom_gurl", ] } @@ -23,7 +25,7 @@ mojom("media_router") { public_deps = [ ":media_controller", "//components/mirroring/mojom:host", - "//media/mojo/interfaces:mirror_service_remoting", + "//media/mojo/mojom:mirror_service_remoting", "//mojo/public/mojom/base", "//services/network/public/mojom:mojom_ip_address", "//third_party/blink/public/mojom:mojom_platform", diff --git a/chromium/chrome/common/media_router/mojo/media_controller.mojom b/chromium/chrome/common/media_router/mojom/media_controller.mojom index 80ad5f4a346..2274e631bc6 100644 --- a/chromium/chrome/common/media_router/mojo/media_controller.mojom +++ b/chromium/chrome/common/media_router/mojom/media_controller.mojom @@ -4,7 +4,7 @@ module media_router.mojom; -import "chrome/common/media_router/mojo/media_status.mojom"; +import "chrome/common/media_router/mojom/media_status.mojom"; import "mojo/public/mojom/base/time.mojom"; // Interface for a controller to change the current state of a media content. @@ -32,4 +32,12 @@ interface MediaController { // Sets the current playback position. |time| must be less than or equal to // the duration of the media. Is a no-op if the media doesn't support seeking. Seek(mojo_base.mojom.TimeDelta time); + + // Skips to the next media track, e.g. the next song in a playlist. It is a + // no-op if there is no next track. + NextTrack(); + + // Skips to the previous media track, e.g. the previous song in a playlist. It + // is a no-op if there is no previous track. + PreviousTrack(); }; diff --git a/chromium/chrome/common/media_router/mojo/media_router.mojom b/chromium/chrome/common/media_router/mojom/media_router.mojom index fe08d5bd35b..6573857b682 100644 --- a/chromium/chrome/common/media_router/mojo/media_router.mojom +++ b/chromium/chrome/common/media_router/mojom/media_router.mojom @@ -4,10 +4,10 @@ module media_router.mojom; -import "chrome/common/media_router/mojo/media_controller.mojom"; -import "chrome/common/media_router/mojo/media_status.mojom"; +import "chrome/common/media_router/mojom/media_controller.mojom"; +import "chrome/common/media_router/mojom/media_status.mojom"; import "components/mirroring/mojom/mirroring_service_host.mojom"; -import "media/mojo/interfaces/mirror_service_remoting.mojom"; +import "media/mojo/mojom/mirror_service_remoting.mojom"; import "mojo/public/mojom/base/time.mojom"; import "services/network/public/mojom/ip_address.mojom"; import "services/network/public/mojom/ip_endpoint.mojom"; @@ -87,6 +87,7 @@ struct CastMediaSink { int32 cast_channel_id; }; +// TODO(crbug.com/993437): Replace the use of this enum with a boolean field. enum RouteControllerType { kNone, kGeneric, @@ -205,7 +206,7 @@ struct SinkSearchCriteria { // - RouteRequestResult::ResultCode in route_request_result.h // - MediaRouteProviderResult enum in tools/metrics/histograms.xml. // - mr.RouteRequestResultCode in route_request_error.js -// - media_router_struct_traits.h +// - media_router_mojom_traits.h enum RouteRequestResultCode { UNKNOWN_ERROR, OK, @@ -243,12 +244,12 @@ struct MediaRouteProviderConfig { // result. An MRP may return this as part of any route creation callback to // allow direct communication with the controlling page. struct RoutePresentationConnection { - // Interface pointer to send messages to the MRP. - blink.mojom.PresentationConnection connection_ptr; + // Remote to send messages to the MRP. + pending_remote<blink.mojom.PresentationConnection> connection_remote; - // Interface request which the controlling page should bind to receive - // messages from the MRP. - blink.mojom.PresentationConnection& connection_request; + // Receiver which the controlling page should bind to receive messages from + // the MRP. + pending_receiver<blink.mojom.PresentationConnection> connection_receiver; }; // Modeled after the MediaRouter interface defined in diff --git a/chromium/chrome/common/media_router/mojo/media_router.typemap b/chromium/chrome/common/media_router/mojom/media_router.typemap index 57e6e3b584c..653d5b5eb51 100644 --- a/chromium/chrome/common/media_router/mojo/media_router.typemap +++ b/chromium/chrome/common/media_router/mojom/media_router.typemap @@ -2,7 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -mojom = "//chrome/common/media_router/mojo/media_router.mojom" +mojom = "//chrome/common/media_router/mojom/media_router.mojom" public_headers = [ "//chrome/common/media_router/discovery/media_sink_internal.h", "//chrome/common/media_router/issue.h", @@ -22,16 +22,16 @@ deps = [ "//url", ] traits_headers = - [ "//chrome/common/media_router/mojo/media_router_struct_traits.h" ] + [ "//chrome/common/media_router/mojom/media_router_mojom_traits.h" ] sources = [ - "//chrome/common/media_router/mojo/media_router_struct_traits.cc", + "//chrome/common/media_router/mojom/media_router_mojom_traits.cc", ] type_mappings = [ - "media_router.mojom.Issue=media_router::IssueInfo", - "media_router.mojom.Issue.ActionType=media_router::IssueInfo::Action", - "media_router.mojom.Issue.Severity=media_router::IssueInfo::Severity", - "media_router.mojom.MediaRoute=media_router::MediaRoute", - "media_router.mojom.MediaRouteProvider.Id=media_router::MediaRouteProviderId", - "media_router.mojom.MediaSink=media_router::MediaSinkInternal", - "media_router.mojom.RouteRequestResultCode=media_router::RouteRequestResult::ResultCode", + "media_router.mojom.Issue=::media_router::IssueInfo", + "media_router.mojom.Issue.ActionType=::media_router::IssueInfo::Action", + "media_router.mojom.Issue.Severity=::media_router::IssueInfo::Severity", + "media_router.mojom.MediaRoute=::media_router::MediaRoute", + "media_router.mojom.MediaRouteProvider.Id=::media_router::MediaRouteProviderId", + "media_router.mojom.MediaSink=::media_router::MediaSinkInternal", + "media_router.mojom.RouteRequestResultCode=::media_router::RouteRequestResult::ResultCode", ] diff --git a/chromium/chrome/common/media_router/mojo/media_router_traits_test_service.mojom b/chromium/chrome/common/media_router/mojom/media_router_traits_test_service.mojom index 8431ff646ed..9b8b61f164e 100644 --- a/chromium/chrome/common/media_router/mojo/media_router_traits_test_service.mojom +++ b/chromium/chrome/common/media_router/mojom/media_router_traits_test_service.mojom @@ -4,7 +4,7 @@ module media_router.mojom; -import "chrome/common/media_router/mojo/media_router.mojom"; +import "chrome/common/media_router/mojom/media_router.mojom"; // All functions on this interface echo their arguments to test StructTraits // serialization and deserialization. diff --git a/chromium/chrome/common/media_router/mojo/media_status.mojom b/chromium/chrome/common/media_router/mojom/media_status.mojom index e3b338c84e3..24806dce0d7 100644 --- a/chromium/chrome/common/media_router/mojo/media_status.mojom +++ b/chromium/chrome/common/media_router/mojom/media_status.mojom @@ -5,6 +5,15 @@ module media_router.mojom; import "mojo/public/mojom/base/time.mojom"; +import "ui/gfx/geometry/mojom/geometry.mojom"; +import "url/mojom/url.mojom"; + +struct MediaImage { + // URL of the image. + url.mojom.Url url; + // |size| is not set if it is unknown. + gfx.mojom.Size? size; +}; // Represents the current state of a media content. This struct should be kept // free of details specific to Media Router, so that it can be moved to the @@ -38,6 +47,10 @@ struct MediaStatus { // through its MediaController. bool can_seek; + bool can_skip_to_next_track; + + bool can_skip_to_previous_track; + // Whether the media is playing, paused, or buffering. PlayState play_state; @@ -54,6 +67,9 @@ struct MediaStatus { // Current playback position. Must be less than or equal to |duration|. mojo_base.mojom.TimeDelta current_time; + + // Images associated with the media. + array<MediaImage> images; }; // Interface for being notified whenever the MediaStatus of a media changes. diff --git a/chromium/chrome/common/media_router/mojo/typemaps.gni b/chromium/chrome/common/media_router/mojom/typemaps.gni index 7d134e8953d..6d3dab2995f 100644 --- a/chromium/chrome/common/media_router/mojo/typemaps.gni +++ b/chromium/chrome/common/media_router/mojom/typemaps.gni @@ -2,7 +2,4 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -typemaps = [ - "//chrome/common/media_router/mojo/media_router.typemap", - "//chrome/common/media_router/mojo/media_status.typemap", -] +typemaps = [ "//chrome/common/media_router/mojom/media_router.typemap" ] diff --git a/chromium/chrome/common/page_load_metrics/page_load_metrics.mojom b/chromium/chrome/common/page_load_metrics/page_load_metrics.mojom deleted file mode 100644 index 910a7e56ce2..00000000000 --- a/chromium/chrome/common/page_load_metrics/page_load_metrics.mojom +++ /dev/null @@ -1,268 +0,0 @@ -// Copyright 2017 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. - -module page_load_metrics.mojom; - -import "mojo/public/mojom/base/time.mojom"; -import "third_party/blink/public/mojom/web_feature/web_feature.mojom"; -import "url/mojom/origin.mojom"; - -// TimeDeltas below relative to navigation start. -struct DocumentTiming { - // Time immediately before the DOMContentLoaded event is fired. - mojo_base.mojom.TimeDelta? dom_content_loaded_event_start; - - // Time immediately before the load event is fired. - mojo_base.mojom.TimeDelta? load_event_start; - - // Time when the first layout is completed. - mojo_base.mojom.TimeDelta? first_layout; -}; - -// TimeDeltas below relative to navigation start. -struct PaintTiming { - // Time when the first paint is performed. - mojo_base.mojom.TimeDelta? first_paint; - - // Time when the first image is painted. - mojo_base.mojom.TimeDelta? first_image_paint; - - // Time when the first contentful thing (image, text, etc.) is painted. - mojo_base.mojom.TimeDelta? first_contentful_paint; - - // (Experimental) Time when the page's primary content is painted. - mojo_base.mojom.TimeDelta? first_meaningful_paint; - - // (Experimental) Time when the page's largest image is painted. - mojo_base.mojom.TimeDelta? largest_image_paint; - - // (Experimental) Size of the largest image of the largest image paint, by - // Size = Height * Width. - uint64 largest_image_paint_size; - - // (Experimental) Time when the page's largest text is painted. - mojo_base.mojom.TimeDelta? largest_text_paint; - - // (Experimental) Size of the largest text of the largest text paint, by - // Size = Height * Width. - uint64 largest_text_paint_size; -}; - -// TimeDeltas below represent durations of time during the page load. -struct ParseTiming { - // Time that the document's parser started and stopped parsing main resource - // content. - mojo_base.mojom.TimeDelta? parse_start; - mojo_base.mojom.TimeDelta? parse_stop; - - // Sum of times when the parser is blocked waiting on the load of a script. - // This duration takes place between parser_start and parser_stop, and thus - // must be less than or equal to parser_stop - parser_start. Note that this - // value may be updated multiple times during the period between parse_start - // and parse_stop. - mojo_base.mojom.TimeDelta? parse_blocked_on_script_load_duration; - - // Sum of times when the parser is blocked waiting on the load of a script - // that was inserted from document.write. This duration must be less than or - // equal to parse_blocked_on_script_load_duration. Note that this value may be - // updated multiple times during the period between parse_start and - // parse_stop. Note that some uncommon cases where scripts are loaded via - // document.write are not currently covered by this field. See crbug/600711 - // for details. - mojo_base.mojom.TimeDelta? parse_blocked_on_script_load_from_document_write_duration; - - // Sum of times when the parser is executing a script. This duration takes - // place between parser_start and parser_stop, and thus must be less than or - // equal to parser_stop - parser_start. Note that this value may be updated - // multiple times during the period between parse_start and parse_stop. - mojo_base.mojom.TimeDelta? parse_blocked_on_script_execution_duration; - - // Sum of times when the parser is executing a script that was inserted from - // document.write. This duration must be less than or equal to - // parse_blocked_on_script_load_duration. Note that this value may be updated - // multiple times during the period between parse_start and parse_stop. Note - // that some uncommon cases where scripts are loaded via document.write are - // not currently covered by this field. See crbug/600711 for details. - mojo_base.mojom.TimeDelta? parse_blocked_on_script_execution_from_document_write_duration; -}; - -struct InteractiveTiming { - // The first time the page is considered 'interactive'. This is determined - // using heuristics based on main thread and network activity. Time delta is - // relative to navigation_start. - mojo_base.mojom.TimeDelta? interactive; - - // The time of when we detect the page is interactive. There is a delay - // between when the page was interactive and when we were able to detect it. - // Time delta is relative to navigation_start. - // This is a page load metrics internal value and not generally intended for - // consumption by observers. - mojo_base.mojom.TimeDelta? interactive_detection; - - - // The time of when a significant input event happened that may cause - // observers to discard the value of Time to Interactive. Time delta is - // relative to navigation start. - // This is a page load metrics internal value and not generally intended for - // consumption by observers. - mojo_base.mojom.TimeDelta? first_invalidating_input; - - // Queueing Time of the first click, tap, key press, cancellable touchstart, - // or pointer down followed by a pointer up. - mojo_base.mojom.TimeDelta? first_input_delay; - - // The timestamp of the event whose delay is reported by GetFirstInputDelay(). - mojo_base.mojom.TimeDelta? first_input_timestamp; - - // Queueing Time of the meaningful input event with longest delay. Meaningful - // input events are click, tap, key press, cancellable touchstart, or pointer - // down followed by a pointer up. - mojo_base.mojom.TimeDelta? longest_input_delay; - - // The timestamp of the event whose delay is reported as longest_input_delay. - mojo_base.mojom.TimeDelta? longest_input_timestamp; -}; - - -// PageLoadTiming contains timing metrics associated with a page load. Many of -// the metrics here are based on the Navigation Timing spec: -// http://www.w3.org/TR/navigation-timing/. -struct PageLoadTiming { - // Time that the navigation for the associated page was initiated. Note that - // this field is only used for internal tracking purposes and should not be - // used by PageLoadMetricsObservers. This field will likely be removed in the - // future. - mojo_base.mojom.Time navigation_start; - - // Time relative to navigation_start that the first byte of the response is - // received. - mojo_base.mojom.TimeDelta? response_start; - DocumentTiming document_timing; - InteractiveTiming interactive_timing; - PaintTiming paint_timing; - ParseTiming parse_timing; - // Time between user input and navigation start. This is set for navigations - // where the input start timing is known; currently when the navigation is - // initiated by a link click in the renderer, or from the desktop omnibox. - mojo_base.mojom.TimeDelta? input_to_navigation_start; - - // If you add additional members, also be sure to update page_load_timing.h. -}; - -struct PageLoadMetadata { - // These are packed blink::WebLoadingBehaviorFlag enums. - int32 behavior_flags = 0; -}; - -// PageLoadFeatures contains a list of features newly observed by use counter. -// In a given page load, no PageLoadFeatures sent will contain previously seen -// values. -struct PageLoadFeatures { - // These features are defined as blink::mojom::WebFeature enums. - array<blink.mojom.WebFeature> features; - // These ints represent CSSSampleID for histogram converted from CSSPropertyId - // by blink::UseCounter::MapCSSPropertyIdToCSSSampleIdForHistogram. - array<int32> css_properties; - array<int32> animated_css_properties; -}; - -// Enumeration of distinct cache types. -enum CacheType { - kNotCached, // Resource came from network. - kHttp, // Resource was serviced by the http cache. - kMemory, // Resource was serviced by the Renderer's MemoryCache. -}; - -struct ResourceDataUpdate { - // The id for the resource request. - int32 request_id = 0; - - // Network bytes received for the resource since the last timing update - // from renderer to browser. - int64 delta_bytes = 0; - - // Total network bytes received for the resource across timing updates. This - // is the aggregate of the |delta_bytes| from each timing update. - int64 received_data_length = 0; - - // The length of the response body for the resource before removing any - // content encodings. Only set for complete resources. - int64 encoded_body_length = 0; - - // Whether this resource load has completed. - bool is_complete; - - // Compression ratio estimated from the response headers if data saver was - // used. - double data_reduction_proxy_compression_ratio_estimate; - - // Whether this resource was tagged as an ad in the renderer. This flag can - // be set to true at any point during a resource load. A more recent - // ResourceDataUpdate can have a different flag than the previous update. - // Once this is set to true, it will be true for all future updates. - bool reported_as_ad_resource; - - // Whether this resource was loaded in the top-level frame. - bool is_main_frame_resource; - - // Which cache this resource originated from, if any. - CacheType cache_type; - - // Whether this resource is the primary resource for a frame. - bool is_primary_frame_resource; - - // Mime type for the resource found in the network response header. - string mime_type; - - // Whether the scheme of this resource indicates a secure connection. - bool is_secure_scheme; - - // Whether this resource was fetched via proxy. - bool proxy_used; - - // The origin of this resource. - url.mojom.Origin origin; -}; - -// Metrics about how a RenderFrame rendered since the last UpdateTiming call. -struct FrameRenderDataUpdate { - // How much visible elements in the frame shifted (bit.ly/lsm-explainer) since - // the last timing update. - float layout_shift_delta; - - // How much visible elements in the frame shifted (bit.ly/lsm-explainer), - // before a user input or document scroll, since the last timing update. - float layout_shift_delta_before_input_or_scroll; -}; - -// Metrics about the time spent in tasks (cpu time) by a frame. -struct CpuTiming { - // Time spent in tasks measured in wall time. - mojo_base.mojom.TimeDelta task_time; -}; - -// Metrics about the count of resources that were lazy loaded in the frame. -struct DeferredResourceCounts { - // The count of frames that were deferred due to lazy load. - uint64 deferred_frames = 0; - // The count of frames that were loaded after being deferred due to lazy load. - uint64 frames_loaded_after_deferral = 0; - - // The count of images that were deferred due to lazy load. - uint64 deferred_images = 0; - // The count of images that were loaded after being deferred due to lazy load. - uint64 images_loaded_after_deferral = 0; -}; - -// Sent from renderer to browser process when the PageLoadTiming for the -// associated frame changed. -interface PageLoadMetrics { - UpdateTiming(PageLoadTiming page_load_timing, - PageLoadMetadata page_load_metadata, - PageLoadFeatures new_features, - array<ResourceDataUpdate> resources, - FrameRenderDataUpdate render_data, - CpuTiming cpu_load_timing, - DeferredResourceCounts new_deferred_resource_data); -}; diff --git a/chromium/chrome/common/performance_manager/mojom/BUILD.gn b/chromium/chrome/common/performance_manager/mojom/BUILD.gn new file mode 100644 index 00000000000..92d98c1df32 --- /dev/null +++ b/chromium/chrome/common/performance_manager/mojom/BUILD.gn @@ -0,0 +1,7 @@ +import("//mojo/public/tools/bindings/mojom.gni") + +mojom("mojom") { + sources = [ + "tcmalloc.mojom", + ] +} diff --git a/chromium/chrome/common/performance_manager/mojom/tcmalloc.mojom b/chromium/chrome/common/performance_manager/mojom/tcmalloc.mojom new file mode 100644 index 00000000000..771ba138f3e --- /dev/null +++ b/chromium/chrome/common/performance_manager/mojom/tcmalloc.mojom @@ -0,0 +1,15 @@ +// Copyright 2019 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. + +module tcmalloc.mojom; + +// Interface used for changing tcmallocs tunables for a subprocess over +// mojo IPC. This interface is implemented in the renderer processes and +// is invoked by the browser process. +interface TcmallocTunables { + + // Changes the current max size of an individual processes' thread cache. + SetMaxTotalThreadCacheBytes(uint32 size_bytes); +}; + diff --git a/chromium/chrome/common/safe_browsing/BUILD.gn b/chromium/chrome/common/safe_browsing/BUILD.gn index 8caeff8950d..0d620344805 100644 --- a/chromium/chrome/common/safe_browsing/BUILD.gn +++ b/chromium/chrome/common/safe_browsing/BUILD.gn @@ -3,6 +3,7 @@ # found in the LICENSE file. import("//chrome/common/features.gni") +import("//components/safe_browsing/buildflags.gni") import("//third_party/protobuf/proto_library.gni") proto_library("proto") { diff --git a/chromium/chrome/common/search.typemap b/chromium/chrome/common/search.typemap index 7e8030e3486..0f7ae511106 100644 --- a/chromium/chrome/common/search.typemap +++ b/chromium/chrome/common/search.typemap @@ -9,7 +9,7 @@ public_headers = [ "//components/ntp_tiles/ntp_tile_impression.h", "//components/omnibox/common/omnibox_focus_state.h", ] -traits_headers = [ "//chrome/common/instant_struct_traits.h" ] +traits_headers = [ "//chrome/common/instant_mojom_traits.h" ] deps = [ "//chrome/common", "//ipc", diff --git a/chromium/chrome/common/search/BUILD.gn b/chromium/chrome/common/search/BUILD.gn index 3175d5b546b..70b75df2156 100644 --- a/chromium/chrome/common/search/BUILD.gn +++ b/chromium/chrome/common/search/BUILD.gn @@ -12,6 +12,7 @@ executable("generate_colors_info") { ] deps = [ "//base", + "//chrome:strings", "//chrome/common/themes:autogenerated_theme_util", "//skia", ] diff --git a/chromium/chrome/common/url_constants.cc b/chromium/chrome/common/url_constants.cc index 27ccc824998..3b3a9672b38 100644 --- a/chromium/chrome/common/url_constants.cc +++ b/chromium/chrome/common/url_constants.cc @@ -4,6 +4,8 @@ #include "chrome/common/url_constants.h" +#include "build/branding_buildflags.h" + namespace chrome { const char kAccessibilityLabelsLearnMoreURL[] = @@ -16,11 +18,7 @@ const char kAdvancedProtectionDownloadLearnMoreURL[] = "https://support.google.com/accounts/?p=ap_faq"; const char kBluetoothAdapterOffHelpURL[] = -#if defined(OS_CHROMEOS) - "chrome://settings/?search=bluetooth"; -#else "https://support.google.com/chrome?p=bluetooth"; -#endif const char kCastCloudServicesHelpURL[] = "https://support.google.com/chromecast/?p=casting_cloud_services"; @@ -43,22 +41,22 @@ const char kChromeReleaseNotesURL[] = const char kChromeHelpViaKeyboardURL[] = #if defined(OS_CHROMEOS) -#if defined(GOOGLE_CHROME_BUILD) +#if BUILDFLAG(GOOGLE_CHROME_BRANDING) "chrome-extension://honijodknafkokifofgiaalefdiedpko/main.html"; #else "https://support.google.com/chromebook/?p=help&ctx=keyboard"; -#endif // defined(GOOGLE_CHROME_BUILD) +#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) #else "https://support.google.com/chrome/?p=help&ctx=keyboard"; #endif // defined(OS_CHROMEOS) const char kChromeHelpViaMenuURL[] = #if defined(OS_CHROMEOS) -#if defined(GOOGLE_CHROME_BUILD) +#if BUILDFLAG(GOOGLE_CHROME_BRANDING) "chrome-extension://honijodknafkokifofgiaalefdiedpko/main.html"; #else "https://support.google.com/chromebook/?p=help&ctx=menu"; -#endif // defined(GOOGLE_CHROME_BUILD) +#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) #else "https://support.google.com/chrome/?p=help&ctx=menu"; #endif // defined(OS_CHROMEOS) @@ -67,11 +65,11 @@ const char kChromeHelpViaWebUIURL[] = "https://support.google.com/chrome/?p=help&ctx=settings"; #if defined(OS_CHROMEOS) const char kChromeOsHelpViaWebUIURL[] = -#if defined(GOOGLE_CHROME_BUILD) +#if BUILDFLAG(GOOGLE_CHROME_BRANDING) "chrome-extension://honijodknafkokifofgiaalefdiedpko/main.html"; #else "https://support.google.com/chromebook/?p=help&ctx=settings"; -#endif // defined(GOOGLE_CHROME_BUILD) +#endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) #endif // defined(OS_CHROMEOS) const char kChromeNativeScheme[] = "chrome-native"; @@ -158,6 +156,17 @@ const char kGoogleAccountChooserURL[] = const char kGooglePasswordManagerURL[] = "https://passwords.google.com"; +const char kPasswordCheckupURL[] = +#if defined(OS_ANDROID) + "https://passwords.google.com/checkup/" + "start?utm_source=chrome&utm_medium=android&utm_campaign=leak_dialog&crch=" + "true"; +#else + "https://passwords.google.com/checkup/" + "start?utm_source=chrome&utm_medium=desktop&utm_campaign=leak_dialog&crch=" + "true"; +#endif + const char kLearnMoreReportingURL[] = "https://support.google.com/chrome/?p=ui_usagestat"; @@ -330,6 +339,9 @@ const char kLearnMoreEnterpriseURL[] = const char kLinuxAppsLearnMoreURL[] = "https://support.google.com/chromebook?p=chromebook_linuxapps"; +const char kLinuxExportImportHelpURL[] = + "https://support.google.com/chromebook?p=linux_backup_restore"; + const char kLinuxCreditsPath[] = "/opt/google/chrome/resources/linux_credits.html"; diff --git a/chromium/chrome/common/url_constants.h b/chromium/chrome/common/url_constants.h index fa4d8bc903c..51445591a4a 100644 --- a/chromium/chrome/common/url_constants.h +++ b/chromium/chrome/common/url_constants.h @@ -150,6 +150,9 @@ extern const char kGoogleAccountChooserURL[]; // URL of the Google Password Manager. extern const char kGooglePasswordManagerURL[]; +// URL for Password Checkup. +extern const char kPasswordCheckupURL[]; + // The URL for the "Learn more" page for the usage/crash reporting option in the // first run dialog. extern const char kLearnMoreReportingURL[]; @@ -282,6 +285,9 @@ extern const char kLearnMoreEnterpriseURL[]; // The URL for the Learn More page about Linux for Chromebooks. extern const char kLinuxAppsLearnMoreURL[]; +// The URL for additional help that is given when Linux export/import fails. +extern const char kLinuxExportImportHelpURL[]; + // Credits for Linux for Chromebooks. extern const char kLinuxCreditsPath[]; diff --git a/chromium/chrome/common/webui_url_constants.cc b/chromium/chrome/common/webui_url_constants.cc index 9aafec47750..8594a6ac355 100644 --- a/chromium/chrome/common/webui_url_constants.cc +++ b/chromium/chrome/common/webui_url_constants.cc @@ -57,6 +57,8 @@ const char kChromeUIDevToolsURL[] = const char kChromeUIDeviceLogHost[] = "device-log"; const char kChromeUIDevicesHost[] = "devices"; const char kChromeUIDevicesURL[] = "chrome://devices/"; +const char kChromeUIDevUiLoaderHost[] = "dev-ui-loader"; +const char kChromeUIDevUiLoaderURL[] = "chrome://dev-ui-loader/"; const char kChromeUIDomainReliabilityInternalsHost[] = "domain-reliability-internals"; const char kChromeUIDownloadInternalsHost[] = "download-internals"; @@ -160,11 +162,13 @@ const char kChromeUIThumbnailListHost[] = "thumbnails"; const char kChromeUIThumbnailURL[] = "chrome://thumb/"; const char kChromeUITranslateInternalsHost[] = "translate-internals"; const char kChromeUIUkmHost[] = "ukm"; -const char kChromeUIUberHost[] = "chrome"; const char kChromeUIUsbInternalsHost[] = "usb-internals"; const char kChromeUIUserActionsHost[] = "user-actions"; const char kChromeUIVersionHost[] = "version"; const char kChromeUIVersionURL[] = "chrome://version/"; +const char kChromeUIWebFooterExperimentHost[] = "web-footer-experiment"; +const char kChromeUIWebFooterExperimentURL[] = + "chrome://web-footer-experiment/"; const char kChromeUIWelcomeHost[] = "welcome"; const char kChromeUIWelcomeURL[] = "chrome://welcome/"; @@ -303,11 +307,6 @@ bool IsSystemWebUIHost(base::StringPiece host) { } #endif // defined(OS_CHROMEOS) -#if defined(OS_WIN) -const char kChromeUIMetroFlowHost[] = "make-metro"; -const char kChromeUIMetroFlowURL[] = "chrome://make-metro/"; -#endif - #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) const char kChromeUICastHost[] = "cast"; #endif @@ -341,6 +340,11 @@ const char kChromeUITabModalConfirmDialogHost[] = "tab-modal-confirm-dialog"; const char kChromeUIPrintHost[] = "print"; #endif +#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) +const char kChromeUITabStripHost[] = "tab-strip"; +const char kChromeUITabStripURL[] = "chrome://tab-strip"; +#endif + const char kChromeUIWebRtcLogsHost[] = "webrtc-logs"; // Settings sub pages. @@ -385,21 +389,25 @@ const char kBluetoothSubPage[] = "bluetoothDevices"; const char kChangePictureSubPage[] = "changePicture"; // 'multidevice/features' is a child of the 'multidevice' route const char kConnectedDevicesSubPage[] = "multidevice/features"; +const char kCrostiniSharedPathsSubPage[] = "crostini/sharedPaths"; const char kCrostiniSharedUsbDevicesSubPage[] = "crostini/sharedUsbDevices"; +const char kCrostiniExportImportSubPage[] = "crostini/exportImport"; const char kDateTimeSubPage[] = "dateTime"; const char kDisplaySubPage[] = "display"; +const char kExternalStorageSubPage[] = "storage/externalStoragePreferences"; const char kHelpSubPage[] = "help"; const char kInternetSubPage[] = "internet"; const char kKerberosAccountsSubPage[] = "kerberosAccounts"; const char kKeyboardOverlaySubPage[] = "keyboard-overlay"; const char kLockScreenSubPage[] = "lockScreen"; const char kManageAccessibilitySubPage[] = "manageAccessibility"; +const char kManageAccessibilityTtsSubPage[] = "manageAccessibility/tts"; const char kMultideviceSubPage[] = "multidevice"; const char kNativePrintingSettingsSubPage[] = "cupsPrinters"; const char kNetworkDetailSubPage[] = "networkDetail"; const char kNetworksSubPage[] = "networks"; const char kPluginVmDetailsSubPage[] = "pluginVm/details"; -const char kPluginVmSharedPathSubPage[] = "pluginVm/sharedPath"; +const char kPluginVmSharedPathsSubPage[] = "pluginVm/sharedPaths"; const char kPointerOverlaySubPage[] = "pointer-overlay"; const char kPowerSubPage[] = "power"; const char kResetSubPage[] = "reset"; @@ -407,6 +415,7 @@ const char kSmartLockSettingsSubPage[] = "multidevice/features/smartLock"; const char kSmbSharesSubPage[] = "smbShares"; const char kStorageSubPage[] = "storage"; const char kStylusSubPage[] = "stylus"; +const char kSwitchAccessSubPage[] = "manageAccessibility/switchAccess"; // Tether is a child of the 'networks' route. const char kTetherSettingsSubPage[] = "networks?type=Tether"; const char kVPNSettingsSubPage[] = "networks?type=VPN"; @@ -423,9 +432,11 @@ bool IsOSSettingsSubPage(const std::string& sub_page) { kBluetoothSubPage, kChangePictureSubPage, kConnectedDevicesSubPage, + kCrostiniSharedPathsSubPage, kCrostiniSharedUsbDevicesSubPage, kDateTimeSubPage, kDisplaySubPage, + kExternalStorageSubPage, kHelpSubPage, kInternetSubPage, kKerberosAccountsSubPage, @@ -434,6 +445,7 @@ bool IsOSSettingsSubPage(const std::string& sub_page) { kLanguageOptionsSubPage, kLockScreenSubPage, kManageAccessibilitySubPage, + kManageAccessibilityTtsSubPage, kMultideviceSubPage, kNativePrintingSettingsSubPage, kNetworkDetailSubPage, @@ -446,6 +458,7 @@ bool IsOSSettingsSubPage(const std::string& sub_page) { kSmbSharesSubPage, kStorageSubPage, kStylusSubPage, + kSwitchAccessSubPage, // sync is both an OS and browser sub page, but prefer the OS version kSyncSetupSubPage, kVPNSettingsSubPage, @@ -550,7 +563,6 @@ const char* const kChromeHostURLs[] = { kChromeUIInspectHost, kChromeUISettingsHost, kChromeUISystemInfoHost, - kChromeUIUberHost, #endif #if defined(OS_ANDROID) kChromeUIExploreSitesInternalsHost, @@ -568,6 +580,7 @@ const char* const kChromeHostURLs[] = { kChromeUINetworkHost, kChromeUIOobeHost, kChromeUIOSCreditsHost, + kChromeUIOSSettingsHost, kChromeUIPowerHost, kChromeUIInternetConfigDialogHost, kChromeUIInternetDetailDialogHost, diff --git a/chromium/chrome/common/webui_url_constants.h b/chromium/chrome/common/webui_url_constants.h index 7d60fd45b9b..f550bc6e853 100644 --- a/chromium/chrome/common/webui_url_constants.h +++ b/chromium/chrome/common/webui_url_constants.h @@ -64,6 +64,8 @@ extern const char kChromeUIDevToolsURL[]; extern const char kChromeUIDeviceLogHost[]; extern const char kChromeUIDevicesHost[]; extern const char kChromeUIDevicesURL[]; +extern const char kChromeUIDevUiLoaderHost[]; +extern const char kChromeUIDevUiLoaderURL[]; extern const char kChromeUIDomainReliabilityInternalsHost[]; extern const char kChromeUIDownloadInternalsHost[]; extern const char kChromeUIDownloadsHost[]; @@ -162,11 +164,12 @@ extern const char kChromeUIThumbnailListHost[]; extern const char kChromeUIThumbnailURL[]; extern const char kChromeUITranslateInternalsHost[]; extern const char kChromeUIUkmHost[]; -extern const char kChromeUIUberHost[]; extern const char kChromeUIUsbInternalsHost[]; extern const char kChromeUIUserActionsHost[]; extern const char kChromeUIVersionHost[]; extern const char kChromeUIVersionURL[]; +extern const char kChromeUIWebFooterExperimentHost[]; +extern const char kChromeUIWebFooterExperimentURL[]; extern const char kChromeUIWelcomeHost[]; extern const char kChromeUIWelcomeURL[]; @@ -263,11 +266,6 @@ bool IsSystemWebUIHost(base::StringPiece host); #endif // defined(OS_CHROMEOS) -#if defined(OS_WIN) -extern const char kChromeUIMetroFlowHost[]; -extern const char kChromeUIMetroFlowURL[]; -#endif - #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS) extern const char kChromeUICastHost[]; #endif @@ -302,6 +300,11 @@ extern const char kChromeUITabModalConfirmDialogHost[]; extern const char kChromeUIPrintHost[]; #endif +#if BUILDFLAG(ENABLE_WEBUI_TAB_STRIP) +extern const char kChromeUITabStripHost[]; +extern const char kChromeUITabStripURL[]; +#endif + extern const char kChromeUIWebRtcLogsHost[]; // Settings sub-pages. @@ -342,9 +345,12 @@ extern const char kAssistantSubPage[]; extern const char kBluetoothSubPage[]; extern const char kChangePictureSubPage[]; extern const char kConnectedDevicesSubPage[]; +extern const char kCrostiniSharedPathsSubPage[]; extern const char kCrostiniSharedUsbDevicesSubPage[]; +extern const char kCrostiniExportImportSubPage[]; extern const char kDateTimeSubPage[]; extern const char kDisplaySubPage[]; +extern const char kExternalStorageSubPage[]; extern const char kHelpSubPage[]; extern const char kInternetSubPage[]; extern const char kKerberosAccountsSubPage[]; @@ -356,7 +362,7 @@ extern const char kNativePrintingSettingsSubPage[]; extern const char kNetworkDetailSubPage[]; extern const char kNetworksSubPage[]; extern const char kPluginVmDetailsSubPage[]; -extern const char kPluginVmSharedPathSubPage[]; +extern const char kPluginVmSharedPathsSubPage[]; extern const char kPointerOverlaySubPage[]; extern const char kPowerSubPage[]; extern const char kResetSubPage[]; |