Files
cromite/build/patches/Experimental-support-for-extensions-on-Android.patch
T

3683 lines
183 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
From: uazo <uazo@users.noreply.github.com>
Date: Thu, 6 Nov 2025 13:21:24 +0000
Subject: Experimental support for extensions on Android
Enable experimental support for extensions in Android.
The feature is disabled by default: to enable it, go
to Settings/Developer Options.
A Clear all data used by the extension button is available in App
info/Storage and cache/Clear storage to completely remove the extensions
folder in case of a crash on startup.
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
android_webview/BUILD.gn | 2 +-
base/android/device_info.cc | 8 +-
base/android/device_info.h | 3 +-
.../src/org/chromium/base/DeviceInfo.java | 6 +-
build/BUILD.gn | 2 +-
build/config/android/rules.gni | 4 +-
build/config/chrome_build.gni | 7 +-
build/config/compiler/BUILD.gn | 2 +-
build/config/compiler/pgo/BUILD.gn | 2 +-
chrome/android/BUILD.gn | 6 +-
chrome/android/chrome_public_apk_tmpl.gni | 2 +-
.../java/res/layout/manage_space_activity.xml | 14 +++-
.../java/res/xml/developer_preferences.xml | 6 ++
.../browser/ChromeBaseAppCompatActivity.java | 2 +-
.../AppMenuPropertiesDelegateImpl.java | 2 +-
.../settings/AppearanceSettingsFragment.java | 2 +-
.../overlays/strip/StripLayoutUtils.java | 2 +-
.../DesktopSiteSettingsIphController.java | 2 +-
.../browser/init/AsyncInitTaskRunner.java | 2 +-
.../MediaCaptureNotificationServiceImpl.java | 8 +-
.../browser/multiwindow/MultiWindowUtils.java | 2 +-
.../ChromeSiteSettingsDelegate.java | 2 +-
.../site_settings/ManageSpaceActivity.java | 20 +++++
...InterceptNavigationDelegateClientImpl.java | 2 +-
.../browser/tab/RequestDesktopUtils.java | 2 +-
.../TabbedAppMenuPropertiesDelegate.java | 2 +-
.../tabbed_mode/TabbedRootUiCoordinator.java | 2 +-
.../chrome/browser/ui/RootUiCoordinator.java | 2 +-
chrome/app/extensions_strings.grdp | 7 ++
chrome/app/theme/theme_resources.grd | 4 +-
chrome/browser/BUILD.gn | 8 +-
chrome/browser/about_flags.cc | 4 +
...chrome_selection_dropdown_menu_delegate.cc | 4 +-
.../bookmarks/bar/BookmarkBarUtils.java | 6 +-
.../bar/BookmarkBarVisibilityProvider.java | 2 +-
chrome/browser/browser_process_impl.cc | 2 +-
chrome/browser/chrome_browser_field_trials.cc | 84 +++++++++----------
.../chrome_browser_interface_binders_webui.cc | 4 +-
.../browser/chrome_content_browser_client.cc | 4 +-
chrome/browser/devtools/BUILD.gn | 2 +-
.../chrome_download_manager_delegate.cc | 2 +-
.../download_offline_content_provider.cc | 4 +-
chrome/browser/extensions/BUILD.gn | 12 ++-
.../chrome_extensions_api_client_android.cc | 2 +-
.../extensions/extension_management.cc | 8 +-
.../browser/extensions/extension_management.h | 2 +-
chrome/browser/extensions/extension_util.cc | 11 +++
.../feedback/DeviceInfoFeedbackSource.java | 2 +-
chrome/browser/media/router/BUILD.gn | 4 +-
.../browser/media/router/discovery/BUILD.gn | 2 +-
.../media/router/media_router_feature.cc | 10 +--
.../media/router/media_router_feature.h | 2 +-
.../media/webrtc/webrtc_event_log_manager.cc | 4 +-
.../policy_value_and_status_aggregator.cc | 2 +-
...hrome_browser_main_extra_parts_profiles.cc | 2 +-
.../profiles/off_the_record_profile_impl.cc | 9 +-
chrome/browser/profiles/profile_destroyer.cc | 2 +-
chrome/browser/resources/BUILD.gn | 2 +-
chrome/browser/resources/discards/BUILD.gn | 2 +-
.../resources/extensions/detail_view.css | 6 ++
.../resources/extensions/extensions.html | 8 +-
.../resources/extensions/item_list.css | 11 +++
.../resources/extensions/toolbar.html.ts | 7 --
...omeProvidedSharingOptionsProviderBase.java | 4 +-
chrome/browser/startup_data.cc | 6 +-
chrome/browser/startup_data.h | 6 +-
.../common/task_manager_features.cc | 2 +-
chrome/browser/ui/BUILD.gn | 6 +-
.../browser/ui/android/context_menu_helper.cc | 12 ++-
.../browser/ui/android/context_menu_helper.h | 4 +-
.../desktop_site/DesktopSiteUtils.java | 4 +-
chrome/browser/ui/android/extensions/BUILD.gn | 4 +-
.../extensions/extension_actions_bridge.cc | 23 +++++
.../extensions/extension_actions_bridge.h | 1 +
.../java/res/layout/extensions_menu.xml | 1 +
.../res/layout/extensions_menu_footer.xml | 4 +-
.../extensions/java/res/values/dimens.xml | 1 +
.../ui/extensions/ExtensionActionsBridge.java | 6 ++
.../extensions/windowing/internal/BUILD.gn | 2 +-
.../Enable-extensions-Android.grdp | 15 ++++
.../Extensions-Android.grdp | 9 ++
chrome/browser/ui/android/tab_model/BUILD.gn | 4 +-
.../browser/ui/android/tab_model/tab_model.cc | 6 +-
.../browser/ui/android/tab_model/tab_model.h | 2 +-
.../android/tab_model/tab_model_jni_bridge.cc | 12 +--
.../android/tab_model/tab_model_test_helper.h | 2 +-
.../toolbar/java/res/layout/toolbar_phone.xml | 6 ++
.../ExtensionActionListContainer.java | 8 +-
.../ExtensionToolbarCoordinatorImpl.java | 10 ++-
.../extensions/ExtensionsMenuCoordinator.java | 44 +++++-----
.../ExtensionsMenuItemProperties.java | 5 +-
.../ExtensionsMenuItemViewBinder.java | 2 +
.../extensions/ExtensionsMenuMediator.java | 9 +-
chrome/browser/ui/browser_navigator_params.cc | 4 +-
chrome/browser/ui/browser_navigator_params.h | 4 +-
chrome/browser/ui/browser_window/BUILD.gn | 2 +-
.../ui/browser_window/internal/BUILD.gn | 2 +-
chrome/browser/ui/prefs/BUILD.gn | 4 +-
chrome/browser/ui/prefs/prefs_tab_helper.cc | 8 +-
chrome/browser/ui/tabs/tab_list_interface.h | 4 +-
chrome/browser/ui/webid/BUILD.gn | 2 +-
.../browser/ui/webui/chrome_web_ui_configs.cc | 4 +-
.../browser/ui/webui/current_channel_logo.cc | 2 +-
.../browser/ui/webui/discards/discards_ui.cc | 8 +-
chrome/chrome_paks.gni | 2 +-
chrome/common/chrome_switches.cc | 2 +-
chrome/common/chrome_switches.h | 2 +-
chrome/common/extensions/api/api_sources.gni | 7 ++
chrome/common/webui_url_constants.cc | 2 +-
chrome/common/webui_url_constants.h | 2 +-
.../sandbox_status_extension_android.cc | 3 +-
.../sandbox_status_extension_android.h | 1 +
chrome/test/BUILD.gn | 16 ++--
chrome/version.gni | 4 +-
.../core/browser/host_content_settings_map.cc | 6 ++
.../embedder_support/view/ContentView.java | 2 +-
.../browser/android/media_router_android.cc | 2 +-
.../browser/android/media_router_android.h | 2 +-
.../media_router/browser/media_router.h | 4 +-
.../policy/CombinedPolicyProvider.java | 8 +-
.../components/policy/PolicyCacheUpdater.java | 2 +-
.../android/policy_cache_updater_android.cc | 4 +-
.../cloud/user_policy_signin_service_base.cc | 2 +-
.../configuration_policy_handler_list.cc | 2 +-
.../common/cloud/cloud_policy_constants.cc | 2 +-
components/policy/core/common/features.cc | 2 +-
.../policy/core/common/policy_merger.cc | 4 +-
.../service/variations_service_client.cc | 2 +-
.../installable/installable_icon_fetcher.cc | 6 +-
.../installable/installable_icon_fetcher.h | 2 +-
.../version/resources/about_version.html | 2 +-
content/browser/browser_main_loop.cc | 2 +-
.../media/video_capture_manager.cc | 4 +-
.../media/video_capture_manager.h | 6 +-
.../render_widget_host_view_android.cc | 2 +-
.../browser/ContentUiEventHandler.java | 7 +-
content/public/common/content_features.cc | 2 +-
.../render_frame_media_playback_options.cc | 2 +-
.../about_flags_cc/Extensions-Android.inc | 12 +++
.../about_flags_cc/Webstore-protection.inc | 8 +-
extensions/browser/BUILD.gn | 4 +-
...browser_context_keyed_service_factories.cc | 2 +-
extensions/browser/api/system_cpu/BUILD.gn | 2 +-
.../api/web_request/permission_helper.cc | 2 +-
extensions/browser/extension_frame_host.cc | 8 ++
extensions/browser/extension_host.cc | 24 +++++-
extensions/buildflags/BUILD.gn | 3 +-
extensions/buildflags/buildflags.gni | 4 +-
extensions/common/api/schema.gni | 2 +-
extensions/common/command.cc | 2 +-
extensions/common/extension_features.cc | 10 ++-
extensions/common/extension_features.h | 6 +-
extensions/common/extension_l10n_util.cc | 6 ++
extensions/common/features/feature.cc | 2 +-
.../default_locale_handler.cc | 3 +
.../renderer/bindings/api_binding_util.cc | 2 +-
gpu/config/gpu_finch_features.cc | 4 +-
net/features.gni | 4 +-
skia/features.gni | 2 +-
third_party/blink/common/features.cc | 2 +-
.../renderer/modules/modules_initializer.cc | 4 +-
tools/grit/grit_args.gni | 3 +-
.../cpp_bundle_generator.py | 2 +-
.../ui/widget/PopupSpecCalculator.java | 9 +-
.../ui/test/util/UiDisableIfSkipCheck.java | 8 +-
.../chromium/ui/test/util/UiRestriction.java | 2 +-
ui/base/accelerators/command.cc | 2 +-
ui/base/device_form_factor_android.cc | 2 +-
ui/gl/features.gni | 2 +-
ui/resources/ui_resources.grd | 2 +-
ui/webui/resources/BUILD.gn | 4 +-
ui/webui/resources/cr_elements/BUILD.gn | 2 +-
.../cr_elements/cr_toolbar/cr_toolbar.css | 6 ++
ui/webui/resources/css/BUILD.gn | 2 +-
174 files changed, 597 insertions(+), 316 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Enable-extensions-Android.grdp
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Extensions-Android.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -1301,7 +1301,7 @@ declare_args() {
# logic more easily on an emulator, so the decision to use the arm64
# orderfile for x64 (instead of arm32) is somewhat arbitrary. We just
# needed to use some real orderfile.
- if (is_desktop_android && current_cpu == "x64") {
+ if (is_desktop_android_false && current_cpu == "x64") {
# For Android Desktop x64, orderfile is disabled, see
# https://crbug.com/422005929.
webview_orderfile_path = ""
diff --git a/base/android/device_info.cc b/base/android/device_info.cc
--- a/base/android/device_info.cc
+++ b/base/android/device_info.cc
@@ -104,10 +104,14 @@ bool is_foldable() {
return get_device_info().isFoldable;
}
-bool is_desktop() {
+bool is_desktop_cromite() {
return get_device_info().isDesktop;
}
+bool is_desktop_false() {
+ return false;
+}
+
// Available only on Android T+.
int32_t vulkan_deqp_level() {
return get_device_info().vulkanDeqpLevel;
@@ -123,7 +127,7 @@ bool is_xr() {
// check) as a first choice, but fall back to this if not feasible.
bool is_tablet() {
return was_launched_on_large_display() && !is_tv() && !is_automotive() &&
- !is_desktop() && !is_xr();
+ !is_desktop_false() && !is_xr();
}
// This returns the cached value during initial startup. If you need this
diff --git a/base/android/device_info.h b/base/android/device_info.h
--- a/base/android/device_info.h
+++ b/base/android/device_info.h
@@ -29,7 +29,8 @@ BASE_EXPORT void Set(const IDeviceInfo& info);
BASE_EXPORT bool is_tv();
BASE_EXPORT bool is_automotive();
BASE_EXPORT bool is_foldable();
-BASE_EXPORT bool is_desktop();
+BASE_EXPORT bool is_desktop_cromite();
+BASE_EXPORT bool is_desktop_false();
// Available only on Android T+.
BASE_EXPORT int32_t vulkan_deqp_level();
BASE_EXPORT bool is_xr();
diff --git a/base/android/java/src/org/chromium/base/DeviceInfo.java b/base/android/java/src/org/chromium/base/DeviceInfo.java
--- a/base/android/java/src/org/chromium/base/DeviceInfo.java
+++ b/base/android/java/src/org/chromium/base/DeviceInfo.java
@@ -128,10 +128,14 @@ public final class DeviceInfo {
return getInstance().mIDeviceInfo.isFoldable;
}
- public static boolean isDesktop() {
+ public static boolean isDesktopCromite() {
return getInstance().mIDeviceInfo.isDesktop;
}
+ public static boolean isDesktopFalse() {
+ return false;
+ }
+
public static int getVulkanDeqpLevel() {
return getInstance().mIDeviceInfo.vulkanDeqpLevel;
}
diff --git a/build/BUILD.gn b/build/BUILD.gn
--- a/build/BUILD.gn
+++ b/build/BUILD.gn
@@ -128,7 +128,7 @@ buildflag_header("ios_buildflags") {
#
buildflag_header("android_buildflags") {
header = "android_buildflags.h"
- flags = [ "IS_DESKTOP_ANDROID=$is_desktop_android" ]
+ flags = [ "IS_DESKTOP_ANDROID_CROMITE=$is_desktop_android_cromite", "IS_DESKTOP_ANDROID_FALSE=false" ]
}
if (build_with_chromium) {
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -2027,8 +2027,8 @@ if (!is_robolectric && enable_java_templates) {
} else {
defines += [ "_LOGTAG_PREFIX=cr_" ]
}
- if (is_desktop_android) {
- defines += [ "_IS_DESKTOP_ANDROID" ]
+ if (is_desktop_android_cromite) {
+ defines += [ "_IS_DESKTOP_ANDROID_CROMITE" ]
}
if (enable_javaless_renderers) {
diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni
--- a/build/config/chrome_build.gni
+++ b/build/config/chrome_build.gni
@@ -34,7 +34,8 @@ declare_args() {
# Set to true to set defaults that enable features on Android that are more
# typically available on desktop.
- is_desktop_android = false
+ is_desktop_android_cromite = is_android
+ is_desktop_android_false = false
if (is_android) {
# By default, Trichrome channels are compiled using separate package names.
@@ -56,12 +57,12 @@ is_internal_chrome_branded = enable_src_internal && is_chrome_branded
# Ensure !is_android implies !is_high_end_android.
is_high_end_android = is_high_end_android && is_android
-if (is_desktop_android) {
+if (is_desktop_android_cromite) {
assert(target_os == "android",
"Target must be Android to use is_desktop_android.")
# Disable for non-android secondary toolchains.
- is_desktop_android = is_android
+ is_desktop_android_cromite = is_android
}
declare_args() {
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -241,7 +241,7 @@ if (is_android) {
# logic more easily on an emulator, so the decision to use the arm64
# orderfile for x64 (instead of arm32) is somewhat arbitrary. We just
# needed to use some real orderfile.
- if (is_desktop_android && current_cpu == "x64") {
+ if (is_desktop_android_false && current_cpu == "x64") {
# For Android Desktop x64, orderfile is disabled, see
# https://crbug.com/422005929.
chrome_orderfile_path = ""
diff --git a/build/config/compiler/pgo/BUILD.gn b/build/config/compiler/pgo/BUILD.gn
--- a/build/config/compiler/pgo/BUILD.gn
+++ b/build/config/compiler/pgo/BUILD.gn
@@ -64,7 +64,7 @@ config("pgo_optimization_flags") {
_pgo_target = "linux"
} else if (is_android) {
# Use |current_cpu| and not |target_cpu|; for Android we may built both.
- if (is_desktop_android && current_cpu == "x64") {
+ if (is_desktop_android_false && current_cpu == "x64") {
_pgo_target = "android-desktop-x64"
} else if (current_cpu == "arm64") {
_pgo_target = "android-arm64"
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -958,7 +958,7 @@ if (_is_default_toolchain) {
"//chrome/browser/password_entry_edit/android/internal:java",
]
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
deps += [
"//chrome/browser/ui/android/extensions/windowing/internal:java",
"//chrome/browser/ui/browser_window/internal:java",
@@ -1225,7 +1225,7 @@ if (_is_default_toolchain) {
deps += [ "//chrome/browser/ui/android/extensions:junit" ]
}
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
deps += [ "//chrome/browser/ui/browser_window/internal:junit" ]
}
}
@@ -2416,7 +2416,7 @@ if (_is_default_toolchain) {
"//components/ip_protection/android/android_auth_client_lib/javatests:ip_protection_auth_javatests",
]
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
deps += [
"//chrome/browser/ui/android/extensions/windowing/internal:javatests",
"//chrome/browser/ui/browser_window/internal:javatests",
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -43,7 +43,7 @@ default_chrome_public_jinja_variables = [
"enable_vr=$enable_vr",
"enable_openxr=$enable_openxr",
"enable_arcore=$enable_arcore",
- "is_desktop_android=$is_desktop_android",
+ "is_desktop_android_cromite=$is_desktop_android_cromite",
"enable_screen_capture=$enable_screen_capture",
"zygote_preload_class=org.chromium.content_public.app.ZygotePreload",
]
diff --git a/chrome/android/java/res/layout/manage_space_activity.xml b/chrome/android/java/res/layout/manage_space_activity.xml
--- a/chrome/android/java/res/layout/manage_space_activity.xml
+++ b/chrome/android/java/res/layout/manage_space_activity.xml
@@ -94,5 +94,17 @@ found in the LICENSE file.
android:id="@+id/clear_all_data"
android:text="@string/storage_management_clear_all_data_button"
style="@style/ManageSpaceActivityButton" />
+
+ <!-- ======== Extension storage info ======== -->
+ <TextView
+ android:id="@+id/all_extension_description"
+ android:text="@string/storage_management_extension_storage_description"
+ android:paddingTop="12dp"
+ style="@style/ManageSpaceActivityExplanationTextView" />
+
+ <Button
+ android:id="@+id/clear_extension_data"
+ android:text="@string/storage_management_clear_all_extension_button"
+ style="@style/ManageSpaceActivityButton" />
</LinearLayout>
-</ScrollView>
\ No newline at end of file
+</ScrollView>
diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/android/java/res/xml/developer_preferences.xml
--- a/chrome/android/java/res/xml/developer_preferences.xml
+++ b/chrome/android/java/res/xml/developer_preferences.xml
@@ -44,4 +44,10 @@ found in the LICENSE file.
android:key="pixel_perfect_mode"
android:title="@string/android_pixel_perfect_mode_title"
android:summary="@string/android_pixel_perfect_mode_summary" />
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="enable_extensions_android"
+ android:title="@string/android_extensions_title"
+ android:summary="@string/android_extensions_summary"
+ app:featureName="enable-extensions-android"
+ app:needRestart="true" />
</PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
@@ -578,7 +578,7 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
applySingleThemeOverlay(R.style.ThemeOverlay_BrowserUI_OptOutEdgeToEdge);
}
- if (ChromeFeatureList.sAndroidDesktopDensity.isEnabled() && DeviceInfo.isDesktop()) {
+ if (ChromeFeatureList.sAndroidDesktopDensity.isEnabled() && DeviceInfo.isDesktopFalse()) {
applySingleThemeOverlay(R.style.ThemeOverlay_BrowserUI_DesktopDensity);
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -1173,7 +1173,7 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
&& !shouldShowReaderModePrefs(currentTab)
&& currentTab != null
&& currentTab.getWebContents() != null
- && !DeviceInfo.isDesktop();
+ && !DeviceInfo.isDesktopFalse();
if (!itemVisible) return null;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java
@@ -58,7 +58,7 @@ public class AppearanceSettingsFragment extends ChromeBaseSettingsFragment
// This fragment may be used on Desktop or tablets. For Desktop we use the current Profile's
// UserPrefs. For tablets, we use the local device preference.
- mUseProfileUserPrefs = DeviceInfo.isDesktop();
+ mUseProfileUserPrefs = DeviceInfo.isDesktopFalse();
initBookmarkBarPref();
initToolbarShortcutPref();
initUiThemePref();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutUtils.java
@@ -420,7 +420,7 @@ public class StripLayoutUtils {
public static boolean shouldApplyMoreDensity() {
return ChromeFeatureList.sTabStripDensityChangeAndroid.isEnabled()
- && DeviceInfo.isDesktop();
+ && DeviceInfo.isDesktopFalse();
}
// Testing booleans
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteSettingsIphController.java b/chrome/android/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteSettingsIphController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteSettingsIphController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteSettingsIphController.java
@@ -80,7 +80,7 @@ public class DesktopSiteSettingsIphController {
View toolbarMenuButton,
AppMenuHandler appMenuHandler) {
// Desktop site settings are default enabled on desktop. Do not show IPH.
- if(DeviceInfo.isDesktop()) return null;
+ if(DeviceInfo.isDesktopFalse()) return null;
return new DesktopSiteSettingsIphController(
windowAndroid,
activityTabProvider,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/AsyncInitTaskRunner.java
@@ -76,7 +76,7 @@ public abstract class AsyncInitTaskRunner {
}
// TODO(crbug.com/389565104): Remove this if block when ready to move desktop to stable
// builds.
- if (VersionInfo.isStableBuild() && DeviceInfo.isDesktop()) {
+ if (VersionInfo.isStableBuild() && DeviceInfo.isDesktopFalse()) {
return "dev";
}
if (VersionInfo.isBetaBuild()) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCaptureNotificationServiceImpl.java
@@ -216,7 +216,7 @@ public class MediaCaptureNotificationServiceImpl extends SplitCompatService.Impl
}
}
}
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
if (mNotifications.size() > 1 && mNotifications.firstKey() == notificationId) {
// For large screen device, we use the previous notification to update
// foreground
@@ -231,7 +231,7 @@ public class MediaCaptureNotificationServiceImpl extends SplitCompatService.Impl
}
mNotificationManager.cancel(NOTIFICATION_NAMESPACE, notificationId);
mNotificationsType.remove(notificationId);
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
mNotifications.remove(notificationId);
}
updateSharedPreferencesEntry(notificationId, true);
@@ -305,7 +305,7 @@ public class MediaCaptureNotificationServiceImpl extends SplitCompatService.Impl
appContext.getString(R.string.app_name),
contentIntent,
stopIntent);
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
// For large screen device, we use the latest notification to start or update
// the foreground service.
startOrUpdateForegroundService(notificationId, notification, mediaTypes);
@@ -313,7 +313,7 @@ public class MediaCaptureNotificationServiceImpl extends SplitCompatService.Impl
mNotificationManager.notify(notification);
}
mNotificationsType.put(notificationId, mediaTypes);
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
mNotifications.put(notificationId, notification);
}
updateSharedPreferencesEntry(notificationId, false);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
@@ -217,7 +217,7 @@ public class MultiWindowUtils implements ActivityStateListener {
return TabWindowManager.MAX_SELECTORS_S;
}
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
return TabWindowManager.MAX_SELECTORS;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java
@@ -175,7 +175,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return PermissionUtil.handTrackingNeedsAdditionalPermissions();
case SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE:
// Desktop Android always requests desktop sites, so hide the category.
- return !DeviceInfo.isDesktop();
+ return !DeviceInfo.isDesktopFalse();
case SiteSettingsCategory.Type.LOCAL_NETWORK_ACCESS:
return ChromeFeatureList.isEnabled(ChromeFeatureList.LOCAL_NETWORK_ACCESS);
case SiteSettingsCategory.Type.WINDOW_MANAGEMENT:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java
@@ -41,6 +41,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
+import org.chromium.chrome.browser.ui.extensions.ExtensionActionsBridge;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
import org.chromium.components.browser_ui.settings.SettingsNavigation;
import org.chromium.components.browser_ui.site_settings.AllSiteSettings;
@@ -68,6 +69,7 @@ public class ManageSpaceActivity extends ChromeBaseAppCompatActivity
private Button mClearUnimportantButton;
private Button mManageSiteDataButton;
private Button mClearAllDataButton;
+ private Button mClearExtensionDataButton;
// Stored for testing.
private @Nullable AlertDialog mUnimportantDialog;
@@ -106,6 +108,9 @@ public class ManageSpaceActivity extends ChromeBaseAppCompatActivity
mClearAllDataButton = findViewById(R.id.clear_all_data);
mClearAllDataButton.setOnClickListener(this);
+
+ mClearExtensionDataButton = findViewById(R.id.clear_extension_data);
+ mClearExtensionDataButton.setOnClickListener(this);
super.onCreate(savedInstanceState);
BrowserParts parts =
@@ -267,6 +272,21 @@ public class ManageSpaceActivity extends ChromeBaseAppCompatActivity
builder.setTitle(R.string.storage_management_reset_app_dialog_title);
builder.setMessage(R.string.storage_management_reset_app_dialog_text);
builder.create().show();
+ } else if (view == mClearExtensionDataButton) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setPositiveButton(
+ R.string.ok,
+ new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int id) {
+ Profile profile = ProfileManager.getLastUsedRegularProfile();
+ ExtensionActionsBridge.get(profile).clearExtensionData();
+ }
+ });
+ builder.setNegativeButton(R.string.cancel, null);
+ builder.setTitle(R.string.storage_management_extension_reset_app_dialog_title);
+ builder.setMessage(R.string.storage_management_extension_reset_app_dialog_text);
+ builder.create().show();
}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java
@@ -205,7 +205,7 @@ public class InterceptNavigationDelegateClientImpl implements InterceptNavigatio
// TODO(crbug.com/417047079): Replace the following desktop windowing checks with a better
// approach.
// return MultiWindowUtils.getInstance().isInMultiWindowMode(getActivity());
- return DeviceInfo.isDesktop();
+ return DeviceInfo.isDesktopFalse();
}
@Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java
@@ -107,7 +107,7 @@ public class RequestDesktopUtils {
// Desktop devices always request desktop sites so there's no need to show a message to
// the user.
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
return false;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
@@ -826,7 +826,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
// PDF.
NativePage nativePage = currentTab.getNativePage();
boolean isPdfPage = nativePage != null && nativePage.isPdf();
- boolean isEligibleForPrint = DeviceInfo.isDesktop() || isPdfPage;
+ boolean isEligibleForPrint = DeviceInfo.isDesktopCromite() || isPdfPage;
return canShareTab && isPrintingEnabled && isEligibleForPrint;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -2014,7 +2014,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
} else if (id == R.id.toggle_bookmark_bar) {
// isActivityStateBookmarkBarCompatible already checks the flag sAndroidBookmarkBar.
if (BookmarkBarUtils.isActivityStateBookmarkBarCompatible(mActivity)) {
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopCromite()) {
// Desktop uses the synced UserPref.
BookmarkBarUtils.toggleUserPrefsShowBookmarksBar(
mProfileSupplier.get(), /* fromKeyboardShortcut= */ true);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -714,7 +714,7 @@ public class RootUiCoordinator
mXrSpaceModeObservableSupplier = xrSpaceModeObservableSupplier;
if (BrowserControlsUtils.doSyncMinHeightWithTotalHeightV2()) {
- if (DeviceInfo.isDesktop()
+ if (DeviceInfo.isDesktopFalse()
|| BrowserControlsUtils.doSyncMinHeightWithTotalHeight(mActivity)) {
mTopControlsStacker.setScrollingDisabled(true);
} else if (mDesktopWindowStateManager != null) {
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
--- a/chrome/app/extensions_strings.grdp
+++ b/chrome/app/extensions_strings.grdp
@@ -409,9 +409,16 @@
<message name="IDS_EXTENSIONS_NO_ACTIVITIES" desc="The message shown to the user when an extension has no recent activities.">
No recent activities
</message>
+<if expr="is_android">
+ <message name="IDS_EXTENSIONS_NO_INSTALLED_ITEMS" desc="The message shown to the user on the Extensions settings page when there are no extensions or apps installed.">
+ Find extensions and themes in the <ph name="BEGIN_LINK">&lt;a target="_blank" href="https://chromewebstore.google.com"&gt;</ph>Chromedontreplace Web Store<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
+ </message>
+</if>
+<if expr="not is_android">
<message name="IDS_EXTENSIONS_NO_INSTALLED_ITEMS" desc="The message shown to the user on the Extensions settings page when there are no extensions or apps installed.">
Find extensions and themes in the <ph name="BEGIN_LINK">&lt;a target="_blank" href="https://chrome.google.com/webstore/category/extensions"&gt;</ph>Chromedontreplace Web Store<ph name="END_LINK">&lt;/a&gt;<ex>&lt;/a&gt;</ex></ph>
</message>
+</if>
<message name="IDS_EXTENSIONS_NO_DESCRIPTION" desc="The message shown to the user when an extension does not have any description.">
No description provided
</message>
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd
--- a/chrome/app/theme/theme_resources.grd
+++ b/chrome/app/theme/theme_resources.grd
@@ -372,7 +372,7 @@
<structure type="chrome_scaled_image" name="IDR_UPLOAD_VIOLATION_DARK" file="common/upload_violation_dark.png" />
</if>
<if expr="not _google_chrome">
- <if expr="not is_android or is_desktop_android">
+ <if expr="not is_android or is_desktop_android_cromite">
<!-- Desktop Android supports extensions and the web store. -->
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON" file="chromium/webstore_icon.png" />
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_16" file="chromium/webstore_icon_16.png" />
@@ -381,7 +381,7 @@
</if>
</if>
<if expr="_google_chrome">
- <if expr="not is_android or is_desktop_android">
+ <if expr="not is_android or is_desktop_android_cromite">
<!-- Desktop Android supports extensions and the web store. -->
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON" file="google_chrome/webstore_icon.png" />
<structure type="chrome_scaled_image" name="IDR_WEBSTORE_ICON_16" file="google_chrome/webstore_icon_16.png" />
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -4916,7 +4916,7 @@ static_library("browser") {
}
}
- if (!is_android || is_desktop_android) {
+ if (!is_android || is_desktop_android_cromite) {
deps += [ "//chrome/browser/ui/browser_window" ]
}
@@ -7642,7 +7642,7 @@ static_library("browser") {
deps += [ "//media/mojo/mojom:remoting" ]
}
- if (is_android && !enable_desktop_android_extensions) {
+ if (is_android && !enable_desktop_android_extensions_cromite) {
sources += [ "download/download_crx_util_android.cc" ]
}
@@ -7956,7 +7956,7 @@ static_library("browser") {
# TODO(https://crbug.com/356905053): Add more dependencies here and merge this
# block with the `enable_extensions` block above.
- if (enable_desktop_android_extensions) {
+ if (enable_desktop_android_extensions_cromite) {
sources += [
# TODO(https://crbug.com/356905053): These files are temporary workarounds
# allow for a lightweight extensions runtime in desktop-android builds.
@@ -8736,7 +8736,7 @@ static_library("browser_generated_files") {
[ "//chrome/browser/ui/webui/new_tab_page/foo:mojo_bindings" ]
}
}
- if (!is_android || is_desktop_android) {
+ if (!is_android || is_desktop_android_cromite) {
public_deps += [ "//chrome/browser/ui/webui/discards:mojo_bindings" ]
}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -369,6 +369,10 @@
#include "extensions/common/switches.h"
#endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+#include "extensions/common/extension_features.h"
+#endif
+
#if BUILDFLAG(ENABLE_PDF)
#include "pdf/pdf_features.h"
#endif
diff --git a/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc b/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc
--- a/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc
+++ b/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc
@@ -8,7 +8,7 @@
#include "content/public/browser/render_frame_host.h"
#include "extensions/buildflags/buildflags.h"
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
#include "chrome/browser/extensions/extension_menu_model_android.h"
#endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
@@ -25,7 +25,7 @@ std::unique_ptr<ui::MenuModel>
ChromeSelectionDropdownMenuDelegate::GetSelectionPopupExtraItems(
content::RenderFrameHost& render_frame_host,
const content::ContextMenuParams& params) {
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
std::unique_ptr<extensions::ExtensionMenuModel> extension_menu_model =
std::make_unique<extensions::ExtensionMenuModel>(render_frame_host,
params);
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java
@@ -209,7 +209,7 @@ public class BookmarkBarUtils {
// On Desktop, we sync with the UserPrefs.
// On tablets we use the device preference logic (policy (pref service) > local pref
// (shared pref) > FeatureParam).
- return DeviceInfo.isDesktop()
+ return DeviceInfo.isDesktopFalse()
? isUserPrefsShowBookmarksBarEnabled(profile)
: isDevicePrefShowBookmarksBarEnabled(profile);
}
@@ -427,13 +427,13 @@ public class BookmarkBarUtils {
boolean isCurrentlyVisible = isBookmarkBarVisible(context, profile);
// Record if the Bookmark Bar is visible, but not in cases of a forced feature param.
- if (DeviceInfo.isDesktop() || hasUserSetDevicePrefShowBookmarksBar()) {
+ if (DeviceInfo.isDesktopFalse() || hasUserSetDevicePrefShowBookmarksBar()) {
RecordHistogram.recordBooleanHistogram(
BOOKMARK_BAR_SHOWN_ON_START_UP, isCurrentlyVisible);
}
// Record the reason why the Bookmark Bar is visible (hidden) in this instance.
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
RecordHistogram.recordEnumeratedHistogram(
BOOKMARK_BAR_SHOWN_ON_START_UP_REASON,
isCurrentlyVisible
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarVisibilityProvider.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarVisibilityProvider.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarVisibilityProvider.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarVisibilityProvider.java
@@ -92,7 +92,7 @@ public class BookmarkBarVisibilityProvider {
mProfileSupplier.addObserver(mProfileSupplierObserver);
// On tablets we use local device prefs.
- if (!DeviceInfo.isDesktop()) {
+ if (!DeviceInfo.isDesktopFalse()) {
mDevicePrefsListener =
(sharedPreferences, key) -> {
if (key != null
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -357,7 +357,7 @@ void BrowserProcessImpl::Init() {
// TODO(devlin): Move this block out of BrowserProcessImpl to somewhere like
// //chrome/browser/initialize_extensions_browser_client, analogous to
// `EnsureExtensionsClientInitialized()` above?
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
extensions_browser_client_ = startup_data()->TakeExtensionsBrowserClient();
#elif BUILDFLAG(ENABLE_EXTENSIONS)
extensions_browser_client_ =
diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chrome_browser_field_trials.cc
--- a/chrome/browser/chrome_browser_field_trials.cc
+++ b/chrome/browser/chrome_browser_field_trials.cc
@@ -124,7 +124,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
feature_overrides.DisableFeature(features::kEyeDropper);
}
#elif BUILDFLAG(IS_ANDROID) // BUILDFLAG(IS_LINUX)
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// Nota bene: Anything here is expected to be short-lived, unless deemed too
// risky to launch to non-desktop platforms. New features being added here
// should be the exception, and not the norm. Instead, you should place the
@@ -133,17 +133,17 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
// If enabled, then use desktop page webprefs for Android devices that have
// large displays, specifically tablets and desktops.
- feature_overrides.EnableFeature(
- blink::features::kAndroidDesktopWebPrefsLargeDisplays);
+ // feature_overrides.EnableFeature(
+ // blink::features::kAndroidDesktopWebPrefsLargeDisplays);
// Enables the caret browsing a11y feature - can use arrow keys to navigate
// through web pages.
// TODO(crbug.com/369139090): Remove when rollout is complete
- feature_overrides.EnableFeature(features::kAndroidCaretBrowsing);
+ // feature_overrides.EnableFeature(features::kAndroidCaretBrowsing);
// Enable the link hover status bar.
// TODO(crbug.com/404678510): Remove when the feature is stable.
- feature_overrides.EnableFeature(chrome::android::kLinkHoverStatusBar);
+ // feature_overrides.EnableFeature(chrome::android::kLinkHoverStatusBar);
// If enabled, render processes associated only with tabs in unfocused windows
// will be downgraded to "vis" priority, rather than remaining at "fg". This
@@ -153,8 +153,8 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
// Enables media capture (tab+window+screen sharing).
// TODO(crbug.com/352187279): Remove when tablet rollout is complete.
- feature_overrides.EnableFeature(kAndroidMediaPicker);
- feature_overrides.EnableFeature(features::kUserMediaScreenCapturing);
+ // feature_overrides.EnableFeature(kAndroidMediaPicker);
+ // feature_overrides.EnableFeature(features::kUserMediaScreenCapturing);
// Enable desktop tab management features.
// TODO(crbug.com/422902625): Remove when rollout is complete to all form
@@ -163,10 +163,10 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
feature_overrides.EnableFeature(chrome::android::kProtectedTabsAndroid);
feature_overrides.EnableFeature(features::kSubframeImportance);
// TODO(crbug.com/422903297): Remove when tablet rollout is complete.
- feature_overrides.EnableFeature(features::kRendererProcessLimitOnAndroid);
+ // feature_overrides.EnableFeature(features::kRendererProcessLimitOnAndroid);
// Enable V8 optimizations for high-end Android Desktop devices.
// TODO(crbug.com/425860368): Remove when the feature is stable.
- feature_overrides.EnableFeature(features::kV8AndroidDesktopHighEndConfig);
+ // feature_overrides.EnableFeature(features::kV8AndroidDesktopHighEndConfig);
// TODO(b/432367402): Use a new Android API to replace this hack with a proper
// solution.
feature_overrides.EnableFeature(features::kAndroidCaptureKeyEvents);
@@ -175,12 +175,12 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
feature_overrides.EnableFeature(features::kAndroidDevToolsFrontend);
// TODO(crbug.com/430304112): Remove when rollout is complete to all form
// factors.
- feature_overrides.EnableFeature(
- autofill::features::kAutofillAndroidDesktopSuppressAccessoryOnEmpty);
+ // feature_overrides.EnableFeature(
+ // autofill::features::kAutofillAndroidDesktopSuppressAccessoryOnEmpty);
// TODO(crbug.com/436900619): Remove when the long term solution is
// implemented.
- feature_overrides.EnableFeature(
- chrome::android::kLockTopControlsOnLargeTablets);
+ // feature_overrides.EnableFeature(
+ // chrome::android::kLockTopControlsOnLargeTablets);
// TODO(crbug.com/445446479): Remove when rollout is complete to all form
// factors.
feature_overrides.EnableFeature(
@@ -188,13 +188,13 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
// Bypass the WebAudio output buffer, to reduce audio latency.
// TODO(crbug.com/436988695): Remove when the long term solution is
// implemented.
- feature_overrides.EnableFeature(
- blink::features::kWebAudioBypassOutputBuffering);
+ // feature_overrides.EnableFeature(
+ // blink::features::kWebAudioBypassOutputBuffering);
// TODO(crbug.com/437004266): Remove when the feature is stable.
- feature_overrides.EnableFeature(
- features::kAlwaysUseAudioManagerOutputFramesPerBuffer);
+ // feature_overrides.EnableFeature(
+ // features::kAlwaysUseAudioManagerOutputFramesPerBuffer);
// TODO(crbug.com/440210010): Remove when the feature experiment is done.
- feature_overrides.EnableFeature(features::kAudioStereoInputStreamParameters);
+ // feature_overrides.EnableFeature(features::kAudioStereoInputStreamParameters);
// Enables automatic picture-in-picture.
// TODO(crbug.com/421608904): Remove when rollout is complete to all form
// factors.
@@ -205,58 +205,58 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
feature_overrides.EnableFeature(media::kContextMenuPictureInPictureAndroid);
// Disables the enhanced pip transition and uses the default animation.
// TODO(crbug.com/440384447): Remove when enhanced pip transition is fixed.
- feature_overrides.DisableFeature(media::kAllowEnhancedPipTransition);
+ // feature_overrides.DisableFeature(media::kAllowEnhancedPipTransition);
// Enable by default for desktop platforms, pending a phone / foldable /
// tablet rollout using the same flag.
// TODO(crbug.com/413776899): Remove when rollout on other form factors is
// complete.
- feature_overrides.EnableFeature(chrome::android::kInstanceSwitcherV2);
+ // feature_overrides.EnableFeature(chrome::android::kInstanceSwitcherV2);
// TODO(crbug.com/442327273): Remove when rollout is complete to all form
// factors.
- feature_overrides.EnableFeature(
- autofill::features::kAutofillAndroidDesktopKeyboardAccessoryRevamp);
+ // feature_overrides.EnableFeature(
+ // autofill::features::kAutofillAndroidDesktopKeyboardAccessoryRevamp);
// TODO(crbug.com/444486763): Remove when rollout is complete to all form
// factors.
- feature_overrides.EnableFeature(chrome::android::kAndroidTabHighlighting);
+ // feature_overrides.EnableFeature(chrome::android::kAndroidTabHighlighting);
// TODO(b/441672693): Remove when the feature is stable on other form factors.
- feature_overrides.EnableFeature(features::kAndroidAudioDeviceListener);
+ // feature_overrides.EnableFeature(features::kAndroidAudioDeviceListener);
// Enable by default for desktop platforms, pending a tablet rollout using the
// same flag.
// TODO(crbug.com/445475304): Remove when tablet rollout is complete.
- feature_overrides.EnableFeature(feed::kAndroidOpenIncognitoAsWindow);
- feature_overrides.EnableFeature(chrome::android::kTabStripIncognitoMigration);
+ // feature_overrides.EnableFeature(feed::kAndroidOpenIncognitoAsWindow);
+ // feature_overrides.EnableFeature(chrome::android::kTabStripIncognitoMigration);
// TODO(crbug.com/427242080): Remove when tablet rollout is complete.
- feature_overrides.EnableFeature(
- chrome::android::kAndroidPinnedTabsTabletTabStrip);
+ // feature_overrides.EnableFeature(
+ // chrome::android::kAndroidPinnedTabsTabletTabStrip);
// Three flags are required for the bookmarks bar feature.
// TODO(crbug.com/430059235): Remove once feature is launched to 100% on all
- // form factors.
- feature_overrides.EnableFeature(chrome::android::kAndroidBookmarkBar);
- feature_overrides.EnableFeature(chrome::android::kAndroidAppearanceSettings);
- feature_overrides.EnableFeature(chrome::android::kTopControlsRefactor);
+ // // form factors.
+ // feature_overrides.EnableFeature(chrome::android::kAndroidBookmarkBar);
+ // feature_overrides.EnableFeature(chrome::android::kAndroidAppearanceSettings);
+ // feature_overrides.EnableFeature(chrome::android::kTopControlsRefactor);
// Enable ANGLE/Vulkan features.
// TODO (crbug.com//376280554): Enable these features with runtime checks
// instead.
- feature_overrides.EnableFeature(::features::kSkipVulkanBlocklist);
- feature_overrides.EnableFeature(::features::kDefaultANGLEVulkan);
- feature_overrides.EnableFeature(::features::kVulkanFromANGLE);
- feature_overrides.EnableFeature(::features::kDefaultPassthroughCommandDecoder);
+ // feature_overrides.EnableFeature(::features::kSkipVulkanBlocklist);
+ // feature_overrides.EnableFeature(::features::kDefaultANGLEVulkan);
+ // feature_overrides.EnableFeature(::features::kVulkanFromANGLE);
+ // feature_overrides.EnableFeature(::features::kDefaultPassthroughCommandDecoder);
// Enable site-per-process by default for desktop platforms.
// TODO(crbug.com/453856709): Remove when we determine how to ensure
// SitePerProcess is enabled for all necessary or eligible Android devices.
- feature_overrides.EnableFeature(::features::kSitePerProcess);
+ // feature_overrides.EnableFeature(::features::kSitePerProcess);
// Enable all tabs to have WebContents at all times for desktop platforms.
// TODO(crbug.com/448420873): Remove once we enable this feature for all form
// factors. This is currently blocked by performance regressions on low-end
// Android devices.
- feature_overrides.EnableFeature(features::kWebContentsDiscard);
- feature_overrides.EnableFeature(features::kLazyBrowserInterfaceBroker);
- feature_overrides.EnableFeature(chrome::android::kTabFreezingUsesDiscard);
- feature_overrides.EnableFeature(chrome::android::kLoadAllTabsAtStartup);
+ // feature_overrides.EnableFeature(features::kWebContentsDiscard);
+ // feature_overrides.EnableFeature(features::kLazyBrowserInterfaceBroker);
+ // feature_overrides.EnableFeature(chrome::android::kTabFreezingUsesDiscard);
+ // feature_overrides.EnableFeature(chrome::android::kLoadAllTabsAtStartup);
// Enable the ability for extensions to override chrome pages.
// TODO(crbug.com/404069963): Remove flag when the feature is verified to be
@@ -275,7 +275,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
// Enables the ability to specify a platform-specific zoom scaling that will
// apply transparently to all pages.
// TODO(crbug.com/450281745): Remove once feature is enabled by default.
- feature_overrides.EnableFeature(::features::kAndroidDesktopZoomScaling);
+ // feature_overrides.EnableFeature(::features::kAndroidDesktopZoomScaling);
#endif // BUILDFLAG(IS_DESKTOP_ANDROID)
// Desktop-first features which are past incubation should either end up here,
// or to a finch trial that enables it for all form factors.
diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/browser/chrome_browser_interface_binders_webui.cc
--- a/chrome/browser/chrome_browser_interface_binders_webui.cc
+++ b/chrome/browser/chrome_browser_interface_binders_webui.cc
@@ -41,7 +41,7 @@
#include "mojo/public/cpp/bindings/binder_map.h"
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
#include "chrome/browser/ui/webui/discards/discards.mojom.h"
#include "chrome/browser/ui/webui/discards/discards_ui.h"
#include "chrome/browser/ui/webui/discards/site_data.mojom.h"
@@ -139,7 +139,7 @@ void PopulateChromeWebUIFrameBinders(
#endif // BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
RegisterWebUIControllerInterfaceBinder<discards::mojom::DetailsProvider,
DiscardsUI>(map);
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -4270,7 +4270,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
// TODO(wenz): This should instead proceed with the selected certificate
// when there are matching certificates in the OS.
#if BUILDFLAG(ENABLE_EXTENSIONS) && \
- !(BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID))
+ !(BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE))
if (matching_certificates.empty() && nonmatching_certificates.empty()) {
extensions::ProcessMap* process_map =
extensions::ProcessMap::Get(profile);
@@ -4499,7 +4499,7 @@ void ChromeContentBrowserClient::OverrideWebPreferences(
// Fill font preferences. These are not registered on Android unless we're built
// with extensions (the chrome.fontSettings API can change these).
// - http://crbug.com/308033, http://crbug.com/696364.
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// Enabling the FontFamilyCache needs some KeyedService that might not be
// available for some irregular profiles, like the System Profile.
if (!AreKeyedServicesDisabledForProfileByDefault(profile)) {
diff --git a/chrome/browser/devtools/BUILD.gn b/chrome/browser/devtools/BUILD.gn
--- a/chrome/browser/devtools/BUILD.gn
+++ b/chrome/browser/devtools/BUILD.gn
@@ -345,7 +345,7 @@ static_library("devtools") {
}
}
- if (!is_android || enable_desktop_android_extensions) {
+ if (!is_android || enable_desktop_android_extensions_cromite) {
sources += [
"global_confirm_info_bar.cc",
"global_confirm_info_bar.h",
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -742,7 +742,7 @@ bool ChromeDownloadManagerDelegate::DetermineDownloadTarget(
DownloadPathReservationTracker::FilenameConflictAction action =
kDefaultPlatformConflictAction;
#if BUILDFLAG(IS_ANDROID)
- if (base::android::device_info::is_desktop()) {
+ if (base::android::device_info::is_desktop_false()) {
action = DownloadPathReservationTracker::UNIQUIFY;
}
diff --git a/chrome/browser/download/download_offline_content_provider.cc b/chrome/browser/download/download_offline_content_provider.cc
--- a/chrome/browser/download/download_offline_content_provider.cc
+++ b/chrome/browser/download/download_offline_content_provider.cc
@@ -46,7 +46,7 @@
#include "content/public/common/content_features.h"
#include "ui/base/device_form_factor.h"
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
#include "chrome/browser/download/download_core_service.h"
#include "chrome/browser/download/download_core_service_factory.h"
#endif
@@ -490,7 +490,7 @@ void DownloadOfflineContentProvider::OnDownloadUpdated(DownloadItem* item) {
return;
}
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// On desktop Android, the extensions chrome.download.setUiOptions() function
// can disable UI updates.
// TODO(crbug.com/459823225): Expand the IsDangerous() check to other
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -1735,7 +1735,7 @@ source_set("chrome_extensions_browser_client") {
"//extensions/browser/updater:keepalive",
]
- if (enable_desktop_android_extensions) {
+ if (enable_desktop_android_extensions_cromite) {
sources += [ "chrome_extensions_browser_client_android.cc" ]
deps += [
@@ -1750,6 +1750,16 @@ source_set("chrome_extensions_browser_client") {
"//extensions/browser",
"//extensions/browser/kiosk",
]
+
+ ### Extensions API module start
+ sources += [
+ "api/adblock_private/adblock_private_api.cc",
+ "api/adblock_private/adblock_private_api.h",
+ "api/eyeo_filtering_private/eyeo_filtering_private_api.cc",
+ "api/eyeo_filtering_private/eyeo_filtering_private_api.h",
+ ]
+
+ deps += [ "//components/adblock/content:browser" ]
}
if (enable_extensions) {
diff --git a/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc b/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc
--- a/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc
+++ b/chrome/browser/extensions/api/chrome_extensions_api_client_android.cc
@@ -15,7 +15,7 @@
// The stubs are implemented here instead of falling back to ExtensionsAPIClient
// to allow NOTIMPLEMENTED() logging and a place to put TODOs with bug IDs.
-static_assert(BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS));
+static_assert(BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE));
namespace extensions {
diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
--- a/chrome/browser/extensions/extension_management.cc
+++ b/chrome/browser/extensions/extension_management.cc
@@ -178,8 +178,12 @@ ManagedInstallationMode ExtensionManagement::GetInstallationMode(
update_url ? *update_url : std::string());
}
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const {
+ if ((true)) {
+ return base::FeatureList::IsEnabled(
+ extensions_features::kEnableExtensionsAndroid);
+ }
// If Finch has enabled extensions for corp, allow them.
if (base::FeatureList::IsEnabled(
extensions_features::kEnableExtensionsForCorpDesktopAndroid)) {
@@ -202,7 +206,7 @@ bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const {
ManagedInstallationMode ExtensionManagement::GetInstallationMode(
const ExtensionId& extension_id,
const std::string& update_url) {
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// Block extensions for managed profiles on Desktop Android. This is
// temporary until extensions are ready for dogfooding.
// TODO(crbug.com/422307625): Remove this check once extensions are ready for
diff --git a/chrome/browser/extensions/extension_management.h b/chrome/browser/extensions/extension_management.h
--- a/chrome/browser/extensions/extension_management.h
+++ b/chrome/browser/extensions/extension_management.h
@@ -107,7 +107,7 @@ class ExtensionManagement : public KeyedService,
// from the command line, or when loaded as an unpacked extension).
bool BlocklistedByDefault() const;
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// Checks if extensions are enabled for Desktop Android for the current
// profile. This is temporary for until extensions are ready for dogfooding.
// TODO(crbug.com/422307625): Remove this check once extensions are ready for
diff --git a/chrome/browser/extensions/extension_util.cc b/chrome/browser/extensions/extension_util.cc
--- a/chrome/browser/extensions/extension_util.cc
+++ b/chrome/browser/extensions/extension_util.cc
@@ -51,6 +51,10 @@
#include "chromeos/ash/components/file_manager/app_id.h"
#endif
+#if BUILDFLAG(IS_ANDROID)
+#include "extensions/common/extension_features.h"
+#endif
+
static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
namespace extensions::util {
@@ -351,6 +355,13 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
bool AreExtensionsDisabled(const base::CommandLine& command_line,
content::BrowserContext* context) {
+#if BUILDFLAG(IS_ANDROID)
+ if (!base::FeatureList::IsEnabled(
+ extensions_features::kEnableExtensionsAndroid)) {
+ LOG(INFO) << "Extensions are disabled";
+ return true;
+ }
+#endif
Profile* profile = Profile::FromBrowserContext(context);
return ExtensionsDisabledViaCommandLine(command_line) ||
profile->GetPrefs()->GetBoolean(prefs::kDisableExtensions);
diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java
--- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java
+++ b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java
@@ -36,7 +36,7 @@ class DeviceInfoFeedbackSource implements FeedbackSource {
type = TYPE_AUTO;
} else if (DeviceInfo.isXr()) {
type = TYPE_XR;
- } else if (DeviceInfo.isDesktop()) {
+ } else if (DeviceInfo.isDesktopFalse()) {
type = TYPE_DESKTOP;
} else if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(
ContextUtils.getApplicationContext())) {
diff --git a/chrome/browser/media/router/BUILD.gn b/chrome/browser/media/router/BUILD.gn
--- a/chrome/browser/media/router/BUILD.gn
+++ b/chrome/browser/media/router/BUILD.gn
@@ -261,7 +261,7 @@ static_library("test_support") {
deps = []
sources = []
- if (!is_android || is_desktop_android) {
+ if (!is_android || is_desktop_android_cromite) {
deps += [
"//base",
"//chrome/browser/media/router/discovery",
@@ -412,7 +412,7 @@ source_set("unittests") {
}
# Traditional desktop platforms and desktop android with extensions support.
- if (!is_android || enable_desktop_android_extensions) {
+ if (!is_android) { # || enable_desktop_android_extensions) {
deps += [ "//chrome/browser/media/router/discovery:test_support" ]
}
diff --git a/chrome/browser/media/router/discovery/BUILD.gn b/chrome/browser/media/router/discovery/BUILD.gn
--- a/chrome/browser/media/router/discovery/BUILD.gn
+++ b/chrome/browser/media/router/discovery/BUILD.gn
@@ -4,7 +4,7 @@
import("//build/config/chrome_build.gni")
-assert(!is_android || is_desktop_android, "Not supported on mobile")
+assert(!is_android || is_desktop_android_cromite, "Not supported on mobile")
assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome")
static_library("discovery") {
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
--- a/chrome/browser/media/router/media_router_feature.cc
+++ b/chrome/browser/media/router/media_router_feature.cc
@@ -30,7 +30,7 @@
#include "extensions/buildflags/buildflags.h"
#include "ui/base/buildflags.h"
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
#include "components/prefs/pref_registry_simple.h"
#endif
@@ -43,7 +43,7 @@
namespace media_router {
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
BASE_FEATURE(kMediaRouter, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kCastAllowAllIPsFeature,
"CastAllowAllIPs",
@@ -87,7 +87,7 @@ base::flat_map<content::BrowserContext*, bool>& GetStoredPrefValues() {
return *stored_pref_values;
}
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
// TODO(mfoltz): Add full implementation for validating playout delay value.
bool IsValidMirroringPlayoutDelayMs(int delay_ms) {
return delay_ms <= 1000 && delay_ms >= 1;
@@ -102,7 +102,7 @@ void ClearMediaRouterStoredPrefsForTesting() {
bool MediaRouterEnabled(content::BrowserContext* context) {
if ((true)) return false;
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
if (!base::FeatureList::IsEnabled(kMediaRouter)) {
return false;
}
@@ -137,7 +137,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
return true;
}
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kMediaRouterCastAllowAllIPs, false,
PrefRegistry::PUBLIC);
diff --git a/chrome/browser/media/router/media_router_feature.h b/chrome/browser/media/router/media_router_feature.h
--- a/chrome/browser/media/router/media_router_feature.h
+++ b/chrome/browser/media/router/media_router_feature.h
@@ -27,7 +27,7 @@ bool MediaRouterEnabled(content::BrowserContext* context);
// process.
void ClearMediaRouterStoredPrefsForTesting();
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
// Enables the media router. Can be disabled in tests unrelated to
// Media Router where it interferes. Can also be useful to disable for local
// development on Mac because DIAL local discovery opens a local port
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc b/chrome/browser/media/webrtc/webrtc_event_log_manager.cc
--- a/chrome/browser/media/webrtc/webrtc_event_log_manager.cc
+++ b/chrome/browser/media/webrtc/webrtc_event_log_manager.cc
@@ -113,7 +113,7 @@ class PeerConnectionTrackerProxyImpl
// necessarily for any given user profile.
// Certain platforms (mobile) are blocked from remote-bound logging.
bool IsRemoteLoggingFeatureEnabled() {
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
bool enabled = false;
#else
bool enabled = true;
@@ -463,7 +463,7 @@ WebRtcEventLogManager::CreateRemoteLogFileWriterFactory() {
if (remote_log_file_writer_factory_for_testing_) {
return std::move(remote_log_file_writer_factory_for_testing_);
} else {
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
return std::make_unique<GzippedLogFileWriterFactory>(
std::make_unique<GzipLogCompressorFactory>(
std::make_unique<DefaultGzippedSizeEstimator::Factory>()));
diff --git a/chrome/browser/policy/policy_value_and_status_aggregator.cc b/chrome/browser/policy/policy_value_and_status_aggregator.cc
--- a/chrome/browser/policy/policy_value_and_status_aggregator.cc
+++ b/chrome/browser/policy/policy_value_and_status_aggregator.cc
@@ -45,7 +45,7 @@
#include "chrome/browser/policy/status_provider/updater_status_and_value_provider.h"
#endif // BUILDFLAG(IS_WIN) && BUILDFLAG(GOOGLE_CHROME_BRANDING)
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#include "chrome/browser/policy/value_provider/extension_policies_value_provider.h"
#endif // BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -659,7 +659,7 @@ void ChromeBrowserMainExtraPartsProfiles::
chromeos_extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt();
#endif
extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt();
-#elif BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#elif BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
chrome_extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt();
// EnsureBrowserContextKeyedServiceFactoriesBuilt() is invoked before the
// ExtensionsBrowserClient is ready on Android. This is due to Android
diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc
--- a/chrome/browser/profiles/off_the_record_profile_impl.cc
+++ b/chrome/browser/profiles/off_the_record_profile_impl.cc
@@ -108,6 +108,8 @@
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#include "chrome/browser/extensions/extension_special_storage_policy.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
+#include "extensions/browser/api/web_request/extension_web_request_event_router.h"
+#include "extensions/browser/process_manager.h"
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -216,7 +218,10 @@ void OffTheRecordProfileImpl::Init() {
this, std::make_unique<extensions::ExtensionIconSource>(profile_));
#endif
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+ if (extensions::ProcessManager* process_manager = extensions::ProcessManager::Get(this)) {
+ process_manager->MaybeCreateStartupBackgroundHosts();
+ }
extensions::WebRequestEventRouter::OnOTRBrowserContextCreated(profile_, this);
#endif
@@ -275,7 +280,7 @@ OffTheRecordProfileImpl::~OffTheRecordProfileImpl() {
SimpleKeyMap::GetInstance()->Dissociate(this);
-#if BUILDFLAG(ENABLE_EXTENSIONS)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
extensions::WebRequestEventRouter::OnOTRBrowserContextDestroyed(profile_,
this);
#endif
diff --git a/chrome/browser/profiles/profile_destroyer.cc b/chrome/browser/profiles/profile_destroyer.cc
--- a/chrome/browser/profiles/profile_destroyer.cc
+++ b/chrome/browser/profiles/profile_destroyer.cc
@@ -28,7 +28,7 @@ namespace {
#if BUILDFLAG(IS_ANDROID)
// Set the render host waiting time to 5s on Android, that's the same
// as an "Application Not Responding" timeout.
-const int64_t kTimerDelaySeconds = 5;
+const int64_t kTimerDelaySeconds = 1;
#elif BUILDFLAG(IS_CHROMEOS)
// linux-chromeos-dbg is failing to destroy the profile in under 1 second
const int64_t kTimerDelaySeconds = 2;
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
@@ -126,7 +126,7 @@ group("resources") {
]
}
- if (is_win || is_mac || is_linux || is_chromeos || is_desktop_android) {
+ if (is_win || is_mac || is_linux || is_chromeos || is_desktop_android_cromite) {
public_deps += [ "discards:resources" ]
}
diff --git a/chrome/browser/resources/discards/BUILD.gn b/chrome/browser/resources/discards/BUILD.gn
--- a/chrome/browser/resources/discards/BUILD.gn
+++ b/chrome/browser/resources/discards/BUILD.gn
@@ -5,7 +5,7 @@
import("//ui/webui/resources/tools/build_webui.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
-assert(!is_android || is_desktop_android)
+assert(!is_android || is_desktop_android_cromite)
build_webui("build") {
grd_prefix = "discards"
diff --git a/chrome/browser/resources/extensions/detail_view.css b/chrome/browser/resources/extensions/detail_view.css
--- a/chrome/browser/resources/extensions/detail_view.css
+++ b/chrome/browser/resources/extensions/detail_view.css
@@ -212,3 +212,9 @@ extensions-toggle-row {
display: flex;
flex-direction: row;
}
+
+<if expr="is_android">
+.page-content {
+ width: 100% !important;
+}
+</if>
diff --git a/chrome/browser/resources/extensions/extensions.html b/chrome/browser/resources/extensions/extensions.html
--- a/chrome/browser/resources/extensions/extensions.html
+++ b/chrome/browser/resources/extensions/extensions.html
@@ -1,9 +1,15 @@
<!doctype html>
<html dir="$i18n{textdirection}" lang="$i18n{language}"
- class="loading $i18n{loadTimeClasses}">
+ class="loading $i18n{loadTimeClasses}"
+<if expr="is_android">
+ android
+</if>>
<head>
<meta charset="utf8">
<meta name="color-scheme" content="light dark">
+<if expr="is_android">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes">
+</if>
<title>$i18n{title}</title>
<base href="chrome://extensions">
<link rel="stylesheet" href="chrome://resources/css/md_colors.css">
diff --git a/chrome/browser/resources/extensions/item_list.css b/chrome/browser/resources/extensions/item_list.css
--- a/chrome/browser/resources/extensions/item_list.css
+++ b/chrome/browser/resources/extensions/item_list.css
@@ -10,7 +10,12 @@
.items-container,
#content-wrapper {
+<if expr="is_android">
+ --extensions-card-width: 90vw;
+</if>
+<if expr="not is_android">
--extensions-card-width: 400px;
+</if>
}
#container {
@@ -28,6 +33,12 @@
padding-top: 14px;
}
+<if expr="is_android">
+#content-wrapper {
+ padding: 0px !important;
+}
+</if>
+
.empty-list-message {
color: #6e6e6e;
font-size: 123%; /* Should be 16px when 100% is 13px. */
diff --git a/chrome/browser/resources/extensions/toolbar.html.ts b/chrome/browser/resources/extensions/toolbar.html.ts
--- a/chrome/browser/resources/extensions/toolbar.html.ts
+++ b/chrome/browser/resources/extensions/toolbar.html.ts
@@ -25,13 +25,6 @@ export function getHtml(this: ToolbarElement) {
aria-labelledby="devModeLabel">
</cr-toggle>
</div>
- <if expr="is_android">
- <picture slot="product-logo">
- <source media="(prefers-color-scheme: dark)"
- srcset="//resources/images/chrome_logo_dark.svg">
- <img srcset="images/product_logo.png" role="presentation">
- </picture>
- </if>
<div class="more-actions">
<span>$i18n{toolbarExtensionUpdateEnabled}
<span id="need-update" ?hidden="${!this.shouldShowRelaunchDialog}">$i18n{toolbarExtensionUpdateEnabledNeedRestart}</span>
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/ChromeProvidedSharingOptionsProviderBase.java
@@ -284,7 +284,7 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
}
private void maybeAddCollaborateFirstPartyOption() {
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
return;
}
FirstPartyOption option = createCollaborateFirstPartyOption();
@@ -316,7 +316,7 @@ public abstract class ChromeProvidedSharingOptionsProviderBase {
private void maybeAddPrintFirstPartyOption() {
// For the desktop case, the Print action will be showed in the main menu.
- if (!DeviceInfo.isDesktop()
+ if (!DeviceInfo.isDesktopFalse()
&& mTabProvider.get() != null
&& UserPrefs.get(mProfile).getBoolean(Pref.PRINTING_ENABLED)) {
mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption());
diff --git a/chrome/browser/startup_data.cc b/chrome/browser/startup_data.cc
--- a/chrome/browser/startup_data.cc
+++ b/chrome/browser/startup_data.cc
@@ -51,7 +51,7 @@
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h"
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
#include "chrome/browser/extensions/chrome_extensions_browser_client.h"
#include "extensions/browser/extensions_browser_client.h"
#endif
@@ -163,7 +163,7 @@ StartupData::TakeProtoDatabaseProvider() {
void StartupData::PreProfilePrefServiceInit() {
pref_registry_ = base::MakeRefCounted<user_prefs::PrefRegistrySyncable>();
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// On desktop Android the ExtensionsBrowserClient is created here because it
// must be initialized before BrowserContextKeyedServiceFactories are built.
// Some factories use ExtensionsBrowserClient::Get() in their DependsOn().
@@ -243,7 +243,7 @@ void StartupData::CreateServicesInternal() {
}
#endif
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
std::unique_ptr<extensions::ExtensionsBrowserClient>
StartupData::TakeExtensionsBrowserClient() {
return std::move(extensions_browser_client_);
diff --git a/chrome/browser/startup_data.h b/chrome/browser/startup_data.h
--- a/chrome/browser/startup_data.h
+++ b/chrome/browser/startup_data.h
@@ -12,7 +12,7 @@
#include "components/leveldb_proto/public/proto_database_provider.h"
#include "extensions/buildflags/buildflags.h"
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
namespace extensions {
class ExtensionsBrowserClient;
}
@@ -92,7 +92,7 @@ class StartupData {
TakeProtoDatabaseProvider();
#endif
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// Passes ownership of the `extensions_browser_client_` to the caller.
std::unique_ptr<extensions::ExtensionsBrowserClient>
TakeExtensionsBrowserClient();
@@ -120,7 +120,7 @@ class StartupData {
std::unique_ptr<leveldb_proto::ProtoDatabaseProvider> proto_db_provider_;
#endif
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
std::unique_ptr<extensions::ExtensionsBrowserClient>
extensions_browser_client_;
#endif
diff --git a/chrome/browser/task_manager/common/task_manager_features.cc b/chrome/browser/task_manager/common/task_manager_features.cc
--- a/chrome/browser/task_manager/common/task_manager_features.cc
+++ b/chrome/browser/task_manager/common/task_manager_features.cc
@@ -11,7 +11,7 @@ namespace features {
#if BUILDFLAG(IS_ANDROID)
// Enables the Task Manager on Clank.
BASE_FEATURE(kTaskManagerClank,
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -672,7 +672,7 @@ static_library("ui") {
"//v8:v8_version",
]
- if (!is_android || is_desktop_android) {
+ if (!is_android || is_desktop_android_cromite) {
sources += [
"browser_navigator.h",
"incognito_allowed_url.cc",
@@ -687,7 +687,7 @@ static_library("ui") {
]
# Desktop-Android-only dependencies.
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
sources += [ "//chrome/browser/ui/android/browser_navigator_android.cc" ]
deps += [
"//chrome/browser/ui/android/extensions/windowing/internal",
@@ -2912,7 +2912,7 @@ static_library("ui") {
allow_circular_includes_from += [ "//chrome/browser/ui/wallet" ]
}
- if (is_win || is_mac || is_linux || is_chromeos || is_desktop_android) {
+ if (is_win || is_mac || is_linux || is_chromeos || is_desktop_android_cromite) {
sources += [
"webui/discards/discards_ui.cc",
"webui/discards/discards_ui.h",
diff --git a/chrome/browser/ui/android/context_menu_helper.cc b/chrome/browser/ui/android/context_menu_helper.cc
--- a/chrome/browser/ui/android/context_menu_helper.cc
+++ b/chrome/browser/ui/android/context_menu_helper.cc
@@ -24,7 +24,7 @@
#include "ui/gfx/geometry/size.h"
#include "url/gurl.h"
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
#include "chrome/browser/extensions/extension_menu_model_android.h"
#include "ui/menus/simple_menu_model.h"
#endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
@@ -45,7 +45,7 @@ ContextMenuHelper::ContextMenuHelper(content::WebContents* web_contents)
}
ContextMenuHelper::~ContextMenuHelper() {
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
extension_menu_model_.reset();
#endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
JNIEnv* env = base::android::AttachCurrentThread();
@@ -59,7 +59,7 @@ void ContextMenuHelper::ShowContextMenu(
context_menu_params_ = params;
gfx::NativeView view = GetWebContents().GetNativeView();
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// Reset any previous menu model, in case a new menu is shown
// before the old one was gracefully closed.
extension_menu_model_.reset();
@@ -82,11 +82,17 @@ void ContextMenuHelper::ShowContextMenu(
}
void ContextMenuHelper::DismissContextMenu() {
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
+ extension_menu_model_.reset();
+#endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
JNIEnv* env = base::android::AttachCurrentThread();
Java_ContextMenuHelper_dismissContextMenu(env, java_obj_);
}
void ContextMenuHelper::OnContextMenuClosed(JNIEnv* env) {
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
+ extension_menu_model_.reset();
+#endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
GetWebContents().NotifyContextMenuClosed(context_menu_params_.link_followed,
context_menu_params_.impression);
}
diff --git a/chrome/browser/ui/android/context_menu_helper.h b/chrome/browser/ui/android/context_menu_helper.h
--- a/chrome/browser/ui/android/context_menu_helper.h
+++ b/chrome/browser/ui/android/context_menu_helper.h
@@ -14,7 +14,7 @@
#include "extensions/buildflags/buildflags.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
namespace extensions {
class ExtensionMenuModel;
}
@@ -53,7 +53,7 @@ class ContextMenuHelper
content::ContextMenuParams context_menu_params_;
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
std::unique_ptr<extensions::ExtensionMenuModel> extension_menu_model_;
#endif // BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
diff --git a/chrome/browser/ui/android/desktop_site/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteUtils.java b/chrome/browser/ui/android/desktop_site/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteUtils.java
--- a/chrome/browser/ui/android/desktop_site/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteUtils.java
+++ b/chrome/browser/ui/android/desktop_site/java/src/org/chromium/chrome/browser/desktop_site/DesktopSiteUtils.java
@@ -115,7 +115,7 @@ public class DesktopSiteUtils {
*/
static boolean shouldDefaultEnableGlobalSetting(double displaySizeInInches, Context context) {
// Desktop Android always requests desktop sites.
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopFalse()) {
return true;
}
@@ -195,7 +195,7 @@ public class DesktopSiteUtils {
boolean isOnExternalDisplay = isOnExternalDisplay(activity);
if (isOnExternalDisplay
|| smallestScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP
- || DeviceInfo.isDesktop()) {
+ || DeviceInfo.isDesktopFalse()) {
return;
}
PrefService prefService = UserPrefs.get(profile);
diff --git a/chrome/browser/ui/android/extensions/BUILD.gn b/chrome/browser/ui/android/extensions/BUILD.gn
--- a/chrome/browser/ui/android/extensions/BUILD.gn
+++ b/chrome/browser/ui/android/extensions/BUILD.gn
@@ -78,8 +78,8 @@ if (enable_extensions_core) {
# BuildConfig.
java_cpp_template("generate_buildflags") {
sources = [ "java/templates/ExtensionsBuildflags.template" ]
- if (enable_desktop_android_extensions) {
- defines = [ "_ENABLE_DESKTOP_ANDROID_EXTENSIONS" ]
+ if (enable_desktop_android_extensions_cromite) {
+ defines = [ "_ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE" ]
}
}
diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc b/chrome/browser/ui/android/extensions/extension_actions_bridge.cc
--- a/chrome/browser/ui/android/extensions/extension_actions_bridge.cc
+++ b/chrome/browser/ui/android/extensions/extension_actions_bridge.cc
@@ -8,11 +8,14 @@
#include <variant>
#include "base/android/jni_string.h"
+#include "base/files/file_util.h"
+#include "base/task/thread_pool.h"
#include "chrome/browser/extensions/extension_action_runner.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/android/extensions/extension_actions_bridge_factory.h"
#include "chrome/browser/ui/extensions/icon_with_badge_image_source.h"
#include "content/public/browser/web_contents.h"
+#include "extensions/common/constants.h"
#include "extensions/browser/extension_action.h"
#include "extensions/browser/extension_action_manager.h"
#include "extensions/browser/extension_registry.h"
@@ -203,6 +206,26 @@ ExtensionAction::ShowAction ExtensionActionsBridge::RunAction(
return runner->RunAction(extension, /*grant_tab_permissions=*/true);
}
+void ExtensionActionsBridge::ClearExtensionData(JNIEnv* env) {
+ auto install_directory = profile_->GetPath().AppendASCII(kInstallDirectoryName);
+ auto install_updacked_directory = profile_->GetPath().AppendASCII(kInstallDirectoryName);
+
+ base::ThreadPool::PostTask(
+ FROM_HERE, {base::MayBlock(), base::TaskPriority::USER_BLOCKING},
+ base::BindOnce(
+ [](const base::FilePath& install_directory,
+ const base::FilePath& install_updacked_directory) {
+ LOG(INFO) << "Removing " << install_directory;
+ if (!base::DeletePathRecursively(install_directory))
+ LOG(ERROR) << "Failed";
+
+ LOG(INFO) << "Removing " << install_updacked_directory;
+ if (!base::DeletePathRecursively(install_updacked_directory))
+ LOG(ERROR) << "Failed";
+ },
+ install_directory, install_updacked_directory));
+}
+
jni_zero::ScopedJavaLocalRef<jobject>
ExtensionActionsBridge::HandleKeyDownEvent(
JNIEnv* env,
diff --git a/chrome/browser/ui/android/extensions/extension_actions_bridge.h b/chrome/browser/ui/android/extensions/extension_actions_bridge.h
--- a/chrome/browser/ui/android/extensions/extension_actions_bridge.h
+++ b/chrome/browser/ui/android/extensions/extension_actions_bridge.h
@@ -53,6 +53,7 @@ class ExtensionActionsBridge : public ToolbarActionsModel::Observer,
const ToolbarActionsModel::ActionId& action_id,
int tab_id,
content::WebContents* web_contents);
+ void ClearExtensionData(JNIEnv* env);
jni_zero::ScopedJavaLocalRef<jobject> HandleKeyDownEvent(
JNIEnv* env,
const ui::KeyEventAndroid& key_event);
diff --git a/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml b/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml
--- a/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml
+++ b/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu.xml
@@ -49,6 +49,7 @@ found in the LICENSE file.
<View
android:id="@+id/extensions_menu_footer_divider"
+ android:visibility="gone"
android:layout_width="0dp"
android:layout_height="1dp"
app:layout_constraintTop_toBottomOf="@+id/extensions_menu_items"
diff --git a/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu_footer.xml b/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu_footer.xml
--- a/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu_footer.xml
+++ b/chrome/browser/ui/android/extensions/java/res/layout/extensions_menu_footer.xml
@@ -13,6 +13,7 @@ found in the LICENSE file.
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/extensions_menu_discover_extensions_button"
+ android:visibility="gone"
style="?android:attr/borderlessButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -29,6 +30,7 @@ found in the LICENSE file.
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/extensions_menu_manage_extensions_button"
+ android:visibility="gone"
style="?android:attr/borderlessButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@@ -43,4 +45,4 @@ found in the LICENSE file.
android:drawableTint="?android:attr/textColorPrimary"
android:gravity="start|center_vertical"/>
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/chrome/browser/ui/android/extensions/java/res/values/dimens.xml b/chrome/browser/ui/android/extensions/java/res/values/dimens.xml
--- a/chrome/browser/ui/android/extensions/java/res/values/dimens.xml
+++ b/chrome/browser/ui/android/extensions/java/res/values/dimens.xml
@@ -13,4 +13,5 @@ found in the LICENSE file.
toolbar UI with the assumption that the UI is usable with the width.
-->
<dimen name="extension_toolbar_baseline_width">600dp</dimen>
+ <dimen name="extension_toolbar_baseline_min_width">50dp</dimen>
</resources>
diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java
--- a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java
+++ b/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/browser/ui/extensions/ExtensionActionsBridge.java
@@ -240,6 +240,10 @@ public class ExtensionActionsBridge {
void onActionIconUpdated(String actionId);
}
+ public void clearExtensionData() {
+ ExtensionActionsBridgeJni.get().clearExtensionData(mNativeExtensionActionsBridge);
+ }
+
@NativeMethods
public interface Natives {
boolean extensionsEnabled(@JniType("Profile*") Profile profile);
@@ -272,6 +276,8 @@ public class ExtensionActionsBridge {
int tabId,
@JniType("content::WebContents*") WebContents webContents);
+ void clearExtensionData(long nativeExtensionActionsBridge);
+
HandleKeyEventResult handleKeyDownEvent(
long nativeExtensionActionsBridge,
@JniType("ui::KeyEventAndroid") KeyEvent keyEvent);
diff --git a/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn b/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn
--- a/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn
+++ b/chrome/browser/ui/android/extensions/windowing/internal/BUILD.gn
@@ -6,7 +6,7 @@ import("//build/config/android/rules.gni")
import("//build/config/chrome_build.gni")
import("//third_party/jni_zero/jni_zero.gni")
-assert(is_desktop_android)
+assert(is_desktop_android_cromite)
source_set("internal") {
sources = [
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Enable-extensions-Android.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Enable-extensions-Android.grdp
new file mode 100644
--- /dev/null
+++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Enable-extensions-Android.grdp
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+ <message name="IDS_STORAGE_MANAGEMENT_EXTENSION_STORAGE_DESCRIPTION" desc="Text used to describe extension storage space used by Chrome.">
+ Total data used by extensions
+ </message>
+ <message name="IDS_STORAGE_MANAGEMENT_CLEAR_ALL_EXTENSION_BUTTON" desc="Text on the button to clear all extension data. [CHAR_LIMIT=30]">
+ Clear All Extensions Data
+ </message>
+ <message name="IDS_STORAGE_MANAGEMENT_EXTENSION_RESET_APP_DIALOG_TITLE" desc="Title of the reset extension dialog in the storage UI used to reset the app.">
+ Delete extension data?
+ </message>
+ <message name="IDS_STORAGE_MANAGEMENT_EXTENSION_RESET_APP_DIALOG_TEXT" desc="Text of the reset extension dialoag in the storage UI.">
+ All Chromes extension data will be deleted permanently.
+ </message>
+</grit-part>
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Extensions-Android.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Extensions-Android.grdp
new file mode 100644
--- /dev/null
+++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Extensions-Android.grdp
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+ <message name="IDS_ANDROID_EXTENSIONS_TITLE" desc="">
+ Enable Extensions
+ </message>
+ <message name="IDS_ANDROID_EXTENSIONS_SUMMARY" desc="">
+ Enable experimental support for extensions in Android
+ </message>
+</grit-part>
diff --git a/chrome/browser/ui/android/tab_model/BUILD.gn b/chrome/browser/ui/android/tab_model/BUILD.gn
--- a/chrome/browser/ui/android/tab_model/BUILD.gn
+++ b/chrome/browser/ui/android/tab_model/BUILD.gn
@@ -67,7 +67,7 @@ source_set("impl") {
"//ui/base:types",
]
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
deps += [
"//chrome/browser/ui/browser_window",
"//chrome/browser/ui/browser_window/internal",
@@ -97,7 +97,7 @@ source_set("test_support") {
"//chrome/browser/ui/android/tab_model",
]
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
deps += [ "//chrome/browser/ui/browser_window" ]
}
}
diff --git a/chrome/browser/ui/android/tab_model/tab_model.cc b/chrome/browser/ui/android/tab_model/tab_model.cc
--- a/chrome/browser/ui/android/tab_model/tab_model.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model.cc
@@ -20,7 +20,7 @@
#include "components/sync_sessions/session_sync_service.h"
#include "ui/base/unowned_user_data/scoped_unowned_user_data.h"
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck
#endif
@@ -53,7 +53,7 @@ sync_sessions::OpenTabsUIDelegate* GetOpenTabsUIDelegate(Profile* profile) {
// TODO(http://crbug.com/444518651): remove the if-def when
// |BrowserWindowInterface| is compiled into all Android builds.
SessionID GetInitialSessionId() {
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
return SessionID::InvalidValue();
#else
return SessionID::NewUnique();
@@ -162,7 +162,7 @@ void TabModel::RecordActualSyncedTabsHistogram() {
// TODO(http://crbug.com/444518651): remove the if-def when
// |BrowserWindowInterface| is compiled into all Android builds.
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
void TabModel::SetSessionId(SessionID session_id) {
session_id_ = session_id;
}
diff --git a/chrome/browser/ui/android/tab_model/tab_model.h b/chrome/browser/ui/android/tab_model/tab_model.h
--- a/chrome/browser/ui/android/tab_model/tab_model.h
+++ b/chrome/browser/ui/android/tab_model/tab_model.h
@@ -292,7 +292,7 @@ class TabModel : public TabListInterface {
LocationBarModel* GetLocationBarModel();
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// Sets the |SessionID|.
//
// This is only needed on desktop Android, where |BrowserWindowInterface|
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
--- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
@@ -45,7 +45,7 @@
// "chrome/browser/ui/browser_window" is available on desktop Android, but not
// other Android builds.
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
#include "chrome/browser/ui/browser_window/internal/android/android_browser_window.h" // nogncheck
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck
#include "chrome/browser/ui/browser_window/public/browser_window_interface_iterator.h" // nogncheck
@@ -78,7 +78,7 @@ std::vector<TabAndroid*> GetAllTabsFromHandles(
return tabs;
}
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
AndroidBrowserWindow* GetAndroidBrowserWindow(SessionID session_id) {
for (BrowserWindowInterface* window : GetAllBrowserWindowInterfaces()) {
if (window->GetSessionID() == session_id) {
@@ -117,7 +117,7 @@ void TabModelJniBridge::AssociateWithBrowserWindow(
long native_android_browser_window) {
// BrowserWindowInterface is available on desktop Android, but not other Android
// builds. For non-desktop Android, this function should be a no-op.
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
BrowserWindowInterface* android_browser_window =
reinterpret_cast<BrowserWindowInterface*>(native_android_browser_window);
CHECK(android_browser_window != nullptr);
@@ -153,7 +153,7 @@ void TabModelJniBridge::MoveTabToWindowForTesting(
TabAndroid* tab,
long android_browser_window_ptr,
int new_index) {
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
SessionID destination_window_id =
reinterpret_cast<AndroidBrowserWindow*>(android_browser_window_ptr)
->GetSessionID();
@@ -168,7 +168,7 @@ void TabModelJniBridge::MoveTabGroupToWindowForTesting(
const base::Token& group_id,
long android_browser_window_ptr,
int new_index) {
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
SessionID destination_window_id =
reinterpret_cast<AndroidBrowserWindow*>(android_browser_window_ptr)
->GetSessionID();
@@ -633,7 +633,7 @@ void TabModelJniBridge::MoveTabGroupToWindow(tab_groups::TabGroupId group_id,
ScopedJavaLocalRef<jobject> TabModelJniBridge::GetActivityForWindow(
SessionID window_id) {
ScopedJavaLocalRef<jobject> jactivity;
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
AndroidBrowserWindow* window = GetAndroidBrowserWindow(window_id);
if (!window) {
return jactivity;
diff --git a/chrome/browser/ui/android/tab_model/tab_model_test_helper.h b/chrome/browser/ui/android/tab_model/tab_model_test_helper.h
--- a/chrome/browser/ui/android/tab_model/tab_model_test_helper.h
+++ b/chrome/browser/ui/android/tab_model/tab_model_test_helper.h
@@ -105,7 +105,7 @@ class TestTabModel : public TabModel {
// BrowserWindowInterface is available on desktop Android, but not other Android
// builds.
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
void AssociateWithBrowserWindow(BrowserWindowInterface* browser_window);
#endif
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml
--- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml
+++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_phone.xml
@@ -65,6 +65,12 @@ found in the LICENSE file.
android:layout_width="52dp"
style="@style/ToolbarHoverableButton"/>
+ <ViewStub
+ android:id="@+id/extension_toolbar_container_stub"
+ android:inflatedId="@+id/extension_toolbar_container"
+ android:layout_width="56dp"
+ android:layout_height="match_parent" />
+
<org.chromium.chrome.browser.toolbar.top.ToggleTabStackButton
android:id="@+id/tab_switcher_button"
style="@style/ToolbarHoverableButton"
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionActionListContainer.java
@@ -54,7 +54,7 @@ class ExtensionActionListContainer extends ViewGroup {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// The parent passes the window width as the maximum width.
- assert MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.AT_MOST;
+ //assert MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.AT_MOST;
int remainingWidth =
MeasureSpec.getSize(widthMeasureSpec)
- getResources()
@@ -62,6 +62,12 @@ class ExtensionActionListContainer extends ViewGroup {
- getPaddingLeft()
- getPaddingRight();
+ // to be activated after 144 (missing pinned action support)
+ // if (remainingWidth < 0) {
+ // remainingWidth = getResources()
+ // .getDimensionPixelSize(R.dimen.extension_toolbar_baseline_min_width);
+ // }
+
int contentWidth = 0;
int contentHeight = 0;
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionToolbarCoordinatorImpl.java
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.toolbar.extensions;
import android.content.Context;
import android.view.KeyEvent;
+import android.view.View;
import android.view.ViewStub;
import android.widget.LinearLayout;
@@ -22,6 +23,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreator;
import org.chromium.chrome.browser.theme.ThemeColorProvider;
import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
import org.chromium.chrome.browser.ui.extensions.ExtensionActionsBridge;
+import org.chromium.chrome.browser.ui.extensions.ExtensionUi;
import org.chromium.chrome.browser.ui.extensions.R;
import org.chromium.ui.base.WindowAndroid;
@@ -54,6 +56,11 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina
extensionToolbarStub.setLayoutResource(R.layout.extension_toolbar_container);
LinearLayout container = (LinearLayout) extensionToolbarStub.inflate();
+ mProfileSupplier.addObserver((profile) -> {
+ if (!ExtensionUi.isEnabled(profileSupplier.get())) {
+ container.setVisibility(View.GONE);
+ }
+ });
mExtensionActionListCoordinator =
new ExtensionActionListCoordinator(
context,
@@ -71,7 +78,8 @@ public class ExtensionToolbarCoordinatorImpl implements ExtensionToolbarCoordina
taskSupplier,
profileSupplier,
currentTabSupplier,
- tabCreator);
+ tabCreator,
+ mExtensionActionListCoordinator);
}
@Override
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuCoordinator.java
@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreator;
import org.chromium.chrome.browser.theme.ThemeColorProvider;
import org.chromium.chrome.browser.toolbar.MenuBuilderHelper;
import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
+import org.chromium.chrome.browser.toolbar.extensions.ExtensionActionListCoordinator;
import org.chromium.chrome.browser.ui.extensions.R;
import org.chromium.chrome.browser.ui.theme.BrandedColorScheme;
import org.chromium.components.embedder_support.util.UrlConstants;
@@ -86,7 +87,8 @@ public class ExtensionsMenuCoordinator implements Destroyable {
OneshotSupplier<ChromeAndroidTask> taskSupplier,
ObservableSupplier<@Nullable Profile> profileSupplier,
ObservableSupplier<@Nullable Tab> currentTabSupplier,
- TabCreator tabCreator) {
+ TabCreator tabCreator,
+ ExtensionActionListCoordinator extensionActionListCoordinator) {
mContext = context;
mCurrentTabSupplier = currentTabSupplier;
mTabCreator = tabCreator;
@@ -129,6 +131,21 @@ public class ExtensionsMenuCoordinator implements Destroyable {
}
};
+ mExtensionsMenuButton.setDelegate(
+ new ListMenuDelegate() {
+ @Override
+ public RectProvider getRectProvider(
+ View listMenuHostingView) {
+ return MenuBuilderHelper.getRectProvider(
+ mExtensionsMenuButton);
+ }
+
+ @Override
+ public ListMenu getListMenu() {
+ return listMenu;
+ }
+ });
+
mMediator =
new ExtensionsMenuMediator(
mContext,
@@ -137,35 +154,14 @@ public class ExtensionsMenuCoordinator implements Destroyable {
mCurrentTabSupplier,
mExtensionModels,
() -> {
- mExtensionsMenuButton.setDelegate(
- new ListMenuDelegate() {
- @Override
- public RectProvider getRectProvider(
- View listMenuHostingView) {
- return MenuBuilderHelper.getRectProvider(
- mExtensionsMenuButton);
- }
-
- @Override
- public ListMenu getListMenu() {
- return listMenu;
- }
- });
- if (mShouldShowMenuOnInit) {
- if (mExtensionsMenuButton.getHost().isMenuShowing()) {
- mExtensionsMenuButton.dismiss();
- } else {
- mExtensionsMenuButton.showMenu();
- }
- mShouldShowMenuOnInit = false;
- }
},
(extensionsSupported) -> {
int visibility = extensionsSupported ? View.VISIBLE : View.GONE;
mExtensionsMenuButton.setVisibility(visibility);
mExtensionsMenuTabSwitcherDivider.setVisibility(visibility);
},
- mExtensionsMenuButton.getRootView());
+ mExtensionsMenuButton.getRootView(),
+ extensionActionListCoordinator);
}
private void openUrlFromMenu(String url) {
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemProperties.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemProperties.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemProperties.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemProperties.java
@@ -18,8 +18,11 @@ public class ExtensionsMenuItemProperties {
public static final WritableObjectPropertyKey<String> TITLE = new WritableObjectPropertyKey<>();
+ public static final WritableObjectPropertyKey<View.OnClickListener> ITEM_CLICK_LISTENER =
+ new WritableObjectPropertyKey<>();
+
public static final WritableObjectPropertyKey<View.OnClickListener> CLICK_LISTENER =
new WritableObjectPropertyKey<>();
- public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {ICON, TITLE, CLICK_LISTENER};
+ public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {ICON, TITLE, ITEM_CLICK_LISTENER, CLICK_LISTENER};
}
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuItemViewBinder.java
@@ -30,6 +30,8 @@ public class ExtensionsMenuItemViewBinder {
// TODO: Investigate the correct resizing method.
bitmap.setDensity(120);
iconView.setImageBitmap(bitmap);
+ } else if (key == ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER) {
+ view.setOnClickListener(model.get(ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER));
} else if (key == ExtensionsMenuItemProperties.CLICK_LISTENER) {
view.findViewById(R.id.extensions_menu_item_context_menu)
.setOnClickListener(model.get(ExtensionsMenuItemProperties.CLICK_LISTENER));
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/extensions/ExtensionsMenuMediator.java
@@ -19,6 +19,7 @@ import org.chromium.chrome.browser.extensions.ContextMenuSource;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
+import org.chromium.chrome.browser.toolbar.extensions.ExtensionActionListCoordinator;
import org.chromium.chrome.browser.ui.extensions.ExtensionAction;
import org.chromium.chrome.browser.ui.extensions.ExtensionActionContextMenuBridge;
import org.chromium.chrome.browser.ui.extensions.ExtensionActionsBridge;
@@ -44,6 +45,7 @@ class ExtensionsMenuMediator implements Destroyable {
private final ExtensionActionsUpdateHelper mExtensionActionsUpdateHelper;
private final Callback<@Nullable Profile> mProfileUpdatedCallback = this::onProfileUpdated;
private final View mRootView;
+ private final ExtensionActionListCoordinator mExtensionActionListCoordinator;
public ExtensionsMenuMediator(
Context context,
@@ -53,8 +55,10 @@ class ExtensionsMenuMediator implements Destroyable {
ModelList extensionModels,
Runnable onUpdateFinishedRunnable,
Callback<Boolean> onExtensionsAvailableCallback,
- View rootView) {
+ View rootView,
+ ExtensionActionListCoordinator extensionActionListCoordinator) {
mTaskSupplier = taskSupplier;
+ mExtensionActionListCoordinator = extensionActionListCoordinator;
mProfileSupplier = profileSupplier;
mProfileSupplier.addObserver(mProfileUpdatedCallback);
@@ -164,6 +168,9 @@ class ExtensionsMenuMediator implements Destroyable {
new PropertyModel.Builder(ExtensionsMenuItemProperties.ALL_KEYS)
.with(ExtensionsMenuItemProperties.TITLE, action.getTitle())
.with(ExtensionsMenuItemProperties.ICON, icon)
+ .with(
+ ExtensionsMenuItemProperties.ITEM_CLICK_LISTENER,
+ (view) -> mExtensionActionListCoordinator.click(actionId))
.with(
ExtensionsMenuItemProperties.CLICK_LISTENER,
(view) -> onPrimaryClick((ListMenuButton) view, actionId))
diff --git a/chrome/browser/ui/browser_navigator_params.cc b/chrome/browser/ui/browser_navigator_params.cc
--- a/chrome/browser/ui/browser_navigator_params.cc
+++ b/chrome/browser/ui/browser_navigator_params.cc
@@ -17,7 +17,7 @@
#include "chrome/browser/ui/browser.h"
#endif
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck
#endif
@@ -30,7 +30,7 @@ NavigateParams::NavigateParams(std::unique_ptr<WebContents> contents_to_insert)
: contents_to_insert(std::move(contents_to_insert)) {}
#endif
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
NavigateParams::NavigateParams(BrowserWindowInterface* a_browser,
const GURL& a_url,
ui::PageTransition a_transition)
diff --git a/chrome/browser/ui/browser_navigator_params.h b/chrome/browser/ui/browser_navigator_params.h
--- a/chrome/browser/ui/browser_navigator_params.h
+++ b/chrome/browser/ui/browser_navigator_params.h
@@ -76,7 +76,7 @@ struct NavigateParams {
std::unique_ptr<content::WebContents> contents_to_insert);
#endif
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
NavigateParams(BrowserWindowInterface* a_browser,
const GURL& a_url,
ui::PageTransition a_transition);
@@ -263,7 +263,7 @@ struct NavigateParams {
};
PathBehavior path_behavior = RESPECT;
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// [in] Specifies a BrowserWindowInterface object where the navigation
// could occur or the tab could be added. Navigate() is not obliged to
// use this BrowserWindowInterface if it is not compatible with the
diff --git a/chrome/browser/ui/browser_window/BUILD.gn b/chrome/browser/ui/browser_window/BUILD.gn
--- a/chrome/browser/ui/browser_window/BUILD.gn
+++ b/chrome/browser/ui/browser_window/BUILD.gn
@@ -4,7 +4,7 @@
import("//chrome/common/features.gni")
-assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android)
+assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android_cromite)
# This is the public interface for a browser window. Most features in
# //chrome/browser depend on this interface, and thus to prevent circular
diff --git a/chrome/browser/ui/browser_window/internal/BUILD.gn b/chrome/browser/ui/browser_window/internal/BUILD.gn
--- a/chrome/browser/ui/browser_window/internal/BUILD.gn
+++ b/chrome/browser/ui/browser_window/internal/BUILD.gn
@@ -4,7 +4,7 @@
import("//chrome/common/features.gni")
-assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android)
+assert(is_win || is_mac || is_linux || is_chromeos || is_desktop_android_cromite)
source_set("internal") {
sources = [ "create_browser_window.cc" ]
diff --git a/chrome/browser/ui/prefs/BUILD.gn b/chrome/browser/ui/prefs/BUILD.gn
--- a/chrome/browser/ui/prefs/BUILD.gn
+++ b/chrome/browser/ui/prefs/BUILD.gn
@@ -67,7 +67,7 @@ source_set("impl") {
}
}
-if (!is_android || enable_desktop_android_extensions) {
+if (!is_android || enable_desktop_android_extensions_cromite) {
source_set("browser_tests") {
testonly = true
defines = [ "HAS_OUT_OF_PROC_TEST_RUNNER" ]
@@ -85,7 +85,7 @@ if (!is_android || enable_desktop_android_extensions) {
"//third_party/blink/public/common:headers",
]
- if (enable_desktop_android_extensions) {
+ if (enable_desktop_android_extensions_cromite) {
deps += [ "//chrome/test:test_support_ui_android" ]
} else {
deps += [ "//chrome/test:test_support_ui" ]
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -78,7 +78,7 @@ using content::WebContents;
namespace {
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// Registers a preference under the path |pref_name| for each script used for
// per-script font prefs.
// For example, for WEBKIT_WEBPREFS_FONTS_SERIF ("fonts.serif"):
@@ -151,7 +151,7 @@ constexpr auto kFontDefaults = std::to_array<FontDefault>({
{prefs::kWebKitFantasyFontFamily, IDS_FANTASY_FONT_FAMILY},
{prefs::kWebKitMathFontFamily, IDS_MATH_FONT_FAMILY},
#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \
- BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+ BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
{prefs::kWebKitStandardFontFamilyJapanese,
IDS_STANDARD_FONT_FAMILY_JAPANESE},
{prefs::kWebKitFixedFontFamilyJapanese, IDS_FIXED_FONT_FAMILY_JAPANESE},
@@ -290,7 +290,7 @@ void OverrideFontFamily(blink::web_pref::WebPreferences* prefs,
(*map)[script] = base::UTF8ToUTF16(pref_value);
}
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
void RegisterLocalizedFontPref(user_prefs::PrefRegistrySyncable* registry,
const char* path,
int default_message_id) {
@@ -451,7 +451,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
}
// Register font prefs. This is only configurable on desktop Chrome.
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
RegisterFontFamilyPrefs(registry, fonts_with_defaults);
registry->RegisterIntegerPref(prefs::kWebKitDefaultFontSize, 16);
diff --git a/chrome/browser/ui/tabs/tab_list_interface.h b/chrome/browser/ui/tabs/tab_list_interface.h
--- a/chrome/browser/ui/tabs/tab_list_interface.h
+++ b/chrome/browser/ui/tabs/tab_list_interface.h
@@ -18,7 +18,7 @@
// BrowserWindowInterface is available on desktop Android, but not other Android
// builds.
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
class BrowserWindowInterface;
#endif
@@ -35,7 +35,7 @@ class TabListInterface {
TabListInterface(const TabListInterface& other) = delete;
void operator=(const TabListInterface& other) = delete;
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// Returns the TabListInterface associated with the given `browser`.
static TabListInterface* From(BrowserWindowInterface* browser);
#endif
diff --git a/chrome/browser/ui/webid/BUILD.gn b/chrome/browser/ui/webid/BUILD.gn
--- a/chrome/browser/ui/webid/BUILD.gn
+++ b/chrome/browser/ui/webid/BUILD.gn
@@ -37,7 +37,7 @@ source_set("webid") {
"//ui/base",
]
- if (!is_android || is_desktop_android) {
+ if (!is_android || is_desktop_android_cromite) {
deps += [ "//chrome/browser/ui/browser_window" ]
}
}
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
@@ -181,7 +181,7 @@
// BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
#include "chrome/browser/ui/webui/discards/discards_ui.h"
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
@@ -414,7 +414,7 @@ void RegisterChromeWebUIConfigs() {
// BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
map.AddWebUIConfig(std::make_unique<DiscardsUIConfig>());
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
diff --git a/chrome/browser/ui/webui/current_channel_logo.cc b/chrome/browser/ui/webui/current_channel_logo.cc
--- a/chrome/browser/ui/webui/current_channel_logo.cc
+++ b/chrome/browser/ui/webui/current_channel_logo.cc
@@ -26,7 +26,7 @@ int CurrentChannelLogoResourceId() {
case version_info::Channel::DEV:
case version_info::Channel::BETA:
case version_info::Channel::STABLE:
- NOTREACHED();
+ return IDR_PRODUCT_LOGO_32;
#endif
case version_info::Channel::UNKNOWN:
return IDR_PRODUCT_LOGO_32;
diff --git a/chrome/browser/ui/webui/discards/discards_ui.cc b/chrome/browser/ui/webui/discards/discards_ui.cc
--- a/chrome/browser/ui/webui/discards/discards_ui.cc
+++ b/chrome/browser/ui/webui/discards/discards_ui.cc
@@ -60,7 +60,7 @@
#include "url/gurl.h"
#include "url/origin.h"
-#if !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
#include "chrome/browser/resource_coordinator/lifecycle_unit.h"
#include "chrome/browser/resource_coordinator/lifecycle_unit_state.mojom.h"
#include "chrome/browser/resource_coordinator/tab_lifecycle_unit.h"
@@ -240,7 +240,7 @@ class DiscardsDetailsProviderImpl
info->site_engagement_score = GetSiteEngagementScore(contents);
info->has_focus = page_node->IsFocused();
-#if !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
auto* lifecycle_unit_external = resource_coordinator::
TabLifecycleUnitSource::GetTabLifecycleUnitExternal(contents);
// A TabLifecycleUnitExternal object is always a TabLifecycleUnit object.
@@ -353,7 +353,7 @@ class DiscardsDetailsProviderImpl
}
void RefreshPerformanceTabCpuMeasurements() override {
-#if !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
performance_manager::user_tuning::PerformanceDetectionManager::GetInstance()
->ForceTabCpuDataRefresh();
#endif // !BUILDFLAG(IS_DESKTOP_ANDROID)
@@ -375,7 +375,7 @@ DiscardsUI::DiscardsUI(content::WebUI* web_ui)
profile, chrome::kChromeUIDiscardsHost);
bool demoModeEnabled = false;
-#if !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
demoModeEnabled = base::FeatureList::IsEnabled(
performance_manager::features::kPerformanceInterventionDemoMode);
#endif // !BUILDFLAG(IS_DESKTOP_ANDROID)
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -513,7 +513,7 @@ template("chrome_extra_paks") {
deps += [ "//chrome/browser/resources/app_settings:resources" ]
}
- if (is_win || is_mac || is_linux || is_chromeos || is_desktop_android) {
+ if (is_win || is_mac || is_linux || is_chromeos || is_desktop_android_cromite) {
sources += [ "$root_gen_dir/chrome/discards_resources.pak" ]
deps += [ "//chrome/browser/resources/discards:resources" ]
}
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -802,7 +802,7 @@ const char kMarketUrlForTesting[] = "market-url-for-testing";
const char kRequestDesktopSites[] = "request-desktop-sites";
#endif // BUILDFLAG(IS_ANDROID)
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
// If enabled, overrides the target playout delay for a casting mirroring
// session. The value will be parsed as milliseconds. Lowering this value will
// result in a lower end to end latency, but could come at the cost of other
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
@@ -238,7 +238,7 @@ extern const char kMarketUrlForTesting[];
extern const char kRequestDesktopSites[];
#endif // BUILDFLAG(IS_ANDROID)
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
extern const char kCastMirroringTargetPlayoutDelay[];
#endif
diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extensions/api/api_sources.gni
--- a/chrome/common/extensions/api/api_sources.gni
+++ b/chrome/common/extensions/api/api_sources.gni
@@ -66,6 +66,13 @@ uncompiled_sources_ = [
"top_sites.json",
]
+if (enable_extensions_core && is_android) {
+ uncompiled_sources_ += [
+ "browser_action.json",
+ "page_action.json",
+ ]
+}
+
# Some APIs (e.g. cookies) rely on types and headers from other APIs.
types_only_schema_sources_ = []
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
@@ -207,7 +207,7 @@ base::span<const base::cstring_view> ChromeURLHosts() {
kChromeUIInternetDetailDialogHost,
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
kChromeUIDiscardsHost,
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX)
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -566,7 +566,7 @@ inline constexpr char kChromeUIOsUrlAppURL[] = "chrome://internal/";
#endif // BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
+ BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
inline constexpr char kChromeUIDiscardsHost[] = "discards";
inline constexpr char kChromeUIDiscardsURL[] = "chrome://discards/";
#endif
diff --git a/chrome/renderer/sandbox_status_extension_android.cc b/chrome/renderer/sandbox_status_extension_android.cc
--- a/chrome/renderer/sandbox_status_extension_android.cc
+++ b/chrome/renderer/sandbox_status_extension_android.cc
@@ -34,7 +34,7 @@ SandboxStatusExtension::SandboxStatusExtension(content::RenderFrame* frame)
frame->GetAssociatedInterfaceRegistry()
->AddInterface<chrome::mojom::SandboxStatusExtension>(base::BindRepeating(
&SandboxStatusExtension::OnSandboxStatusExtensionRequest,
- base::RetainedRef(this)));
+ weak_ptr_factory_.GetWeakPtr()));
}
SandboxStatusExtension::~SandboxStatusExtension() = default;
@@ -46,6 +46,7 @@ void SandboxStatusExtension::Create(content::RenderFrame* frame) {
}
void SandboxStatusExtension::OnDestruct() {
+ weak_ptr_factory_.InvalidateWeakPtrs();
// This object is ref-counted, since a callback could still be in-flight.
Release();
}
diff --git a/chrome/renderer/sandbox_status_extension_android.h b/chrome/renderer/sandbox_status_extension_android.h
--- a/chrome/renderer/sandbox_status_extension_android.h
+++ b/chrome/renderer/sandbox_status_extension_android.h
@@ -73,6 +73,7 @@ class SandboxStatusExtension
mojo::AssociatedReceiver<chrome::mojom::SandboxStatusExtension> receiver_{
this};
+ base::WeakPtrFactory<SandboxStatusExtension> weak_ptr_factory_{this};
};
#endif // CHROME_RENDERER_SANDBOX_STATUS_EXTENSION_ANDROID_H_
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -364,7 +364,7 @@ static_library("test_support") {
]
}
- if (enable_desktop_android_extensions) {
+ if (enable_desktop_android_extensions_cromite) {
public_deps += [
"//extensions/browser:test_support",
"//extensions/common:test_support",
@@ -477,7 +477,7 @@ static_library("test_support") {
# TODO(https://crbug.com/356905053): Continue pulling more common test
# support pieces into here and eventually merge this with the
# `enable_extensions` block above.
- if (enable_desktop_android_extensions) {
+ if (enable_desktop_android_extensions_cromite) {
deps += [ "//chrome/renderer/extensions" ]
public_deps += [
@@ -1535,7 +1535,7 @@ source_set("platform_browser_tests") {
sources += [ "../browser/enterprise/remote_commands/user_remote_commands_service_browsertest.cc" ]
}
- if (!is_android || enable_desktop_android_extensions) {
+ if (!is_android || enable_desktop_android_extensions_cromite) {
deps += [ "//chrome/browser/ui/prefs:browser_tests" ]
}
@@ -1788,7 +1788,7 @@ source_set("platform_browser_tests") {
"//chrome/browser/ui/browser_window",
]
}
- if (!is_android || enable_desktop_android_extensions) {
+ if (!is_android || enable_desktop_android_extensions_cromite) {
sources +=
[ "../browser/devtools/global_confirm_info_bar_browsertest.cc" ]
}
@@ -2074,7 +2074,7 @@ if (is_android) {
extra_args = []
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
sources +=
[ "../browser/ui/android/browser_navigator_android_browsertest.cc" ]
deps += [
@@ -2175,7 +2175,7 @@ if (is_android) {
]
}
- if (enable_desktop_android_extensions) {
+ if (enable_desktop_android_extensions_cromite) {
sources += [
# These API tests can't be part of platform_browser_tests because they
# run in interactive_ui_tests on Win/Mac/Linux.
@@ -8059,11 +8059,11 @@ test("unit_tests") {
deps += [ "//chrome/browser/android/extensions:android" ]
}
- if (!is_android || is_desktop_android) {
+ if (!is_android || is_desktop_android_cromite) {
deps += [ "//chrome/browser/ui/browser_window/internal:unit_tests" ]
}
- if (is_desktop_android) {
+ if (is_desktop_android_cromite) {
deps += [
# Unit test targets for //chrome/browser/ui/browser_window/internal.
#
diff --git a/chrome/version.gni b/chrome/version.gni
--- a/chrome/version.gni
+++ b/chrome/version.gni
@@ -56,7 +56,7 @@ if (target_os == "android") {
# Generate hybrid configurations for target_cpu's that can run in hybrid configurations.
# i.e. "riscv64" does not show up in this list, as it's a 64-bit-only target_cpu.
if (target_cpu == "arm64" || target_cpu == "x64") {
- if (is_desktop_android) {
+ if (is_desktop_android_false) {
_version_dictionary_template +=
"chrome_desktop_version_code = \"@CHROME_DESKTOP_VERSION_CODE@\" "
_version_dictionary_template +=
@@ -383,7 +383,7 @@ if (is_android) {
} else {
true_true_true_true = trichrome_64_32_version_code
}
- if (is_desktop_android) {
+ if (is_desktop_android_false) {
true_true_true_false = trichrome_desktop_64_version_code
} else {
true_true_true_false = trichrome_64_version_code
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -329,6 +329,12 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
RecordExceptionMetrics();
}
+#if BUILDFLAG(IS_ANDROID)
+ SetContentSettingDefaultScope(
+ GURL("https://chromewebstore.google.com"), GURL(),
+ ContentSettingsType::REQUEST_DESKTOP_SITE, CONTENT_SETTING_ALLOW);
+#endif
+
const auto* registry =
content_settings::WebsiteSettingsRegistry::GetInstance();
for (const auto* info : *registry) {
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentView.java
@@ -449,7 +449,7 @@ public class ContentView extends FrameLayout
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE
&& Build.VERSION.SDK_INT <= 38
- && DeviceInfo.isDesktop()) {
+ && DeviceInfo.isDesktopFalse()) {
if (MotionEventUtils.isTrackpadEvent(event)
&& event.getClassification() == MotionEvent.CLASSIFICATION_TWO_FINGER_SWIPE
&& forwarder != null) {
diff --git a/components/media_router/browser/android/media_router_android.cc b/components/media_router/browser/android/media_router_android.cc
--- a/components/media_router/browser/android/media_router_android.cc
+++ b/components/media_router/browser/android/media_router_android.cc
@@ -377,7 +377,7 @@ MediaRouterAndroid::GetFlingingController(const MediaRoute::Id& route_id) {
return bridge_->GetFlingingController(route_id);
}
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
MirroringMediaControllerHost*
MediaRouterAndroid::GetMirroringMediaControllerHost(
const MediaRoute::Id& route_id) {
diff --git a/components/media_router/browser/android/media_router_android.h b/components/media_router/browser/android/media_router_android.h
--- a/components/media_router/browser/android/media_router_android.h
+++ b/components/media_router/browser/android/media_router_android.h
@@ -56,7 +56,7 @@ class MediaRouterAndroid : public MediaRouterBase {
std::unique_ptr<media::FlingingController> GetFlingingController(
const MediaRoute::Id& route_id) override;
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
MirroringMediaControllerHost* GetMirroringMediaControllerHost(
const MediaRoute::Id& route_id) override;
IssueManager* GetIssueManager() override;
diff --git a/components/media_router/browser/media_router.h b/components/media_router/browser/media_router.h
--- a/components/media_router/browser/media_router.h
+++ b/components/media_router/browser/media_router.h
@@ -29,7 +29,7 @@
#include "media/base/flinging_controller.h"
#include "third_party/blink/public/mojom/presentation/presentation.mojom.h"
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
#include "components/media_router/browser/logger_impl.h"
#include "components/media_router/browser/media_router_debugger.h"
#include "components/media_router/common/mojom/media_controller.mojom.h"
@@ -155,7 +155,7 @@ class MediaRouter : public KeyedService {
virtual std::unique_ptr<media::FlingingController> GetFlingingController(
const MediaRoute::Id& route_id) = 0;
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE)
// Returns a pointer to a controller host that sends media commands related to
// mirroring within a route.
virtual MirroringMediaControllerHost* GetMirroringMediaControllerHost(
diff --git a/components/policy/android/java/src/org/chromium/components/policy/CombinedPolicyProvider.java b/components/policy/android/java/src/org/chromium/components/policy/CombinedPolicyProvider.java
--- a/components/policy/android/java/src/org/chromium/components/policy/CombinedPolicyProvider.java
+++ b/components/policy/android/java/src/org/chromium/components/policy/CombinedPolicyProvider.java
@@ -60,10 +60,10 @@ public class CombinedPolicyProvider {
Log.i(TAG, "#linkNativeInternal() " + mPolicyProviders.size());
- if (mPolicyProviders.isEmpty()) {
- mPolicyCacheProvider = new PolicyCacheProvider();
- mPolicyCacheProvider.setManagerAndSource(this, /* source= */ 0);
- }
+ // if (mPolicyProviders.isEmpty()) {
+ // mPolicyCacheProvider = new PolicyCacheProvider();
+ // mPolicyCacheProvider.setManagerAndSource(this, /* source= */ 0);
+ // }
refreshPolicies();
}
diff --git a/components/policy/android/java/src/org/chromium/components/policy/PolicyCacheUpdater.java b/components/policy/android/java/src/org/chromium/components/policy/PolicyCacheUpdater.java
--- a/components/policy/android/java/src/org/chromium/components/policy/PolicyCacheUpdater.java
+++ b/components/policy/android/java/src/org/chromium/components/policy/PolicyCacheUpdater.java
@@ -36,6 +36,6 @@ public class PolicyCacheUpdater {
@CalledByNative
public static void cachePolicies(PolicyMap policyMap) {
- PolicyCache.get().cachePolicies(policyMap, sPolicies);
+ //PolicyCache.get().cachePolicies(policyMap, sPolicies);
}
}
diff --git a/components/policy/core/browser/android/policy_cache_updater_android.cc b/components/policy/core/browser/android/policy_cache_updater_android.cc
--- a/components/policy/core/browser/android/policy_cache_updater_android.cc
+++ b/components/policy/core/browser/android/policy_cache_updater_android.cc
@@ -45,7 +45,9 @@ PolicyCacheUpdater::~PolicyCacheUpdater() {
void PolicyCacheUpdater::OnPolicyUpdated(const PolicyNamespace& ns,
const PolicyMap& previous,
const PolicyMap& current) {
- UpdateCache(current);
+ if (ns.domain == POLICY_DOMAIN_CHROME) {
+ UpdateCache(current);
+ }
}
void PolicyCacheUpdater::UpdateCache(const PolicyMap& current_policy_map) {
diff --git a/components/policy/core/browser/cloud/user_policy_signin_service_base.cc b/components/policy/core/browser/cloud/user_policy_signin_service_base.cc
--- a/components/policy/core/browser/cloud/user_policy_signin_service_base.cc
+++ b/components/policy/core/browser/cloud/user_policy_signin_service_base.cc
@@ -37,7 +37,7 @@ namespace {
em::DeviceRegisterRequest::Type GetCloudPolicyRegistrationType() {
#if BUILDFLAG(IS_ANDROID)
- if (base::android::device_info::is_desktop()) {
+ if (base::android::device_info::is_desktop_false()) {
return em::DeviceRegisterRequest::BROWSER;
} else {
return em::DeviceRegisterRequest::ANDROID_BROWSER;
diff --git a/components/policy/core/browser/configuration_policy_handler_list.cc b/components/policy/core/browser/configuration_policy_handler_list.cc
--- a/components/policy/core/browser/configuration_policy_handler_list.cc
+++ b/components/policy/core/browser/configuration_policy_handler_list.cc
@@ -144,7 +144,7 @@ bool ConfigurationPolicyHandlerList::IsBlockedFuturePolicy(
const base::flat_set<std::string>& future_policies_allowed,
const PolicyDetails& policy_details,
PolicyMap::const_reference entry) const {
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
if (base::FeatureList::IsEnabled(features::kFuturePoliciesOnDesktopAndroid) &&
policy_details.is_future) {
return false;
diff --git a/components/policy/core/common/cloud/cloud_policy_constants.cc b/components/policy/core/common/cloud/cloud_policy_constants.cc
--- a/components/policy/core/common/cloud/cloud_policy_constants.cc
+++ b/components/policy/core/common/cloud/cloud_policy_constants.cc
@@ -142,7 +142,7 @@ const char* GetChromeUserPolicyType() {
#if BUILDFLAG(IS_CHROMEOS)
return "google/chromeos/user";
#elif BUILDFLAG(IS_ANDROID)
- if (base::android::device_info::is_desktop()) {
+ if (base::android::device_info::is_desktop_false()) {
return "google/chrome/user";
} else {
return "google/android/user";
diff --git a/components/policy/core/common/features.cc b/components/policy/core/common/features.cc
--- a/components/policy/core/common/features.cc
+++ b/components/policy/core/common/features.cc
@@ -40,7 +40,7 @@ BASE_FEATURE(kSafeSitesCaptivePortalCheck, base::FEATURE_ENABLED_BY_DEFAULT);
// TODO(https://crbug.com/452666657): Remove this feature flag after launching
// policies to supported on Android Desktop.
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
BASE_FEATURE(kFuturePoliciesOnDesktopAndroid,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_DESKTOP_ANDROID)
diff --git a/components/policy/core/common/policy_merger.cc b/components/policy/core/common/policy_merger.cc
--- a/components/policy/core/common/policy_merger.cc
+++ b/components/policy/core/common/policy_merger.cc
@@ -21,7 +21,7 @@ namespace policy {
namespace {
#if !BUILDFLAG(IS_IOS) && !BUILDFLAG(IS_FUCHSIA) && (!BUILDFLAG(IS_ANDROID) || \
- BUILDFLAG(IS_DESKTOP_ANDROID))
+ BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE))
constexpr const char* kDictionaryPoliciesToMerge[] = {
#if BUILDFLAG(IS_CHROMEOS)
key::kExtensionSettings, key::kDeviceLoginScreenPowerManagement,
@@ -190,7 +190,7 @@ void PolicyListMerger::DoMerge(PolicyMap::Entry* policy) const {
PolicyDictionaryMerger::PolicyDictionaryMerger(
base::flat_set<std::string> policies_to_merge)
#if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_FUCHSIA) || \
- (BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID))
+ (BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE))
: policies_to_merge_(std::move(policies_to_merge)){}
#else
: policies_to_merge_(std::move(policies_to_merge)),
diff --git a/components/variations/service/variations_service_client.cc b/components/variations/service/variations_service_client.cc
--- a/components/variations/service/variations_service_client.cc
+++ b/components/variations/service/variations_service_client.cc
@@ -48,7 +48,7 @@ version_info::Channel VariationsServiceClient::GetChannelForVariations() {
// TODO(crbug.com/389565104): Remove this if block when ready to move desktop
// to stable builds.
if (channel == version_info::Channel::STABLE &&
- base::android::device_info::is_desktop()) {
+ base::android::device_info::is_desktop_false()) {
return version_info::Channel::DEV;
}
#endif
diff --git a/components/webapps/browser/installable/installable_icon_fetcher.cc b/components/webapps/browser/installable/installable_icon_fetcher.cc
--- a/components/webapps/browser/installable/installable_icon_fetcher.cc
+++ b/components/webapps/browser/installable/installable_icon_fetcher.cc
@@ -120,7 +120,7 @@ void ProcessFaviconInBackground(
FROM_HERE, base::BindOnce(std::move(success_callback), decoded));
}
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// Generates a homescreen icon for `page_url` and posts a task to invoke
// `callback` on `ui_thread_task_runner.`
void GenerateHomeScreenIconInBackground(
@@ -253,7 +253,7 @@ void InstallableIconFetcher::OnIconFetched(const GURL& icon_url,
}
void InstallableIconFetcher::MaybeEndWithError(InstallableStatusCode code) {
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// Desktop android will generate an icon if none is available.
base::ThreadPool::PostTask(
FROM_HERE,
@@ -277,7 +277,7 @@ void InstallableIconFetcher::EndWithError(InstallableStatusCode code) {
std::move(finish_callback_).Run(code);
}
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
void InstallableIconFetcher::OnHomeScreenIconGenerated(const GURL& page_url,
const SkBitmap& bitmap) {
if (bitmap.drawsNothing()) {
diff --git a/components/webapps/browser/installable/installable_icon_fetcher.h b/components/webapps/browser/installable/installable_icon_fetcher.h
--- a/components/webapps/browser/installable/installable_icon_fetcher.h
+++ b/components/webapps/browser/installable/installable_icon_fetcher.h
@@ -68,7 +68,7 @@ class InstallableIconFetcher {
// Ends the fetch with an error.
void EndWithError(InstallableStatusCode code);
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
void OnHomeScreenIconGenerated(const GURL& page_url, const SkBitmap& bitmap);
#endif
diff --git a/components/webui/version/resources/about_version.html b/components/webui/version/resources/about_version.html
--- a/components/webui/version/resources/about_version.html
+++ b/components/webui/version/resources/about_version.html
@@ -105,7 +105,7 @@ about:version template page
<span>$i18n{gms_version}</span>
</td>
</tr>
-<if expr="is_desktop_android">
+<if expr="is_desktop_android_false">
<tr>
<td class="label">Desktop Android</td>
<td class="version">true</td>
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
@@ -851,7 +851,7 @@ int BrowserMainLoop::PreCreateThreads() {
base::UmaHistogramBoolean("SiteIsolation.IsSitePerProcessOrStricter",
SiteIsolationPolicy::IsSitePerProcessOrStricter());
-#if BUILDFLAG(IS_ANDROID) && BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
base::UmaHistogramBoolean(
"SiteIsolation.IsSitePerProcessOrStricter.AndroidDesktop",
SiteIsolationPolicy::IsSitePerProcessOrStricter());
diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc
--- a/content/browser/renderer_host/media/video_capture_manager.cc
+++ b/content/browser/renderer_host/media/video_capture_manager.cc
@@ -121,7 +121,7 @@ void VideoCaptureManager::RegisterListener(
DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(listener);
listeners_.AddObserver(listener);
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
application_state_has_running_activities_ = true;
app_status_listener_ =
base::android::ApplicationStatusListener::New(base::BindRepeating(
@@ -951,7 +951,7 @@ VideoCaptureManager::GetOrCreateController(
return new_controller;
}
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
void VideoCaptureManager::OnApplicationStateChange(
base::android::ApplicationState state) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/content/browser/renderer_host/media/video_capture_manager.h
--- a/content/browser/renderer_host/media/video_capture_manager.h
+++ b/content/browser/renderer_host/media/video_capture_manager.h
@@ -36,7 +36,7 @@
#include "media/capture/video_capture_types.h"
#include "ui/gfx/native_ui_types.h"
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
#include "base/android/application_status_listener.h"
#endif
@@ -208,7 +208,7 @@ class CONTENT_EXPORT VideoCaptureManager
void TakePhoto(const base::UnguessableToken& session_id,
VideoCaptureDevice::TakePhotoCallback callback);
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
// Some devices had troubles when stopped and restarted quickly, so the device
// is only stopped when Chrome is sent to background and not when, e.g., a tab
// is hidden, see http://crbug.com/582295.
@@ -324,7 +324,7 @@ class CONTENT_EXPORT VideoCaptureManager
void ReleaseDevices();
void ResumeDevices();
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
std::unique_ptr<base::android::ApplicationStatusListener>
app_status_listener_;
bool application_state_has_running_activities_;
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
@@ -183,7 +183,7 @@ bool IsTooltipsEnabled() {
// Only show on desktop devices up to B due to tooltips bug b/445244223.
if (base::android::android_info::sdk_int() <=
base::android::android_info::SDK_VERSION_BAKLAVA) {
- return base::android::device_info::is_desktop();
+ return base::android::device_info::is_desktop_false();
}
return true;
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java b/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java
--- a/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java
@@ -123,9 +123,10 @@ public class ContentUiEventHandler implements UserData {
event,
MotionEventUtils.getEventTimeNanos(event),
EventForwarder.getMouseEventActionButton(event),
- shouldConvertToMouseEvent
- ? MotionEvent.TOOL_TYPE_MOUSE
- : event.getToolType(0));
+ MotionEvent.TOOL_TYPE_FINGER);
+ // shouldConvertToMouseEvent
+ // ? MotionEvent.TOOL_TYPE_MOUSE
+ // : event.getToolType(0));
if (didOffsetEvent) event.recycle();
return true;
}
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -622,7 +622,7 @@ BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kLogJsConsoleMessages,
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
base::FEATURE_DISABLED_BY_DEFAULT
#else
base::FEATURE_ENABLED_BY_DEFAULT
diff --git a/content/public/renderer/render_frame_media_playback_options.cc b/content/public/renderer/render_frame_media_playback_options.cc
--- a/content/public/renderer/render_frame_media_playback_options.cc
+++ b/content/public/renderer/render_frame_media_playback_options.cc
@@ -22,7 +22,7 @@ bool IsBackgroundMediaSuspendEnabled() {
if (base::FeatureList::IsEnabled(
features::kAndroidEnableBackgroundMediaLargeFormFactors) &&
(base::android::device_info::is_tablet() ||
- base::android::device_info::is_desktop())) {
+ base::android::device_info::is_desktop_false())) {
// Do not suspend background media if feature is enabled AND it was launched
// on a large display. Feature is enabled by default except for WebView
return false;
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc b/cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc
@@ -0,0 +1,12 @@
+#ifdef FLAG_SECTION
+
+#if BUILDFLAG(IS_ANDROID)
+
+ {"enable-extensions-android",
+ "Enable Extensions Android",
+ "Allows the use of extensions on Android", kOsAndroid,
+ FEATURE_VALUE_TYPE(extensions_features::kEnableExtensionsAndroid)},
+
+#endif
+
+#endif // ifdef FLAG_SECTION
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc b/cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
--- a/cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
+++ b/cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
@@ -1,19 +1,15 @@
#ifdef FLAG_SECTION
-#if !BUILDFLAG(IS_ANDROID)
-
{"enable-extension-autoupdate",
"Enable Extensions Autoupdate",
"Allows the auto-updating of installed extensions by sending the "
- "minimum required data.", kOsDesktop,
+ "minimum required data.", kOsAll,
FEATURE_VALUE_TYPE(extensions_features::kEnableExtensionAutoupdate)},
{"enable-extension-management-to-chrome-store",
"Allow full use of management api to chrome web store",
"When deactivated (default) allows installation but hide "
- "to the webstore which extensions are installed on the device.", kOsDesktop,
+ "to the webstore which extensions are installed on the device.", kOsAll,
FEATURE_VALUE_TYPE(extensions_features::kEnableExtensionManagementToChromeStore)},
-#endif // !BUILDFLAG(IS_ANDROID)
-
#endif // ifdef FLAG_SECTION
diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn
--- a/extensions/browser/BUILD.gn
+++ b/extensions/browser/BUILD.gn
@@ -10,7 +10,7 @@ import("//pdf/features.gni")
import("//rlz/buildflags/buildflags.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
-if (enable_desktop_android_extensions) {
+if (enable_desktop_android_extensions_cromite) {
import("//build/config/android/rules.gni")
}
@@ -1161,7 +1161,7 @@ source_set("unit_tests") {
configs += [ "//build/config/compiler:no_exit_time_destructors" ]
}
-if (enable_desktop_android_extensions) {
+if (enable_desktop_android_extensions_cromite) {
java_cpp_enum("extension_action_enums") {
sources = [ "extension_action.h" ]
}
diff --git a/extensions/browser/api/api_browser_context_keyed_service_factories.cc b/extensions/browser/api/api_browser_context_keyed_service_factories.cc
--- a/extensions/browser/api/api_browser_context_keyed_service_factories.cc
+++ b/extensions/browser/api/api_browser_context_keyed_service_factories.cc
@@ -69,7 +69,7 @@
namespace extensions {
-void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() {
+void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { //
AlarmManager::GetFactoryInstance();
declarative_net_request::RulesMonitorService::GetFactoryInstance();
IdleManagerFactory::GetInstance();
diff --git a/extensions/browser/api/system_cpu/BUILD.gn b/extensions/browser/api/system_cpu/BUILD.gn
--- a/extensions/browser/api/system_cpu/BUILD.gn
+++ b/extensions/browser/api/system_cpu/BUILD.gn
@@ -34,7 +34,7 @@ source_set("system_cpu") {
sources += [ "cpu_info_provider_mac.cc" ]
}
- if (is_linux || is_chromeos || enable_desktop_android_extensions) {
+ if (is_linux || is_chromeos || enable_desktop_android_extensions_cromite) {
sources += [ "cpu_info_provider_linux.cc" ]
}
diff --git a/extensions/browser/api/web_request/permission_helper.cc b/extensions/browser/api/web_request/permission_helper.cc
--- a/extensions/browser/api/web_request/permission_helper.cc
+++ b/extensions/browser/api/web_request/permission_helper.cc
@@ -64,7 +64,7 @@ void BrowserContextKeyedAPIFactory<
// implicitly depends upon those.
ExtensionsAPIClient* extensions_api_client = ExtensionsAPIClient::Get();
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// TODO(https://crbug.com/356905053): On Android, the startup and
// initialization flow is different.
// ExtensionsAPIClient is instantiated as part of the ExtensionsBrowserClient,
diff --git a/extensions/browser/extension_frame_host.cc b/extensions/browser/extension_frame_host.cc
--- a/extensions/browser/extension_frame_host.cc
+++ b/extensions/browser/extension_frame_host.cc
@@ -157,6 +157,10 @@ void ExtensionFrameHost::OpenChannelToExtension(
TRACE_EVENT("extensions", "ExtensionFrameHost::OpenChannelToExtension",
ChromeTrackEvent::kRenderProcessHost, *process);
+ if (!MessageServiceApi::GetMessageService()) {
+ LOG(INFO) << "--No MessageServiceApi";
+ return;
+ }
MessageServiceApi::GetMessageService()->OpenChannelToExtension(
render_frame_host->GetBrowserContext(), render_frame_host, port_id, *info,
channel_type, channel_name, std::move(port), std::move(port_host));
@@ -189,6 +193,10 @@ void ExtensionFrameHost::OpenChannelToTab(
mojo::PendingAssociatedRemote<extensions::mojom::MessagePort> port,
mojo::PendingAssociatedReceiver<extensions::mojom::MessagePortHost>
port_host) {
+ if (!MessageServiceApi::GetMessageService()) {
+ LOG(INFO) << "--No MessageServiceApi";
+ return;
+ }
content::RenderFrameHost* render_frame_host =
receivers_.GetCurrentTargetFrame();
auto* process = render_frame_host->GetProcess();
diff --git a/extensions/browser/extension_host.cc b/extensions/browser/extension_host.cc
--- a/extensions/browser/extension_host.cc
+++ b/extensions/browser/extension_host.cc
@@ -14,6 +14,7 @@
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/timer/elapsed_timer.h"
+#include "components/embedder_support/user_agent_utils.h"
#include "components/input/native_web_keyboard_event.h"
#include "components/javascript_dialogs/app_modal_dialog_manager.h"
#include "content/public/browser/browser_context.h"
@@ -323,9 +324,26 @@ const GURL& ExtensionHost::GetLastCommittedURL() const {
void ExtensionHost::LoadInitialURL() {
load_start_ = std::make_unique<base::ElapsedTimer>();
- host_contents_->GetController().LoadURL(
- initial_url_, content::Referrer(), ui::PAGE_TRANSITION_LINK,
- std::string());
+
+ content::NavigationController::LoadURLParams params(initial_url_);
+ params.referrer = content::Referrer();
+ params.transition_type = ui::PAGE_TRANSITION_LINK;
+ params.extra_headers = std::string();
+
+#if BUILDFLAG(IS_ANDROID)
+ if (extension_host_type() == mojom::ViewType::kExtensionPopup) {
+ constexpr char kOsOverrideForCromite[] = "Linux; Android 10; Cromite";
+ const std::string product = embedder_support::GetProductAndVersion();
+ blink::UserAgentOverride ua_override;
+ ua_override.ua_string_override =
+ embedder_support::BuildUserAgentFromOSAndProduct(kOsOverrideForCromite,
+ product);
+ host_contents_->SetUserAgentOverride(ua_override,
+ false /*override_in_new_tabs=*/);
+ params.override_user_agent = content::NavigationController::UA_OVERRIDE_TRUE;
+ }
+#endif
+ host_contents_->GetController().LoadURLWithParams(params);
}
bool ExtensionHost::IsBackgroundPage() const {
diff --git a/extensions/buildflags/BUILD.gn b/extensions/buildflags/BUILD.gn
--- a/extensions/buildflags/BUILD.gn
+++ b/extensions/buildflags/BUILD.gn
@@ -16,7 +16,8 @@ buildflag_header("buildflags") {
header = "buildflags.h"
flags = [
"ENABLE_EXTENSIONS=$enable_extensions",
- "ENABLE_DESKTOP_ANDROID_EXTENSIONS=$enable_desktop_android_extensions",
+ "ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE=$enable_desktop_android_extensions_cromite",
+ "ENABLE_DESKTOP_ANDROID_EXTENSIONS_FALSE=false",
"ENABLE_EXTENSIONS_CORE=$enable_extensions_core",
"ENABLE_PLATFORM_APPS=$enable_platform_apps",
]
diff --git a/extensions/buildflags/buildflags.gni b/extensions/buildflags/buildflags.gni
--- a/extensions/buildflags/buildflags.gni
+++ b/extensions/buildflags/buildflags.gni
@@ -27,7 +27,7 @@ declare_args() {
#
# TODO(https://crbug.com/356905053): Continue expanding the scope of
# enable_desktop_android_extensions.
- enable_desktop_android_extensions = is_desktop_android
+ enable_desktop_android_extensions_cromite = is_android
}
# Note: GN forbids relying on args from the same declare_args() block, so we
@@ -45,5 +45,5 @@ declare_args() {
# `if (enable_extensions || enable_desktop_android_extensions)`, since the
# core handling in each of these implementations is similar.
enable_extensions_core =
- enable_extensions || enable_desktop_android_extensions
+ enable_extensions || enable_desktop_android_extensions_cromite
}
diff --git a/extensions/common/api/schema.gni b/extensions/common/api/schema.gni
--- a/extensions/common/api/schema.gni
+++ b/extensions/common/api/schema.gni
@@ -104,7 +104,7 @@ if (enable_extensions) {
# the C++ types for certain APIs, since they are used from outside the
# extensions layer. These should be removed as we add support for the full
# API by moving these entries to the `extensions_api_schema_files_` above.
-if (enable_desktop_android_extensions) {
+if (enable_desktop_android_extensions_cromite) {
extensions_types_only_schema_files_ += [
"clipboard.idl",
"scripts_internal.idl",
diff --git a/extensions/common/command.cc b/extensions/common/command.cc
--- a/extensions/common/command.cc
+++ b/extensions/common/command.cc
@@ -118,7 +118,7 @@ std::string Command::CommandPlatform() {
return ui::kKeybindingPlatformChromeOs;
#elif BUILDFLAG(IS_LINUX)
return ui::kKeybindingPlatformLinux;
-#elif BUILDFLAG(IS_DESKTOP_ANDROID)
+#elif BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// For now, we use linux keybindings on desktop android.
return ui::kKeybindingPlatformLinux;
#else
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
--- a/extensions/common/extension_features.cc
+++ b/extensions/common/extension_features.cc
@@ -58,7 +58,7 @@ BASE_FEATURE(kSkipResetServiceWorkerURLLoaderFactories,
BASE_FEATURE(kEnableWebHidInWebView, base::FEATURE_ENABLED_BY_DEFAULT);
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// Disabled by default because on first-run we don't have a Finch seed yet, so
// we want to default to the safe behavior of no extensions.
BASE_FEATURE(kEnableExtensionsForCorpDesktopAndroid,
@@ -151,7 +151,7 @@ BASE_FEATURE(kDisableExtensionsOnChromeUrlsSwitch,
// TODO (crbug.com/426554244): Determine if this switch should be
// removed for desktop-android builds as well.
#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS) && \
- !BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+ !BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
@@ -190,4 +190,10 @@ CROMITE_FEATURE(kEnableExtensionAutoupdate,
CROMITE_FEATURE(kEnableExtensionManagementToChromeStore,
"EnableExtensionToChromeStore",
base::FEATURE_DISABLED_BY_DEFAULT);
+
+#if BUILDFLAG(IS_ANDROID)
+CROMITE_FEATURE(kEnableExtensionsAndroid,
+ "EnableExtensionsAndroid",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+#endif
} // namespace extensions_features
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
--- a/extensions/common/extension_features.h
+++ b/extensions/common/extension_features.h
@@ -100,7 +100,7 @@ BASE_DECLARE_FEATURE(kSkipResetServiceWorkerURLLoaderFactories);
// embedding Chrome App to request access to Human Interface Devices.
BASE_DECLARE_FEATURE(kEnableWebHidInWebView);
-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
// If enabled, extensions will be enabled for @google.com and @managedchrome.com
// users on desktop Android. Otherwise they will be blocked.
BASE_DECLARE_FEATURE(kEnableExtensionsForCorpDesktopAndroid);
@@ -317,6 +317,10 @@ BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
// Allows the installation of new extensions.
// If active, exposes all features to the chrome web store like chromium.
BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore);
+
+#if BUILDFLAG(IS_ANDROID)
+BASE_DECLARE_FEATURE(kEnableExtensionsAndroid);
+#endif
} // namespace extensions_features
#endif // EXTENSIONS_COMMON_EXTENSION_FEATURES_H_
diff --git a/extensions/common/extension_l10n_util.cc b/extensions/common/extension_l10n_util.cc
--- a/extensions/common/extension_l10n_util.cc
+++ b/extensions/common/extension_l10n_util.cc
@@ -471,8 +471,10 @@ bool GetValidLocales(const base::FilePath& locale_path,
}
if (valid_locales->empty()) {
+#if !BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
*error = errors::kLocalesNoValidLocaleNamesListed;
return false;
+#endif
}
return true;
@@ -567,7 +569,11 @@ bool ShouldSkipValidation(const base::FilePath& locales_path,
// '.svn' directories.
base::FilePath relative_path;
if (!locales_path.AppendRelativePath(locale_path, &relative_path)) {
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
+ return true;
+#else
NOTREACHED();
+#endif
}
std::string subdir = relative_path.MaybeAsASCII();
if (subdir.empty())
diff --git a/extensions/common/features/feature.cc b/extensions/common/features/feature.cc
--- a/extensions/common/features/feature.cc
+++ b/extensions/common/features/feature.cc
@@ -28,7 +28,7 @@ Feature::Platform Feature::GetCurrentPlatform() {
return MACOSX_PLATFORM;
#elif BUILDFLAG(IS_WIN)
return WIN_PLATFORM;
-#elif BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
+#elif BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
return DESKTOP_ANDROID_PLATFORM;
#else
return UNSPECIFIED_PLATFORM;
diff --git a/extensions/common/manifest_handlers/default_locale_handler.cc b/extensions/common/manifest_handlers/default_locale_handler.cc
--- a/extensions/common/manifest_handlers/default_locale_handler.cc
+++ b/extensions/common/manifest_handlers/default_locale_handler.cc
@@ -115,6 +115,9 @@ bool DefaultLocaleHandler::Validate(
// Only message file for default locale has to exist.
if (!has_default_locale_message_file) {
+#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
+ if (base::PathExists(default_locale_path)) return true;
+#endif
*error = errors::kLocalesNoDefaultMessages;
return false;
}
diff --git a/extensions/renderer/bindings/api_binding_util.cc b/extensions/renderer/bindings/api_binding_util.cc
--- a/extensions/renderer/bindings/api_binding_util.cc
+++ b/extensions/renderer/bindings/api_binding_util.cc
@@ -134,7 +134,7 @@ std::string GetPlatformString() {
return "mac";
#elif BUILDFLAG(IS_WIN)
return "win";
-#elif BUILDFLAG(IS_DESKTOP_ANDROID)
+#elif BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
return "desktop_android";
#else
NOTREACHED();
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
@@ -587,7 +587,7 @@ bool IsSkiaGraphiteSupportedByDevice(const base::CommandLine* command_line) {
// Desktop Android isn't ready to pick up the fieldtrial_testing_config.json
// change that enables graphite. However, it's the same platform as regular
// Android and does. Skip enabling the feature there for now.
- if (base::android::device_info::is_desktop()) {
+ if (base::android::device_info::is_desktop_false()) {
return false;
}
@@ -700,7 +700,7 @@ bool ShouldEnableDrDc() {
// Chrome on Android desktop aims to be Vulkan-only, which can result
// in crashes when enabled together with DrDc. Re-enable DrDc after
// crbug.com/380295059 is fixed if it is shown beneficial on desktop.
- if (base::android::device_info::is_desktop()) {
+ if (base::android::device_info::is_desktop_false()) {
return false;
}
#endif
diff --git a/net/features.gni b/net/features.gni
--- a/net/features.gni
+++ b/net/features.gni
@@ -30,8 +30,8 @@ declare_args() {
disable_zstd_filter = false
# Multicast DNS. Enabled on desktop Android for the chrome.mdns extension API.
- enable_mdns = is_win || is_linux || is_chromeos || is_fuchsia || is_apple ||
- enable_desktop_android_extensions
+ enable_mdns = is_win || is_linux || is_chromeos || is_fuchsia || is_apple
+ #|| enable_desktop_android_extensions
# Reporting not used on iOS.
enable_reporting = !is_ios
diff --git a/skia/features.gni b/skia/features.gni
--- a/skia/features.gni
+++ b/skia/features.gni
@@ -12,7 +12,7 @@ declare_args() {
skia_use_dawn =
is_mac || is_win ||
(is_android && target_cpu != "x86" && target_cpu != "x64") ||
- (is_ios && use_blink) || (is_linux && !is_castos) || is_desktop_android
+ (is_ios && use_blink) || (is_linux && !is_castos) || is_desktop_android_false
# Enable experimental Skia Graphite Metal backend. Intended only for debugging
# on non-official developer builds on Mac and iOS Blink.
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -2340,7 +2340,7 @@ BASE_FEATURE(kStopInBackground,
// b/248036988 - Disable this for Chromecast on Android builds to prevent apps
// that play audio in the background from stopping.
#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CAST_ANDROID) && \
- !BUILDFLAG(IS_DESKTOP_ANDROID)
+ !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
--- a/third_party/blink/renderer/modules/modules_initializer.cc
+++ b/third_party/blink/renderer/modules/modules_initializer.cc
@@ -119,7 +119,7 @@
namespace blink {
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
class SuspendCaptureObserver : public GarbageCollected<SuspendCaptureObserver>,
public PageVisibilityObserver {
@@ -365,7 +365,7 @@ void ModulesInitializer::ProvideModulesToPage(
const SessionStorageNamespaceId& namespace_id) const {
StorageNamespace::ProvideSessionStorageNamespaceTo(page, namespace_id);
AudioGraphTracer::ProvideAudioGraphTracerTo(page);
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID_FALSE)
page.SetSuspendCaptureObserver(
MakeGarbageCollected<SuspendCaptureObserver>(page));
#endif // BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
diff --git a/tools/grit/grit_args.gni b/tools/grit/grit_args.gni
--- a/tools/grit/grit_args.gni
+++ b/tools/grit/grit_args.gni
@@ -34,7 +34,8 @@ _grit_defines = [
# Mac wants Title Case strings.
"use_titlecase=${is_mac}",
- "is_desktop_android=${is_desktop_android}",
+ "is_desktop_android_false=${is_desktop_android_false}",
+ "is_desktop_android_cromite=${is_desktop_android_cromite}",
]
# Must match `enable_hidpi` in ui/base/ui_features.gni.
diff --git a/tools/json_schema_compiler/cpp_bundle_generator.py b/tools/json_schema_compiler/cpp_bundle_generator.py
--- a/tools/json_schema_compiler/cpp_bundle_generator.py
+++ b/tools/json_schema_compiler/cpp_bundle_generator.py
@@ -138,7 +138,7 @@ class CppBundleGenerator(object):
if platform == Platforms.CHROMEOS:
ifdefs.append('BUILDFLAG(IS_CHROMEOS)')
elif platform == Platforms.DESKTOP_ANDROID:
- ifdefs.append('BUILDFLAG(IS_DESKTOP_ANDROID)')
+ ifdefs.append('BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)')
elif platform == Platforms.LINUX:
ifdefs.append('BUILDFLAG(IS_LINUX)')
elif platform == Platforms.MAC:
diff --git a/ui/android/java/src/org/chromium/ui/widget/PopupSpecCalculator.java b/ui/android/java/src/org/chromium/ui/widget/PopupSpecCalculator.java
--- a/ui/android/java/src/org/chromium/ui/widget/PopupSpecCalculator.java
+++ b/ui/android/java/src/org/chromium/ui/widget/PopupSpecCalculator.java
@@ -233,8 +233,13 @@ public class PopupSpecCalculator implements SpecCalculator {
- marginPx;
// Bias based on the center of the popup and where it is on the screen.
- final boolean idealFitsBelow = idealContentSize.getHeight() <= spaceBelowAnchor;
- final boolean idealFitsAbove = idealContentSize.getHeight() <= spaceAboveAnchor;
+ boolean idealFitsBelow = idealContentSize.getHeight() <= spaceBelowAnchor;
+ boolean idealFitsAbove = idealContentSize.getHeight() <= spaceAboveAnchor;
+
+ if (!idealFitsBelow && !idealFitsAbove) {
+ idealFitsAbove = (spaceBelowAnchor < spaceAboveAnchor);
+ idealFitsBelow = !idealFitsAbove;
+ }
// Determine whether or not the popup should be above or below the anchor.
// Aggressively try to put it below the anchor. Put it above only if it would fit
diff --git a/ui/android/javatests/src/org/chromium/ui/test/util/UiDisableIfSkipCheck.java b/ui/android/javatests/src/org/chromium/ui/test/util/UiDisableIfSkipCheck.java
--- a/ui/android/javatests/src/org/chromium/ui/test/util/UiDisableIfSkipCheck.java
+++ b/ui/android/javatests/src/org/chromium/ui/test/util/UiDisableIfSkipCheck.java
@@ -28,17 +28,17 @@ public class UiDisableIfSkipCheck extends DisableIfSkipCheck {
() -> {
switch (type) {
case DeviceFormFactor.PHONE:
- return !DeviceInfo.isDesktop() && !isTablet();
+ return !DeviceInfo.isDesktopFalse() && !isTablet();
case DeviceFormFactor.ONLY_TABLET:
- return !DeviceInfo.isDesktop() && isTablet();
+ return !DeviceInfo.isDesktopFalse() && isTablet();
case DeviceFormFactor.DESKTOP:
- return DeviceInfo.isDesktop();
+ return DeviceInfo.isDesktopFalse();
case DeviceFormFactor.DESKTOP_FREEFORM:
return UiRestriction.isDesktopFreeform();
case DeviceFormFactor.TABLET_OR_DESKTOP:
return isTablet();
case DeviceFormFactor.PHONE_OR_TABLET:
- return !DeviceInfo.isDesktop();
+ return !DeviceInfo.isDesktopFalse();
default:
return false;
}
diff --git a/ui/android/javatests/src/org/chromium/ui/test/util/UiRestriction.java b/ui/android/javatests/src/org/chromium/ui/test/util/UiRestriction.java
--- a/ui/android/javatests/src/org/chromium/ui/test/util/UiRestriction.java
+++ b/ui/android/javatests/src/org/chromium/ui/test/util/UiRestriction.java
@@ -31,7 +31,7 @@ public final class UiRestriction {
if (sIsDesktop == null) {
// See the following link for implementation details:
// https://source.chromium.org/chromium/chromium/src/+/main:base/android/java/src/org/chromium/base/DeviceInfo.java;l=285-287;drc=61d3d9feb38d8045309dd9e237f5305de987523d
- sIsDesktop = DeviceInfo.isDesktop();
+ sIsDesktop = DeviceInfo.isDesktopFalse();
}
return sIsDesktop;
}
diff --git a/ui/base/accelerators/command.cc b/ui/base/accelerators/command.cc
--- a/ui/base/accelerators/command.cc
+++ b/ui/base/accelerators/command.cc
@@ -86,7 +86,7 @@ std::string Command::CommandPlatform() {
// TODO(crbug.com/40220501): Change this once we decide what string should be
// used for Fuchsia.
return ui::kKeybindingPlatformLinux;
-#elif BUILDFLAG(IS_DESKTOP_ANDROID)
+#elif BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// For now, we use linux keybindings on desktop android.
// TODO(https://crbug.com/356905053): Should this be ChromeOS keybindings?
return ui::kKeybindingPlatformLinux;
diff --git a/ui/base/device_form_factor_android.cc b/ui/base/device_form_factor_android.cc
--- a/ui/base/device_form_factor_android.cc
+++ b/ui/base/device_form_factor_android.cc
@@ -26,7 +26,7 @@ DeviceFormFactor GetDeviceFormFactor() {
return DEVICE_FORM_FACTOR_AUTOMOTIVE;
}
- if (base::android::device_info::is_desktop()) {
+ if (base::android::device_info::is_desktop_false()) {
return DEVICE_FORM_FACTOR_DESKTOP;
}
diff --git a/ui/gl/features.gni b/ui/gl/features.gni
--- a/ui/gl/features.gni
+++ b/ui/gl/features.gni
@@ -14,7 +14,7 @@ declare_args() {
# Vulkan Validation Layers.
use_dawn = is_apple || is_win || is_chromeos || (is_linux && !is_castos) ||
(is_android && target_cpu != "x86" && target_cpu != "x64") ||
- is_desktop_android
+ is_desktop_android_false
# Should Dawn test binaries (unittests, end2end_tests, perf_tests) be built?
# Independent of use_dawn, which controls whether Dawn is used in Chromium.
diff --git a/ui/resources/ui_resources.grd b/ui/resources/ui_resources.grd
--- a/ui/resources/ui_resources.grd
+++ b/ui/resources/ui_resources.grd
@@ -28,7 +28,7 @@
</if>
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON" file="common/default_favicon.png" />
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK" file="common/default_favicon_dark.png" />
- <if expr="not is_android or is_desktop_android">
+ <if expr="not is_android or is_desktop_android_cromite">
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_32" file="common/default_favicon_32.png" />
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK_32" file="common/default_favicon_dark_32.png" />
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_64" file="common/default_favicon_64.png" />
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
--- a/ui/webui/resources/BUILD.gn
+++ b/ui/webui/resources/BUILD.gn
@@ -67,7 +67,7 @@ generate_grd("build_grd") {
"$target_gen_dir/cr_components/theme_color_picker/resources.grdp",
"$root_gen_dir/third_party/polymer/v3_0/polymer_3_0_resources.grdp",
]
- if (!is_desktop_android) {
+ if (!is_desktop_android_cromite) {
public_deps += [
"cr_components/cr_shortcut_input:build_grdp",
"cr_components/managed_footnote:build_grdp",
@@ -78,7 +78,7 @@ generate_grd("build_grd") {
]
}
}
- if ((!is_android && !is_ios) || is_desktop_android) {
+ if ((!is_android && !is_ios) || is_desktop_android_cromite) {
public_deps += [
"cr_components/cr_shortcut_input:build_grdp",
"cr_components/managed_footnote:build_grdp",
diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn
--- a/ui/webui/resources/cr_elements/BUILD.gn
+++ b/ui/webui/resources/cr_elements/BUILD.gn
@@ -36,7 +36,7 @@ build_webui("build") {
"cr_tabs/cr_tabs.css",
]
- if ((!is_ios) || is_desktop_android) {
+ if ((!is_ios) || is_desktop_android_cromite) {
web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ]
ts_files += [
diff --git a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css
--- a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css
+++ b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css
@@ -126,6 +126,12 @@ picture {
margin-inline-start: 0;
}
+<if expr="is_android">
+#menuButton ~ h1 {
+ font-size: 15px !important;
+}
+</if>
+
:host([always-show-logo]) picture,
:host(:not([narrow])) picture {
display: initial;
diff --git a/ui/webui/resources/css/BUILD.gn b/ui/webui/resources/css/BUILD.gn
--- a/ui/webui/resources/css/BUILD.gn
+++ b/ui/webui/resources/css/BUILD.gn
@@ -35,7 +35,7 @@ preprocess_if_expr("preprocess") {
in_files += [ "roboto.css" ]
}
- if (include_polymer || is_desktop_android) {
+ if (include_polymer || is_desktop_android_cromite) {
in_files += [ "md_colors.css" ]
}
}
--