diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/weblayer/browser/android | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/weblayer/browser/android')
7 files changed, 156 insertions, 117 deletions
diff --git a/chromium/weblayer/browser/android/javatests/BUILD.gn b/chromium/weblayer/browser/android/javatests/BUILD.gn index 867ce21663e..d069ae4c405 100644 --- a/chromium/weblayer/browser/android/javatests/BUILD.gn +++ b/chromium/weblayer/browser/android/javatests/BUILD.gn @@ -9,7 +9,6 @@ import("//build/config/android/rules.gni") android_library("weblayer_java_tests") { testonly = true sources = [ - "src/org/chromium/weblayer/test/BottomControlsTest.java", "src/org/chromium/weblayer/test/BrowserFragmentLifecycleTest.java", "src/org/chromium/weblayer/test/CookieManagerTest.java", "src/org/chromium/weblayer/test/CrashReporterTest.java", @@ -17,18 +16,17 @@ android_library("weblayer_java_tests") { "src/org/chromium/weblayer/test/DowngradeTest.java", "src/org/chromium/weblayer/test/DownloadCallbackTest.java", "src/org/chromium/weblayer/test/ErrorPageCallbackTest.java", - "src/org/chromium/weblayer/test/EventUtils.java", "src/org/chromium/weblayer/test/ExecuteScriptTest.java", "src/org/chromium/weblayer/test/ExternalNavigationTest.java", "src/org/chromium/weblayer/test/FindInPageTest.java", "src/org/chromium/weblayer/test/FullscreenCallbackTest.java", "src/org/chromium/weblayer/test/InputTypesTest.java", "src/org/chromium/weblayer/test/NavigationTest.java", - "src/org/chromium/weblayer/test/NewTabCallbackImpl.java", "src/org/chromium/weblayer/test/NewTabCallbackTest.java", "src/org/chromium/weblayer/test/OnTabRemovedTabListCallbackImpl.java", "src/org/chromium/weblayer/test/ProfileTest.java", "src/org/chromium/weblayer/test/RenderingTest.java", + "src/org/chromium/weblayer/test/SiteSettingsTest.java", "src/org/chromium/weblayer/test/SmokeTest.java", "src/org/chromium/weblayer/test/TabCallbackTest.java", "src/org/chromium/weblayer/test/TabListCallbackTest.java", @@ -37,6 +35,7 @@ android_library("weblayer_java_tests") { "src/org/chromium/weblayer/test/TopControlsTest.java", "src/org/chromium/weblayer/test/WebLayerLoadingTest.java", "src/org/chromium/weblayer/test/WebLayerTest.java", + "src/org/chromium/weblayer/test/WebMessageTest.java", "src/org/chromium/weblayer/test/WebViewCompatibilityTest.java", ] deps = [ @@ -49,8 +48,10 @@ android_library("weblayer_java_tests") { "//third_party/android_deps:android_support_v4_java", "//third_party/android_deps:androidx_core_core_java", "//third_party/android_deps:androidx_fragment_fragment_java", + "//third_party/android_deps:espresso_java", "//third_party/android_support_test_runner:rules_java", "//third_party/android_support_test_runner:runner_java", + "//third_party/hamcrest:hamcrest_java", "//third_party/junit:junit", "//weblayer/browser/java:interfaces_java", "//weblayer/public/java", @@ -62,12 +63,17 @@ android_library("weblayer_java_tests") { android_library("weblayer_private_java_tests") { testonly = true sources = [ + "src/org/chromium/weblayer/test/BrowserControlsTest.java", "src/org/chromium/weblayer/test/GeolocationTest.java", + "src/org/chromium/weblayer/test/InfoBarTest.java", "src/org/chromium/weblayer/test/MediaCaptureTest.java", "src/org/chromium/weblayer/test/NetworkChangeNotifierTest.java", + "src/org/chromium/weblayer/test/PopupTest.java", "src/org/chromium/weblayer/test/ResourceLoadingTest.java", + "src/org/chromium/weblayer/test/TranslateTest.java", ] deps = [ + ":weblayer_java_private_test_support", ":weblayer_java_test_support", "//base:base_java", "//base:base_java_test_support", @@ -77,6 +83,7 @@ android_library("weblayer_private_java_tests") { "//third_party/android_deps:androidx_fragment_fragment_java", "//third_party/android_support_test_runner:rules_java", "//third_party/android_support_test_runner:runner_java", + "//third_party/hamcrest:hamcrest_java", "//third_party/junit:junit", "//weblayer/public/java", "//weblayer/public/javatestutil:test_java", @@ -88,11 +95,15 @@ android_library("weblayer_java_test_support") { testonly = true sources = [ "src/org/chromium/weblayer/test/BoundedCountDownLatch.java", + "src/org/chromium/weblayer/test/EventUtils.java", "src/org/chromium/weblayer/test/InstrumentationActivityTestRule.java", "src/org/chromium/weblayer/test/MinWebLayerVersion.java", "src/org/chromium/weblayer/test/MinWebLayerVersionSkipCheck.java", "src/org/chromium/weblayer/test/NavigationWaiter.java", + "src/org/chromium/weblayer/test/NewTabCallbackImpl.java", "src/org/chromium/weblayer/test/ResourceUtil.java", + "src/org/chromium/weblayer/test/SiteSettingsActivityTestRule.java", + "src/org/chromium/weblayer/test/WebLayerActivityTestRule.java", "src/org/chromium/weblayer/test/WebLayerJUnit4ClassRunner.java", ] deps = [ @@ -101,8 +112,28 @@ android_library("weblayer_java_test_support") { "//content/public/test/android:content_java_test_support", "//net/android:net_java_test_support", "//third_party/android_deps:androidx_core_core_java", + "//third_party/android_deps:androidx_fragment_fragment_java", + "//third_party/android_support_test_runner:rules_java", + "//third_party/android_support_test_runner:runner_java", + "//third_party/hamcrest:hamcrest_java", + "//third_party/junit:junit", + "//weblayer/public/java", + "//weblayer/shell/android:weblayer_shell_java", + ] +} + +android_library("weblayer_java_private_test_support") { + testonly = true + sources = [ "src/org/chromium/weblayer/test/BrowserControlsHelper.java" ] + deps = [ + ":weblayer_java_test_support", + "//base:base_java", + "//base:base_java_test_support", + "//content/public/test/android:content_java_test_support", "//third_party/hamcrest:hamcrest_java", + "//third_party/junit:junit", "//weblayer/public/java", + "//weblayer/public/javatestutil:test_java", "//weblayer/shell/android:weblayer_shell_java", ] } @@ -195,11 +226,15 @@ android_test_apk("weblayer_bundle_test_apk") { ] deps = [ ":weblayer_java_test_support", + "//base:base_java", + "//base:base_java_test_support", + "//content/public/test/android:content_java_test_support", "//third_party/android_support_test_runner:rules_java", "//third_party/android_support_test_runner:runner_java", "//third_party/junit:junit", "//weblayer/public/java", "//weblayer/public/javatestutil:test_java", + "//weblayer/shell/android:weblayer_shell_java", ] never_incremental = true } diff --git a/chromium/weblayer/browser/android/javatests/skew/expectations.txt b/chromium/weblayer/browser/android/javatests/skew/expectations.txt index 56665be1d67..365f067e95e 100644 --- a/chromium/weblayer/browser/android/javatests/skew/expectations.txt +++ b/chromium/weblayer/browser/android/javatests/skew/expectations.txt @@ -4,16 +4,13 @@ # Lines tagged with "impl_lte_$VERSION" will be active when testing trunk client # with versions less than or equal to $VERSION of the implementation. # -# tags: [ impl_lte_81 impl_lte_82 impl_lte_83 client_lte_83 ] +# tags: [ impl_lte_83 client_lte_83 client_lte_84 ] # results: [ Skip ] # --------------------------------------------- # Tests against older WebLayer implementations. # --------------------------------------------- -# Strict mode violation was fixed in M83 in https://crrev.com/c/2108603. -[ impl_lte_82 ] org.chromium.weblayer.test.InputTypesTest#testColorInput [ Skip ] - # ExternalNavigationTests are testing intent launching that changed after M83. [ impl_lte_83 ] org.chromium.weblayer.test.ExternalNavigationTest#testExternalIntentInNewTabLaunchedOnLinkClick [ Skip ] [ impl_lte_83 ] org.chromium.weblayer.test.ExternalNavigationTest#testExternalIntentViaOnLoadBlocked [ Skip ] @@ -31,57 +28,9 @@ # Fixed in https://crrev.com/c/2180022, see https://crbug.com/1077243. [ impl_lte_83 ] org.chromium.weblayer.test.FullscreenCallbackTest#testExitFullscreenWhenTabDestroyed [ Skip ] -# https://crbug.com/1079489. -[ impl_lte_83 ] org.chromium.weblayer.test.BottomControlsTest#testBasic [ Skip ] -[ impl_lte_83 ] org.chromium.weblayer.test.BottomControlsTest#testNoTopControl [ Skip ] - # https://crbug.com/1079491. [ impl_lte_83 ] org.chromium.weblayer.test.NavigationTest#testSetUserAgentString [ Skip ] -# DownloadCallback moved from Tab to Profile in M83: https://crrev.com/cc967e92032594c0e54d02e31824f92aff5f30cd -[ impl_lte_82 ] org.chromium.weblayer.test.DownloadCallbackTest#testBasic [ Skip ] -[ impl_lte_82 ] org.chromium.weblayer.test.DownloadCallbackTest#testInterceptDownloadByContentDisposition [ Skip ] -[ impl_lte_82 ] org.chromium.weblayer.test.DownloadCallbackTest#testInterceptDownloadByLinkAttribute [ Skip ] - -# ExternalNavigationTest intent launching changed from using ApplicationContext -# to Activity after M81. -[ impl_lte_81 ] org.chromium.weblayer.test.ExternalNavigationTest#testExternalIntentAfterRedirectLaunched [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.ExternalNavigationTest#testExternalIntentInSameTabLaunchedOnLinkClick [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.ExternalNavigationTest#testExternalIntentWithFallbackUrlAfterRedirectLaunched [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.ExternalNavigationTest#testNonHandledExternalIntentWithFallbackUrlAfterRedirectGoesToFallbackUrl [ Skip ] - -# Many M81 tests are broken, see https://crbug.com/1081102. -[ impl_lte_81 ] org.chromium.weblayer.test.BrowserFragmentLifecycleTest#restoreAfterRecreate [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.BrowserFragmentLifecycleTest#restoreTabGuidAfterRecreate [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.BrowserFragmentLifecycleTest#restoresTabGuid [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testCookieChanged [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testCookieChangedRemoveCallback [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testCookieChangedRemoveCallbackAfterProfileDestroyed [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testGetCookie [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testSetCookie [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testSetCookieInvalid [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testSetCookieNotSet [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CookieManagerTest#testSetCookieNullCallback [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.CrashReporterTest#testCrashReporterLoading [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.DowngradeTest#testDowngradeDeletesData [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.InputTypesTest#testColorInput [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.NavigationTest#testRepostConfirmation [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.NavigationTest#testSetRequestHeaderInRedirect [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.NavigationTest#testSetRequestHeaderInStart [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.NavigationTest#testSetRequestHeaderThrowsExceptionInCompleted [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.NavigationTest#testSetRequestHeaderThrowsExceptionWithInvalidValue [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.NavigationTest#testStopFromOnNavigationStarted [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.ProfileTest#testDestroyAndDeleteDataFromDisk [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.ProfileTest#testDestroyAndDeleteDataFromDiskIncognito [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.ProfileTest#testEnumerateAllProfileNames [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.ProfileTest#testReuseProfile [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.TabCallbackTest#testDismissTransientUi [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.TabCallbackTest#testOnTitleUpdated [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.TabCallbackTest#testShowContextMenu [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.TabCallbackTest#testShowContextMenuImg [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.TabCallbackTest#testTabModalOverlay [ Skip ] -[ impl_lte_81 ] org.chromium.weblayer.test.TabCallbackTest#testTabModalOverlayOnBackgroundTab [ Skip ] - # ------------------------------------- # Tests against older WebLayer clients. # ------------------------------------- @@ -92,3 +41,6 @@ # Replace was removed in https://crrev.com/c/2150968, see https://crbug.com/1070851. [ client_lte_83 ] org.chromium.weblayer.test.NavigationTest#testReplace [ Skip ] + +# Test was made private, https://crbug.com/1087451. +[ client_lte_84 ] org.chromium.weblayer.test.TopControlsTest#testBasic [ Skip ] diff --git a/chromium/weblayer/browser/android/metrics/DEPS b/chromium/weblayer/browser/android/metrics/DEPS index d9ef433896d..44a37a03920 100644 --- a/chromium/weblayer/browser/android/metrics/DEPS +++ b/chromium/weblayer/browser/android/metrics/DEPS @@ -1,3 +1,4 @@ include_rules = [ "+components/metrics", + "+google_apis/google_api_keys.h", ] diff --git a/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_accessor.h b/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_accessor.h deleted file mode 100644 index 173e5d51d13..00000000000 --- a/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_accessor.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2020 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. - -#ifndef WEBLAYER_BROWSER_ANDROID_METRICS_WEBLAYER_METRICS_SERVICE_ACCESSOR_H_ -#define WEBLAYER_BROWSER_ANDROID_METRICS_WEBLAYER_METRICS_SERVICE_ACCESSOR_H_ - -#include <stdint.h> -#include <vector> - -#include "components/metrics/metrics_service_accessor.h" - -namespace weblayer { - -// This class limits and documents access to metrics service helper methods. -// Since these methods are private, each user has to be explicitly declared -// as a 'friend' below. -class WebLayerMetricsServiceAccessor : public metrics::MetricsServiceAccessor { - private: - // For RegisterSyntheticMultiGroupFieldTrial. - friend class WebLayerMetricsServiceClient; - - DISALLOW_IMPLICIT_CONSTRUCTORS(WebLayerMetricsServiceAccessor); -}; - -} // namespace weblayer - -#endif // WEBLAYER_BROWSER_ANDROID_METRICS_WEBLAYER_METRICS_SERVICE_ACCESSOR_H_
\ No newline at end of file diff --git a/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc b/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc index 4c879a069be..569fe1d44e2 100644 --- a/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc +++ b/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.cc @@ -8,14 +8,18 @@ #include <cstdint> #include <memory> +#include "base/base64.h" #include "base/no_destructor.h" -#include "base/strings/string_number_conversions.h" +#include "components/metrics/metrics_provider.h" #include "components/metrics/metrics_service.h" -#include "components/variations/hashing.h" -#include "components/variations/variations_associated_data.h" +#include "components/page_load_metrics/browser/metrics_web_contents_observer.h" #include "components/version_info/android/channel_getter.h" -#include "weblayer/browser/android/metrics/weblayer_metrics_service_accessor.h" +#include "content/public/browser/browser_context.h" +#include "google_apis/google_api_keys.h" +#include "weblayer/browser/browser_context_impl.h" #include "weblayer/browser/java/jni/MetricsServiceClient_jni.h" +#include "weblayer/browser/system_network_context_manager.h" +#include "weblayer/browser/tab_impl.h" namespace weblayer { @@ -40,6 +44,28 @@ const int kBetaDevCanarySampledInRatePerMille = 990; // consulting with the privacy team. const int kPackageNameLimitRatePerMille = 100; +// MetricsProvider that interfaces with page_load_metrics. +class PageLoadMetricsProvider : public metrics::MetricsProvider { + public: + PageLoadMetricsProvider() = default; + ~PageLoadMetricsProvider() override = default; + + // metrics:MetricsProvider implementation: + void OnAppEnterBackground() override { + auto tabs = TabImpl::GetAllTabImpl(); + for (auto* tab : tabs) { + page_load_metrics::MetricsWebContentsObserver* observer = + page_load_metrics::MetricsWebContentsObserver::FromWebContents( + tab->web_contents()); + if (observer) + observer->FlushMetricsOnAppEnterBackground(); + } + } + + private: + DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsProvider); +}; + } // namespace // static @@ -49,47 +75,55 @@ WebLayerMetricsServiceClient* WebLayerMetricsServiceClient::GetInstance() { return client.get(); } -WebLayerMetricsServiceClient::WebLayerMetricsServiceClient() = default; -WebLayerMetricsServiceClient::~WebLayerMetricsServiceClient() = default; +WebLayerMetricsServiceClient::WebLayerMetricsServiceClient() { + ProfileImpl::AddProfileObserver(this); +} + +WebLayerMetricsServiceClient::~WebLayerMetricsServiceClient() { + ProfileImpl::RemoveProfileObserver(this); +} -void WebLayerMetricsServiceClient::RegisterSyntheticMultiGroupFieldTrial( - base::StringPiece trial_name, +void WebLayerMetricsServiceClient::RegisterExternalExperiments( const std::vector<int>& experiment_ids) { if (!GetMetricsService()) { if (!IsConsentDetermined()) { post_start_tasks_.push_back(base::BindOnce( - &WebLayerMetricsServiceClient::RegisterSyntheticMultiGroupFieldTrial, - base::Unretained(this), trial_name, experiment_ids)); + &WebLayerMetricsServiceClient::RegisterExternalExperiments, + base::Unretained(this), experiment_ids)); } return; } - std::vector<uint32_t> group_name_hashes; - group_name_hashes.reserve(experiment_ids.size()); - - variations::ActiveGroupId active_group; - active_group.name = variations::HashName(trial_name); - for (int experiment_id : experiment_ids) { - active_group.group = - variations::HashName(base::NumberToString(experiment_id)); - - // Since external experiments are not based on Chrome's low entropy source, - // they are only sent to Google web properties for signed in users to make - // sure that this couldn't be used to identify a user that's not signed in. - variations::AssociateGoogleVariationIDForceHashes( - variations::GOOGLE_WEB_PROPERTIES_SIGNED_IN, active_group, - static_cast<variations::VariationID>(experiment_id)); - group_name_hashes.push_back(active_group.group); - } - - WebLayerMetricsServiceAccessor::RegisterSyntheticMultiGroupFieldTrial( - GetMetricsService(), trial_name, group_name_hashes); + GetMetricsService()->synthetic_trial_registry()->RegisterExternalExperiments( + "WebLayerExperiments", experiment_ids, + variations::SyntheticTrialRegistry::kOverrideExistingIds); } int32_t WebLayerMetricsServiceClient::GetProduct() { return metrics::ChromeUserMetricsExtension::ANDROID_WEBLAYER; } +bool WebLayerMetricsServiceClient::IsExternalExperimentAllowlistEnabled() { + // RegisterExternalExperiments() is actually used to register experiment ids + // coming from the app embedding WebLayer itself, rather than externally. So + // the allowlist shouldn't be applied. + return false; +} + +bool WebLayerMetricsServiceClient::IsUkmAllowedForAllProfiles() { + for (auto* profile : ProfileImpl::GetAllProfiles()) { + if (!profile->GetBooleanSetting(SettingType::UKM_ENABLED)) + return false; + } + return true; +} + +std::string WebLayerMetricsServiceClient::GetUploadSigningKey() { + std::string decoded_key; + base::Base64Decode(google_apis::GetMetricsKey(), &decoded_key); + return decoded_key; +} + int WebLayerMetricsServiceClient::GetSampleRatePerMille() { version_info::Channel channel = version_info::android::GetChannel(); if (channel == version_info::Channel::STABLE || @@ -114,6 +148,38 @@ int WebLayerMetricsServiceClient::GetPackageNameLimitRatePerMille() { return kPackageNameLimitRatePerMille; } +void WebLayerMetricsServiceClient::RegisterAdditionalMetricsProviders( + metrics::MetricsService* service) { + service->RegisterMetricsProvider(std::make_unique<PageLoadMetricsProvider>()); +} + +bool WebLayerMetricsServiceClient::EnablePersistentHistograms() { + return true; +} + +bool WebLayerMetricsServiceClient::IsOffTheRecordSessionActive() { + for (auto* profile : ProfileImpl::GetAllProfiles()) { + if (profile->GetBrowserContext()->IsOffTheRecord()) + return true; + } + + return false; +} + +scoped_refptr<network::SharedURLLoaderFactory> +WebLayerMetricsServiceClient::GetURLLoaderFactory() { + return SystemNetworkContextManager::GetInstance() + ->GetSharedURLLoaderFactory(); +} + +void WebLayerMetricsServiceClient::ProfileCreated(ProfileImpl* profile) { + UpdateUkmService(); +} + +void WebLayerMetricsServiceClient::ProfileDestroyed(ProfileImpl* profile) { + UpdateUkmService(); +} + // static void JNI_MetricsServiceClient_SetHaveMetricsConsent(JNIEnv* env, jboolean user_consent, diff --git a/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.h b/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.h index cc07ae5a02c..a25c0516ceb 100644 --- a/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.h +++ b/chromium/weblayer/browser/android/metrics/weblayer_metrics_service_client.h @@ -18,11 +18,13 @@ #include "components/metrics/metrics_service_client.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" +#include "weblayer/browser/profile_impl.h" namespace weblayer { class WebLayerMetricsServiceClient - : public ::metrics::AndroidMetricsServiceClient { + : public ::metrics::AndroidMetricsServiceClient, + public ProfileImpl::ProfileObserver { friend class base::NoDestructor<WebLayerMetricsServiceClient>; public: @@ -31,20 +33,30 @@ class WebLayerMetricsServiceClient WebLayerMetricsServiceClient(); ~WebLayerMetricsServiceClient() override; - void RegisterSyntheticMultiGroupFieldTrial( - base::StringPiece trial_name, - const std::vector<int>& experiment_ids); + void RegisterExternalExperiments(const std::vector<int>& experiment_ids); // metrics::MetricsServiceClient int32_t GetProduct() override; + bool IsExternalExperimentAllowlistEnabled() override; + bool IsUkmAllowedForAllProfiles() override; + std::string GetUploadSigningKey() override; // metrics::AndroidMetricsServiceClient: int GetSampleRatePerMille() override; void OnMetricsStart() override; void OnMetricsNotStarted() override; int GetPackageNameLimitRatePerMille() override; + void RegisterAdditionalMetricsProviders( + metrics::MetricsService* service) override; + bool EnablePersistentHistograms() override; + bool IsOffTheRecordSessionActive() override; + scoped_refptr<network::SharedURLLoaderFactory> GetURLLoaderFactory() override; private: + // ProfileImpl::ProfileObserver: + void ProfileCreated(ProfileImpl* profile) override; + void ProfileDestroyed(ProfileImpl* profile) override; + std::vector<base::OnceClosure> post_start_tasks_; DISALLOW_COPY_AND_ASSIGN(WebLayerMetricsServiceClient); diff --git a/chromium/weblayer/browser/android/resource_mapper.cc b/chromium/weblayer/browser/android/resource_mapper.cc index 24862f4b20a..ae5bcdf81d4 100644 --- a/chromium/weblayer/browser/android/resource_mapper.cc +++ b/chromium/weblayer/browser/android/resource_mapper.cc @@ -38,6 +38,7 @@ void ConstructMap() { (*GetIdMap())[c_id] = resource_id_list[next_id++]; #define DECLARE_RESOURCE_ID(c_id, java_id) \ (*GetIdMap())[c_id] = resource_id_list[next_id++]; +#include "components/resources/android/blocked_content_resource_id.h" #include "components/resources/android/page_info_resource_id.h" #include "components/resources/android/permissions_resource_id.h" #undef LINK_RESOURCE_ID |