Loading tools/under-control/src/RELEASE +1 −1 Original line number Diff line number Diff line 132.0.6834.163 133.0.6943.39 tools/under-control/src/android_webview/browser/aw_content_browser_client.cc +5 −28 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ #include "android_webview/browser/aw_contents_io_thread_client.h" #include "android_webview/browser/aw_cookie_access_policy.h" #include "android_webview/browser/aw_devtools_manager_delegate.h" #include "android_webview/browser/aw_enterprise_helper.h" #include "android_webview/browser/aw_feature_list_creator.h" #include "android_webview/browser/aw_http_auth_handler.h" #include "android_webview/browser/aw_settings.h" Loading Loading @@ -112,7 +111,6 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" #include "net/android/network_library.h" #include "net/cookies/site_for_cookies.h" #include "net/dns/public/secure_dns_mode.h" #include "net/http/http_util.h" #include "net/net_buildflags.h" #include "net/ssl/ssl_cert_request_info.h" Loading Loading @@ -286,29 +284,6 @@ void AwContentBrowserClient::OnNetworkServiceCreated( network_service->SetUpHttpAuth(network::mojom::HttpAuthStaticParams::New()); network_service->ConfigureHttpAuthPrefs( AwBrowserProcess::GetInstance()->CreateHttpAuthDynamicParams()); if (base::FeatureList::IsEnabled(features::kWebViewAsyncDns)) { enterprise::GetEnterpriseState( base::BindOnce([](enterprise::EnterpriseState state) { switch (state) { case enterprise::EnterpriseState::kUnknown: // If we cannot be certain about the enterprise state, we should // not enable the AsyncDNS resolver, but fall back on the system // resolver. case enterprise::EnterpriseState::kEnterpriseOwned: // On enterprise owned devices, we should use the system resolver // to make sure that we respect any network settings implemented // by the device owner. return; case enterprise::EnterpriseState::kNotOwned: content::GetNetworkService()->ConfigureStubHostResolver( /*insecure_dns_client_enabled=*/true, net::SecureDnsMode::kAutomatic, net::DnsOverHttpsConfig(), /*additional_dns_types_enabled=*/true); break; } })); } } void AwContentBrowserClient::ConfigureNetworkContextParams( Loading Loading @@ -364,7 +339,7 @@ void AwContentBrowserClient::RenderProcessWillLaunch( // per-view access checks, and access is granted by default (see // AwSettings.mAllowContentUrlAccess). content::ChildProcessSecurityPolicy::GetInstance()->GrantRequestScheme( host->GetID(), url::kContentScheme); host->GetDeprecatedID(), url::kContentScheme); } bool AwContentBrowserClient::IsExplicitNavigation( Loading Loading @@ -724,7 +699,8 @@ AwContentBrowserClient::CreateURLLoaderThrottles( /* hash_realtime_service */ nullptr, /* hash_realtime_selection */ hash_real_time_selection, /* async_check_tracker */ async_check_tracker)); /* async_check_tracker */ async_check_tracker, /*referring_app_info=*/std::nullopt)); if (request.destination == network::mojom::RequestDestination::kDocument) { const bool is_load_url = Loading Loading @@ -772,7 +748,7 @@ AwContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( /* hash_realtime_service */ nullptr, /* hash_realtime_selection */ hash_real_time_selection, /* async_check_tracker */ nullptr)); /* async_check_tracker */ nullptr, /*referring_app_info=*/std::nullopt)); return result; } Loading Loading @@ -896,6 +872,7 @@ AwContentBrowserClient::CreateLoginDelegate( const GURL& url, scoped_refptr<net::HttpResponseHeaders> response_headers, bool first_auth_attempt, content::GuestPageHolder* guest, LoginAuthRequiredCallback auth_required_callback) { return std::make_unique<AwHttpAuthHandler>(auth_info, web_contents, first_auth_attempt, Loading tools/under-control/src/android_webview/browser/aw_field_trials.cc +45 −62 Original line number Diff line number Diff line Loading @@ -9,9 +9,6 @@ #include "base/allocator/partition_alloc_features.h" #include "base/base_paths_android.h" #include "base/check.h" #include "base/feature_list.h" #include "base/memory/raw_ref.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/persistent_histogram_allocator.h" #include "base/path_service.h" Loading @@ -32,43 +29,36 @@ #include "ui/android/ui_android_features.h" #include "ui/gl/gl_features.h" namespace { namespace internal { class AwFeatureOverrides { public: explicit AwFeatureOverrides(base::FeatureList& feature_list) AwFeatureOverrides::AwFeatureOverrides(base::FeatureList& feature_list) : feature_list_(feature_list) {} AwFeatureOverrides(const AwFeatureOverrides& other) = delete; AwFeatureOverrides& operator=(const AwFeatureOverrides& other) = delete; ~AwFeatureOverrides() { AwFeatureOverrides::~AwFeatureOverrides() { // TODO(crbug.com/379864779): This doesn't play well with potential server- // side overrides. for (const auto& field_trial_override : field_trial_overrides_) { feature_list_->RegisterFieldTrialOverride( field_trial_override.feature->name, field_trial_override.override_state, field_trial_override.feature->name, field_trial_override.override_state, field_trial_override.field_trial); } feature_list_->RegisterExtraFeatureOverrides(std::move(overrides_)); feature_list_->RegisterExtraFeatureOverrides( std::move(overrides_), /*replace_use_default_overrides=*/true); } // Enable a feature with WebView-specific override. void EnableFeature(const base::Feature& feature) { void AwFeatureOverrides::EnableFeature(const base::Feature& feature) { overrides_.emplace_back( std::cref(feature), base::FeatureList::OverrideState::OVERRIDE_ENABLE_FEATURE); } // Disable a feature with WebView-specific override. void DisableFeature(const base::Feature& feature) { void AwFeatureOverrides::DisableFeature(const base::Feature& feature) { overrides_.emplace_back( std::cref(feature), base::FeatureList::OverrideState::OVERRIDE_DISABLE_FEATURE); } // Enable or disable a feature with a field trial. This can be used for // setting feature parameters. void OverrideFeatureWithFieldTrial( void AwFeatureOverrides::OverrideFeatureWithFieldTrial( const base::Feature& feature, base::FeatureList::OverrideState override_state, base::FieldTrial* field_trial) { Loading @@ -79,19 +69,7 @@ class AwFeatureOverrides { }); } private: struct FieldTrialOverride { raw_ref<const base::Feature> feature; base::FeatureList::OverrideState override_state; raw_ptr<base::FieldTrial> field_trial; }; base::raw_ref<base::FeatureList> feature_list_; std::vector<base::FeatureList::FeatureOverrideInfo> overrides_; std::vector<FieldTrialOverride> field_trial_overrides_; }; } // namespace } // namespace internal void AwFieldTrials::OnVariationsSetupComplete() { // Persistent histograms must be enabled ASAP, but depends on Features. Loading @@ -109,7 +87,7 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { if (!feature_list) { return; } AwFeatureOverrides aw_feature_overrides(*feature_list); internal::AwFeatureOverrides aw_feature_overrides(*feature_list); // Disable third-party storage partitioning on WebView. aw_feature_overrides.DisableFeature( Loading Loading @@ -143,7 +121,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // Disable Shared Storage on WebView. aw_feature_overrides.DisableFeature(blink::features::kSharedStorageAPI); aw_feature_overrides.DisableFeature(blink::features::kSharedStorageAPIM125); // Disable scrollbar-color on WebView. aw_feature_overrides.DisableFeature(blink::features::kScrollbarColor); Loading Loading @@ -247,6 +224,13 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( blink::features::kIncrementLocalSurfaceIdForMainframeSameDocNavigation); // Disabling this feature for WebView, since it can switch focus when scrolled // in cases with multiple views which can trigger HTML focus changes that // aren't intended. See crbug.com/378779896, crbug.com/373672168 for more // details. aw_feature_overrides.DisableFeature( ::features::kFocusRenderWidgetHostViewAndroidOnActionDown); if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kDebugBsa)) { // Feature parameters can only be set via a field trial. const char kTrialName[] = "StudyDebugBsa"; Loading Loading @@ -289,10 +273,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // WebView. aw_feature_overrides.DisableFeature(::features::kDIPS); // TODO(crbug.com/41492947): See crrev.com/c/5744034 for details, but I was // unable to add this feature to fieldtrial_testing_config and pass all tests. aw_feature_overrides.EnableFeature(blink::features::kElementGetInnerHTML); // These features have shown performance improvements in WebView but not some // other platforms. aw_feature_overrides.EnableFeature(features::kEnsureExistingRendererAlive); Loading @@ -309,4 +289,7 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // WebView. aw_feature_overrides.DisableFeature( base::features::kPartitionAllocMemoryTagging); // Disable Topics on WebView. aw_feature_overrides.DisableFeature(blink::features::kBrowsingTopics); } tools/under-control/src/chrome/android/java/AndroidManifest.xml +17 −3 Original line number Diff line number Diff line Loading @@ -948,7 +948,13 @@ by a child template that "extends" this file. android:excludeFromRecents="true" android:windowSoftInputMode="adjustResize" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode" android:hardwareAccelerated="false" /> android:hardwareAccelerated="false"> <intent-filter> <action android:name="android.intent.action.WEB_SEARCH" /> <!-- Permits Chrome to act as a default handler for WEB_SEARCH intents. --> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!-- GcmTaskService for registration for Invalidations. Not actually implemented anymore. --> <service android:name="com.google.ipc.invalidation.ticl.android2.channel.GcmRegistrationTaskService" Loading Loading @@ -1088,9 +1094,10 @@ by a child template that "extends" this file. <!-- Activities for task manager. --> <activity android:name="org.chromium.chrome.browser.task_manager.TaskManagerActivity" android:name="org.chromium.chrome.browser.task_manager.ui.TaskManagerActivity" android:exported="false" android:theme="@style/Theme.Chromium.Activity"> android:theme="@style/Theme.Chromium.Activity" android:launchMode="singleInstance"> </activity> <receiver android:name="org.chromium.chrome.browser.notifications.scheduler.DisplayAgent$Receiver" Loading Loading @@ -1335,6 +1342,13 @@ by a child template that "extends" this file. android:readPermission="android.permission.GLOBAL_SEARCH" /> </provider> <provider android:name="org.chromium.chrome.browser.provider.PageContentProvider" android:authorities="{{ manifest_package }}.PageContentProvider" android:exported="false" android:grantUriPermissions="true"> </provider> {% block base_application_definitions %} {% endblock %} {% block extra_application_definitions_for_test %} Loading tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +31 −53 Original line number Diff line number Diff line Loading @@ -42,9 +42,6 @@ #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/crash_upload_list/crash_upload_list.h" #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" #include "chrome/browser/dips/chrome_dips_delegate.h" #include "chrome/browser/dips/dips_service_impl.h" #include "chrome/browser/dips/dips_utils.h" #include "chrome/browser/domain_reliability/service_factory.h" #include "chrome/browser/downgrade/user_data_downgrade.h" #include "chrome/browser/download/download_prefs.h" Loading Loading @@ -91,9 +88,9 @@ #include "chrome/browser/webdata_services/web_data_service_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/url_constants.h" #include "components/autofill/core/browser/address_data_manager.h" #include "components/autofill/core/browser/payments_data_manager.h" #include "components/autofill/core/browser/personal_data_manager.h" #include "components/autofill/core/browser/data_manager/addresses/address_data_manager.h" #include "components/autofill/core/browser/data_manager/payments/payments_data_manager.h" #include "components/autofill/core/browser/data_manager/personal_data_manager.h" #include "components/autofill/core/browser/strike_databases/strike_database.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" #include "components/autofill/core/common/autofill_features.h" Loading Loading @@ -152,7 +149,6 @@ #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/browsing_data_filter_builder.h" #include "content/public/browser/dips_delegate.h" #include "content/public/browser/host_zoom_map.h" #include "content/public/browser/origin_trials_controller_delegate.h" #include "content/public/browser/prefetch_service_delegate.h" Loading Loading @@ -200,10 +196,13 @@ #include "content/public/browser/storage_partition_config.h" #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(ENABLE_EXTENSIONS) #include "chrome/browser/extensions/activity_log/activity_log.h" #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) #include "extensions/browser/extension_prefs.h" #include "extensions/common/constants.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) #if BUILDFLAG(ENABLE_EXTENSIONS) #include "chrome/browser/extensions/activity_log/activity_log.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(IS_CHROMEOS_ASH) Loading Loading @@ -256,7 +255,7 @@ bool DoesOriginMatchEmbedderMask(uint64_t origin_type_mask, << "|origin_type_mask| can only contain origin types defined in " << "the embedder."; #if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) // Packaged apps and extensions match iff EXTENSION. if ((origin.scheme() == extensions::kExtensionScheme) && (origin_type_mask & constants::ORIGIN_TYPE_EXTENSION)) { Loading @@ -281,8 +280,7 @@ ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate( webapp_registry_(std::make_unique<WebappRegistry>()) #endif , credential_store_(MakeCredentialStore()), dips_delegate_(ChromeDipsDelegate::Create()) { credential_store_(MakeCredentialStore()) { domain_reliability_clearer_ = base::BindRepeating( [](BrowserContext* browser_context, content::BrowsingDataFilterBuilder* filter_builder, Loading Loading @@ -356,7 +354,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( BrowsingDataFilterBuilder* filter_builder, uint64_t origin_type_mask, base::OnceCallback<void(uint64_t)> callback) { DCHECK(((remove_mask & CHECK(((remove_mask & ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~constants::FILTERABLE_DATA_TYPES) == 0) || filter_builder->MatchesAllOriginsAndDomains()); Loading Loading @@ -392,7 +390,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( base::RecordAction( UserMetricsAction("ClearBrowsingData_MaskContainsProtectedWeb")); } #if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (origin_type_mask & constants::ORIGIN_TYPE_EXTENSION) { base::RecordAction( UserMetricsAction("ClearBrowsingData_MaskContainsExtension")); Loading @@ -403,7 +401,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( static_assert( constants::ALL_ORIGIN_TYPES == (content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB | #if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) constants::ORIGIN_TYPE_EXTENSION | #endif content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB), Loading Loading @@ -906,33 +904,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ->RemoveEmbargoAndResetCounts(filter); } // Different types of DIPS events are cleared for DATA_TYPE_HISTORY and // DATA_TYPE_COOKIES. DIPSEventRemovalType dips_mask = DIPSEventRemovalType::kNone; if ((remove_mask & content::BrowsingDataRemover::DATA_TYPE_COOKIES) && !filter_builder->PartitionedCookiesOnly()) { // If there's no delegate, delete everything whenever the user is deleting // cookies. dips_mask |= dips_delegate_ ? DIPSEventRemovalType::kStorage : DIPSEventRemovalType::kAll; } // If there's a delegate, ask it whether to delete DIPS history. if (dips_delegate_ && dips_delegate_->ShouldDeleteInteractionRecords(remove_mask)) { dips_mask |= DIPSEventRemovalType::kHistory; } if (dips_mask != DIPSEventRemovalType::kNone) { if (DIPSServiceImpl* dips_service = DIPSServiceImpl::Get(profile_)) { dips_service->RemoveEvents(delete_begin_, delete_end_, filter_builder->BuildNetworkServiceFilter(), dips_mask); } } ////////////////////////////////////////////////////////////////////////////// // Password manager if (remove_mask & constants::DATA_TYPE_PASSWORDS) { CHECK(nullable_filter.is_null()); base::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords")); auto password_store = ProfilePasswordStoreFactory::GetForProfile( profile_, ServiceAccessType::EXPLICIT_ACCESS); Loading @@ -942,9 +917,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // login token is persisted and can be used after cookie deletion. // TODO:(crbug.com/1167715) - Test that associated compromised credentials // are removed. password_store->RemoveLoginsByURLAndTime( FROM_HERE, filter, delete_begin_, delete_end_, CreateTaskCompletionClosure(TracingDataType::kPasswords)); password_store->RemoveLoginsCreatedBetween( FROM_HERE, delete_begin_, delete_end_, CreateTaskCompletionCallback( TracingDataType::kPasswords, /* data_type_mask= */ constants::DATA_TYPE_PASSWORDS)); } profile_->GetDefaultStoragePartition() Loading Loading @@ -999,6 +976,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } if (remove_mask & constants::DATA_TYPE_ACCOUNT_PASSWORDS) { CHECK(nullable_filter.is_null()); auto account_store = AccountPasswordStoreFactory::GetForProfile( profile_, ServiceAccessType::EXPLICIT_ACCESS); Loading @@ -1015,9 +993,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionCallback(TracingDataType::kAccountPasswordsSynced, constants::DATA_TYPE_ACCOUNT_PASSWORDS); #endif account_store->RemoveLoginsByURLAndTime( FROM_HERE, filter, delete_begin_, delete_end_, CreateTaskCompletionClosure(TracingDataType::kAccountPasswords), account_store->RemoveLoginsCreatedBetween( FROM_HERE, delete_begin_, delete_end_, CreateTaskCompletionCallback(TracingDataType::kAccountPasswords, constants::DATA_TYPE_ACCOUNT_PASSWORDS), std::move(sync_completion)); } Loading Loading @@ -1117,7 +1096,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (render_process_host->GetBrowserContext() == profile_ && render_process_host->IsInitializedAndNotDead()) { web_cache::WebCacheManager::GetInstance()->ClearCacheForProcess( render_process_host->GetID()); render_process_host->GetDeprecatedID()); } } } Loading Loading @@ -1588,8 +1567,7 @@ void ChromeBrowsingDataRemoverDelegate::OnTaskComplete( should_clear_sync_account_settings_ = false; signin::IdentityManager* identity_manager = IdentityManagerFactory::GetForProfile(profile_); base::flat_set<std::string> gaia_ids = signin::GetAllGaiaIdsForKeyedPreferences( base::flat_set<GaiaId> gaia_ids = signin::GetAllGaiaIdsForKeyedPreferences( identity_manager, signin::AccountsInCookieJarInfo() /* empty_cookies */); if (syncer::SyncService* sync_service = Loading Loading
tools/under-control/src/RELEASE +1 −1 Original line number Diff line number Diff line 132.0.6834.163 133.0.6943.39
tools/under-control/src/android_webview/browser/aw_content_browser_client.cc +5 −28 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ #include "android_webview/browser/aw_contents_io_thread_client.h" #include "android_webview/browser/aw_cookie_access_policy.h" #include "android_webview/browser/aw_devtools_manager_delegate.h" #include "android_webview/browser/aw_enterprise_helper.h" #include "android_webview/browser/aw_feature_list_creator.h" #include "android_webview/browser/aw_http_auth_handler.h" #include "android_webview/browser/aw_settings.h" Loading Loading @@ -112,7 +111,6 @@ #include "mojo/public/cpp/bindings/pending_receiver.h" #include "net/android/network_library.h" #include "net/cookies/site_for_cookies.h" #include "net/dns/public/secure_dns_mode.h" #include "net/http/http_util.h" #include "net/net_buildflags.h" #include "net/ssl/ssl_cert_request_info.h" Loading Loading @@ -286,29 +284,6 @@ void AwContentBrowserClient::OnNetworkServiceCreated( network_service->SetUpHttpAuth(network::mojom::HttpAuthStaticParams::New()); network_service->ConfigureHttpAuthPrefs( AwBrowserProcess::GetInstance()->CreateHttpAuthDynamicParams()); if (base::FeatureList::IsEnabled(features::kWebViewAsyncDns)) { enterprise::GetEnterpriseState( base::BindOnce([](enterprise::EnterpriseState state) { switch (state) { case enterprise::EnterpriseState::kUnknown: // If we cannot be certain about the enterprise state, we should // not enable the AsyncDNS resolver, but fall back on the system // resolver. case enterprise::EnterpriseState::kEnterpriseOwned: // On enterprise owned devices, we should use the system resolver // to make sure that we respect any network settings implemented // by the device owner. return; case enterprise::EnterpriseState::kNotOwned: content::GetNetworkService()->ConfigureStubHostResolver( /*insecure_dns_client_enabled=*/true, net::SecureDnsMode::kAutomatic, net::DnsOverHttpsConfig(), /*additional_dns_types_enabled=*/true); break; } })); } } void AwContentBrowserClient::ConfigureNetworkContextParams( Loading Loading @@ -364,7 +339,7 @@ void AwContentBrowserClient::RenderProcessWillLaunch( // per-view access checks, and access is granted by default (see // AwSettings.mAllowContentUrlAccess). content::ChildProcessSecurityPolicy::GetInstance()->GrantRequestScheme( host->GetID(), url::kContentScheme); host->GetDeprecatedID(), url::kContentScheme); } bool AwContentBrowserClient::IsExplicitNavigation( Loading Loading @@ -724,7 +699,8 @@ AwContentBrowserClient::CreateURLLoaderThrottles( /* hash_realtime_service */ nullptr, /* hash_realtime_selection */ hash_real_time_selection, /* async_check_tracker */ async_check_tracker)); /* async_check_tracker */ async_check_tracker, /*referring_app_info=*/std::nullopt)); if (request.destination == network::mojom::RequestDestination::kDocument) { const bool is_load_url = Loading Loading @@ -772,7 +748,7 @@ AwContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( /* hash_realtime_service */ nullptr, /* hash_realtime_selection */ hash_real_time_selection, /* async_check_tracker */ nullptr)); /* async_check_tracker */ nullptr, /*referring_app_info=*/std::nullopt)); return result; } Loading Loading @@ -896,6 +872,7 @@ AwContentBrowserClient::CreateLoginDelegate( const GURL& url, scoped_refptr<net::HttpResponseHeaders> response_headers, bool first_auth_attempt, content::GuestPageHolder* guest, LoginAuthRequiredCallback auth_required_callback) { return std::make_unique<AwHttpAuthHandler>(auth_info, web_contents, first_auth_attempt, Loading
tools/under-control/src/android_webview/browser/aw_field_trials.cc +45 −62 Original line number Diff line number Diff line Loading @@ -9,9 +9,6 @@ #include "base/allocator/partition_alloc_features.h" #include "base/base_paths_android.h" #include "base/check.h" #include "base/feature_list.h" #include "base/memory/raw_ref.h" #include "base/metrics/field_trial.h" #include "base/metrics/field_trial_params.h" #include "base/metrics/persistent_histogram_allocator.h" #include "base/path_service.h" Loading @@ -32,43 +29,36 @@ #include "ui/android/ui_android_features.h" #include "ui/gl/gl_features.h" namespace { namespace internal { class AwFeatureOverrides { public: explicit AwFeatureOverrides(base::FeatureList& feature_list) AwFeatureOverrides::AwFeatureOverrides(base::FeatureList& feature_list) : feature_list_(feature_list) {} AwFeatureOverrides(const AwFeatureOverrides& other) = delete; AwFeatureOverrides& operator=(const AwFeatureOverrides& other) = delete; ~AwFeatureOverrides() { AwFeatureOverrides::~AwFeatureOverrides() { // TODO(crbug.com/379864779): This doesn't play well with potential server- // side overrides. for (const auto& field_trial_override : field_trial_overrides_) { feature_list_->RegisterFieldTrialOverride( field_trial_override.feature->name, field_trial_override.override_state, field_trial_override.feature->name, field_trial_override.override_state, field_trial_override.field_trial); } feature_list_->RegisterExtraFeatureOverrides(std::move(overrides_)); feature_list_->RegisterExtraFeatureOverrides( std::move(overrides_), /*replace_use_default_overrides=*/true); } // Enable a feature with WebView-specific override. void EnableFeature(const base::Feature& feature) { void AwFeatureOverrides::EnableFeature(const base::Feature& feature) { overrides_.emplace_back( std::cref(feature), base::FeatureList::OverrideState::OVERRIDE_ENABLE_FEATURE); } // Disable a feature with WebView-specific override. void DisableFeature(const base::Feature& feature) { void AwFeatureOverrides::DisableFeature(const base::Feature& feature) { overrides_.emplace_back( std::cref(feature), base::FeatureList::OverrideState::OVERRIDE_DISABLE_FEATURE); } // Enable or disable a feature with a field trial. This can be used for // setting feature parameters. void OverrideFeatureWithFieldTrial( void AwFeatureOverrides::OverrideFeatureWithFieldTrial( const base::Feature& feature, base::FeatureList::OverrideState override_state, base::FieldTrial* field_trial) { Loading @@ -79,19 +69,7 @@ class AwFeatureOverrides { }); } private: struct FieldTrialOverride { raw_ref<const base::Feature> feature; base::FeatureList::OverrideState override_state; raw_ptr<base::FieldTrial> field_trial; }; base::raw_ref<base::FeatureList> feature_list_; std::vector<base::FeatureList::FeatureOverrideInfo> overrides_; std::vector<FieldTrialOverride> field_trial_overrides_; }; } // namespace } // namespace internal void AwFieldTrials::OnVariationsSetupComplete() { // Persistent histograms must be enabled ASAP, but depends on Features. Loading @@ -109,7 +87,7 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { if (!feature_list) { return; } AwFeatureOverrides aw_feature_overrides(*feature_list); internal::AwFeatureOverrides aw_feature_overrides(*feature_list); // Disable third-party storage partitioning on WebView. aw_feature_overrides.DisableFeature( Loading Loading @@ -143,7 +121,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // Disable Shared Storage on WebView. aw_feature_overrides.DisableFeature(blink::features::kSharedStorageAPI); aw_feature_overrides.DisableFeature(blink::features::kSharedStorageAPIM125); // Disable scrollbar-color on WebView. aw_feature_overrides.DisableFeature(blink::features::kScrollbarColor); Loading Loading @@ -247,6 +224,13 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( blink::features::kIncrementLocalSurfaceIdForMainframeSameDocNavigation); // Disabling this feature for WebView, since it can switch focus when scrolled // in cases with multiple views which can trigger HTML focus changes that // aren't intended. See crbug.com/378779896, crbug.com/373672168 for more // details. aw_feature_overrides.DisableFeature( ::features::kFocusRenderWidgetHostViewAndroidOnActionDown); if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kDebugBsa)) { // Feature parameters can only be set via a field trial. const char kTrialName[] = "StudyDebugBsa"; Loading Loading @@ -289,10 +273,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // WebView. aw_feature_overrides.DisableFeature(::features::kDIPS); // TODO(crbug.com/41492947): See crrev.com/c/5744034 for details, but I was // unable to add this feature to fieldtrial_testing_config and pass all tests. aw_feature_overrides.EnableFeature(blink::features::kElementGetInnerHTML); // These features have shown performance improvements in WebView but not some // other platforms. aw_feature_overrides.EnableFeature(features::kEnsureExistingRendererAlive); Loading @@ -309,4 +289,7 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // WebView. aw_feature_overrides.DisableFeature( base::features::kPartitionAllocMemoryTagging); // Disable Topics on WebView. aw_feature_overrides.DisableFeature(blink::features::kBrowsingTopics); }
tools/under-control/src/chrome/android/java/AndroidManifest.xml +17 −3 Original line number Diff line number Diff line Loading @@ -948,7 +948,13 @@ by a child template that "extends" this file. android:excludeFromRecents="true" android:windowSoftInputMode="adjustResize" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize|uiMode" android:hardwareAccelerated="false" /> android:hardwareAccelerated="false"> <intent-filter> <action android:name="android.intent.action.WEB_SEARCH" /> <!-- Permits Chrome to act as a default handler for WEB_SEARCH intents. --> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!-- GcmTaskService for registration for Invalidations. Not actually implemented anymore. --> <service android:name="com.google.ipc.invalidation.ticl.android2.channel.GcmRegistrationTaskService" Loading Loading @@ -1088,9 +1094,10 @@ by a child template that "extends" this file. <!-- Activities for task manager. --> <activity android:name="org.chromium.chrome.browser.task_manager.TaskManagerActivity" android:name="org.chromium.chrome.browser.task_manager.ui.TaskManagerActivity" android:exported="false" android:theme="@style/Theme.Chromium.Activity"> android:theme="@style/Theme.Chromium.Activity" android:launchMode="singleInstance"> </activity> <receiver android:name="org.chromium.chrome.browser.notifications.scheduler.DisplayAgent$Receiver" Loading Loading @@ -1335,6 +1342,13 @@ by a child template that "extends" this file. android:readPermission="android.permission.GLOBAL_SEARCH" /> </provider> <provider android:name="org.chromium.chrome.browser.provider.PageContentProvider" android:authorities="{{ manifest_package }}.PageContentProvider" android:exported="false" android:grantUriPermissions="true"> </provider> {% block base_application_definitions %} {% endblock %} {% block extra_application_definitions_for_test %} Loading
tools/under-control/src/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +31 −53 Original line number Diff line number Diff line Loading @@ -42,9 +42,6 @@ #include "chrome/browser/content_settings/host_content_settings_map_factory.h" #include "chrome/browser/crash_upload_list/crash_upload_list.h" #include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" #include "chrome/browser/dips/chrome_dips_delegate.h" #include "chrome/browser/dips/dips_service_impl.h" #include "chrome/browser/dips/dips_utils.h" #include "chrome/browser/domain_reliability/service_factory.h" #include "chrome/browser/downgrade/user_data_downgrade.h" #include "chrome/browser/download/download_prefs.h" Loading Loading @@ -91,9 +88,9 @@ #include "chrome/browser/webdata_services/web_data_service_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/url_constants.h" #include "components/autofill/core/browser/address_data_manager.h" #include "components/autofill/core/browser/payments_data_manager.h" #include "components/autofill/core/browser/personal_data_manager.h" #include "components/autofill/core/browser/data_manager/addresses/address_data_manager.h" #include "components/autofill/core/browser/data_manager/payments/payments_data_manager.h" #include "components/autofill/core/browser/data_manager/personal_data_manager.h" #include "components/autofill/core/browser/strike_databases/strike_database.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" #include "components/autofill/core/common/autofill_features.h" Loading Loading @@ -152,7 +149,6 @@ #include "content/public/browser/browser_task_traits.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/browsing_data_filter_builder.h" #include "content/public/browser/dips_delegate.h" #include "content/public/browser/host_zoom_map.h" #include "content/public/browser/origin_trials_controller_delegate.h" #include "content/public/browser/prefetch_service_delegate.h" Loading Loading @@ -200,10 +196,13 @@ #include "content/public/browser/storage_partition_config.h" #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(ENABLE_EXTENSIONS) #include "chrome/browser/extensions/activity_log/activity_log.h" #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) #include "extensions/browser/extension_prefs.h" #include "extensions/common/constants.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) #if BUILDFLAG(ENABLE_EXTENSIONS) #include "chrome/browser/extensions/activity_log/activity_log.h" #endif // BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(IS_CHROMEOS_ASH) Loading Loading @@ -256,7 +255,7 @@ bool DoesOriginMatchEmbedderMask(uint64_t origin_type_mask, << "|origin_type_mask| can only contain origin types defined in " << "the embedder."; #if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) // Packaged apps and extensions match iff EXTENSION. if ((origin.scheme() == extensions::kExtensionScheme) && (origin_type_mask & constants::ORIGIN_TYPE_EXTENSION)) { Loading @@ -281,8 +280,7 @@ ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate( webapp_registry_(std::make_unique<WebappRegistry>()) #endif , credential_store_(MakeCredentialStore()), dips_delegate_(ChromeDipsDelegate::Create()) { credential_store_(MakeCredentialStore()) { domain_reliability_clearer_ = base::BindRepeating( [](BrowserContext* browser_context, content::BrowsingDataFilterBuilder* filter_builder, Loading Loading @@ -356,7 +354,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( BrowsingDataFilterBuilder* filter_builder, uint64_t origin_type_mask, base::OnceCallback<void(uint64_t)> callback) { DCHECK(((remove_mask & CHECK(((remove_mask & ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~constants::FILTERABLE_DATA_TYPES) == 0) || filter_builder->MatchesAllOriginsAndDomains()); Loading Loading @@ -392,7 +390,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( base::RecordAction( UserMetricsAction("ClearBrowsingData_MaskContainsProtectedWeb")); } #if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (origin_type_mask & constants::ORIGIN_TYPE_EXTENSION) { base::RecordAction( UserMetricsAction("ClearBrowsingData_MaskContainsExtension")); Loading @@ -403,7 +401,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( static_assert( constants::ALL_ORIGIN_TYPES == (content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB | #if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) constants::ORIGIN_TYPE_EXTENSION | #endif content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB), Loading Loading @@ -906,33 +904,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( ->RemoveEmbargoAndResetCounts(filter); } // Different types of DIPS events are cleared for DATA_TYPE_HISTORY and // DATA_TYPE_COOKIES. DIPSEventRemovalType dips_mask = DIPSEventRemovalType::kNone; if ((remove_mask & content::BrowsingDataRemover::DATA_TYPE_COOKIES) && !filter_builder->PartitionedCookiesOnly()) { // If there's no delegate, delete everything whenever the user is deleting // cookies. dips_mask |= dips_delegate_ ? DIPSEventRemovalType::kStorage : DIPSEventRemovalType::kAll; } // If there's a delegate, ask it whether to delete DIPS history. if (dips_delegate_ && dips_delegate_->ShouldDeleteInteractionRecords(remove_mask)) { dips_mask |= DIPSEventRemovalType::kHistory; } if (dips_mask != DIPSEventRemovalType::kNone) { if (DIPSServiceImpl* dips_service = DIPSServiceImpl::Get(profile_)) { dips_service->RemoveEvents(delete_begin_, delete_end_, filter_builder->BuildNetworkServiceFilter(), dips_mask); } } ////////////////////////////////////////////////////////////////////////////// // Password manager if (remove_mask & constants::DATA_TYPE_PASSWORDS) { CHECK(nullable_filter.is_null()); base::RecordAction(UserMetricsAction("ClearBrowsingData_Passwords")); auto password_store = ProfilePasswordStoreFactory::GetForProfile( profile_, ServiceAccessType::EXPLICIT_ACCESS); Loading @@ -942,9 +917,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // login token is persisted and can be used after cookie deletion. // TODO:(crbug.com/1167715) - Test that associated compromised credentials // are removed. password_store->RemoveLoginsByURLAndTime( FROM_HERE, filter, delete_begin_, delete_end_, CreateTaskCompletionClosure(TracingDataType::kPasswords)); password_store->RemoveLoginsCreatedBetween( FROM_HERE, delete_begin_, delete_end_, CreateTaskCompletionCallback( TracingDataType::kPasswords, /* data_type_mask= */ constants::DATA_TYPE_PASSWORDS)); } profile_->GetDefaultStoragePartition() Loading Loading @@ -999,6 +976,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } if (remove_mask & constants::DATA_TYPE_ACCOUNT_PASSWORDS) { CHECK(nullable_filter.is_null()); auto account_store = AccountPasswordStoreFactory::GetForProfile( profile_, ServiceAccessType::EXPLICIT_ACCESS); Loading @@ -1015,9 +993,10 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionCallback(TracingDataType::kAccountPasswordsSynced, constants::DATA_TYPE_ACCOUNT_PASSWORDS); #endif account_store->RemoveLoginsByURLAndTime( FROM_HERE, filter, delete_begin_, delete_end_, CreateTaskCompletionClosure(TracingDataType::kAccountPasswords), account_store->RemoveLoginsCreatedBetween( FROM_HERE, delete_begin_, delete_end_, CreateTaskCompletionCallback(TracingDataType::kAccountPasswords, constants::DATA_TYPE_ACCOUNT_PASSWORDS), std::move(sync_completion)); } Loading Loading @@ -1117,7 +1096,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (render_process_host->GetBrowserContext() == profile_ && render_process_host->IsInitializedAndNotDead()) { web_cache::WebCacheManager::GetInstance()->ClearCacheForProcess( render_process_host->GetID()); render_process_host->GetDeprecatedID()); } } } Loading Loading @@ -1588,8 +1567,7 @@ void ChromeBrowsingDataRemoverDelegate::OnTaskComplete( should_clear_sync_account_settings_ = false; signin::IdentityManager* identity_manager = IdentityManagerFactory::GetForProfile(profile_); base::flat_set<std::string> gaia_ids = signin::GetAllGaiaIdsForKeyedPreferences( base::flat_set<GaiaId> gaia_ids = signin::GetAllGaiaIdsForKeyedPreferences( identity_manager, signin::AccountsInCookieJarInfo() /* empty_cookies */); if (syncer::SyncService* sync_service = Loading