Loading tools/under-control/src/RELEASE +1 −1 Original line number Diff line number Diff line 144.0.7559.97 145.0.7632.46 tools/under-control/src/android_webview/browser/aw_content_browser_client.cc +9 −4 Original line number Diff line number Diff line Loading @@ -323,10 +323,13 @@ AwContentBrowserClient::CreateBrowserMainParts(bool /* is_integration_test */) { return std::make_unique<AwBrowserMainParts>(this); } bool IsAnyStartupTaskExperimentEnabled() { bool AwContentBrowserClient::IsAnyStartupTaskExperimentEnabled() { return AwBrowserMainParts::isWebViewStartupTasksExperimentEnabled() || AwBrowserMainParts::isWebViewStartupTasksExperimentEnabledP2() || AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled(); AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled() || startup_tasks_logic_enabled_for_testing_ || startup_tasks_logic_p2_enabled_for_testing_ || startup_tasks_yield_to_native_experiment_enabled_for_testing_; } void AwContentBrowserClient::PostAfterStartupTask( Loading Loading @@ -356,7 +359,8 @@ void AwContentBrowserClient::OnStartupComplete() { DCHECK(!startup_info_.startup_complete); startup_info_.startup_complete = true; if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled()) { if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled() || startup_tasks_yield_to_native_experiment_enabled_for_testing_) { YieldToLooperChecker::GetInstance().SetStartupRunning(false); } Loading @@ -383,7 +387,8 @@ void AwContentBrowserClient::OnUiTaskRunnerReady( startup_info_.enable_native_task_execution_callback = std::move(enable_native_task_execution_callback); if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled()) { if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled() || startup_tasks_yield_to_native_experiment_enabled_for_testing_) { YieldToLooperChecker::GetInstance().SetStartupRunning(true); } } Loading tools/under-control/src/android_webview/browser/aw_field_trials.cc +21 −14 Original line number Diff line number Diff line Loading @@ -13,11 +13,11 @@ #include "base/metrics/persistent_histogram_allocator.h" #include "base/path_service.h" #include "components/history/core/browser/features.h" #include "components/input/features.h" #include "components/metrics/persistent_histograms.h" #include "components/payments/content/android/payment_feature_map.h" #include "components/permissions/features.h" #include "components/safe_browsing/core/common/features.h" #include "components/translate/core/common/translate_util.h" #include "components/variations/feature_overrides.h" #include "components/viz/common/features.h" #include "content/public/common/content_features.h" Loading @@ -32,6 +32,7 @@ #include "third_party/blink/public/common/features_generated.h" #include "ui/android/ui_android_features.h" #include "ui/base/ui_base_features.h" #include "ui/events/features.h" #include "ui/gl/gl_features.h" #include "ui/gl/gl_switches.h" Loading Loading @@ -65,10 +66,10 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( blink::features::kAboutBlankPageRespectsDarkModeOnUserAction); // TODO(crbug.com/433304196): Remove this once webview experiment has // TODO(crbug.com/444669046): Remove this once webview experiment has // concluded. aw_feature_overrides.DisableFeature( blink::features::kAsyncTouchMovesImmediatelyAfterScroll); input::features::kUpdateScrollPredictorInputMapping); // Disable enforcing `noopener` on Blob URL navigations on WebView. aw_feature_overrides.DisableFeature( Loading @@ -81,6 +82,10 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // HDR does not support webview yet. See crbug.com/1493153 for an explanation. aw_feature_overrides.DisableFeature(ui::kAndroidHDR); // TODO(crbug.com/450845471): Remove this once webview experiment has // concluded. aw_feature_overrides.DisableFeature(ui::kCompensateGestureDetectorTimeouts); // Disable launch_handler on WebView. aw_feature_overrides.DisableFeature(::features::kAndroidWebAppLaunchHandler); Loading Loading @@ -194,12 +199,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // Disable Web Serial API on WebView. aw_feature_overrides.DisableFeature(blink::features::kWebSerialAPI); // Disable TFLite based language detection on webview until webview supports // ML model delivery via Optimization Guide component. // TODO(crbug.com/40819484): Enable the feature on Webview. aw_feature_overrides.DisableFeature( ::translate::kTFLiteLanguageDetectionEnabled); // Disable key pinning enforcement on webview. aw_feature_overrides.DisableFeature( net::features::kStaticKeyPinningEnforcement); Loading @@ -207,6 +206,9 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // FedCM is not yet supported on WebView. aw_feature_overrides.DisableFeature(::features::kFedCm); // Email Verification Protocol is not yet supported on WebView. aw_feature_overrides.DisableFeature(::features::kEmailVerificationProtocol); // Disable Digital Credentials API on WebView. aw_feature_overrides.DisableFeature( ::features::kWebIdentityDigitalCredentials); Loading Loading @@ -288,26 +290,31 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( features::kAAudioPerStreamDeviceSelection); // WebView exposes text autosizing to apps via setLayoutAlgorithm(), so // we keep text autosizing support in WebView for now. Further WebView // work will take place in https://crbug.com/391990606. aw_feature_overrides.DisableFeature(blink::features::kForceOffTextAutosizing); // Local Network Access restrictions should not be enforced in WebView. // The LNA permission is auto-granted in WebView, but the permission // policy currently blocks iframes from using it. crbug.com/442879527 aw_feature_overrides.DisableFeature( network::features::kLocalNetworkAccessChecks); aw_feature_overrides.DisableFeature( network::features::kLocalNetworkAccessChecksSplitPermissions); // Disable background media for WebView, until we have consensus on long-term // behavior crbug.com/453706851 aw_feature_overrides.DisableFeature( features::kAndroidEnableBackgroundMediaLargeFormFactors); // Disable ExtendedReportingRemovePrefDependency for WebView, because WebView // doesn't support ESB aw_feature_overrides.DisableFeature( safe_browsing::kExtendedReportingRemovePrefDependency); // SystemTracing is enabled by default only in WebView for now. aw_feature_overrides.EnableFeature(features::kEnablePerfettoSystemTracing); // Deemed that performance benefit is not worth the stability cost. // See crbug.com/1309151. aw_feature_overrides.DisableFeature(::features::kGpuShaderDiskCache); // Don't pass the data about browser window position on screen to WebView. aw_feature_overrides.DisableFeature(ui::kAndroidUseCorrectWindowBounds); } tools/under-control/src/chrome/android/java/AndroidManifest.xml +20 −9 Original line number Diff line number Diff line Loading @@ -229,6 +229,9 @@ by a child template that "extends" this file. android:allowAudioPlaybackCapture="false" android:appComponentFactory="org.chromium.chrome.browser.base.SplitCompatAppComponentFactory" android:enableOnBackInvokedCallback="true" {% if javaless_renderers is defined %} android:zygotePreloadNativeLib="lib{{ library_name }}.so" {% endif %} {% block extra_application_attributes %}{% endblock %}> {% if channel in ['canary', 'dev', 'default'] %} Loading Loading @@ -292,6 +295,13 @@ by a child template that "extends" this file. <data android:mimeType="text/plain"/> <data android:mimeType="application/xhtml+xml"/> </intent-filter> <!-- PDF viewing support. --> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="application/pdf" /> <data android:scheme="content" /> </intent-filter> <!-- MHTML support, used for snapshots --> <intent-filter> <action android:name="android.intent.action.VIEW" /> Loading Loading @@ -544,6 +554,9 @@ by a child template that "extends" this file. android:theme="@style/Theme.Chromium.TabbedMode" android:exported="true" android:launchMode="singleTask" {% if is_desktop_android == "true" %} android:persistableMode="persistAcrossReboots" {% endif %} {# We can only use blocks once in Jinja, for future substitutions we use self.supports_video_persistence(). #} {% block supports_video_persistence %} Loading Loading @@ -1158,9 +1171,6 @@ by a child template that "extends" this file. <receiver android:name="org.chromium.chrome.browser.offlinepages.AutoFetchNotifier$InProgressCancelReceiver" android:exported="false"/> <receiver android:name="org.chromium.chrome.browser.safety_hub.UnsubscribedNotificationsNotificationManager$NotificationReceiver" android:exported="false"/> <service android:name="org.chromium.chrome.browser.media.MediaCaptureNotificationService" {% if is_desktop_android == "true" and enable_screen_capture == "true" %} android:foregroundServiceType="camera|microphone|mediaProjection|mediaPlayback" Loading Loading @@ -1296,21 +1306,22 @@ by a child template that "extends" this file. {% if javaless_renderers is defined %} <!-- Restricting to just 2 native-only services, one for zygote and one for non-zygote. --> {% for i in range(2) %} <!-- For now, the name of a native-only service must be prefixed with "NativeService". This is only for the prototype, and once it actually lands in the Android tree, there will be a better mechanism than this. --> <service android:name="org.chromium.content.app.NativeServiceSandboxedProcessService{{ i }}" <service android:name="org.chromium.content.app.NativeOnlySandboxedProcessService{{ i }}" android:nativeService="true" android:process=":sandboxed_process{{ i }}" android:permission="{{ manifest_package }}.permission.CHILD_SERVICE" android:isolatedProcess="true" android:useAppZygote="true" android:exported="{{sandboxed_service_exported|default(false)}}" {% if (sandboxed_service_exported|default(false)) == 'true' %} android:externalService="true" tools:ignore="ExportedService" android:visibleToInstantApps="true" {% endif %} > <meta-data android:name="android.app.lib_name" android:value="{{ library_name }}"/> <meta-data android:name="android.app.func_name" android:value="NativeChildProcessService_onCreate"/> <property android:name="android.app.PROPERTY_NATIVE_SERVICE_LIBRARY_NAME" android:value="lib{{ library_name }}.so" /> <property android:name="android.app.PROPERTY_NATIVE_SERVICE_FUNCTION_NAME" android:value="NativeChildProcessService_onCreate" /> </service> {% endfor %} {% endif %} Loading tools/under-control/src/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +2 −2 Original line number Diff line number Diff line Loading @@ -1860,7 +1860,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid if (displayMode instanceof TrustedWebActivityDisplayMode.BrowserMode) { return !isDisplayOverride; } if (WebAppHeaderUtils.isMinimalUiFlagEnabled() if (WebAppHeaderUtils.isMinimalUiEnabled() && displayMode instanceof TrustedWebActivityDisplayMode.MinimalUiMode) { return true; } Loading Loading @@ -1905,7 +1905,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid boolean shouldUseMinimalUi = displayMode instanceof TrustedWebActivityDisplayMode.MinimalUiMode || displayMode instanceof TrustedWebActivityDisplayMode.BrowserMode; if (WebAppHeaderUtils.isMinimalUiFlagEnabled() && shouldUseMinimalUi) { if (WebAppHeaderUtils.isMinimalUiEnabled() && shouldUseMinimalUi) { return DisplayMode.MINIMAL_UI; } Loading Loading
tools/under-control/src/RELEASE +1 −1 Original line number Diff line number Diff line 144.0.7559.97 145.0.7632.46
tools/under-control/src/android_webview/browser/aw_content_browser_client.cc +9 −4 Original line number Diff line number Diff line Loading @@ -323,10 +323,13 @@ AwContentBrowserClient::CreateBrowserMainParts(bool /* is_integration_test */) { return std::make_unique<AwBrowserMainParts>(this); } bool IsAnyStartupTaskExperimentEnabled() { bool AwContentBrowserClient::IsAnyStartupTaskExperimentEnabled() { return AwBrowserMainParts::isWebViewStartupTasksExperimentEnabled() || AwBrowserMainParts::isWebViewStartupTasksExperimentEnabledP2() || AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled(); AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled() || startup_tasks_logic_enabled_for_testing_ || startup_tasks_logic_p2_enabled_for_testing_ || startup_tasks_yield_to_native_experiment_enabled_for_testing_; } void AwContentBrowserClient::PostAfterStartupTask( Loading Loading @@ -356,7 +359,8 @@ void AwContentBrowserClient::OnStartupComplete() { DCHECK(!startup_info_.startup_complete); startup_info_.startup_complete = true; if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled()) { if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled() || startup_tasks_yield_to_native_experiment_enabled_for_testing_) { YieldToLooperChecker::GetInstance().SetStartupRunning(false); } Loading @@ -383,7 +387,8 @@ void AwContentBrowserClient::OnUiTaskRunnerReady( startup_info_.enable_native_task_execution_callback = std::move(enable_native_task_execution_callback); if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled()) { if (AwBrowserMainParts::isStartupTaskYieldToNativeExperimentEnabled() || startup_tasks_yield_to_native_experiment_enabled_for_testing_) { YieldToLooperChecker::GetInstance().SetStartupRunning(true); } } Loading
tools/under-control/src/android_webview/browser/aw_field_trials.cc +21 −14 Original line number Diff line number Diff line Loading @@ -13,11 +13,11 @@ #include "base/metrics/persistent_histogram_allocator.h" #include "base/path_service.h" #include "components/history/core/browser/features.h" #include "components/input/features.h" #include "components/metrics/persistent_histograms.h" #include "components/payments/content/android/payment_feature_map.h" #include "components/permissions/features.h" #include "components/safe_browsing/core/common/features.h" #include "components/translate/core/common/translate_util.h" #include "components/variations/feature_overrides.h" #include "components/viz/common/features.h" #include "content/public/common/content_features.h" Loading @@ -32,6 +32,7 @@ #include "third_party/blink/public/common/features_generated.h" #include "ui/android/ui_android_features.h" #include "ui/base/ui_base_features.h" #include "ui/events/features.h" #include "ui/gl/gl_features.h" #include "ui/gl/gl_switches.h" Loading Loading @@ -65,10 +66,10 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( blink::features::kAboutBlankPageRespectsDarkModeOnUserAction); // TODO(crbug.com/433304196): Remove this once webview experiment has // TODO(crbug.com/444669046): Remove this once webview experiment has // concluded. aw_feature_overrides.DisableFeature( blink::features::kAsyncTouchMovesImmediatelyAfterScroll); input::features::kUpdateScrollPredictorInputMapping); // Disable enforcing `noopener` on Blob URL navigations on WebView. aw_feature_overrides.DisableFeature( Loading @@ -81,6 +82,10 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // HDR does not support webview yet. See crbug.com/1493153 for an explanation. aw_feature_overrides.DisableFeature(ui::kAndroidHDR); // TODO(crbug.com/450845471): Remove this once webview experiment has // concluded. aw_feature_overrides.DisableFeature(ui::kCompensateGestureDetectorTimeouts); // Disable launch_handler on WebView. aw_feature_overrides.DisableFeature(::features::kAndroidWebAppLaunchHandler); Loading Loading @@ -194,12 +199,6 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // Disable Web Serial API on WebView. aw_feature_overrides.DisableFeature(blink::features::kWebSerialAPI); // Disable TFLite based language detection on webview until webview supports // ML model delivery via Optimization Guide component. // TODO(crbug.com/40819484): Enable the feature on Webview. aw_feature_overrides.DisableFeature( ::translate::kTFLiteLanguageDetectionEnabled); // Disable key pinning enforcement on webview. aw_feature_overrides.DisableFeature( net::features::kStaticKeyPinningEnforcement); Loading @@ -207,6 +206,9 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { // FedCM is not yet supported on WebView. aw_feature_overrides.DisableFeature(::features::kFedCm); // Email Verification Protocol is not yet supported on WebView. aw_feature_overrides.DisableFeature(::features::kEmailVerificationProtocol); // Disable Digital Credentials API on WebView. aw_feature_overrides.DisableFeature( ::features::kWebIdentityDigitalCredentials); Loading Loading @@ -288,26 +290,31 @@ void AwFieldTrials::RegisterFeatureOverrides(base::FeatureList* feature_list) { aw_feature_overrides.DisableFeature( features::kAAudioPerStreamDeviceSelection); // WebView exposes text autosizing to apps via setLayoutAlgorithm(), so // we keep text autosizing support in WebView for now. Further WebView // work will take place in https://crbug.com/391990606. aw_feature_overrides.DisableFeature(blink::features::kForceOffTextAutosizing); // Local Network Access restrictions should not be enforced in WebView. // The LNA permission is auto-granted in WebView, but the permission // policy currently blocks iframes from using it. crbug.com/442879527 aw_feature_overrides.DisableFeature( network::features::kLocalNetworkAccessChecks); aw_feature_overrides.DisableFeature( network::features::kLocalNetworkAccessChecksSplitPermissions); // Disable background media for WebView, until we have consensus on long-term // behavior crbug.com/453706851 aw_feature_overrides.DisableFeature( features::kAndroidEnableBackgroundMediaLargeFormFactors); // Disable ExtendedReportingRemovePrefDependency for WebView, because WebView // doesn't support ESB aw_feature_overrides.DisableFeature( safe_browsing::kExtendedReportingRemovePrefDependency); // SystemTracing is enabled by default only in WebView for now. aw_feature_overrides.EnableFeature(features::kEnablePerfettoSystemTracing); // Deemed that performance benefit is not worth the stability cost. // See crbug.com/1309151. aw_feature_overrides.DisableFeature(::features::kGpuShaderDiskCache); // Don't pass the data about browser window position on screen to WebView. aw_feature_overrides.DisableFeature(ui::kAndroidUseCorrectWindowBounds); }
tools/under-control/src/chrome/android/java/AndroidManifest.xml +20 −9 Original line number Diff line number Diff line Loading @@ -229,6 +229,9 @@ by a child template that "extends" this file. android:allowAudioPlaybackCapture="false" android:appComponentFactory="org.chromium.chrome.browser.base.SplitCompatAppComponentFactory" android:enableOnBackInvokedCallback="true" {% if javaless_renderers is defined %} android:zygotePreloadNativeLib="lib{{ library_name }}.so" {% endif %} {% block extra_application_attributes %}{% endblock %}> {% if channel in ['canary', 'dev', 'default'] %} Loading Loading @@ -292,6 +295,13 @@ by a child template that "extends" this file. <data android:mimeType="text/plain"/> <data android:mimeType="application/xhtml+xml"/> </intent-filter> <!-- PDF viewing support. --> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="application/pdf" /> <data android:scheme="content" /> </intent-filter> <!-- MHTML support, used for snapshots --> <intent-filter> <action android:name="android.intent.action.VIEW" /> Loading Loading @@ -544,6 +554,9 @@ by a child template that "extends" this file. android:theme="@style/Theme.Chromium.TabbedMode" android:exported="true" android:launchMode="singleTask" {% if is_desktop_android == "true" %} android:persistableMode="persistAcrossReboots" {% endif %} {# We can only use blocks once in Jinja, for future substitutions we use self.supports_video_persistence(). #} {% block supports_video_persistence %} Loading Loading @@ -1158,9 +1171,6 @@ by a child template that "extends" this file. <receiver android:name="org.chromium.chrome.browser.offlinepages.AutoFetchNotifier$InProgressCancelReceiver" android:exported="false"/> <receiver android:name="org.chromium.chrome.browser.safety_hub.UnsubscribedNotificationsNotificationManager$NotificationReceiver" android:exported="false"/> <service android:name="org.chromium.chrome.browser.media.MediaCaptureNotificationService" {% if is_desktop_android == "true" and enable_screen_capture == "true" %} android:foregroundServiceType="camera|microphone|mediaProjection|mediaPlayback" Loading Loading @@ -1296,21 +1306,22 @@ by a child template that "extends" this file. {% if javaless_renderers is defined %} <!-- Restricting to just 2 native-only services, one for zygote and one for non-zygote. --> {% for i in range(2) %} <!-- For now, the name of a native-only service must be prefixed with "NativeService". This is only for the prototype, and once it actually lands in the Android tree, there will be a better mechanism than this. --> <service android:name="org.chromium.content.app.NativeServiceSandboxedProcessService{{ i }}" <service android:name="org.chromium.content.app.NativeOnlySandboxedProcessService{{ i }}" android:nativeService="true" android:process=":sandboxed_process{{ i }}" android:permission="{{ manifest_package }}.permission.CHILD_SERVICE" android:isolatedProcess="true" android:useAppZygote="true" android:exported="{{sandboxed_service_exported|default(false)}}" {% if (sandboxed_service_exported|default(false)) == 'true' %} android:externalService="true" tools:ignore="ExportedService" android:visibleToInstantApps="true" {% endif %} > <meta-data android:name="android.app.lib_name" android:value="{{ library_name }}"/> <meta-data android:name="android.app.func_name" android:value="NativeChildProcessService_onCreate"/> <property android:name="android.app.PROPERTY_NATIVE_SERVICE_LIBRARY_NAME" android:value="lib{{ library_name }}.so" /> <property android:name="android.app.PROPERTY_NATIVE_SERVICE_FUNCTION_NAME" android:value="NativeChildProcessService_onCreate" /> </service> {% endfor %} {% endif %} Loading
tools/under-control/src/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +2 −2 Original line number Diff line number Diff line Loading @@ -1860,7 +1860,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid if (displayMode instanceof TrustedWebActivityDisplayMode.BrowserMode) { return !isDisplayOverride; } if (WebAppHeaderUtils.isMinimalUiFlagEnabled() if (WebAppHeaderUtils.isMinimalUiEnabled() && displayMode instanceof TrustedWebActivityDisplayMode.MinimalUiMode) { return true; } Loading Loading @@ -1905,7 +1905,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid boolean shouldUseMinimalUi = displayMode instanceof TrustedWebActivityDisplayMode.MinimalUiMode || displayMode instanceof TrustedWebActivityDisplayMode.BrowserMode; if (WebAppHeaderUtils.isMinimalUiFlagEnabled() && shouldUseMinimalUi) { if (WebAppHeaderUtils.isMinimalUiEnabled() && shouldUseMinimalUi) { return DisplayMode.MINIMAL_UI; } Loading