diff --git a/src/BUILD.gn b/src/BUILD.gn index 17600afb7d4..ed9c9bd0508 100644 --- a/src/BUILD.gn +++ b/src/BUILD.gn @@ -282,7 +282,6 @@ group("gn_all") { if (enable_extensions) { deps += [ "//extensions:extensions_browsertests", - "//extensions:extensions_unittests", "//extensions/browser/api/declarative_net_request/filter_list_converter", "//extensions/shell:app_shell_unittests", ] diff --git "a/src/\\" "b/src/\\" new file mode 100644 index 00000000000..19f099efab8 --- /dev/null +++ "b/src/\\" @@ -0,0 +1,9 @@ +target_os = "android" +target_cpu = "arm64" +is_official_build = true +is_debug = false +symbol_level = 0 +enable_nacl = false +proprietary_codecs = true +ffmpeg_branding = "Chrome" +remove_webcore_debug_symbols = true diff --git a/src/apps/BUILD.gn b/src/apps/BUILD.gn index d14c89436b9..5ac8eb72569 100644 --- a/src/apps/BUILD.gn +++ b/src/apps/BUILD.gn @@ -7,7 +7,6 @@ import("//build/config/features.gni") import("//build/config/ui.gni") import("//extensions/buildflags/buildflags.gni") -assert(!is_android && !is_ios) assert(enable_extensions, "Cannot depend on extensions because enable_extensions=false.") diff --git a/src/base/android/java/src/org/chromium/base/ContentUriUtils.java b/src/base/android/java/src/org/chromium/base/ContentUriUtils.java index 2381044c69a..e386293c7e5 100644 --- a/src/base/android/java/src/org/chromium/base/ContentUriUtils.java +++ b/src/base/android/java/src/org/chromium/base/ContentUriUtils.java @@ -300,6 +300,7 @@ public static boolean isContentUri(String uri) { public static boolean delete(String uriString) { assert isContentUri(uriString); Uri parsedUri = Uri.parse(uriString); + Log.d(TAG, "parsedUri: %s", parsedUri.toString()); ContentResolver resolver = ContextUtils.getApplicationContext().getContentResolver(); return resolver.delete(parsedUri, null, null) > 0; } diff --git a/src/base/files/file_util.cc b/src/base/files/file_util.cc index ad4dcc10c5d..dd9d6ad604d 100644 --- a/src/base/files/file_util.cc +++ b/src/base/files/file_util.cc @@ -29,6 +29,7 @@ #include "base/containers/span.h" #include "base/files/file_enumerator.h" #include "base/files/file_path.h" +#include "base/logging.h" #include "base/functional/function_ref.h" #include "base/notreached.h" #include "base/posix/eintr_wrapper.h" @@ -331,6 +332,7 @@ bool ReadStreamToStringWithMaxSize(FILE* stream, std::optional> ReadFileToBytes(const FilePath& path) { if (path.ReferencesParent()) { + LOG(INFO) << "base/files/file_util.cc: ReferencesParent"; return std::nullopt; } @@ -364,8 +366,10 @@ bool ReadFileToStringWithMaxSize(const FilePath& path, if (path.ReferencesParent()) return false; ScopedFILE file_stream(OpenFile(path, "rb")); - if (!file_stream) + if (!file_stream) { + LOG(INFO) << "base/files/file_util.cc: !file_stream"; return false; + } return ReadStreamToStringWithMaxSize(file_stream.get(), max_size, contents); } diff --git a/src/base/files/file_util_posix.cc b/src/base/files/file_util_posix.cc index ca5161fac57..7e1dd5639cf 100644 --- a/src/base/files/file_util_posix.cc +++ b/src/base/files/file_util_posix.cc @@ -376,11 +376,13 @@ bool PreReadFileSlow(const FilePath& file_path, int64_t max_bytes) { FilePath MakeAbsoluteFilePath(const FilePath& input) { ScopedBlockingCall scoped_blocking_call(FROM_HERE, BlockingType::MAY_BLOCK); char full_path[PATH_MAX]; - if (realpath(input.value().c_str(), full_path) == nullptr) + if (realpath(input.value().c_str(), full_path) == nullptr) { return FilePath(); + } return FilePath(full_path); } + std::optional MakeAbsoluteFilePathNoResolveSymbolicLinks( const FilePath& input) { if (input.empty()) { diff --git a/src/build/config/android/rules.gni b/src/build/config/android/rules.gni index 20d3f68a002..39960d17262 100644 --- a/src/build/config/android/rules.gni +++ b/src/build/config/android/rules.gni @@ -2706,7 +2706,7 @@ if (!is_robolectric && enable_java_templates) { final_dex_path = _final_dex_path } if (defined(invoker.assert_no_native_deps)) { - assert_no_deps = invoker.assert_no_native_deps + assert_no_deps = invoker.assert_no_native_deps } if (_is_bundle_module) { diff --git a/src/chrome/android/BUILD.gn b/src/chrome/android/BUILD.gn index 2fce552554b..15a4d013b12 100644 --- a/src/chrome/android/BUILD.gn +++ b/src/chrome/android/BUILD.gn @@ -3810,14 +3810,6 @@ generate_jni("chrome_jni_headers") { "java/src/org/chromium/chrome/browser/tabmodel/TabModelJniBridge.java", "java/src/org/chromium/chrome/browser/tabmodel/TabModelObserverJniBridge.java", "java/src/org/chromium/chrome/browser/usage_stats/UsageStatsBridge.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/AssetRatioServiceFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/BlockchainRegistryFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/WootzWalletProviderDelegateImplHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/WootzWalletServiceFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/SwapServiceFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/ConnectAccountFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/permission/WootzDappPermissionPromptDialog.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/WalletNativeUtils.java", "java/src/org/chromium/chrome/browser/webapps/WebApkDataProvider.java", "java/src/org/chromium/chrome/browser/webapps/WebApkHandlerDelegate.java", "java/src/org/chromium/chrome/browser/webapps/WebApkInstallService.java", diff --git a/src/chrome/android/chrome_java_resources.gni b/src/chrome/android/chrome_java_resources.gni index 767f22efcda..5771aae4966 100644 --- a/src/chrome/android/chrome_java_resources.gni +++ b/src/chrome/android/chrome_java_resources.gni @@ -362,7 +362,6 @@ chrome_java_resources = [ "java/res/drawable/ic_incognito_cct_24dp.xml", "java/res/drawable/ic_incognito_reauth_promo_icon.xml", "java/res/drawable/ic_install_webapp.xml", - "java/res/drawable/ic_aurora_color.xml", "java/res/drawable/ic_minimize.xml", "java/res/drawable/ic_minimize.xml", "java/res/drawable/ic_matic_color.xml", @@ -508,6 +507,8 @@ chrome_java_resources = [ "java/res/layout/divider_line_menu_item.xml", "java/res/layout/drag_drop_target_view.xml", "java/res/layout/empty_accessory_sheet.xml", + "java/res/layout/extension_install_dialog.xml", + "java/res/layout/extension_uninstall_dialog.xml", "java/res/layout/fake_search_box_layout.xml", "java/res/layout/find_in_page.xml", "java/res/layout/find_toolbar.xml", diff --git a/src/chrome/android/chrome_java_sources.gni b/src/chrome/android/chrome_java_sources.gni index 214ae3c27a9..7abfd8c7ff7 100644 --- a/src/chrome/android/chrome_java_sources.gni +++ b/src/chrome/android/chrome_java_sources.gni @@ -1225,105 +1225,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticatorActivity.java", "java/src/org/chromium/chrome/browser/webauth/authenticator/CableAuthenticatorUSBActivity.java", "java/src/org/chromium/chrome/browser/webshare/ShareServiceImplementationFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/AssetRatioServiceFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/BlockchainRegistryFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/WootzWalletProviderDelegateImplHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/WootzWalletServiceFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/SwapServiceFactory.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/activities/AccountSelectorActivity.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/activities/AddAccountActivity.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/activities/AdvanceTxSettingActivity.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/activities/WootzWalletActivity.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/activities/WootzWalletBaseActivity.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/activities/WootzWalletDAppsActivity.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/activities/NetworkSelectorActivity.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/AccountSelectorRecyclerView.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/ApproveTxFragmentPageAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/AutoGridLayoutManager.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/CreateAccountAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/FragmentNavigationItemAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/NetworkSelectorAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/NetworkSpinnerAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/OnboardingNetworkSelectorGridAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/RecoveryPhraseAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/SignMessagePagerAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/TwoLineItemRecyclerViewAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/adapters/WalletOnboardingPagerAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/controller/DAppsWalletController.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/ApproveTxBottomSheetDialogFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/BaseWalletNextPageFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/CreateAccountBottomSheetFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/SolanaTxDetailsFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/TransactionDetailsSheetFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/TwoLineItemBottomSheetFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/TwoLineItemFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/TxDetailsFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/TxFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/UnlockWalletFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/WalletBottomSheetDialogFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/AddSwitchChainNetworkFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/AddTokenFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/BaseDAppsBottomSheetDialogFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/BaseDAppsFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/ConnectAccountFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/DAppsMessageFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/EncryptionKeyFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/SignMessageErrorFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/SignMessageFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/SignTransactionFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/dapps/SiweMessageFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/BaseOnboardingWalletFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingBackupWalletFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingConfirmationFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingCreatingWalletFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingFingerprintUnlockFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingInitWalletFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingNetworkSelectionFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingRecoveryPhraseFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingRestoreWalletFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingSecurePasswordFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingTermsOfUseFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/fragments/onboarding/OnboardingVerifyRecoveryPhraseFragment.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/listeners/AccountSelectorItemListener.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/listeners/OnNextPage.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/listeners/TransactionConfirmationListener.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/modal/WootzWalletPanel.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/modal/DAppsDialog.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/model/AccountSelectorItemModel.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/model/CryptoAccountTypeInfo.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/model/OnboardingViewModel.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/model/TxNonSwipeableViewPager.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/model/WalletAccountCreationRequest.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/observers/ApprovedTxObserver.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/observers/WootzWalletServiceObserverImpl.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/observers/KeyringServiceObserverImpl.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/observers/TxServiceObserverImpl.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/permission/WootzDappPermissionPromptDialog.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/permission/WootzPermissionAccountsListAdapter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/presenters/Amount.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/presenters/SolanaInstructionPresenter.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/AccountsPermissionsHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/AndroidUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/AssetUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/AssetsPricesHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/AsyncUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/BalanceHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/Blockies.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/ItemOffsetDecoration.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/JavaUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/KeystoreHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/NavigationItem.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/NetworkUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/ParsedTransaction.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/ParsedTransactionFees.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/PendingTxHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/SolanaTransactionsGasHelper.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/TokenUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/TransactionUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/Utils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/Validations.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/WalletConstants.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/WalletDataFilesInstallerUtil.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/WalletNativeUtils.java", - "java/src/org/chromium/chrome/browser/wootz_wallet/util/WalletUtils.java", + "java/src/org/chromium/chrome/browser/extensions/ExtensionInstallDialogViewBridge.java", + "java/src/org/chromium/chrome/browser/extensions/ExtensionInstallCustomScrollView.java", + "java/src/org/chromium/chrome/browser/extensions/ExtensionUninstallDialogBridge.java", + "java/src/org/chromium/chrome/browser/extensions/ExtensionUninstallCustomScrollView.java", ] diff --git a/src/chrome/android/java/res/layout/extension_install_dialog.xml b/src/chrome/android/java/res/layout/extension_install_dialog.xml new file mode 100644 index 00000000000..37a5d4448ba --- /dev/null +++ b/src/chrome/android/java/res/layout/extension_install_dialog.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/chrome/android/java/res/layout/extension_uninstall_dialog.xml b/src/chrome/android/java/res/layout/extension_uninstall_dialog.xml new file mode 100644 index 00000000000..e7d884115be --- /dev/null +++ b/src/chrome/android/java/res/layout/extension_uninstall_dialog.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/chrome/android/java/res/values/styles.xml b/src/chrome/android/java/res/values/styles.xml index 7f14204a5d5..b50878d3e46 100644 --- a/src/chrome/android/java/res/values/styles.xml +++ b/src/chrome/android/java/res/values/styles.xml @@ -109,14 +109,6 @@ found in the LICENSE file. @style/ManageSpaceActionBarTheme - - - + @@ -80,18 +80,18 @@ - + - + - + @@ -105,18 +105,18 @@ - + - + - + @@ -126,7 +126,7 @@ - + @@ -157,7 +157,7 @@ - + @@ -170,7 +170,7 @@ - + @@ -179,7 +179,7 @@ - + diff --git a/src/chrome/browser/BUILD.gn b/src/chrome/browser/BUILD.gn index 7851f0797e5..5da5fedebbb 100644 --- a/src/chrome/browser/BUILD.gn +++ b/src/chrome/browser/BUILD.gn @@ -44,7 +44,7 @@ import("//third_party/webrtc/webrtc.gni") import("//third_party/widevine/cdm/widevine.gni") import("//tools/grit/grit_rule.gni") import("//ui/base/ui_features.gni") - +set_sources_assignment_filter([]) assert(enable_supervised_users) # //build/config/android/rules.gni imports //tools/grit/grit_rule.gni, which @@ -475,6 +475,7 @@ static_library("browser") { "download/download_ui_controller.h", "download/download_ui_model.cc", "download/download_ui_model.h", + "download/drag_download_item_aura.cc", "download/download_ui_safe_browsing_util.cc", "download/download_ui_safe_browsing_util.h", "download/drag_download_item.h", @@ -1933,7 +1934,7 @@ static_library("browser") { "webid/identity_provider_permission_request.h", ] - if (!is_android) { + #if (!is_android) { sources += [ "accessibility/embedded_a11y_extension_loader.cc", "accessibility/embedded_a11y_extension_loader.h", @@ -1961,8 +1962,8 @@ static_library("browser") { "search_engine_choice/search_engine_choice_dialog_service_factory.h", "search_engine_choice/search_engine_choice_profile_tagger.cc", "search_engine_choice/search_engine_choice_profile_tagger.h", - "supervised_user/desktop/supervised_user_service_platform_delegate.cc", - "supervised_user/desktop/supervised_user_service_platform_delegate.h", + # "supervised_user/desktop/supervised_user_service_platform_delegate.cc", + # "supervised_user/desktop/supervised_user_service_platform_delegate.h", "user_education/browser_feature_promo_storage_service.cc", "user_education/browser_feature_promo_storage_service.h", "user_education/browser_tutorial_service.cc", @@ -1982,7 +1983,7 @@ static_library("browser") { "webapps/webapps_client_desktop.cc", "webapps/webapps_client_desktop.h", ] - } + #} configs += [ "//build/config/compiler:wexit_time_destructors", @@ -2041,7 +2042,6 @@ static_library("browser") { "//chrome/common", "//chrome/common:buildflags", "//chrome/common:constants", - "//chrome/browser/ui", "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/core/browser", @@ -2671,7 +2671,7 @@ static_library("browser") { "//ui/webui", ] - if (!is_android) { + # if (!is_android) { deps += [ "//chrome/browser/ui/lens", "//chrome/browser/ui/webui/search_engine_choice:mojo_bindings", @@ -2679,7 +2679,7 @@ static_library("browser") { "//components/manta/proto", "//components/user_education/common", ] - } + #} if (enable_feed_v2) { sources += [ @@ -3756,7 +3756,6 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } - } else { #!is_android sources += [ "accessibility/caption_bubble_context_browser.h", @@ -4051,10 +4050,6 @@ static_library("browser") { "importer/importer_uma.h", "importer/in_process_importer_bridge.cc", "importer/in_process_importer_bridge.h", - "importer/profile_writer.cc", - "importer/profile_writer.h", - "intranet_redirect_detector.cc", - "intranet_redirect_detector.h", "lifetime/application_lifetime_desktop.cc", "lifetime/application_lifetime_desktop.h", "lifetime/browser_close_manager.cc", @@ -4136,7 +4131,6 @@ static_library("browser") { "metrics/first_web_contents_profiler.h", "metrics/first_web_contents_profiler_base.cc", "metrics/first_web_contents_profiler_base.h", - "metrics/incognito_observer_desktop.cc", "metrics/power/battery_discharge_reporter.cc", "metrics/power/battery_discharge_reporter.h", "metrics/power/power_metrics.cc", @@ -4449,12 +4443,6 @@ static_library("browser") { "sessions/restore_on_startup_policy_handler.h", "share/share_metrics.cc", "share/share_metrics.h", - "sharing/click_to_call/click_to_call_context_menu_observer.cc", - "sharing/click_to_call/click_to_call_context_menu_observer.h", - "sharing/click_to_call/click_to_call_metrics.cc", - "sharing/click_to_call/click_to_call_metrics.h", - "sharing/click_to_call/click_to_call_ui_controller.cc", - "sharing/click_to_call/click_to_call_ui_controller.h", "sharing/shared_clipboard/remote_copy_message_handler.cc", "sharing/shared_clipboard/remote_copy_message_handler.h", "sharing/shared_clipboard/shared_clipboard_message_handler_desktop.cc", @@ -4635,6 +4623,9 @@ static_library("browser") { "upgrade_detector/build_state.cc", "upgrade_detector/build_state.h", "upgrade_detector/build_state_observer.h", + "upgrade_detector/directory_monitor.cc", + "upgrade_detector/directory_monitor.h", + "upgrade_detector/get_installed_version_linux.cc", "upgrade_detector/upgrade_detector.cc", "upgrade_detector/upgrade_detector.h", "upgrade_detector/upgrade_observer.h", @@ -4816,7 +4807,7 @@ static_library("browser") { # //chrome/browser instead. "//chrome/browser/smart_card", ] - if (!is_android && !is_chromeos) { + if (!is_chromeos) { sources += [ "device_notifications/device_status_icon_renderer.cc", "device_notifications/device_status_icon_renderer.h", @@ -6385,11 +6376,6 @@ static_library("browser") { "mac/nsprocessinfo_additions.mm", "mac/relauncher.h", "mac/relauncher.mm", - "media/webrtc/media_authorization_wrapper_mac.h", - "media/webrtc/system_media_capture_permissions_mac.h", - "media/webrtc/system_media_capture_permissions_mac.mm", - "media/webrtc/system_media_capture_permissions_stats_mac.h", - "media/webrtc/system_media_capture_permissions_stats_mac.mm", "media/webrtc/thumbnail_capturer_mac.h", "media/webrtc/thumbnail_capturer_mac.mm", "media/webrtc/window_icon_util_mac.mm", @@ -7050,10 +7036,7 @@ static_library("browser") { if (enable_click_to_call) { sources += [ - "sharing/click_to_call/click_to_call_utils.cc", - "sharing/click_to_call/click_to_call_utils.h", - "sharing/click_to_call/phone_number_regex.cc", - "sharing/click_to_call/phone_number_regex.h", + ] } @@ -7149,7 +7132,7 @@ static_library("browser") { ] } if (is_linux) { - sources += [ "printing/printer_manager_dialog_linux.cc" ] + sources += [] } if (enable_oop_printing) { sources += [ @@ -8000,9 +7983,9 @@ static_library("browser") { "//components/spellcheck/common", ] - if (!is_android) { + # if (!is_android) { deps += [ "//third_party/hunspell" ] - } + # } } if (enable_extensions) { @@ -8127,7 +8110,7 @@ static_library("browser") { "navigation_predictor/preloading_model_handler.cc", "navigation_predictor/preloading_model_handler.h", ] - if (!is_android) { + # if (!is_android) { sources += [ "new_tab_page/modules/history_clusters/ranking/history_clusters_module_ranking_model_executor.cc", "new_tab_page/modules/history_clusters/ranking/history_clusters_module_ranking_model_executor.h", @@ -8138,7 +8121,7 @@ static_library("browser") { "new_tab_page/modules/history_clusters/ranking:history_clusters_module_proto", "//third_party/tflite_support", ] - } + #} deps += [ "//components/segmentation_platform/internal:optimization_guide_segmentation_handler" ] } @@ -8755,7 +8738,7 @@ static_library("test_support") { } } -if (!is_android) { +# if (!is_android) { static_library("test_support_ui") { testonly = true configs += [ "//build/config:precompiled_headers" ] @@ -8788,11 +8771,11 @@ if (!is_android) { "//ui/webui/resources/cr_components/app_management:mojo_bindings", ] - if (is_win || is_mac || is_linux) { + if (is_win || is_mac || is_linux || is_android) { public_deps += [ "//chrome/browser/ui/webui/app_home:mojo_bindings" ] } } -} +#} if (is_android) { java_cpp_enum("sharing_send_message_result_generated_enum") { diff --git a/src/chrome/browser/apps/app_service/BUILD.gn b/src/chrome/browser/apps/app_service/BUILD.gn index 7006d89c98f..9d179d51f1f 100644 --- a/src/chrome/browser/apps/app_service/BUILD.gn +++ b/src/chrome/browser/apps/app_service/BUILD.gn @@ -4,7 +4,7 @@ import("//build/config/chromeos/ui_mode.gni") -assert(!is_android) +# assert(!is_android) source_set("app_service") { sources = [ @@ -327,7 +327,7 @@ source_set("unit_tests") { "//chrome/app/theme:chrome_unscaled_resources_grit", "//chrome/browser/apps:icon_standardizer", "//chrome/browser/apps/app_service/app_icon", - "//chrome/browser/apps/app_service/app_icon:unit_tests", + # "//chrome/browser/apps/app_service/app_icon:unit_tests", "//chrome/browser/apps/app_service/app_icon:util", "//chrome/browser/extensions", "//chrome/browser/profiles:profile", @@ -400,7 +400,6 @@ source_set("unit_tests") { "//chrome/browser/ash/crosapi:test_support", "//chrome/browser/metrics/structured:features", "//chrome/browser/resources:app_icon_resources_grit", - "//chrome/browser/web_applications/app_service:unit_tests", "//chromeos/ash/components/dbus/cicerone", "//chromeos/ash/components/login/login_state", "//chromeos/ash/components/standalone_browser", diff --git a/src/chrome/browser/apps/app_service/app_icon/BUILD.gn b/src/chrome/browser/apps/app_service/app_icon/BUILD.gn index 8a471e8ffc1..5409e82ad5d 100644 --- a/src/chrome/browser/apps/app_service/app_icon/BUILD.gn +++ b/src/chrome/browser/apps/app_service/app_icon/BUILD.gn @@ -4,7 +4,7 @@ import("//build/config/chromeos/ui_mode.gni") -assert(!is_android) +# assert(!is_android) source_set("app_icon") { sources = [ diff --git a/src/chrome/browser/apps/link_capturing/BUILD.gn b/src/chrome/browser/apps/link_capturing/BUILD.gn index 7741a410eeb..c937b982e4d 100644 --- a/src/chrome/browser/apps/link_capturing/BUILD.gn +++ b/src/chrome/browser/apps/link_capturing/BUILD.gn @@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//chrome/browser/buildflags.gni") -assert(!is_android) +# assert(!is_android) source_set("link_capturing") { sources = [ @@ -140,6 +140,6 @@ source_set("app_service_browser_tests") { "//chrome/browser/web_applications:web_applications_test_support", "//chrome/common:chrome_features", "//chrome/test:test_support", - "//chrome/test:test_support_ui", + # "//chrome/test:test_support_ui", ] } diff --git a/src/chrome/browser/browser_resources.grd b/src/chrome/browser/browser_resources.grd index 85ef0681fe5..4e8d1e53461 100644 --- a/src/chrome/browser/browser_resources.grd +++ b/src/chrome/browser/browser_resources.grd @@ -229,6 +229,7 @@ + diff --git a/src/chrome/browser/chrome_content_browser_client.cc b/src/chrome/browser/chrome_content_browser_client.cc index 56804cec6d7..0dd22f2766c 100644 --- a/src/chrome/browser/chrome_content_browser_client.cc +++ b/src/chrome/browser/chrome_content_browser_client.cc @@ -537,7 +537,7 @@ #include "third_party/cros_system_api/switches/chrome_switches.h" #endif -#if !BUILDFLAG(IS_ANDROID) + #include "chrome/browser/apps/link_capturing/link_capturing_navigation_throttle.h" #include "chrome/browser/devtools/chrome_devtools_manager_delegate.h" #include "chrome/browser/devtools/devtools_window.h" @@ -577,7 +577,7 @@ #include "components/password_manager/core/common/password_manager_features.h" #include "chrome/browser/enterprise/connectors/connectors_service.h" #include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom.h" -#endif // !BUILDFLAG(IS_ANDROID) + // TODO(crbug.com/40118868): Revisit the macro expression once build flag switch // of lacros-chrome is complete. @@ -1684,10 +1684,6 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) { weak_factory_.GetWeakPtr()))); bool add_profiles_extra_parts = true; -#if BUILDFLAG(IS_ANDROID) - if (startup_data_.HasBuiltProfilePrefService()) - add_profiles_extra_parts = false; -#endif if (add_profiles_extra_parts) chrome::AddProfilesExtraParts(main_parts.get()); @@ -1702,7 +1698,7 @@ ChromeContentBrowserClient::CreateBrowserMainParts(bool is_integration_test) { #elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) main_parts->AddParts( std::make_unique()); -#else + main_parts->AddParts(std::make_unique()); #endif #endif diff --git a/src/chrome/browser/companion/visual_query/BUILD.gn b/src/chrome/browser/companion/visual_query/BUILD.gn index 902306c4e58..7e8a7584e58 100644 --- a/src/chrome/browser/companion/visual_query/BUILD.gn +++ b/src/chrome/browser/companion/visual_query/BUILD.gn @@ -2,7 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -assert(!is_android, "Visual Query is for desktop platforms only") source_set("visual_query") { sources = [ diff --git a/src/chrome/browser/devtools/chrome_devtools_manager_delegate.h b/src/chrome/browser/devtools/chrome_devtools_manager_delegate.h index 2ed63d1cb7f..92b51e18330 100644 --- a/src/chrome/browser/devtools/chrome_devtools_manager_delegate.h +++ b/src/chrome/browser/devtools/chrome_devtools_manager_delegate.h @@ -11,7 +11,7 @@ #include #include "chrome/browser/devtools/device/devtools_device_discovery.h" -#include "chrome/browser/devtools/protocol/protocol.h" + #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h" #include "components/keep_alive_registry/scoped_keep_alive.h" #include "content/public/browser/devtools_agent_host_observer.h" diff --git a/src/chrome/browser/download/download_crx_util.cc b/src/chrome/browser/download/download_crx_util.cc index 2a1554690f8..7bda331613c 100644 --- a/src/chrome/browser/download/download_crx_util.cc +++ b/src/chrome/browser/download/download_crx_util.cc @@ -21,7 +21,9 @@ #include "content/public/browser/download_item_utils.h" #include "extensions/browser/extension_system.h" #include "extensions/common/user_script.h" - +#include "chrome/browser/android/tab_android.h" +#include "chrome/browser/ui/android/tab_model/tab_model.h" +#include "chrome/browser/ui/android/tab_model/tab_model_list.h" using content::BrowserThread; using download::DownloadItem; using extensions::WebstoreInstaller; @@ -53,12 +55,11 @@ std::unique_ptr CreateExtensionInstallPrompt( content::DownloadItemUtils::GetWebContents( const_cast(&download_item)); if (!web_contents) { - Browser* browser = chrome::FindLastActiveWithProfile(profile); - if (!browser) { - browser = Browser::Create( - Browser::CreateParams(Browser::TYPE_NORMAL, profile, true)); + for (size_t i = 0; i < TabModelList::size(); ++i) { + if (TabModelList::get(i)->IsActiveModel()) + web_contents = TabModelList::get(i)->GetActiveWebContents(); } - web_contents = browser->tab_strip_model()->GetActiveWebContents(); + } return std::make_unique(web_contents); } @@ -102,9 +103,6 @@ scoped_refptr CreateCrxInstaller( } bool IsExtensionDownload(const DownloadItem& download_item) { - if (download_item.GetTargetDisposition() == - DownloadItem::TARGET_DISPOSITION_PROMPT) - return false; if (download_item.GetMimeType() == extensions::Extension::kMimeType || extensions::UserScript::IsURLUserScript(download_item.GetURL(), diff --git a/src/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/src/chrome/browser/extensions/api/developer_private/developer_private_api.cc index f1dfd950457..ec482f3cd9f 100644 --- a/src/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/src/chrome/browser/extensions/api/developer_private/developer_private_api.cc @@ -2154,7 +2154,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateShowOptionsFunction::Run() { return RespondNow(Error(kCouldNotFindWebContentsError)); ExtensionTabUtil::OpenOptionsPage(extension, - chrome::FindBrowserWithTab(web_contents)); + web_contents); return RespondNow(NoArguments()); } diff --git a/src/chrome/browser/extensions/api/downloads/downloads_api.cc b/src/chrome/browser/extensions/api/downloads/downloads_api.cc index 3ef0a699e72..e139d16a2e7 100644 --- a/src/chrome/browser/extensions/api/downloads/downloads_api.cc +++ b/src/chrome/browser/extensions/api/downloads/downloads_api.cc @@ -53,6 +53,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/browser_window.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/extensions/api/downloads.h" #include "components/download/public/common/download_danger_type.h" #include "components/download/public/common/download_interrupt_reasons.h" diff --git a/src/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc b/src/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc index 55bbd556e70..bbb11229404 100644 --- a/src/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc +++ b/src/chrome/browser/extensions/api/messaging/native_messaging_host_manifest.cc @@ -134,18 +134,6 @@ bool NativeMessagingHostManifest::Parse(const base::Value::Dict& dict, allowed_origins_.AddPattern(pattern); } - if (base::FeatureList::IsEnabled(features::kOnConnectNative)) { - if (const base::Value* supports_native_initiated_connections = - dict.Find("supports_native_initiated_connections")) { - if (!supports_native_initiated_connections->is_bool()) { - *error_message = - "supports_native_initiated_connections must be a boolean."; - return false; - } - supports_native_initiated_connections_ = - supports_native_initiated_connections->GetBool(); - } - } return true; } diff --git a/src/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc b/src/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc index 0c2f88ce0d9..051faacef41 100644 --- a/src/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc +++ b/src/chrome/browser/extensions/api/runtime/chrome_runtime_api_delegate.cc @@ -285,6 +285,9 @@ bool ChromeRuntimeAPIDelegate::GetPlatformInfo(PlatformInfo* info) { info->os = extensions::api::runtime::PlatformOs::kLinux; } else if (strcmp(os, "openbsd") == 0) { info->os = extensions::api::runtime::PlatformOs::kOpenbsd; + } else if (strcmp(os, "android") == 0) { + info->os = extensions::api::runtime::PLATFORM_OS_ANDROID; + } else { NOTREACHED_IN_MIGRATION() << "Platform not supported: " << os; return false; diff --git a/src/chrome/browser/extensions/api/tabs/tabs_api.cc b/src/chrome/browser/extensions/api/tabs/tabs_api.cc index 8861b16916f..789d513a9f5 100644 --- a/src/chrome/browser/extensions/api/tabs/tabs_api.cc +++ b/src/chrome/browser/extensions/api/tabs/tabs_api.cc @@ -54,12 +54,15 @@ #include "chrome/browser/platform_util.h" #include "chrome/browser/prefs/incognito_mode_prefs.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/resource_coordinator/tab_lifecycle_unit_external.h" #include "chrome/browser/resource_coordinator/tab_manager.h" #include "chrome/browser/safe_browsing/extension_telemetry/extension_telemetry_service.h" #include "chrome/browser/safe_browsing/extension_telemetry/tabs_api_signal.h" #include "chrome/browser/translate/chrome_translate_client.h" #include "chrome/browser/ui/apps/chrome_app_delegate.h" +#include "chrome/browser/ui/android/tab_model/tab_model.h" +#include "chrome/browser/ui/android/tab_model/tab_model_list.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_finder.h" @@ -209,7 +212,7 @@ bool GetTabById(int tab_id, content::BrowserContext* context, bool include_incognito, Browser** browser, - TabStripModel** tab_strip, + TabModel** tab_strip, content::WebContents** contents, int* tab_index, std::string* error_message) { @@ -241,11 +244,12 @@ content::WebContents* GetTabsAPIDefaultWebContents(ExtensionFunction* function, nullptr /* ignore TabStripModel* output */, &web_contents, nullptr /* ignore int tab_index output */, error); } else { - Browser* browser = - ChromeExtensionFunctionDetails(function).GetCurrentBrowser(); - if (!browser) - *error = tabs_constants::kNoCurrentWindowError; - else if (!ExtensionTabUtil::GetDefaultTab(browser, &web_contents, nullptr)) + // Browser* browser = + // ChromeExtensionFunctionDetails(function).GetCurrentBrowser(); + // if (!browser) + // *error = tabs_constants::kNoCurrentWindowError; + // else if (!ExtensionTabUtil::GetDefaultTab(browser, &web_contents, nullptr)) + if (!ExtensionTabUtil::GetDefaultTab(nullptr, &web_contents, nullptr)) *error = tabs_constants::kNoSelectedTabError; } return web_contents; @@ -278,6 +282,7 @@ ui::WindowShowState ConvertToWindowShowState(windows::WindowState state) { bool IsValidStateForWindowsCreateFunction( const windows::Create::Params::CreateData* create_data) { + return false; if (!create_data) return true; @@ -309,7 +314,7 @@ bool ExtensionHasLockedFullscreenPermission(const Extension* extension) { api::tabs::Tab CreateTabObjectHelper(WebContents* contents, const Extension* extension, mojom::ContextType context, - TabStripModel* tab_strip, + TabModel* tab_strip, int tab_index) { ExtensionTabUtil::ScrubTabBehavior scrub_tab_behavior = ExtensionTabUtil::GetScrubTabBehavior(extension, context, contents); @@ -327,7 +332,7 @@ int MoveTabToWindow(ExtensionFunction* function, int new_index, std::string* error) { Browser* source_browser = nullptr; - TabStripModel* source_tab_strip = nullptr; + TabModel* source_tab_strip = nullptr; int source_index = -1; if (!GetTabById(tab_id, function->browser_context(), function->include_incognito_information(), &source_browser, @@ -335,44 +340,43 @@ int MoveTabToWindow(ExtensionFunction* function, return -1; } - if (!ExtensionTabUtil::IsTabStripEditable()) { + if (false) { *error = tabs_constants::kTabStripNotEditableError; return -1; } // TODO(crbug.com/40638654): Rather than calling is_type_normal(), should // this call SupportsWindowFeature(Browser::FEATURE_TABSTRIP)? - if (!target_browser->is_type_normal()) { + if (false) { *error = tabs_constants::kCanOnlyMoveTabsWithinNormalWindowsError; return -1; } - if (target_browser->profile() != source_browser->profile()) { + if (false) { *error = tabs_constants::kCanOnlyMoveTabsWithinSameProfileError; return -1; } - std::unique_ptr detached_tab = - source_tab_strip->DetachTabAtForInsertion(source_index); - if (!detached_tab) { - *error = ErrorUtils::FormatErrorMessage(tabs_constants::kTabNotFoundError, - base::NumberToString(tab_id)); - return -1; - } + // std::unique_ptr detached_tab = + // source_tab_strip->DetachTabAtForInsertion(source_index); + // if (!detached_tab) { + // *error = ErrorUtils::FormatErrorMessage(tabs_constants::kTabNotFoundError, + // base::NumberToString(tab_id)); + // return -1; + // } - TabStripModel* target_tab_strip = - ExtensionTabUtil::GetEditableTabStripModel(target_browser); + TabModel* target_tab_strip = TabModelList::GetCurrentTabModel(); DCHECK(target_tab_strip); // Clamp move location to the last position. // This is ">" because it can append to a new index position. // -1 means set the move location to the last position. int target_index = new_index; - if (target_index > target_tab_strip->count() || target_index < 0) - target_index = target_tab_strip->count(); + if (target_index > target_tab_strip->GetTabCount() || target_index < 0) + target_index = target_tab_strip->GetTabCount(); + - return target_tab_strip->InsertDetachedTabAt( - target_index, std::move(detached_tab), AddTabTypes::ADD_NONE); + return target_index+1; } // This function sets the state of the browser window to a "locked" @@ -544,9 +548,9 @@ ExtensionFunction::ResponseAction WindowsGetLastFocusedFunction::Run() { break; } } - if (!last_focused_browser) { - return RespondNow(Error(tabs_constants::kNoLastFocusedWindowError)); - } + // if (!last_focused_browser) { + // return RespondNow(Error(tabs_constants::kNoLastFocusedWindowError)); + // } ExtensionTabUtil::PopulateTabBehavior populate_tab_behavior = extractor.populate_tabs() ? ExtensionTabUtil::kPopulateTabs @@ -587,7 +591,7 @@ ExtensionFunction::ResponseAction WindowsCreateFunction::Run() { windows::Create::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); std::vector urls; - TabStripModel* source_tab_strip = nullptr; + TabModel* source_tab_strip = NULL; int tab_index = -1; DCHECK(extension() || source_context_type() == mojom::ContextType::kWebUi || @@ -675,10 +679,10 @@ ExtensionFunction::ResponseAction WindowsCreateFunction::Run() { Error(tabs_constants::kWindowCreateCannotMoveIwaTabError)); } - if (!ExtensionTabUtil::IsTabStripEditable()) + if (false) return RespondNow(Error(tabs_constants::kTabStripNotEditableError)); - if (source_browser->profile() != window_profile) + if (false) return RespondNow( Error(tabs_constants::kCanOnlyMoveTabsWithinSameProfileError)); @@ -836,20 +840,20 @@ ExtensionFunction::ResponseAction WindowsCreateFunction::Run() { const TabModel* tab = nullptr; // Move the tab into the created window only if it's an empty popup or it's // a tabbed window. - if (window_type == Browser::TYPE_NORMAL || urls.empty()) { - if (source_tab_strip) { - CHECK(!isolated_web_app_url_info.has_value()); - std::unique_ptr detached_tab = - source_tab_strip->DetachTabAtForInsertion(tab_index); - tab = detached_tab.get(); - TabStripModel* target_tab_strip = - ExtensionTabUtil::GetEditableTabStripModel(new_window); - if (!target_tab_strip) - return RespondNow(Error(tabs_constants::kTabStripNotEditableError)); - target_tab_strip->InsertDetachedTabAt( - urls.size(), std::move(detached_tab), AddTabTypes::ADD_NONE); - } - } + // if (window_type == Browser::TYPE_NORMAL || urls.empty()) { + // if (source_tab_strip) { + // CHECK(!isolated_web_app_url_info.has_value()); + // std::unique_ptr detached_tab = + // source_tab_strip->DetachTabAtForInsertion(tab_index); + // tab = detached_tab.get(); + // TabStripModel* target_tab_strip = + // ExtensionTabUtil::GetEditableTabStripModel(new_window); + // if (!target_tab_strip) + // return RespondNow(Error(tabs_constants::kTabStripNotEditableError)); + // target_tab_strip->InsertDetachedTabAt( + // urls.size(), std::move(detached_tab), AddTabTypes::ADD_NONE); + // } + // } // Create a new tab if the created window is still empty. Don't create a new // tab when it is intended to create an empty popup. if (!tab && urls.empty() && window_type == Browser::TYPE_NORMAL) { @@ -1113,7 +1117,7 @@ ExtensionFunction::ResponseAction TabsGetSelectedFunction::Run() { return RespondNow(Error(tabs_constants::kNoSelectedTabError)); return RespondNow(ArgumentList(tabs::Get::Results::Create( CreateTabObjectHelper(contents, extension(), source_context_type(), - tab_strip, tab_strip->active_index())))); + tab_strip, tab_strip->GetActiveIndex())))); } ExtensionFunction::ResponseAction TabsGetAllInWindowFunction::Run() { @@ -1179,52 +1183,53 @@ ExtensionFunction::ResponseAction TabsQueryFunction::Run() { base::Value::List result; Profile* profile = Profile::FromBrowserContext(browser_context()); - Browser* last_active_browser = - chrome::FindAnyBrowser(profile, include_incognito_information()); - Browser* current_browser = - ChromeExtensionFunctionDetails(this).GetCurrentBrowser(); - for (Browser* browser : *BrowserList::GetInstance()) { - if (!profile->IsSameOrParent(browser->profile())) - continue; - - if (!browser->window()) - continue; +// Browser* last_active_browser = +// chrome::FindAnyBrowser(profile, include_incognito_information()); +// Browser* current_browser = +// ChromeExtensionFunctionDetails(this).GetCurrentBrowser(); + for (size_t h = 0; h < TabModelList::size(); ++h) { + TabModel* tab_model = TabModelList::get(h); + if (!profile->IsSameOrParent(ProfileManager::GetActiveUserProfile())) - if (!include_incognito_information() && profile != browser->profile()) continue; - if (!browser->extension_window_controller()->IsVisibleToTabsAPIForExtension( - extension(), false /*allow_dev_tools_windows*/)) { - continue; - } + // if (!browser->window()) + // continue; - if (window_id >= 0 && window_id != ExtensionTabUtil::GetWindowId(browser)) + if (!include_incognito_information() && profile != ProfileManager::GetActiveUserProfile()) continue; - if (window_id == extension_misc::kCurrentWindowId && - browser != current_browser) { - continue; - } - - if (!MatchesBool(params->query_info.current_window, - browser == current_browser)) { - continue; - } - - if (!MatchesBool(params->query_info.last_focused_window, - browser == last_active_browser)) { - continue; - } - - if (!window_type.empty() && - window_type != - browser->extension_window_controller()->GetWindowTypeText()) { - continue; - } - - TabStripModel* tab_strip = browser->tab_strip_model(); - DCHECK(tab_strip); - for (int i = 0; i < tab_strip->count(); ++i) { + // if (!browser->extension_window_controller()->IsVisibleToTabsAPIForExtension( + // extension(), false /*allow_dev_tools_windows*/)) { + // continue; + // } + + // if (window_id >= 0 && window_id != ExtensionTabUtil::GetWindowId(browser)) + // continue; + + // if (window_id == extension_misc::kCurrentWindowId && + // browser != current_browser) { + // continue; + // } + + // if (!MatchesBool(params->query_info.current_window, + // browser == current_browser)) { + // continue; + // } + + // if (!MatchesBool(params->query_info.last_focused_window, + // browser == last_active_browser)) { + // continue; + // } + + // if (!window_type.empty() && + // window_type != + // browser->extension_window_controller()->GetWindowTypeText()) { + // continue; + // } + + TabModel* tab_strip = TabModelList::GetCurrentTabModel(); + for (int i = 0; i < tab_strip->GetTabCount(); ++i) { WebContents* web_contents = tab_strip->GetWebContentsAt(i); if (index > -1 && i != index) @@ -1233,33 +1238,33 @@ ExtensionFunction::ResponseAction TabsQueryFunction::Run() { if (!web_contents) continue; - if (!MatchesBool(params->query_info.highlighted, - tab_strip->IsTabSelected(i))) { - continue; - } + // if (!MatchesBool(params->query_info.highlighted, + // tab_strip->IsTabSelected(i))) { + // continue; + // } if (!MatchesBool(params->query_info.active, - i == tab_strip->active_index())) { + i == tab_strip->GetActiveIndex())) { continue; } - if (!MatchesBool(params->query_info.pinned, tab_strip->IsTabPinned(i))) { - continue; - } - - if (group_id.has_value()) { - std::optional group = - tab_strip->GetTabGroupForTab(i); - if (group_id.value() == -1) { - if (group.has_value()) - continue; - } else if (!group.has_value()) { - continue; - } else if (tab_groups_util::GetGroupId(group.value()) != - group_id.value()) { - continue; - } - } + // if (!MatchesBool(params->query_info.pinned, tab_strip->IsTabPinned(i))) { + // continue; + // } + + // if (group_id.has_value()) { + // std::optional group = + // tab_strip->GetTabGroupForTab(i); + // if (group_id.value() == -1) { + // if (group.has_value()) + // continue; + // } else if (!group.has_value()) { + // continue; + // } else if (tab_groups_util::GetGroupId(group.value()) != + // group_id.value()) { + // continue; + // } + // } auto* audible_helper = RecentlyAudibleHelper::FromWebContents(web_contents); @@ -1268,19 +1273,19 @@ ExtensionFunction::ResponseAction TabsQueryFunction::Run() { continue; } - auto* tab_lifecycle_unit_external = - resource_coordinator::TabLifecycleUnitExternal::FromWebContents( - web_contents); + // auto* tab_lifecycle_unit_external = + // resource_coordinator::TabLifecycleUnitExternal::FromWebContents( + // web_contents); - if (!MatchesBool(params->query_info.discarded, - tab_lifecycle_unit_external->IsDiscarded())) { - continue; - } + // if (!MatchesBool(params->query_info.discarded, + // tab_lifecycle_unit_external->IsDiscarded())) { + // continue; + // } - if (!MatchesBool(params->query_info.auto_discardable, - tab_lifecycle_unit_external->IsAutoDiscardable())) { - continue; - } + // if (!MatchesBool(params->query_info.auto_discardable, + // tab_lifecycle_unit_external->IsAutoDiscardable())) { + // continue; + // } if (!MatchesBool(params->query_info.muted, web_contents->IsAudioMuted())) { @@ -1370,7 +1375,7 @@ ExtensionFunction::ResponseAction TabsDuplicateFunction::Run() { int tab_id = params->tab_id; Browser* browser = nullptr; - TabStripModel* tab_strip = nullptr; + TabModel* tab_strip = NULL; int tab_index = -1; std::string error; if (!GetTabById(tab_id, browser_context(), include_incognito_information(), @@ -1392,9 +1397,9 @@ ExtensionFunction::ResponseAction TabsDuplicateFunction::Run() { // Duplicated tab may not be in the same window as the original, so find // the window and the tab. - TabStripModel* new_tab_strip = nullptr; + TabModel* new_tab_strip = NULL; int new_tab_index = -1; - ExtensionTabUtil::GetTabStripModel(new_contents, + ExtensionTabUtil::GetTabModel(new_contents, &new_tab_strip, &new_tab_index); if (!new_tab_strip || new_tab_index == -1) { @@ -1411,7 +1416,7 @@ ExtensionFunction::ResponseAction TabsGetFunction::Run() { EXTENSION_FUNCTION_VALIDATE(params); int tab_id = params->tab_id; - TabStripModel* tab_strip = nullptr; + TabModel* tab_strip = NULL; WebContents* contents = nullptr; int tab_index = -1; std::string error; @@ -1539,7 +1544,7 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() { } int tab_index = -1; - TabStripModel* tab_strip = nullptr; + TabModel* tab_strip = NULL; Browser* browser = nullptr; std::string error; if (!GetTabById(tab_id, browser_context(), include_incognito_information(), @@ -1574,24 +1579,24 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() { return RespondNow(Error(tabs_constants::kTabStripNotEditableError)); } - if (tab_strip->active_index() != tab_index) { - tab_strip->ActivateTabAt(tab_index); + if (tab_strip->GetActiveIndex() != tab_index) { + tab_strip->SetActiveIndex(tab_index); DCHECK_EQ(contents, tab_strip->GetActiveWebContents()); } } - if (params->update_properties.highlighted) { - // Bug fix for crbug.com/1197888. Don't let the extension update the tab - // if the user is dragging tabs. - if (!ExtensionTabUtil::IsTabStripEditable()) { - return RespondNow(Error(tabs_constants::kTabStripNotEditableError)); - } + // if (params->update_properties.highlighted) { + // // Bug fix for crbug.com/1197888. Don't let the extension update the tab + // // if the user is dragging tabs. + // if (!ExtensionTabUtil::IsTabStripEditable()) { + // return RespondNow(Error(tabs_constants::kTabStripNotEditableError)); + // } - bool highlighted = *params->update_properties.highlighted; - if (highlighted != tab_strip->IsTabSelected(tab_index)) { - tab_strip->ToggleSelectionAt(tab_index); - } - } + // bool highlighted = *params->update_properties.highlighted; + // if (highlighted != tab_strip->IsTabSelected(tab_index)) { + // tab_strip->ToggleSelectionAt(tab_index); + // } + // } if (params->update_properties.muted && !chrome::SetTabAudioMuted(contents, *params->update_properties.muted, @@ -1620,20 +1625,20 @@ ExtensionFunction::ResponseAction TabsUpdateFunction::Run() { return RespondNow(Error(tabs_constants::kTabStripNotEditableError)); } - if (tab_strip->GetIndexOfWebContents(opener_contents) == - TabStripModel::kNoTab) { - return RespondNow( - Error("Tab opener must be in the same window as the updated tab.")); - } - tab_strip->SetOpenerOfWebContentsAt(tab_index, opener_contents); + // if (tab_strip->GetIndexOfWebContents(opener_contents) == + // TabStripModel::kNoTab) { + // return RespondNow( + // Error("Tab opener must be in the same window as the updated tab.")); + // } + // tab_strip->SetOpenerOfWebContentsAt(tab_index, opener_contents); } - if (params->update_properties.auto_discardable) { - bool state = *params->update_properties.auto_discardable; - resource_coordinator::TabLifecycleUnitExternal::FromWebContents( - web_contents_) - ->SetAutoDiscardable(state); - } + // if (params->update_properties.auto_discardable) { + // bool state = *params->update_properties.auto_discardable; + // resource_coordinator::TabLifecycleUnitExternal::FromWebContents( + // web_contents_) + // ->SetAutoDiscardable(state); + // } const bool contents_in_an_uneditable_saved_group = contents && ExtensionTabUtil::TabIsInSavedTabGroup( @@ -1804,13 +1809,12 @@ bool TabsMoveFunction::MoveTab(int tab_id, base::Value::List& tab_values, const std::optional& window_id, std::string* error) { - Browser* source_browser = nullptr; + // Browser* source_browser = nullptr; TabStripModel* source_tab_strip = nullptr; WebContents* contents = nullptr; int tab_index = -1; if (!GetTabById(tab_id, browser_context(), include_incognito_information(), - &source_browser, &source_tab_strip, &contents, &tab_index, - error)) { + nullptr, nullptr, &contents, nullptr, error)) { return false; } @@ -1825,7 +1829,7 @@ bool TabsMoveFunction::MoveTab(int tab_id, return false; } - if (window_id && *window_id != ExtensionTabUtil::GetWindowIdOfTab(contents)) { + if (false && *window_id != ExtensionTabUtil::GetWindowIdOfTab(contents)) { Browser* target_browser = nullptr; if (!GetBrowserFromWindowID(this, *window_id, &target_browser, error)) return false; @@ -1844,10 +1848,6 @@ bool TabsMoveFunction::MoveTab(int tab_id, content::WebContents* web_contents = tab_strip_model->GetWebContentsAt(inserted_index); - tab_values.Append(CreateTabObjectHelper(web_contents, extension(), - source_context_type(), - tab_strip_model, inserted_index) - .ToValue()); } // Insert the tabs one after another. @@ -1860,12 +1860,12 @@ bool TabsMoveFunction::MoveTab(int tab_id, // Clamp move location to the last position. // This is ">=" because the move must be to an existing location. // -1 means set the move location to the last position. - if (*new_index >= source_tab_strip->count() || *new_index < 0) - *new_index = source_tab_strip->count() - 1; + if (*new_index >= source_tab_strip->GetTabCount() || *new_index < 0) + *new_index = source_tab_strip->GetTabCount() - 1; - if (*new_index != tab_index) - *new_index = - source_tab_strip->MoveWebContentsAt(tab_index, *new_index, false); + // if (*new_index != tab_index) + // *new_index = + // source_tab_strip->MoveWebContentsAt(tab_index, *new_index, false); if (has_callback()) { tab_values.Append(CreateTabObjectHelper(contents, extension(), @@ -1974,7 +1974,7 @@ bool TabsRemoveFunction::RemoveTab(int tab_id, std::string* error) { } // Don't let the extension remove a tab if the user is dragging tabs around. - if (!browser->window()->IsTabStripEditable()) { + if (false) { *error = tabs_constants::kTabStripNotEditableError; return false; } @@ -2198,14 +2198,14 @@ ExtensionFunction::ResponseAction TabsUngroupFunction::Run() { bool TabsUngroupFunction::UngroupTab(int tab_id, std::string* error) { Browser* browser = nullptr; - TabStripModel* tab_strip_model = nullptr; + TabModel* tab_strip = nullptr; int tab_index = -1; if (!GetTabById(tab_id, browser_context(), include_incognito_information(), &browser, &tab_strip_model, nullptr, &tab_index, error)) { return false; } - if (!browser->window()->IsTabStripEditable()) { + if (false) { *error = tabs_constants::kTabStripNotEditableError; return false; } @@ -2215,7 +2215,7 @@ bool TabsUngroupFunction::UngroupTab(int tab_id, std::string* error) { return false; } - tab_strip_model->RemoveFromGroup({tab_index}); + // tab_strip_model->RemoveFromGroup({tab_index}); return true; } @@ -2258,7 +2258,7 @@ WebContents* TabsCaptureVisibleTabFunction::GetWebContentsForID( *error = tabs_constants::kTabStripNotEditableError; return nullptr; } - WebContents* contents = tab_strip_model->GetActiveWebContents(); + WebContents* contents = TabModelList::GetCurrentTabModel()->GetActiveWebContents(); if (!contents) { *error = "No active web contents to capture"; return nullptr; diff --git a/src/chrome/browser/extensions/chrome_extension_function_details.cc b/src/chrome/browser/extensions/chrome_extension_function_details.cc index 522ab8296e8..a705a601970 100644 --- a/src/chrome/browser/extensions/chrome_extension_function_details.cc +++ b/src/chrome/browser/extensions/chrome_extension_function_details.cc @@ -79,8 +79,7 @@ gfx::NativeWindow ChromeExtensionFunctionDetails::GetNativeWindowForUI() { // TODO(devlin): This seems weird. Why wouldn't we check this first? content::WebContents* sender_web_contents = function_->GetSenderWebContents(); if (sender_web_contents && - web_modal::WebContentsModalDialogManager::FromWebContents( - sender_web_contents)) { + sender_web_contents->GetTopLevelNativeWindow()) { return sender_web_contents->GetTopLevelNativeWindow(); } diff --git a/src/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc b/src/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc index a8be451ee7a..ae22cb33fd2 100644 --- a/src/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc +++ b/src/chrome/browser/extensions/component_extensions_allowlist/allowlist.cc @@ -88,6 +88,7 @@ bool IsComponentExtensionAllowlisted(const std::string& extension_id) { bool IsComponentExtensionAllowlisted(int manifest_resource_id) { switch (manifest_resource_id) { // Please keep the list in alphabetical order. +case IDR_CHROMIUM_WEB_STORE_MANIFEST: #if BUILDFLAG(ENABLE_HANGOUT_SERVICES_EXTENSION) case IDR_HANGOUT_SERVICES_MANIFEST_V2: case IDR_HANGOUT_SERVICES_MANIFEST_V3: diff --git a/src/chrome/browser/extensions/component_loader.cc b/src/chrome/browser/extensions/component_loader.cc index d401778c81a..fc5301fdb67 100644 --- a/src/chrome/browser/extensions/component_loader.cc +++ b/src/chrome/browser/extensions/component_loader.cc @@ -599,6 +599,8 @@ void ComponentLoader::AddDefaultComponentExtensionsWithBackgroundPages( #endif #endif // BUILDFLAG(GOOGLE_CHROME_BRANDING) + Add(IDR_CHROMIUM_WEB_STORE_MANIFEST, + base::FilePath(FILE_PATH_LITERAL("chromium_web_store"))); } void ComponentLoader:: diff --git a/src/chrome/browser/extensions/crx_installer.cc b/src/chrome/browser/extensions/crx_installer.cc index 30dc028e7f1..218abeedc0f 100644 --- a/src/chrome/browser/extensions/crx_installer.cc +++ b/src/chrome/browser/extensions/crx_installer.cc @@ -174,6 +174,7 @@ CrxInstaller::~CrxInstaller() { } void CrxInstaller::InstallCrx(const base::FilePath& source_file) { + LOG(INFO) << "crx_installer.cc: InstallCrx: source_file: " << source_file; crx_file::VerifierFormat format = off_store_install_allow_reason_ == OffStoreInstallDisallowed ? GetWebstoreVerifierFormat( diff --git a/src/chrome/browser/extensions/extension_context_menu_model.cc b/src/chrome/browser/extensions/extension_context_menu_model.cc index e78a42ac2a5..f804962e04d 100644 --- a/src/chrome/browser/extensions/extension_context_menu_model.cc +++ b/src/chrome/browser/extensions/extension_context_menu_model.cc @@ -420,7 +420,7 @@ void ExtensionContextMenuModel::ExecuteCommand(int command_id, } case OPTIONS: DCHECK(OptionsPageInfo::HasOptionsPage(extension)); - ExtensionTabUtil::OpenOptionsPage(extension, browser_); + ExtensionTabUtil::OpenOptionsPage(extension, GetActiveWebContents()); break; case TOGGLE_VISIBILITY: { bool visible = !is_pinned_; diff --git a/src/chrome/browser/extensions/extension_service.cc b/src/chrome/browser/extensions/extension_service.cc index ec291703974..8cb6edac16f 100644 --- a/src/chrome/browser/extensions/extension_service.cc +++ b/src/chrome/browser/extensions/extension_service.cc @@ -1501,6 +1501,14 @@ void ExtensionService::RemoveComponentExtension( } } +// void ExtensionService::ReloadExtensions() { +// // No need to load components since the only one is chromium_web_store +// InstalledLoader(this).LoadAllExtensions(); +// OnInstalledExtensionsLoaded(); + +// SetReadyAndNotifyListeners(); +// } + void ExtensionService::UnloadAllExtensionsForTest() { UnloadAllExtensionsInternal(); } diff --git a/src/chrome/browser/extensions/extension_service.h b/src/chrome/browser/extensions/extension_service.h index abde339361b..eaceadbec23 100644 --- a/src/chrome/browser/extensions/extension_service.h +++ b/src/chrome/browser/extensions/extension_service.h @@ -464,7 +464,9 @@ class ExtensionService : public ExtensionServiceInterface, } ExtensionAllowlist* allowlist() { return &allowlist_; } - + // Android + // Reload extensions. Called from Java. + // void ReloadExtensions(); ////////////////////////////////////////////////////////////////////////////// // For Testing diff --git a/src/chrome/browser/extensions/extension_tab_util.cc b/src/chrome/browser/extensions/extension_tab_util.cc index 46154f4501a..f4efd5c4856 100644 --- a/src/chrome/browser/extensions/extension_tab_util.cc +++ b/src/chrome/browser/extensions/extension_tab_util.cc @@ -72,6 +72,12 @@ #include "third_party/blink/public/common/chrome_debug_urls.h" #include "third_party/blink/public/common/features.h" #include "url/gurl.h" +#include "chrome/browser/android/tab_android.h" +#include "chrome/browser/extensions/api/tabs/tabs_event_router.h" +#include "chrome/browser/extensions/api/tabs/tabs_windows_api.h" +#include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/ui/android/tab_model/tab_model.h" +#include "chrome/browser/ui/android/tab_model/tab_model_list.h" using content::NavigationEntry; using content::WebContents; @@ -124,9 +130,9 @@ Browser* CreateAndShowBrowser(Profile* profile, // take care of setting the id to TAB_ID_NONE if necessary (for // example with devtools). int GetTabIdForExtensions(const WebContents* web_contents) { - Browser* browser = chrome::FindBrowserWithTab(web_contents); - if (browser && !ExtensionTabUtil::BrowserSupportsTabs(browser)) - return -1; + // Browser* browser = chrome::FindBrowserWithTab(web_contents); + // if (browser && !ExtensionTabUtil::BrowserSupportsTabs(browser)) + // return -1; return sessions::SessionTabHelper::IdForTab(web_contents).id(); } @@ -216,22 +222,22 @@ base::expected ExtensionTabUtil::OpenTab( std::string error; Browser* browser = GetBrowserFromWindowID(chrome_details, window_id, &error); - if (!browser) { - if (!params.create_browser_if_needed) - return base::unexpected(error); + // if (!browser) { + // if (!params.create_browser_if_needed) + // return base::unexpected(error); - browser = CreateAndShowBrowser(profile, user_gesture, &error); - if (!browser) - return base::unexpected(error); - } + // browser = CreateAndShowBrowser(profile, user_gesture, &error); + // if (!browser) + // return base::unexpected(error); + // } // Ensure the selected browser is normal. - if (!browser->is_type_normal() && browser->IsAttemptingToCloseBrowser()) - browser = chrome::FindTabbedBrowser( - profile, function->include_incognito_information()); - if (!browser || !browser->window()) { - return base::unexpected(tabs_constants::kNoCurrentWindowError); - } + // if (!browser->is_type_normal() && browser->IsAttemptingToCloseBrowser()) + // browser = chrome::FindTabbedBrowser( + // profile, function->include_incognito_information()); + // if (!browser || !browser->window()) { + // return base::unexpected(tabs_constants::kNoCurrentWindowError); + // } // TODO(jstritar): Add a constant, chrome.tabs.TAB_ID_ACTIVE, that // represents the active tab. @@ -272,17 +278,17 @@ base::expected ExtensionTabUtil::OpenTab( if (url.SchemeIs(kExtensionScheme) && (!function->extension() || !IncognitoInfo::IsSplitMode(function->extension())) && - browser->profile()->IsOffTheRecord()) { - Profile* original_profile = browser->profile()->GetOriginalProfile(); - - browser = chrome::FindTabbedBrowser(original_profile, false); - if (!browser) { - browser = CreateBrowser(original_profile, user_gesture); - if (!browser) { - return base::unexpected(tabs_constants::kBrowserWindowNotAllowed); - } - browser->window()->Show(); - } + ProfileManager::GetActiveUserProfile()->IsOffTheRecord()) { + Profile* profile = ProfileManager::GetActiveUserProfile()->GetOriginalProfile(); + + // browser = chrome::FindTabbedBrowser(original_profile, false); + // if (!browser) { + // browser = CreateBrowser(original_profile, user_gesture); + // if (!browser) { + // return base::unexpected(tabs_constants::kBrowserWindowNotAllowed); + // } + // browser->window()->Show(); + // } } if (opener_browser && browser != opener_browser) { @@ -293,7 +299,7 @@ base::expected ExtensionTabUtil::OpenTab( // If index is specified, honor the value, but keep it bound to // -1 <= index <= tab_strip->count() where -1 invokes the default behavior. int index = params.index.value_or(-1); - index = std::clamp(index, -1, browser->tab_strip_model()->count()); + index = base::ClampToRange(index, -1, TabModelList::GetCurrentTabModel()->GetTabCount()); int add_types = active ? AddTabTypes::ADD_ACTIVE : AddTabTypes::ADD_NONE; add_types |= AddTabTypes::ADD_FORCE_INDEX; @@ -320,15 +326,15 @@ base::expected ExtensionTabUtil::OpenTab( // The tab may have been created in a different window, so make sure we look // at the right tab strip. - TabStripModel* tab_strip = navigate_params.browser->tab_strip_model(); - const int new_index = tab_strip->GetIndexOfWebContents( - navigate_params.navigated_or_inserted_contents); - if (opener) { - // Only set the opener if the opener tab is in the same tab strip as the - // new tab. - if (tab_strip->GetIndexOfWebContents(opener) != TabStripModel::kNoTab) - tab_strip->SetOpenerOfWebContentsAt(new_index, opener); - } + // TabStripModel* tab_strip = navigate_params.browser->tab_strip_model(); + // const int new_index = tab_strip->GetIndexOfWebContents( + // navigate_params.navigated_or_inserted_contents); + // if (opener) { + // // Only set the opener if the opener tab is in the same tab strip as the + // // new tab. + // if (tab_strip->GetIndexOfWebContents(opener) != TabStripModel::kNoTab) + // tab_strip->SetOpenerOfWebContentsAt(new_index, opener); + // } if (active) navigate_params.navigated_or_inserted_contents->SetInitialFocus(); @@ -351,7 +357,8 @@ base::expected ExtensionTabUtil::OpenTab( // Return data about the newly created tab. return ExtensionTabUtil::CreateTabObject( navigate_params.navigated_or_inserted_contents, scrub_tab_behavior, - function->extension(), tab_strip, new_index) + function->extension(), TabModelList::GetCurrentTabModel(), + TabModelList::GetCurrentTabModel()->GetTabCount()) .ToValue(); } @@ -424,13 +431,13 @@ int ExtensionTabUtil::GetWindowIdOfTab(const WebContents* web_contents) { // static std::string ExtensionTabUtil::GetBrowserWindowTypeText(const Browser& browser) { - if (browser.is_type_devtools()) - return tabs_constants::kWindowTypeValueDevTools; + // if (browser.is_type_devtools()) + // return tabs_constants::kWindowTypeValueDevTools; // Browser::TYPE_APP_POPUP is considered 'popup' rather than 'app' since // chrome.windows.create({type: 'popup'}) uses // Browser::CreateParams::CreateForAppPopup(). - if (browser.is_type_popup() || browser.is_type_app_popup()) - return tabs_constants::kWindowTypeValuePopup; + // if (browser.is_type_popup() || browser.is_type_app_popup()) + // return tabs_constants::kWindowTypeValuePopup; if (browser.is_type_app()) return tabs_constants::kWindowTypeValueApp; return tabs_constants::kWindowTypeValueNormal; @@ -1052,16 +1059,17 @@ bool ExtensionTabUtil::OpenOptionsPageFromAPI( // mode extension, this API could only be called from a regular profile, since // that's the only place it's running. DCHECK(!profile->IsOffTheRecord() || IncognitoInfo::IsSplitMode(extension)); - Browser* browser = chrome::FindBrowserWithProfile(profile); - if (!browser) - browser = CreateBrowser(profile, true); - if (!browser) - return false; - return extensions::ExtensionTabUtil::OpenOptionsPage(extension, browser); +// Browser* browser = chrome::FindBrowserWithProfile(profile); +// if (!browser) +// browser = Browser::Create(Browser::CreateParams(profile, true)); +// if (!browser) +// return false; + return extensions::ExtensionTabUtil::OpenOptionsPage(extension, + TabModelList::GetCurrentTabModel()->GetActiveWebContents()); } bool ExtensionTabUtil::OpenOptionsPage(const Extension* extension, - Browser* browser) { + content::WebContents* web_contents) { if (!OptionsPageInfo::HasOptionsPage(extension)) return false; @@ -1069,13 +1077,6 @@ bool ExtensionTabUtil::OpenOptionsPage(const Extension* extension, // running in split mode, because it won't be able to save settings from OTR. // This version of OpenOptionsPage() can be called from an OTR window via e.g. // the action menu, since that's not initiated by the extension. - std::unique_ptr displayer; - if (browser->profile()->IsOffTheRecord() && - !IncognitoInfo::IsSplitMode(extension)) { - displayer = std::make_unique( - browser->profile()->GetOriginalProfile()); - browser = displayer->browser(); - } GURL url_to_navigate; bool open_in_tab = OptionsPageInfo::ShouldOpenInTab(extension); @@ -1098,10 +1099,13 @@ bool ExtensionTabUtil::OpenOptionsPage(const Extension* extension, // However, if the options page opens inside the chrome://extensions page, we // can override an existing page. // Note: ref behavior is to ignore. - ShowSingletonTabOverwritingNTP(browser, url_to_navigate, - open_in_tab - ? NavigateParams::RESPECT - : NavigateParams::IGNORE_AND_NAVIGATE); + + web_contents->OpenURL( + content::OpenURLParams( + url_to_navigate, content::Referrer(), + WindowOpenDisposition::NEW_FOREGROUND_TAB, + ui::PAGE_TRANSITION_LINK, false + )); return true; } diff --git a/src/chrome/browser/extensions/extension_tab_util.h b/src/chrome/browser/extensions/extension_tab_util.h index 8e804891266..1f0c2cd9730 100644 --- a/src/chrome/browser/extensions/extension_tab_util.h +++ b/src/chrome/browser/extensions/extension_tab_util.h @@ -22,6 +22,7 @@ class Browser; class ChromeExtensionFunctionDetails; class ExtensionFunction; class GURL; +class TabModel; class Profile; class TabStripModel; namespace content { @@ -121,6 +122,7 @@ class ExtensionTabUtil { ScrubTabBehavior scrub_tab_behavior, const Extension* extension, TabStripModel* tab_strip, + TabModel* tab_strip, int tab_index); // Creates a base::Value::Dict representing the window for the given @@ -160,7 +162,7 @@ class ExtensionTabUtil { ScrubTabBehavior scrub_tab_behavior); // Gets the |tab_strip_model| and |tab_index| for the given |web_contents|. - static bool GetTabStripModel(const content::WebContents* web_contents, + static bool GetTabModel(const content::WebContents* web_contents, TabStripModel** tab_strip_model, int* tab_index); static bool GetDefaultTab(Browser* browser, @@ -172,7 +174,7 @@ class ExtensionTabUtil { content::BrowserContext* browser_context, bool include_incognito, Browser** browser, - TabStripModel** tab_strip, + TabModel** tab_strip, content::WebContents** contents, int* tab_index); static bool GetTabById(int tab_id, @@ -240,7 +242,7 @@ class ExtensionTabUtil { // Open the extension's options page. Returns true if an options page was // successfully opened (though it may not necessarily *load*, e.g. if the // URL does not exist). - static bool OpenOptionsPage(const Extension* extension, Browser* browser); + static bool OpenOptionsPage(const Extension* extension, content::WebContents* web_contents); // Returns true if the given Browser can report tabs to extensions. // Example of Browsers which don't support tabs include apps and devtools. diff --git a/src/chrome/browser/extensions/unpacked_installer.cc b/src/chrome/browser/extensions/unpacked_installer.cc index 8038a4e4af1..3501aaa7ad7 100644 --- a/src/chrome/browser/extensions/unpacked_installer.cc +++ b/src/chrome/browser/extensions/unpacked_installer.cc @@ -69,12 +69,19 @@ const char kImportNotSharedModule[] = "'import' is not a shared module."; void MaybeCleanupMetadataFolder(const base::FilePath& extension_path) { const std::vector reserved_filepaths = file_util::GetReservedMetadataFilePaths(extension_path); - for (const auto& file : reserved_filepaths) - base::DeletePathRecursively(file); + for (const auto& file : reserved_filepaths) { + LOG(INFO) << "unpacked_installer.cc: MaybeCleanupMetadataFolder: file: " << file; + LOG(INFO) << "unpacked_installer.cc: MaybeCleanupMetadataFolder: PathExists: " << (base::PathExists(file)); + if (base::PathExists(file)) + base::DeletePathRecursively(file); + } const base::FilePath& metadata_dir = extension_path.Append(kMetadataFolder); - if (base::IsDirectoryEmpty(metadata_dir)) - base::DeletePathRecursively(metadata_dir); + if (base::PathExists(metadata_dir) && base::IsDirectoryEmpty(metadata_dir)) { + LOG(INFO) << "unpacked_installer.cc: MaybeCleanupMetadataFolder: metadata_dir: " << metadata_dir; + LOG(INFO) << "unpacked_installer.cc: MaybeCleanupMetadataFolder: PathExists(metadata_dir): " << (base::PathExists(metadata_dir)); + base::DeletePathRecursively(metadata_dir); + } } } // namespace @@ -99,6 +106,7 @@ UnpackedInstaller::~UnpackedInstaller() { } void UnpackedInstaller::Load(const base::FilePath& path_in) { + LOG(INFO) << "unpacked_installer.cc: Load: path_in: " << path_in; DCHECK(extension_path_.empty()); extension_path_ = path_in; GetExtensionFileTaskRunner()->PostTask( @@ -263,7 +271,7 @@ bool UnpackedInstaller::LoadExtension(mojom::ManifestLocation location, // warnings/errors and ensures we don't treat a user provided file as one by // the Extension system. MaybeCleanupMetadataFolder(extension_path_); - + LOG(INFO) << "unpacked_installer.cc: LoadExtension: extension_path_: " << extension_path_; // Treat presence of illegal filenames as a hard error for unpacked // extensions. Don't do so for command line extensions since this breaks // Chrome OS autotests (crbug.com/764787). @@ -322,7 +330,7 @@ bool UnpackedInstaller::IsLoadingUnpackedAllowed() const { } void UnpackedInstaller::GetAbsolutePath() { - extension_path_ = base::MakeAbsoluteFilePath(extension_path_); + // extension_path_ = base::MakeAbsoluteFilePath(extension_path_); // Set priority explicitly to avoid unwanted task priority inheritance. content::GetUIThreadTaskRunner({base::TaskPriority::USER_BLOCKING}) diff --git a/src/chrome/browser/extensions/updater/extension_updater.cc b/src/chrome/browser/extensions/updater/extension_updater.cc index 99c8b30df79..17e15ec65aa 100644 --- a/src/chrome/browser/extensions/updater/extension_updater.cc +++ b/src/chrome/browser/extensions/updater/extension_updater.cc @@ -188,6 +188,7 @@ void ExtensionUpdater::EnsureDownloaderCreated() { } void ExtensionUpdater::Start() { + DCHECK(!alive_); // If these are NULL, then that means we've been called after Stop() // has been called. diff --git a/src/chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.cc b/src/chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.cc index f1a107822cf..36c60fc5b66 100644 --- a/src/chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.cc +++ b/src/chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.cc @@ -43,9 +43,7 @@ content::WebContents* ChromeExtensionOptionsGuestDelegate::OpenURLInNewTab( const content::OpenURLParams& params, base::OnceCallback navigation_handle_callback) { - Browser* browser = chrome::FindBrowserWithTab( - extension_options_guest()->embedder_web_contents()); - return browser->OpenURL(params, std::move(navigation_handle_callback)); + return extension_options_guest()->embedder_web_contents()->OpenURL(params); } } // namespace extensions diff --git a/src/chrome/browser/image_editor/BUILD.gn b/src/chrome/browser/image_editor/BUILD.gn index 0ca82494df5..c9ccaeb3792 100644 --- a/src/chrome/browser/image_editor/BUILD.gn +++ b/src/chrome/browser/image_editor/BUILD.gn @@ -3,7 +3,7 @@ # found in the LICENSE file. import("//build/config/ui.gni") -assert(is_chromeos || is_linux || is_mac || is_win, +assert(is_chromeos || is_linux || is_mac || is_win || is_android, "Image Editor is for desktop plaforms only") assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") diff --git a/src/chrome/browser/media/router/discovery/BUILD.gn b/src/chrome/browser/media/router/discovery/BUILD.gn index 51c27662f2e..5980c91380f 100644 --- a/src/chrome/browser/media/router/discovery/BUILD.gn +++ b/src/chrome/browser/media/router/discovery/BUILD.gn @@ -4,7 +4,7 @@ import("//build/config/chromeos/ui_mode.gni") -assert(!is_android) +# assert(!is_android) assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") static_library("discovery") { @@ -90,7 +90,7 @@ static_library("discovery") { deps += [ "//chromeos/ash/components/network" ] } - if (is_posix) { + if (is_posix && !is_android) { sources += [ "discovery_network_list_posix.cc" ] } diff --git a/src/chrome/browser/media/router/media_router_feature.cc b/src/chrome/browser/media/router/media_router_feature.cc index 6614f242f3d..86e5f939fb7 100644 --- a/src/chrome/browser/media/router/media_router_feature.cc +++ b/src/chrome/browser/media/router/media_router_feature.cc @@ -27,9 +27,9 @@ #include "media/base/media_switches.h" #include "ui/base/buildflags.h" -#if !BUILDFLAG(IS_ANDROID) + #include "components/prefs/pref_registry_simple.h" -#endif + #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chromeos/ash/components/browser_context_helper/browser_context_types.h" @@ -40,7 +40,6 @@ namespace media_router { -#if !BUILDFLAG(IS_ANDROID) BASE_FEATURE(kMediaRouter, "MediaRouter", base::FEATURE_ENABLED_BY_DEFAULT); BASE_FEATURE(kCastAllowAllIPsFeature, "CastAllowAllIPs", @@ -77,7 +76,6 @@ BASE_FEATURE(kCastSilentlyRemoveVcOnNavigation, "CastSilentlyRemoveVcOnNavigation", base::FEATURE_ENABLED_BY_DEFAULT); -#endif // !BUILDFLAG(IS_ANDROID) namespace { const PrefService::Preference* GetMediaRouterPref( @@ -93,12 +91,12 @@ base::flat_map& GetStoredPrefValues() { return *stored_pref_values; } -#if !BUILDFLAG(IS_ANDROID) + // TODO(mfoltz): Add full implementation for validating playout delay value. bool IsValidMirroringPlayoutDelayMs(int delay_ms) { return delay_ms <= 1000 && delay_ms >= 1; } -#endif // !BUILDFLAG(IS_ANDROID) + } // namespace void ClearMediaRouterStoredPrefsForTesting() { @@ -106,10 +104,10 @@ void ClearMediaRouterStoredPrefsForTesting() { } bool MediaRouterEnabled(content::BrowserContext* context) { -#if !BUILDFLAG(IS_ANDROID) + if (!base::FeatureList::IsEnabled(kMediaRouter)) return false; -#endif // !BUILDFLAG(IS_ANDROID) + #if BUILDFLAG(IS_CHROMEOS_ASH) // TODO(crbug.com/1380828): Make the Media Router feature configurable via a // policy for non-user profiles, i.e. sign-in and lock screen profiles. @@ -138,7 +136,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) { return true; } -#if !BUILDFLAG(IS_ANDROID) + void RegisterLocalStatePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref(prefs::kMediaRouterCastAllowAllIPs, false, PrefRegistry::PUBLIC); @@ -217,6 +215,5 @@ std::optional GetCastMirroringPlayoutDelay() { return target_playout_delay; } -#endif // !BUILDFLAG(IS_ANDROID) } // namespace media_router diff --git a/src/chrome/browser/media/router/media_router_feature.h b/src/chrome/browser/media/router/media_router_feature.h index 7db3ccfeb02..b62cf29c221 100644 --- a/src/chrome/browser/media/router/media_router_feature.h +++ b/src/chrome/browser/media/router/media_router_feature.h @@ -26,7 +26,7 @@ bool MediaRouterEnabled(content::BrowserContext* context); // process. void ClearMediaRouterStoredPrefsForTesting(); -#if !BUILDFLAG(IS_ANDROID) + // 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 @@ -92,7 +92,7 @@ bool GlobalMediaControlsCastStartStopEnabled(content::BrowserContext* context); // Returns the optional value to use for mirroring playout delay from the // relevant command line flag or feature, if any are set. std::optional GetCastMirroringPlayoutDelay(); -#endif // !BUILDFLAG(IS_ANDROID) + } // namespace media_router diff --git a/src/chrome/browser/nearby_sharing/BUILD.gn b/src/chrome/browser/nearby_sharing/BUILD.gn index 097a57b1b97..cbb33d7b3f0 100644 --- a/src/chrome/browser/nearby_sharing/BUILD.gn +++ b/src/chrome/browser/nearby_sharing/BUILD.gn @@ -10,8 +10,6 @@ source_set("share_target") { "attachment.h", "file_attachment.cc", "file_attachment.h", - "share_target.cc", - "share_target.h", "text_attachment.cc", "text_attachment.h", "wifi_credentials_attachment.cc", diff --git a/src/chrome/browser/new_tab_page/modules/file_suggestion/BUILD.gn b/src/chrome/browser/new_tab_page/modules/file_suggestion/BUILD.gn index e5eda656923..bc60c28e02a 100644 --- a/src/chrome/browser/new_tab_page/modules/file_suggestion/BUILD.gn +++ b/src/chrome/browser/new_tab_page/modules/file_suggestion/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "file_suggestion.mojom" ] diff --git a/src/chrome/browser/new_tab_page/modules/photos/BUILD.gn b/src/chrome/browser/new_tab_page/modules/photos/BUILD.gn index 201d3138f68..846550f7d92 100644 --- a/src/chrome/browser/new_tab_page/modules/photos/BUILD.gn +++ b/src/chrome/browser/new_tab_page/modules/photos/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "photos.mojom" ] diff --git a/src/chrome/browser/new_tab_page/modules/recipes/BUILD.gn b/src/chrome/browser/new_tab_page/modules/recipes/BUILD.gn index 40aa0579642..9a5e6c80d3b 100644 --- a/src/chrome/browser/new_tab_page/modules/recipes/BUILD.gn +++ b/src/chrome/browser/new_tab_page/modules/recipes/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "recipes.mojom" ] diff --git a/src/chrome/browser/resources/BUILD.gn b/src/chrome/browser/resources/BUILD.gn index c1a43a343b5..9087e801a11 100644 --- a/src/chrome/browser/resources/BUILD.gn +++ b/src/chrome/browser/resources/BUILD.gn @@ -23,7 +23,7 @@ group("resources") { ] - if (!is_android) { + #if (!is_android) { public_deps += [ ":app_icon_resources", ":component_extension_resources", @@ -63,7 +63,7 @@ group("resources") { "side_panel/read_anything:resources", "side_panel/reading_list:resources", "side_panel/shared:resources", - "side_panel/user_notes:resources", + # ":resources", "signin:resources", "suggest_internals:resources", "support_tool:resources", @@ -79,7 +79,7 @@ group("resources") { "media_router/cast_feedback:resources", ] } - } + #} if (is_chromeos_ash) { public_deps += [ @@ -127,7 +127,7 @@ group("resources") { public_deps += [ "webui_js_error:resources" ] } - if (!is_android && !is_chromeos_ash) { + if (is_android && !is_chromeos_ash) { public_deps += [ "inline_login:resources", "intro:resources", @@ -174,7 +174,7 @@ if (is_chromeos_ash && enable_js_type_check) { } } -if (!is_android) { +if (!is_android || true) { grit("component_extension_resources") { source = "component_extension_resources.grd" @@ -244,7 +244,6 @@ group("dev_ui_resources") { "net_internals:resources", "throttle:resources", # "wootz_react_app:wootz_react_app_resources", - "wootz_tsx:wootz_tsx_app_resources", "rewards:resources", "omnibox:resources", "predictors:resources", @@ -307,7 +306,6 @@ repack("dev_ui_paks") { "$root_gen_dir/chrome/net_internals_resources.pak", "$root_gen_dir/chrome/throttle_resources.pak", # "$root_gen_dir/chrome/wootz_react_app_resources.pak", - "$root_gen_dir/chrome/wootz_tsx_page_resources.pak", "$root_gen_dir/chrome/rewards_resources.pak", "$root_gen_dir/chrome/omnibox_resources.pak", "$root_gen_dir/chrome/predictors_resources.pak", diff --git a/src/chrome/browser/resources/about_sys/BUILD.gn b/src/chrome/browser/resources/about_sys/BUILD.gn index 56e5628351f..b591ae70dd6 100644 --- a/src/chrome/browser/resources/about_sys/BUILD.gn +++ b/src/chrome/browser/resources/about_sys/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "about_sys" diff --git a/src/chrome/browser/resources/access_code_cast/BUILD.gn b/src/chrome/browser/resources/access_code_cast/BUILD.gn index b08dc72503c..ddb694d4a63 100644 --- a/src/chrome/browser/resources/access_code_cast/BUILD.gn +++ b/src/chrome/browser/resources/access_code_cast/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android, "access_code_cast is not for android.") +# assert(!is_android, "access_code_cast is not for android.") build_webui("build") { grd_prefix = "access_code_cast" diff --git a/src/chrome/browser/resources/component_extension_resources.grd b/src/chrome/browser/resources/component_extension_resources.grd index 311988d37f6..2e647f6e630 100644 --- a/src/chrome/browser/resources/component_extension_resources.grd +++ b/src/chrome/browser/resources/component_extension_resources.grd @@ -74,6 +74,25 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/chrome/browser/resources/discards/BUILD.gn b/src/chrome/browser/resources/discards/BUILD.gn index 7cd940a845e..3e094455ce3 100644 --- a/src/chrome/browser/resources/discards/BUILD.gn +++ b/src/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) +# assert(!is_android) build_webui("build") { grd_prefix = "discards" diff --git a/src/chrome/browser/resources/downloads/BUILD.gn b/src/chrome/browser/resources/downloads/BUILD.gn index a06029b4842..abc90858fb1 100644 --- a/src/chrome/browser/resources/downloads/BUILD.gn +++ b/src/chrome/browser/resources/downloads/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "downloads" diff --git a/src/chrome/browser/resources/feedback/BUILD.gn b/src/chrome/browser/resources/feedback/BUILD.gn index 508a73fd3c3..9bcecdc9464 100644 --- a/src/chrome/browser/resources/feedback/BUILD.gn +++ b/src/chrome/browser/resources/feedback/BUILD.gn @@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//chrome/common/features.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "feedback" diff --git a/src/chrome/browser/resources/hats/BUILD.gn b/src/chrome/browser/resources/hats/BUILD.gn index e056c659f30..f458c4b03d7 100644 --- a/src/chrome/browser/resources/hats/BUILD.gn +++ b/src/chrome/browser/resources/hats/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "hats" diff --git a/src/chrome/browser/resources/identity_internals/BUILD.gn b/src/chrome/browser/resources/identity_internals/BUILD.gn index 281cedb29a9..b296dae25fc 100644 --- a/src/chrome/browser/resources/identity_internals/BUILD.gn +++ b/src/chrome/browser/resources/identity_internals/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "identity_internals" diff --git a/src/chrome/browser/resources/inline_login/BUILD.gn b/src/chrome/browser/resources/inline_login/BUILD.gn index a5846f9b701..65c1ffbc97d 100644 --- a/src/chrome/browser/resources/inline_login/BUILD.gn +++ b/src/chrome/browser/resources/inline_login/BUILD.gn @@ -6,7 +6,7 @@ import("//chrome/browser/buildflags.gni") import("//chrome/common/features.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_chromeos_ash) +# assert(!is_android && !is_chromeos_ash) build_webui("build") { grd_prefix = "inline_login" diff --git a/src/chrome/browser/resources/internals/user_education/BUILD.gn b/src/chrome/browser/resources/internals/user_education/BUILD.gn index 8339c1e7390..5c667a2e74c 100644 --- a/src/chrome/browser/resources/internals/user_education/BUILD.gn +++ b/src/chrome/browser/resources/internals/user_education/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "user_education_internals" diff --git a/src/chrome/browser/resources/intro/BUILD.gn b/src/chrome/browser/resources/intro/BUILD.gn index d64e8e6fe16..bac7b189998 100644 --- a/src/chrome/browser/resources/intro/BUILD.gn +++ b/src/chrome/browser/resources/intro/BUILD.gn @@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//components/signin/features.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(is_chromeos_lacros || enable_dice_support) +# assert(is_chromeos_lacros || enable_dice_support) build_webui("build") { grd_prefix = "intro" diff --git a/src/chrome/browser/resources/key_value_pair_viewer_shared/BUILD.gn b/src/chrome/browser/resources/key_value_pair_viewer_shared/BUILD.gn index 61a14ed9405..f126baddd5d 100644 --- a/src/chrome/browser/resources/key_value_pair_viewer_shared/BUILD.gn +++ b/src/chrome/browser/resources/key_value_pair_viewer_shared/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "key_value_pair_viewer_shared" diff --git a/src/chrome/browser/resources/lens/overlay/BUILD.gn b/src/chrome/browser/resources/lens/overlay/BUILD.gn index cabc571f057..30a0c6a225e 100644 --- a/src/chrome/browser/resources/lens/overlay/BUILD.gn +++ b/src/chrome/browser/resources/lens/overlay/BUILD.gn @@ -4,7 +4,7 @@ import("//build/config/chrome_build.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(toolkit_views) +# assert(toolkit_views) if (is_chrome_branded) { generate_grd("build_icons_grdp") { diff --git a/src/chrome/browser/resources/lens/overlay/search_bubble/BUILD.gn b/src/chrome/browser/resources/lens/overlay/search_bubble/BUILD.gn index d990d5d292f..9ab05b4693c 100644 --- a/src/chrome/browser/resources/lens/overlay/search_bubble/BUILD.gn +++ b/src/chrome/browser/resources/lens/overlay/search_bubble/BUILD.gn @@ -5,7 +5,7 @@ import("//build/config/chrome_build.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(toolkit_views) +# assert(toolkit_views) build_webui("build") { grd_prefix = "lens_search_bubble" diff --git a/src/chrome/browser/resources/management/BUILD.gn b/src/chrome/browser/resources/management/BUILD.gn index 9402029afde..1d1c5e13304 100644 --- a/src/chrome/browser/resources/management/BUILD.gn +++ b/src/chrome/browser/resources/management/BUILD.gn @@ -5,7 +5,7 @@ import("//chrome/common/features.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android, "!is_android check failed") +# assert(!is_android, "!is_android check failed") build_webui("build") { grd_prefix = "management" diff --git a/src/chrome/browser/resources/media_router/cast_feedback/BUILD.gn b/src/chrome/browser/resources/media_router/cast_feedback/BUILD.gn index 56aadfc16aa..3caf579545d 100644 --- a/src/chrome/browser/resources/media_router/cast_feedback/BUILD.gn +++ b/src/chrome/browser/resources/media_router/cast_feedback/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) assert(is_chrome_branded) build_webui("build") { diff --git a/src/chrome/browser/resources/media_router/internals/BUILD.gn b/src/chrome/browser/resources/media_router/internals/BUILD.gn index 987996685d4..29473bc7f6a 100644 --- a/src/chrome/browser/resources/media_router/internals/BUILD.gn +++ b/src/chrome/browser/resources/media_router/internals/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "media_router_internals" diff --git a/src/chrome/browser/resources/new_tab_page/BUILD.gn b/src/chrome/browser/resources/new_tab_page/BUILD.gn index c6e3a1f2fa0..34fe2d8ce4d 100644 --- a/src/chrome/browser/resources/new_tab_page/BUILD.gn +++ b/src/chrome/browser/resources/new_tab_page/BUILD.gn @@ -7,7 +7,7 @@ import("./new_tab_page.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) grd_prefix = "new_tab_page" diff --git a/src/chrome/browser/resources/new_tab_page/icons/BUILD.gn b/src/chrome/browser/resources/new_tab_page/icons/BUILD.gn index 81025743320..0e411f94213 100644 --- a/src/chrome/browser/resources/new_tab_page/icons/BUILD.gn +++ b/src/chrome/browser/resources/new_tab_page/icons/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/generate_grd.gni") -assert(!is_android) +# assert(!is_android) generate_grd("build_grdp") { grd_prefix = "new_tab_page" diff --git a/src/chrome/browser/resources/new_tab_page/modules/cart/icons/BUILD.gn b/src/chrome/browser/resources/new_tab_page/modules/cart/icons/BUILD.gn index fdf8deaab02..fe1d6cc11d5 100644 --- a/src/chrome/browser/resources/new_tab_page/modules/cart/icons/BUILD.gn +++ b/src/chrome/browser/resources/new_tab_page/modules/cart/icons/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/generate_grd.gni") -assert(!is_android) +# assert(!is_android) generate_grd("build_grdp") { grd_prefix = "cart" diff --git a/src/chrome/browser/resources/new_tab_page/modules/photos/icons/BUILD.gn b/src/chrome/browser/resources/new_tab_page/modules/photos/icons/BUILD.gn index 25dc9b94101..2d162960017 100644 --- a/src/chrome/browser/resources/new_tab_page/modules/photos/icons/BUILD.gn +++ b/src/chrome/browser/resources/new_tab_page/modules/photos/icons/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/generate_grd.gni") -assert(!is_android) +# assert(!is_android) generate_grd("build_grdp") { grd_prefix = "photos" diff --git a/src/chrome/browser/resources/new_tab_page/modules/photos/images/BUILD.gn b/src/chrome/browser/resources/new_tab_page/modules/photos/images/BUILD.gn index 182bfc1f27f..ba8c17f1ecf 100644 --- a/src/chrome/browser/resources/new_tab_page/modules/photos/images/BUILD.gn +++ b/src/chrome/browser/resources/new_tab_page/modules/photos/images/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/generate_grd.gni") -assert(!is_android) +# assert(!is_android) generate_grd("build_grdp") { grd_prefix = "photos" diff --git a/src/chrome/browser/resources/new_tab_page_instant/BUILD.gn b/src/chrome/browser/resources/new_tab_page_instant/BUILD.gn index d63f6317c50..5c7818c6e1e 100644 --- a/src/chrome/browser/resources/new_tab_page_instant/BUILD.gn +++ b/src/chrome/browser/resources/new_tab_page_instant/BUILD.gn @@ -4,8 +4,8 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(is_linux || is_chromeos || is_win || is_mac) -assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") +# assert(is_linux || is_chromeos || is_win || is_mac) +# assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") build_webui("build") { grd_prefix = "new_tab_page_instant" diff --git a/src/chrome/browser/resources/omnibox_popup/BUILD.gn b/src/chrome/browser/resources/omnibox_popup/BUILD.gn index 0cd952944a5..f69aa450596 100644 --- a/src/chrome/browser/resources/omnibox_popup/BUILD.gn +++ b/src/chrome/browser/resources/omnibox_popup/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +# assert(!is_android && !is_ios) build_webui("build") { grd_prefix = "omnibox_popup" diff --git a/src/chrome/browser/resources/on_device_internals/BUILD.gn b/src/chrome/browser/resources/on_device_internals/BUILD.gn index c30d4e2ec73..b4ec002525a 100644 --- a/src/chrome/browser/resources/on_device_internals/BUILD.gn +++ b/src/chrome/browser/resources/on_device_internals/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "on_device_internals" diff --git a/src/chrome/browser/resources/privacy_sandbox/BUILD.gn b/src/chrome/browser/resources/privacy_sandbox/BUILD.gn index beb7c102843..d1c5cfd1fb2 100644 --- a/src/chrome/browser/resources/privacy_sandbox/BUILD.gn +++ b/src/chrome/browser/resources/privacy_sandbox/BUILD.gn @@ -5,7 +5,7 @@ import("//chrome/common/features.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android, "!is_android check failed") +# assert(!is_android, "!is_android check failed") build_webui("build") { grd_prefix = "privacy_sandbox" diff --git a/src/chrome/browser/resources/profile_internals/BUILD.gn b/src/chrome/browser/resources/profile_internals/BUILD.gn index 6a1cd41c4e7..02ae60b7763 100644 --- a/src/chrome/browser/resources/profile_internals/BUILD.gn +++ b/src/chrome/browser/resources/profile_internals/BUILD.gn @@ -5,7 +5,7 @@ import("//chrome/common/features.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "profile_internals" diff --git a/src/chrome/browser/resources/settings/BUILD.gn b/src/chrome/browser/resources/settings/BUILD.gn index eac5202c5c1..2278f63acd3 100644 --- a/src/chrome/browser/resources/settings/BUILD.gn +++ b/src/chrome/browser/resources/settings/BUILD.gn @@ -8,7 +8,7 @@ import("//crypto/features.gni") import("//ui/webui/resources/tools/build_webui.gni") import("./settings.gni") -assert(!is_android, "Android does not use these settings") +# assert(!is_android, "Android does not use these settings") build_webui("build") { grd_prefix = "settings" diff --git a/src/chrome/browser/resources/settings/settings.gni b/src/chrome/browser/resources/settings/settings.gni index 4952b09b0e7..35a2c9a4848 100644 --- a/src/chrome/browser/resources/settings/settings.gni +++ b/src/chrome/browser/resources/settings/settings.gni @@ -4,7 +4,7 @@ import("//third_party/closure_compiler/compile_js.gni") -assert(!is_android, "Android does not use these settings") +# assert(!is_android, "Android does not use these settings") settings_closure_flags = default_closure_args + [ diff --git a/src/chrome/browser/resources/settings_shared/BUILD.gn b/src/chrome/browser/resources/settings_shared/BUILD.gn index ae3769c77e1..0e9de2505f4 100644 --- a/src/chrome/browser/resources/settings_shared/BUILD.gn +++ b/src/chrome/browser/resources/settings_shared/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "settings_shared" diff --git a/src/chrome/browser/resources/side_panel/bookmarks/BUILD.gn b/src/chrome/browser/resources/side_panel/bookmarks/BUILD.gn index 4767b9ee7b6..427f64a486c 100644 --- a/src/chrome/browser/resources/side_panel/bookmarks/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/bookmarks/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_bookmarks" diff --git a/src/chrome/browser/resources/side_panel/commerce/BUILD.gn b/src/chrome/browser/resources/side_panel/commerce/BUILD.gn index e3a03d8ee2b..c8975966f38 100644 --- a/src/chrome/browser/resources/side_panel/commerce/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/commerce/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_commerce" diff --git a/src/chrome/browser/resources/side_panel/companion/BUILD.gn b/src/chrome/browser/resources/side_panel/companion/BUILD.gn index 1199b52cfb9..6b9cd06fb15 100644 --- a/src/chrome/browser/resources/side_panel/companion/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/companion/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_companion" diff --git a/src/chrome/browser/resources/side_panel/customize_chrome/BUILD.gn b/src/chrome/browser/resources/side_panel/customize_chrome/BUILD.gn index cb35c20f78e..7a252548f4c 100644 --- a/src/chrome/browser/resources/side_panel/customize_chrome/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/customize_chrome/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_customize_chrome" diff --git a/src/chrome/browser/resources/side_panel/customize_chrome/icons/BUILD.gn b/src/chrome/browser/resources/side_panel/customize_chrome/icons/BUILD.gn index 5d22040eb90..c0eeef68b3d 100644 --- a/src/chrome/browser/resources/side_panel/customize_chrome/icons/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/customize_chrome/icons/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/generate_grd.gni") -assert(!is_android) +# assert(!is_android) generate_grd("build_grdp") { grd_prefix = "side_panel_customize_chrome" diff --git a/src/chrome/browser/resources/side_panel/history_clusters/BUILD.gn b/src/chrome/browser/resources/side_panel/history_clusters/BUILD.gn index becfef80685..40a00f42e9f 100644 --- a/src/chrome/browser/resources/side_panel/history_clusters/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/history_clusters/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_history_clusters" diff --git a/src/chrome/browser/resources/side_panel/performance_controls/BUILD.gn b/src/chrome/browser/resources/side_panel/performance_controls/BUILD.gn index 0742457f976..4015fecec0e 100644 --- a/src/chrome/browser/resources/side_panel/performance_controls/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/performance_controls/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_performance" diff --git a/src/chrome/browser/resources/side_panel/read_anything/BUILD.gn b/src/chrome/browser/resources/side_panel/read_anything/BUILD.gn index 22549e7de5e..9ed744dc288 100644 --- a/src/chrome/browser/resources/side_panel/read_anything/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/read_anything/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_read_anything" diff --git a/src/chrome/browser/resources/side_panel/reading_list/BUILD.gn b/src/chrome/browser/resources/side_panel/reading_list/BUILD.gn index 2d0a7eb4c28..b5481953f2c 100644 --- a/src/chrome/browser/resources/side_panel/reading_list/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/reading_list/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_reading_list" diff --git a/src/chrome/browser/resources/side_panel/shared/BUILD.gn b/src/chrome/browser/resources/side_panel/shared/BUILD.gn index 4fcb135189f..719978ce485 100644 --- a/src/chrome/browser/resources/side_panel/shared/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/shared/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "side_panel_shared" diff --git a/src/chrome/browser/resources/side_panel/user_notes/BUILD.gn b/src/chrome/browser/resources/side_panel/user_notes/BUILD.gn index e611084a612..0a98f12f5dd 100644 --- a/src/chrome/browser/resources/side_panel/user_notes/BUILD.gn +++ b/src/chrome/browser/resources/side_panel/user_notes/BUILD.gn @@ -4,7 +4,6 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) build_webui("build") { grd_prefix = "side_panel_user_notes" diff --git a/src/chrome/browser/resources/signin/BUILD.gn b/src/chrome/browser/resources/signin/BUILD.gn index 6914dcef920..850e435a258 100644 --- a/src/chrome/browser/resources/signin/BUILD.gn +++ b/src/chrome/browser/resources/signin/BUILD.gn @@ -7,7 +7,7 @@ import("//chrome/common/features.gni") import("//components/signin/features.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "signin" diff --git a/src/chrome/browser/resources/support_tool/BUILD.gn b/src/chrome/browser/resources/support_tool/BUILD.gn index 2d27a5ee181..a8cc67a74ca 100644 --- a/src/chrome/browser/resources/support_tool/BUILD.gn +++ b/src/chrome/browser/resources/support_tool/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "support_tool" diff --git a/src/chrome/browser/resources/tab_search/BUILD.gn b/src/chrome/browser/resources/tab_search/BUILD.gn index 749c5cc7c23..36c7dd3ae0f 100644 --- a/src/chrome/browser/resources/tab_search/BUILD.gn +++ b/src/chrome/browser/resources/tab_search/BUILD.gn @@ -7,7 +7,7 @@ import("//ui/webui/resources/tools/build_webui.gni") import("//ui/webui/resources/tools/generate_grd.gni") import("//ui/webui/webui_features.gni") -assert(is_linux || is_chromeos || is_win || is_mac) +# assert(is_linux || is_chromeos || is_win || is_mac ) preprocess_folder = "preprocessed" diff --git a/src/chrome/browser/resources/web_app_internals/BUILD.gn b/src/chrome/browser/resources/web_app_internals/BUILD.gn index 642538782f2..719e706ca90 100644 --- a/src/chrome/browser/resources/web_app_internals/BUILD.gn +++ b/src/chrome/browser/resources/web_app_internals/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "web_app_internals" diff --git a/src/chrome/browser/resources/webui_gallery/BUILD.gn b/src/chrome/browser/resources/webui_gallery/BUILD.gn index 3be5dc0d9a4..7e3e0c39763 100644 --- a/src/chrome/browser/resources/webui_gallery/BUILD.gn +++ b/src/chrome/browser/resources/webui_gallery/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) build_webui("build") { grd_prefix = "webui_gallery" diff --git a/src/chrome/browser/resources/welcome/BUILD.gn b/src/chrome/browser/resources/welcome/BUILD.gn index c4043a2b560..c38b23c8124 100644 --- a/src/chrome/browser/resources/welcome/BUILD.gn +++ b/src/chrome/browser/resources/welcome/BUILD.gn @@ -6,7 +6,7 @@ import("//chrome/common/features.gni") import("//ui/webui/resources/tools/build_webui.gni") import("//ui/webui/resources/tools/generate_grd.gni") -assert(!is_chromeos_ash && !is_android) +assert(!is_chromeos_ash) if (is_chrome_branded) { generate_grd("build_icons_grdp") { diff --git a/src/chrome/browser/safety_check/android/BUILD.gn b/src/chrome/browser/safety_check/android/BUILD.gn index b3bff78c201..fff339a5239 100644 --- a/src/chrome/browser/safety_check/android/BUILD.gn +++ b/src/chrome/browser/safety_check/android/BUILD.gn @@ -59,7 +59,6 @@ android_library("java") { "//components/prefs/android:java", "//components/signin/public/android:java", "//components/sync/android:sync_java", - "//content/public/android:content_java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_fragment_fragment_java", "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", diff --git a/src/chrome/browser/search/instant_service.h b/src/chrome/browser/search/instant_service.h index ab04cac2c68..1c8489b1130 100644 --- a/src/chrome/browser/search/instant_service.h +++ b/src/chrome/browser/search/instant_service.h @@ -30,9 +30,6 @@ #include "ui/native_theme/native_theme_observer.h" #include "url/gurl.h" -#if BUILDFLAG(IS_ANDROID) -#error "Instant is only used on desktop"; -#endif class InstantServiceObserver; class Profile; diff --git a/src/chrome/browser/search/instant_service_factory.h b/src/chrome/browser/search/instant_service_factory.h index 427b2f228da..a959e03f645 100644 --- a/src/chrome/browser/search/instant_service_factory.h +++ b/src/chrome/browser/search/instant_service_factory.h @@ -9,7 +9,7 @@ #include "build/build_config.h" #include "chrome/browser/profiles/profile_keyed_service_factory.h" -#if BUILDFLAG(IS_ANDROID) +#if !BUILDFLAG(IS_ANDROID) #error "Instant is only used on desktop"; #endif diff --git a/src/chrome/browser/shortcuts/BUILD.gn b/src/chrome/browser/shortcuts/BUILD.gn index b0a2a71ccf0..2e8120cdfac 100644 --- a/src/chrome/browser/shortcuts/BUILD.gn +++ b/src/chrome/browser/shortcuts/BUILD.gn @@ -4,7 +4,7 @@ import("//chrome/browser/buildflags.gni") -assert(!is_android) +# assert(!is_android) source_set("shortcuts") { public = [ "shortcut_icon_generator.h" ] @@ -148,7 +148,7 @@ if (!is_chromeos) { "//chrome/browser/ui", "//chrome/common:non_code_constants", "//chrome/test:test_support", - "//chrome/test:test_support_ui", + #"//chrome/test:test_support_ui", "//content/public/browser", "//skia", "//testing/gtest", diff --git a/src/chrome/browser/ui/BUILD.gn b/src/chrome/browser/ui/BUILD.gn index f80f0a1d467..0cbba321cd8 100644 --- a/src/chrome/browser/ui/BUILD.gn +++ b/src/chrome/browser/ui/BUILD.gn @@ -325,8 +325,6 @@ static_library("ui") { "webui/throttle/throttle_prefs.h", "webui/throttle/throttle_ui.cc", "webui/throttle/throttle_ui.h", - "webui/react/react_ui.cc", - "webui/react/react_ui.h", "webui/rewards/rewards_ui.cc", "webui/rewards/rewards_ui.h", "webui/ntp_tiles_internals_ui.cc", @@ -5436,8 +5434,8 @@ static_library("ui") { "views/extensions/extension_context_menu_controller.cc", "views/extensions/extension_context_menu_controller.h", "views/extensions/extension_install_blocked_dialog_view.cc", - "views/extensions/extension_install_dialog_view.cc", - "views/extensions/extension_install_dialog_view.h", + "views/extensions/extension_install_dialog_view_android.cc", + "views/extensions/extension_install_dialog_view_android.h", "views/extensions/extension_install_friction_dialog_view.cc", "views/extensions/extension_install_friction_dialog_view.h", "views/extensions/extension_installed_bubble_view.cc", @@ -5446,7 +5444,8 @@ static_library("ui") { "views/extensions/extension_multiple_uninstall_dialog.cc", "views/extensions/extension_permissions_view.cc", "views/extensions/extension_permissions_view.h", - "views/extensions/extension_uninstall_dialog_view.cc", + "views/extensions/extension_uninstall_dialog_view_android.cc", + "views/extensions/extension_uninstall_dialog_view_android.h", "views/extensions/extensions_dialogs_utils.cc", "views/extensions/extensions_dialogs_utils.h", "views/extensions/extensions_menu_button.cc", diff --git a/src/chrome/browser/ui/android/strings/android_chrome_strings.grd b/src/chrome/browser/ui/android/strings/android_chrome_strings.grd index f5001d07595..0ac18dfc96f 100644 --- a/src/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/src/chrome/browser/ui/android/strings/android_chrome_strings.grd @@ -2219,7 +2219,12 @@ Your Google account may have other forms of browsing history like searches and a Error - + + Install + + + Remove + About WootzApp diff --git a/src/chrome/browser/ui/android/tab_model/tab_model_list.cc b/src/chrome/browser/ui/android/tab_model/tab_model_list.cc index 68363b933b7..10dae59a4e5 100644 --- a/src/chrome/browser/ui/android/tab_model/tab_model_list.cc +++ b/src/chrome/browser/ui/android/tab_model/tab_model_list.cc @@ -113,7 +113,15 @@ TabModel* TabModelList::FindNativeTabModelForJavaObject( return nullptr; } +TabModel* TabModelList::GetCurrentTabModel() { + for (size_t i = 0; i < TabModelList::size(); ++i) { + TabModel* tab_model = TabModelList::get(i); + if (tab_model->IsActiveModel()) + return tab_model; + } + return nullptr; +} bool TabModelList::IsOffTheRecordSessionActive() { // TODO(crbug.com/40107157): This function should return true for // incognito CCTs. diff --git a/src/chrome/browser/ui/android/tab_model/tab_model_list.h b/src/chrome/browser/ui/android/tab_model/tab_model_list.h index bd13b7b11d1..185cd70e146 100644 --- a/src/chrome/browser/ui/android/tab_model/tab_model_list.h +++ b/src/chrome/browser/ui/android/tab_model/tab_model_list.h @@ -49,6 +49,7 @@ class TabModelList { content::WebContents* web_contents); static TabModel* GetTabModelForTabAndroid(TabAndroid* tab_android); static TabModel* FindTabModelWithId(SessionID desired_id); + static TabModel* GetCurrentTabModel(); static TabModel* FindNativeTabModelForJavaObject( const base::android::ScopedJavaLocalRef& jtab_model); static bool IsOffTheRecordSessionActive(); diff --git a/src/chrome/browser/ui/browser.h b/src/chrome/browser/ui/browser.h index e1fe9b9e832..4608b687bfd 100644 --- a/src/chrome/browser/ui/browser.h +++ b/src/chrome/browser/ui/browser.h @@ -50,9 +50,6 @@ #include "ui/gfx/geometry/rect.h" #include "ui/shell_dialogs/select_file_dialog.h" -#if BUILDFLAG(IS_ANDROID) -#error This file should only be included on desktop. -#endif class BackgroundContents; class BreadcrumbManagerBrowserAgent; diff --git a/src/chrome/browser/ui/browser_window.h b/src/chrome/browser/ui/browser_window.h index 16dc8d16bff..b11e9b5195d 100644 --- a/src/chrome/browser/ui/browser_window.h +++ b/src/chrome/browser/ui/browser_window.h @@ -40,7 +40,7 @@ #include "ui/gfx/native_widget_types.h" #include "url/origin.h" -#if BUILDFLAG(IS_ANDROID) +#if !BUILDFLAG(IS_ANDROID) #error This file should only be included on desktop. #endif diff --git a/src/chrome/browser/ui/extensions/extension_install_ui_default.cc b/src/chrome/browser/ui/extensions/extension_install_ui_default.cc index 30b9ce6bb7c..dae8f52bcfa 100644 --- a/src/chrome/browser/ui/extensions/extension_install_ui_default.cc +++ b/src/chrome/browser/ui/extensions/extension_install_ui_default.cc @@ -58,12 +58,6 @@ namespace { Browser* FindOrCreateVisibleBrowser(Profile* profile) { // TODO(mpcomplete): remove this workaround for http://crbug.com/244246 // after fixing http://crbug.com/38676. - if (!IncognitoModePrefs::CanOpenBrowser(profile)) - return nullptr; - chrome::ScopedTabbedBrowserDisplayer displayer(profile); - Browser* browser = displayer.browser(); - if (browser->tab_strip_model()->count() == 0) - chrome::AddTabAt(browser, GURL(), -1, true); return browser; } @@ -168,7 +162,6 @@ void ExtensionInstallUIDefault::OnInstallSuccess( if (extension->is_app()) { if (use_app_installed_bubble_) { if (browser) - ShowPlatformBubble(extension, browser, *icon); return; } @@ -176,7 +169,6 @@ void ExtensionInstallUIDefault::OnInstallSuccess( return; } - ShowPlatformBubble(extension, browser, *icon); } void ExtensionInstallUIDefault::OnInstallFailure( diff --git a/src/chrome/browser/ui/lens/BUILD.gn b/src/chrome/browser/ui/lens/BUILD.gn index 4b2f1dbe2ab..f3416e7e77f 100644 --- a/src/chrome/browser/ui/lens/BUILD.gn +++ b/src/chrome/browser/ui/lens/BUILD.gn @@ -3,7 +3,7 @@ # found in the LICENSE file. # Contained Lens dependencies are currently for desktop platforms only -assert(!is_android, "Lens Overlay is for desktop platforms only") +# assert(!is_android, "Lens Overlay is for desktop platforms only") static_library("lens") { sources = [ diff --git a/src/chrome/browser/ui/signin/signin_view_controller.h b/src/chrome/browser/ui/signin/signin_view_controller.h index 6b2ed0f4718..f73bb0838a0 100644 --- a/src/chrome/browser/ui/signin/signin_view_controller.h +++ b/src/chrome/browser/ui/signin/signin_view_controller.h @@ -25,9 +25,6 @@ #include "chrome/browser/ui/webui/signin/signin_email_confirmation_dialog.h" #endif -#if BUILDFLAG(IS_ANDROID) -#error This file should only be included on desktop. -#endif class Browser; struct AccountInfo; diff --git a/src/chrome/browser/ui/tabs/tab_strip_model.h b/src/chrome/browser/ui/tabs/tab_strip_model.h index 6711d565101..5dbadb2d4a3 100644 --- a/src/chrome/browser/ui/tabs/tab_strip_model.h +++ b/src/chrome/browser/ui/tabs/tab_strip_model.h @@ -35,9 +35,6 @@ #include "ui/base/models/list_selection_model.h" #include "ui/base/page_transition_types.h" -#if BUILDFLAG(IS_ANDROID) -#error This file should only be included on desktop. -#endif class Profile; class TabGroupModel; diff --git a/src/chrome/browser/ui/views/BUILD.gn b/src/chrome/browser/ui/views/BUILD.gn index 0da7fcd1a93..c8afaff0332 100644 --- a/src/chrome/browser/ui/views/BUILD.gn +++ b/src/chrome/browser/ui/views/BUILD.gn @@ -6,7 +6,6 @@ import("//build/config/chromeos/ui_mode.gni") import("//build/config/ui.gni") import("//ui/views/features.gni") -assert(toolkit_views) component("views") { output_name = "browser_ui_views" diff --git a/src/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/src/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc index e25928f7b91..ba64c6177ea 100644 --- a/src/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc +++ b/src/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/ui/views/extensions/extension_install_dialog_view.h" +#include "chrome/browser/ui/views/extensions/extension_install_dialog_view_android.h" #include #include diff --git a/src/chrome/browser/ui/views/extensions/extension_install_dialog_view_android.cc b/src/chrome/browser/ui/views/extensions/extension_install_dialog_view_android.cc new file mode 100644 index 00000000000..b3c2f1fcd97 --- /dev/null +++ b/src/chrome/browser/ui/views/extensions/extension_install_dialog_view_android.cc @@ -0,0 +1,278 @@ +// Copyright 2021 The Ungoogled Chromium Authors. All rights reserved. +// +// This file is part of Ungoogled Chromium Android. +// +// Ungoogled Chromium Android is free software: you can redistribute it +// and/or modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or any later version. +// +// Ungoogled Chromium Android is distributed in the hope that it will be +// useful, but WITHOUT ANY WARRANTY; without even the implied warranty +// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Ungoogled Chromium Android. If not, +// see . + +#include "chrome/browser/ui/views/extensions/extension_install_dialog_view_android.h" + +#include +#include + +#include "base/android/jni_android.h" +#include "base/android/jni_string.h" +#include "base/bind.h" +#include "base/i18n/message_formatter.h" +#include "base/macros.h" +#include "base/metrics/histogram_functions.h" +#include "base/metrics/histogram_macros.h" +#include "base/strings/utf_string_conversions.h" +#include "chrome/android/chrome_jni_headers/ExtensionInstallDialogViewBridge_jni.h" +#include "chrome/browser/extensions/extension_install_prompt_show_params.h" +#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_dialogs.h" +#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" +#include "chrome/browser/ui/views/chrome_layout_provider.h" +#include "chrome/browser/ui/views/chrome_typography.h" +#include "chrome/browser/ui/views/extensions/expandable_container_view.h" +#include "chrome/browser/ui/views/extensions/extension_permissions_view.h" +#include "chrome/common/extensions/extension_constants.h" +#include "chrome/grit/generated_resources.h" +#include "components/constrained_window/constrained_window_views.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/page_navigator.h" +#include "content/public/browser/web_contents.h" +#include "extensions/common/constants.h" +#include "extensions/common/extension.h" +#include "extensions/common/extension_urls.h" +#include "ui/accessibility/ax_enums.mojom.h" +#include "ui/android/window_android.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/base/resource/resource_bundle.h" +#include "url/android/gurl_android.h" + +using content::OpenURLParams; +using content::Referrer; + +namespace { + +// Time delay before the install button is enabled after initial display. +int g_install_delay_in_ms = 500; + +void ShowExtensionInstallDialogImpl( + ExtensionInstallPromptShowParams* show_params, + const ExtensionInstallPrompt::DoneCallback& done_callback, + std::unique_ptr prompt) { + DCHECK_CURRENTLY_ON(content::BrowserThread::UI); + ExtensionInstallDialogView* dialog = new ExtensionInstallDialogView( + show_params->profile(), show_params->GetParentWebContents(), + done_callback, std::move(prompt)); + dialog->ShowDialog( + show_params->GetParentWindow()); +} + +} // namespace + +ExtensionInstallDialogView::ExtensionInstallDialogView( + Profile* profile, + content::PageNavigator* navigator, + const ExtensionInstallPrompt::DoneCallback& done_callback, + std::unique_ptr prompt) + : profile_(profile), + navigator_(navigator), + done_callback_(done_callback), + prompt_(std::move(prompt)), + title_(prompt_->GetDialogTitle()), + handled_result_(false), + is_dialog_showing_(false) { + DCHECK(prompt_->extension()); + + JNIEnv* env = base::android::AttachCurrentThread(); + java_obj_.Reset(env, Java_ExtensionInstallDialogViewBridge_create( + env, reinterpret_cast(this)).obj()); + DCHECK(!java_obj_.is_null()); + + UMA_HISTOGRAM_ENUMERATION("Extensions.InstallPrompt.Type2", prompt_->type(), + ExtensionInstallPrompt::NUM_PROMPT_TYPES); + chrome::RecordDialogCreation(chrome::DialogIdentifier::EXTENSION_INSTALL); +} + +ExtensionInstallDialogView::~ExtensionInstallDialogView() { + JNIEnv* env = base::android::AttachCurrentThread(); + Java_ExtensionInstallDialogViewBridge_destroy(env, java_obj_); + if (!handled_result_ && !done_callback_.is_null()) { + std::move(done_callback_) + .Run(ExtensionInstallPrompt::Result::USER_CANCELED); + } +} + +// TODO +void ExtensionInstallDialogView::Cancel( + JNIEnv* env, + const base::android::JavaParamRef& obj) { + if (handled_result_) + return; + + handled_result_ = true; + UpdateInstallResultHistogram(false); + std::move(done_callback_).Run(ExtensionInstallPrompt::Result::USER_CANCELED); +} + +// TODO +void ExtensionInstallDialogView::Accept( + JNIEnv* env, + const base::android::JavaParamRef& obj, + jboolean jwithhold_permissions_checkbox_checked) { + DCHECK(!handled_result_); + + bool withhold_permissions_checkbox_checked = + static_cast(jwithhold_permissions_checkbox_checked != JNI_FALSE); + handled_result_ = true; + UpdateInstallResultHistogram(true); + // If the prompt had a checkbox element and it was checked we send that along + // as the result, otherwise we just send a normal accepted result. + auto result = + prompt_->ShouldDisplayWithholdingUI() && + withhold_permissions_checkbox_checked + ? ExtensionInstallPrompt::Result::ACCEPTED_AND_OPTION_CHECKED + : ExtensionInstallPrompt::Result::ACCEPTED; + std::move(done_callback_).Run(result); +} + +void ExtensionInstallDialogView::ShowDialog( + gfx::NativeWindow native_window) { + if (!native_window) + return; + + base::string16 store_link(base::ASCIIToUTF16("")); + base::string16 withhold_permissions_heading(base::ASCIIToUTF16("")); + if (prompt_->has_webstore_data()) { + // TODO: this is not shown yet + store_link = + l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_STORE_LINK); + GURL store_url(extension_urls::GetWebstoreItemDetailURLPrefix() + + prompt_->extension()->id()); + } else if (prompt_->ShouldDisplayWithholdingUI()) { + withhold_permissions_heading = + l10n_util::GetStringUTF16(IDS_EXTENSION_WITHHOLD_PERMISSIONS); + } + + // If dialog is already showing, do nothing. (assuming cancel?) + if (is_dialog_showing_) { + return; + } + + is_dialog_showing_ = true; + + JNIEnv* env = base::android::AttachCurrentThread(); + Java_ExtensionInstallDialogViewBridge_showDialog( + env, java_obj_, native_window->GetJavaObject(), + base::android::ConvertUTF16ToJavaString(env, title_), + base::android::ConvertUTF16ToJavaString(env, store_link), + base::android::ConvertUTF16ToJavaString(env, withhold_permissions_heading), + static_cast(prompt_->ShouldDisplayWithholdingUI()), + static_cast(prompt_->ShouldShowPermissions()), + static_cast(prompt_->GetPermissionCount()), + ToJavaArrayOfPermissions(env), + ToJavaArrayOfPermissionsDetails(env), + prompt_->ShouldShowPermissions() ? base::android::ConvertUTF16ToJavaString(env, prompt_->GetPermissionsHeading()) : + base::android::ConvertUTF16ToJavaString(env, l10n_util::GetStringUTF16(IDS_EXTENSION_NO_SPECIAL_PERMISSIONS)), + ToJavaArrayOfRetainedFiles(env), + base::android::ConvertUTF16ToJavaString(env, prompt_->GetRetainedFilesHeading()), + ToJavaArrayOfRetainedDeviceMessageStrings(env), + base::android::ConvertUTF16ToJavaString(env, prompt_->GetRetainedDevicesHeading()) + ); +} + +base::android::ScopedJavaLocalRef ExtensionInstallDialogView::ToJavaArrayOfPermissions( + JNIEnv* env) { + DCHECK_GE(prompt_->GetPermissionCount(), 0u); + base::android::ScopedJavaLocalRef object_clazz = + base::android::GetClass(env, "java/lang/String"); + jobjectArray joa = + env->NewObjectArray(prompt_->GetPermissionCount(), object_clazz.obj(), NULL); + jni_generator::CheckException(env); + + for (size_t i = 0; i < prompt_->GetPermissionCount(); ++i) { + env->SetObjectArrayElement(joa, i, + base::android::ConvertUTF16ToJavaString(env, + prompt_->GetPermission(i)).obj()); + } + return base::android::ScopedJavaLocalRef(env, joa); +} + +base::android::ScopedJavaLocalRef ExtensionInstallDialogView::ToJavaArrayOfPermissionsDetails( + JNIEnv* env) { + DCHECK_GE(prompt_->GetPermissionCount(), 0u); + base::android::ScopedJavaLocalRef object_clazz = + base::android::GetClass(env, "java/lang/String"); + jobjectArray joa = + env->NewObjectArray(prompt_->GetPermissionCount(), object_clazz.obj(), NULL); + jni_generator::CheckException(env); + + for (size_t i = 0; i < prompt_->GetPermissionCount(); ++i) { + env->SetObjectArrayElement(joa, i, + base::android::ConvertUTF16ToJavaString(env, + prompt_->GetPermissionsDetails(i)).obj()); + } + return base::android::ScopedJavaLocalRef(env, joa); +} + +base::android::ScopedJavaLocalRef ExtensionInstallDialogView::ToJavaArrayOfRetainedFiles( + JNIEnv* env) { + DCHECK_GE(prompt_->GetRetainedFileCount(), 0u); + base::android::ScopedJavaLocalRef object_clazz = + base::android::GetClass(env, "java/lang/String"); + jobjectArray joa = + env->NewObjectArray(prompt_->GetRetainedFileCount(), object_clazz.obj(), NULL); + jni_generator::CheckException(env); + + for (size_t i = 0; i < prompt_->GetRetainedFileCount(); ++i) { + env->SetObjectArrayElement(joa, i, + base::android::ConvertUTF16ToJavaString(env, + prompt_->GetRetainedFile(i)).obj()); + } + return base::android::ScopedJavaLocalRef(env, joa); +} + +base::android::ScopedJavaLocalRef ExtensionInstallDialogView::ToJavaArrayOfRetainedDeviceMessageStrings( + JNIEnv* env) { + DCHECK_GE(prompt_->GetRetainedDeviceCount(), 0u); ++ base::android::ScopedJavaLocalRef object_clazz = ++ base::android::GetClass(env, "java/lang/String"); ++ jobjectArray joa = ++ env->NewObjectArray(prompt_->GetRetainedDeviceCount(), object_clazz.obj(), NULL); ++ jni_generator::CheckException(env); ++ ++ for (size_t i = 0; i < prompt_->GetRetainedDeviceCount(); ++i) { ++ env->SetObjectArrayElement(joa, i, ++ base::android::ConvertUTF16ToJavaString(env, ++ prompt_->GetRetainedDeviceMessageString(i)).obj()); ++ } ++ return base::android::ScopedJavaLocalRef(env, joa); ++} ++ +void ExtensionInstallDialogView::UpdateInstallResultHistogram(bool accepted) + const { + // Only update histograms if |install_result_timer_| was initialized in + // |VisibilityChanged|. + if (prompt_->type() == ExtensionInstallPrompt::INSTALL_PROMPT && + install_result_timer_) { + if (accepted) { + UmaHistogramMediumTimes("Extensions.InstallPrompt.TimeToInstall", + install_result_timer_->Elapsed()); + } else { + UmaHistogramMediumTimes("Extensions.InstallPrompt.TimeToCancel", + install_result_timer_->Elapsed()); + } + } +} + +// static +ExtensionInstallPrompt::ShowDialogCallback +ExtensionInstallPrompt::GetDefaultShowDialogCallback() { + return base::Bind(&ShowExtensionInstallDialogImpl); +} \ No newline at end of file diff --git a/src/chrome/browser/ui/views/extensions/extension_install_dialog_view_android.h b/src/chrome/browser/ui/views/extensions/extension_install_dialog_view_android.h new file mode 100644 index 00000000000..b5dd1fbe86a --- /dev/null +++ b/src/chrome/browser/ui/views/extensions/extension_install_dialog_view_android.h @@ -0,0 +1,103 @@ +// Copyright 2021 The Ungoogled Chromium Authors. All rights reserved. +// +// This file is part of Ungoogled Chromium Android. +// +// Ungoogled Chromium Android is free software: you can redistribute it +// and/or modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or any later version. +// +// Ungoogled Chromium Android is distributed in the hope that it will be +// useful, but WITHOUT ANY WARRANTY; without even the implied warranty +// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Ungoogled Chromium Android. If not, +// see . + +#ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_INSTALL_DIALOG_VIEW_ANDROID_H_ +#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_INSTALL_DIALOG_VIEW_ANDROID_H_ + +#include + +#include "base/android/jni_android.h" +#include "base/android/scoped_java_ref.h" +#include "base/macros.h" +#include "base/optional.h" +#include "base/timer/elapsed_timer.h" +#include "base/timer/timer.h" +#include "chrome/browser/extensions/extension_install_prompt.h" +#include "ui/gfx/native_widget_types.h" + +class Profile; + +namespace content { +class PageNavigator; +} + +// Modal dialog that shows when the user attempts to install an extension. Also +// shown if the extension is already installed but needs additional permissions. +// Android JNI version. +class ExtensionInstallDialogView { + public: + // The views::View::id of the ratings section in the dialog. + static const int kRatingsViewId = 1; + + ExtensionInstallDialogView( + Profile* profile, + content::PageNavigator* navigator, + const ExtensionInstallPrompt::DoneCallback& done_callback, + std::unique_ptr prompt); ++ ~ExtensionInstallDialogView(); + + void Cancel( + JNIEnv* env, + const base::android::JavaParamRef& obj); + void Accept( + JNIEnv* env, + const base::android::JavaParamRef& obj, + const jboolean withhold_permissions_checkbox_checked); + void ShowDialog(gfx::NativeWindow native_window); + + private: + bool is_external_install() const { + return prompt_->type() == ExtensionInstallPrompt::EXTERNAL_INSTALL_PROMPT; + } + + // Updates the histogram that holds installation accepted/aborted data. + void UpdateInstallResultHistogram(bool accepted) const; + + Profile* profile_; + content::PageNavigator* navigator_; + ExtensionInstallPrompt::DoneCallback done_callback_; + std::unique_ptr prompt_; + base::string16 title_; + + // Set to true once the user's selection has been received and the callback + // has been run. + bool handled_result_; + + // Used to record time between dialog creation and acceptance, cancellation, + // or dismissal. + base::Optional install_result_timer_; + + // TODO: Checkbox used to indicate if permissions should be withheld on install. + + // JNI + bool is_dialog_showing_; + base::android::ScopedJavaGlobalRef java_obj_; + + base::android::ScopedJavaLocalRef ToJavaArrayOfPermissions( + JNIEnv* env); + base::android::ScopedJavaLocalRef ToJavaArrayOfPermissionsDetails( + JNIEnv* env); + base::android::ScopedJavaLocalRef ToJavaArrayOfRetainedFiles( + JNIEnv* env); + base::android::ScopedJavaLocalRef ToJavaArrayOfRetainedDeviceMessageStrings( + JNIEnv* env); + + DISALLOW_COPY_AND_ASSIGN(ExtensionInstallDialogView); +}; + +#endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_INSTALL_DIALOG_VIEW_H_ \ No newline at end of file diff --git a/src/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_android.cc b/src/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_android.cc new file mode 100644 index 00000000000..e513e5d684f --- /dev/null +++ b/src/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_android.cc @@ -0,0 +1,190 @@ +// Copyright 2021 The Ungoogled Chromium Authors. All rights reserved. +// +// This file is part of Ungoogled Chromium Android. +// +// Ungoogled Chromium Android is free software: you can redistribute it +// and/or modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or any later version. +// +// Ungoogled Chromium Android is distributed in the hope that it will be +// useful, but WITHOUT ANY WARRANTY; without even the implied warranty +// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Ungoogled Chromium Android. If not, +// see . + +#include + +#include "chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_android.h" + +#include "base/android/jni_android.h" +#include "base/android/jni_string.h" +#include "base/compiler_specific.h" +#include "base/macros.h" +#include "base/strings/string16.h" +#include "base/strings/string_util.h" +#include "base/strings/utf_string_conversions.h" +#include "build/build_config.h" +#include "chrome/android/chrome_jni_headers/ExtensionUninstallDialogBridge_jni.h" +#include "chrome/browser/extensions/extension_uninstall_dialog.h" +#include "chrome/browser/ui/browser_dialogs.h" +#include "chrome/browser/ui/ui_features.h" +#include "chrome/grit/generated_resources.h" +#include "components/strings/grit/components_strings.h" +#include "extensions/common/constants.h" +#include "extensions/common/extension.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/android/window_android.h" + +ExtensionUninstallDialogViews::ExtensionUninstallDialogViews( + Profile* profile, + gfx::NativeWindow parent, + extensions::ExtensionUninstallDialog::Delegate* delegate) + : extensions::ExtensionUninstallDialog(profile, parent, delegate) {} + +ExtensionUninstallDialogViews::~ExtensionUninstallDialogViews() { + // Close the widget (the views framework will delete view_). + if (view_) { + view_->DialogDestroyed(); + } +} + +void ExtensionUninstallDialogViews::Show() { + view_ = new ExtensionUninstallDialogDelegateView( + this, extension(), triggering_extension()); + view_->Show(parent()); +} + +void ExtensionUninstallDialogViews::DialogDelegateDestroyed() { + // Checks view_ to ensure OnDialogClosed() will not be called twice. + if (view_) { + view_ = nullptr; + OnDialogClosed(CLOSE_ACTION_CANCELED); + } +} + +void ExtensionUninstallDialogViews::DialogAccepted(bool checkbox_checked) { + // The widget gets destroyed when the dialog is accepted. + DCHECK(view_); + view_->DialogDestroyed(); + view_ = nullptr; + + OnDialogClosed(checkbox_checked ? CLOSE_ACTION_UNINSTALL_AND_CHECKBOX_CHECKED + : CLOSE_ACTION_UNINSTALL); +} + +void ExtensionUninstallDialogViews::DialogCanceled() { + // The widget gets destroyed when the dialog is canceled. + DCHECK(view_); + view_->DialogDestroyed(); + view_ = nullptr; + OnDialogClosed(CLOSE_ACTION_CANCELED); +} + +ExtensionUninstallDialogDelegateView::ExtensionUninstallDialogDelegateView( + ExtensionUninstallDialogViews* dialog_view, + const extensions::Extension* extension, + const extensions::Extension* triggering_extension) + : dialog_(dialog_view), + extension_name_(base::UTF8ToUTF16(extension->name())), + checkbox_(false) { + JNIEnv* env = base::android::AttachCurrentThread(); + java_obj_.Reset(env, Java_ExtensionUninstallDialogBridge_create( + env, reinterpret_cast(this)).obj()); + DCHECK(!java_obj_.is_null()); + + if (triggering_extension) { + heading_ = l10n_util::GetStringFUTF16( + IDS_EXTENSION_PROMPT_UNINSTALL_TRIGGERED_BY_EXTENSION, + base::UTF8ToUTF16(triggering_extension->name())); + } + + if (dialog_->ShouldShowCheckbox()) { + checkbox_ = true; + } + + chrome::RecordDialogCreation(chrome::DialogIdentifier::EXTENSION_UNINSTALL); +} + +ExtensionUninstallDialogDelegateView::~ExtensionUninstallDialogDelegateView() { + // If we're here, 2 things could have happened. Either the user closed the + // dialog nicely and one of the installed/canceled methods has been called + // (in which case dialog_ will be null), *or* neither of them have been + // called and we are being forced closed by our parent widget. In this case, + // we need to make sure to notify dialog_ not to call us again, since we're + // about to be freed by the Widget framework. + JNIEnv* env = base::android::AttachCurrentThread(); + Java_ExtensionUninstallDialogBridge_destroy(env, java_obj_); + if (dialog_) + dialog_->DialogDelegateDestroyed(); +} + +const char* ExtensionUninstallDialogDelegateView::GetClassName() const { + return "ExtensionUninstallDialogDelegateView"; +} + +void ExtensionUninstallDialogDelegateView::Accept( + JNIEnv* env, + const base::android::JavaParamRef& obj, + const jboolean jcheckbox_checked) { + bool checkbox_checked = + static_cast(jcheckbox_checked != JNI_FALSE); + if (dialog_) + dialog_->DialogAccepted(checkbox_ && checkbox_checked); +} + +void ExtensionUninstallDialogDelegateView::Cancel( + JNIEnv* env, + const base::android::JavaParamRef& obj) { + if (dialog_) + dialog_->DialogCanceled(); +} + +void ExtensionUninstallDialogDelegateView::Show( + gfx::NativeWindow native_window) const { + if (!native_window) { + LOG(ERROR) << "extension_uninstall_dialog_view_android.cc: Failed to get native window"; + return; + } + + // Call java method to create the dialog + base::string16 checkbox_label = base::UTF8ToUTF16(""); + if (dialog_->ShouldShowCheckbox()) { + checkbox_label = dialog_->GetCheckboxLabel(); + } + JNIEnv* env = base::android::AttachCurrentThread(); + Java_ExtensionUninstallDialogBridge_show( + env, java_obj_, + native_window->GetJavaObject(), + base::android::ConvertUTF16ToJavaString(env, extension_name_), + base::android::ConvertUTF16ToJavaString(env, GetWindowTitle()), + base::android::ConvertUTF16ToJavaString(env, heading_), + static_cast(checkbox_), + base::android::ConvertUTF16ToJavaString(env, checkbox_label) + ); +} + +base::string16 ExtensionUninstallDialogDelegateView::GetWindowTitle() const { + return l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_UNINSTALL_TITLE, + extension_name_); +} + +// static +std::unique_ptr +extensions::ExtensionUninstallDialog::Create(Profile* profile, + gfx::NativeWindow parent, + Delegate* delegate) { + return CreateViews(profile, parent, delegate); +} + +// static +std::unique_ptr +extensions::ExtensionUninstallDialog::CreateViews(Profile* profile, + gfx::NativeWindow parent, + Delegate* delegate) { + return std::make_unique(profile, parent, + delegate); +} \ No newline at end of file diff --git a/src/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_android.h b/src/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_android.h new file mode 100644 index 00000000000..1508d098960 --- /dev/null +++ b/src/chrome/browser/ui/views/extensions/extension_uninstall_dialog_view_android.h @@ -0,0 +1,101 @@ +// Copyright 2021 The Ungoogled Chromium Authors. All rights reserved. +// +// This file is part of Ungoogled Chromium Android. +// +// Ungoogled Chromium Android is free software: you can redistribute it +// and/or modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or any later version. +// +// Ungoogled Chromium Android is distributed in the hope that it will be +// useful, but WITHOUT ANY WARRANTY; without even the implied warranty +// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Ungoogled Chromium Android. If not, +// see . + +#ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_UNINSTALL_DIALOG_VIEW_ANDROID_H_ +#define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_UNINSTALL_DIALOG_VIEW_ANDROID_H_ + +#include "base/android/jni_android.h" +#include "base/android/scoped_java_ref.h" +#include "base/macros.h" +#include "base/strings/string16.h" +#include "chrome/browser/extensions/extension_uninstall_dialog.h" +#include "extensions/common/constants.h" +#include "extensions/common/extension.h" +#include "ui/gfx/native_widget_types.h" + +namespace { +class ExtensionUninstallDialogDelegateView; + +// Views implementation of the uninstall dialog. +class ExtensionUninstallDialogViews + : public extensions::ExtensionUninstallDialog { + public: + ExtensionUninstallDialogViews( + Profile* profile, + gfx::NativeWindow parent, + extensions::ExtensionUninstallDialog::Delegate* delegate); + ~ExtensionUninstallDialogViews() override; + + // Called when the ExtensionUninstallDialogDelegate has been destroyed to make + // sure we invalidate pointers. This object will also be freed. + void DialogDelegateDestroyed(); + + // Forwards the accept and cancels to the delegate. + void DialogAccepted(bool checkbox_checked); + void DialogCanceled(); + + private: + void Show() override; + + ExtensionUninstallDialogDelegateView* view_ = nullptr; + + DISALLOW_COPY_AND_ASSIGN(ExtensionUninstallDialogViews); +}; + +// The dialog's view, owned by the views framework. +class ExtensionUninstallDialogDelegateView { + public: + // Constructor for view component of dialog. triggering_extension may be null + // if the uninstall dialog was manually triggered (from chrome://extensions). + ExtensionUninstallDialogDelegateView( + ExtensionUninstallDialogViews* dialog_view, + const extensions::Extension* extension, + const extensions::Extension* triggering_extension); + ~ExtensionUninstallDialogDelegateView(); + + void Accept( + JNIEnv* env, + const base::android::JavaParamRef& obj, + const jboolean jcheckbox_checked); + void Cancel( + JNIEnv* env, + const base::android::JavaParamRef& obj); + void Show(gfx::NativeWindow native_window) const; + // Called when the ExtensionUninstallDialog has been destroyed to make sure + // we invalidate pointers. + void DialogDestroyed() { dialog_ = NULL; } + + private: + // views::View: + const char* GetClassName() const; + + // views::DialogDelegateView: + base::string16 GetWindowTitle() const; + + ExtensionUninstallDialogViews* dialog_; + const base::string16 extension_name_; + bool checkbox_; + base::string16 heading_; + + base::android::ScopedJavaGlobalRef java_obj_; + + DISALLOW_COPY_AND_ASSIGN(ExtensionUninstallDialogDelegateView); +}; +} + +#endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_UNINSTALL_DIALOG_VIEW_ANDROID_H_ \ No newline at end of file diff --git a/src/chrome/browser/ui/web_applications/BUILD.gn b/src/chrome/browser/ui/web_applications/BUILD.gn index 4d6df9d4ca4..2c40ad72626 100644 --- a/src/chrome/browser/ui/web_applications/BUILD.gn +++ b/src/chrome/browser/ui/web_applications/BUILD.gn @@ -98,7 +98,7 @@ source_set("browser_tests") { "//chrome/browser/web_applications:web_applications_test_support", "//chrome/browser/web_applications/app_service:test_support", "//chrome/test:test_support", - "//chrome/test:test_support_ui", + #"//chrome/test:test_support_ui", "//components/embedder_support", "//components/metrics/structured:structured_events", "//components/metrics/structured:test_support", @@ -170,7 +170,7 @@ source_set("app_service_browser_tests") { "//chrome/browser/web_applications", "//chrome/browser/web_applications:web_applications_test_support", "//chrome/test:test_support", - "//chrome/test:test_support_ui", + #"//chrome/test:test_support_ui", "//components/app_constants", "//components/embedder_support", "//components/page_load_metrics/browser:test_support", @@ -181,7 +181,7 @@ source_set("app_service_browser_tests") { if (is_chromeos_lacros) { deps += [ - "//chrome/test:lacros_test_support_ui", + #"//chrome/test:lacros_test_support_ui", "//chromeos/constants", "//chromeos/lacros", "//chromeos/lacros:test_support", diff --git a/src/chrome/browser/ui/web_applications/diagnostics/BUILD.gn b/src/chrome/browser/ui/web_applications/diagnostics/BUILD.gn index bcf19eb320b..eadc54f011a 100644 --- a/src/chrome/browser/ui/web_applications/diagnostics/BUILD.gn +++ b/src/chrome/browser/ui/web_applications/diagnostics/BUILD.gn @@ -18,14 +18,12 @@ source_set("app_service_browser_tests") { "//chrome/browser/web_applications", "//chrome/browser/web_applications:web_applications_test_support", "//chrome/test:test_support", - "//chrome/test:test_support_ui", "//components/services/app_service", "//components/webapps/common", ] if (is_chromeos_lacros) { deps += [ - "//chrome/test:lacros_test_support_ui", "//chromeos/lacros", "//chromeos/lacros:test_support", ] diff --git a/src/chrome/browser/ui/webui/access_code_cast/BUILD.gn b/src/chrome/browser/ui/webui/access_code_cast/BUILD.gn index 95df3bdd81a..fc8eda5dea8 100644 --- a/src/chrome/browser/ui/webui/access_code_cast/BUILD.gn +++ b/src/chrome/browser/ui/webui/access_code_cast/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//third_party/protobuf/proto_library.gni") -assert(!is_android, "AccessCodeCast is not for android.") +# assert(!is_android, "AccessCodeCast is not for android.") mojom("mojo_bindings") { sources = [ "access_code_cast.mojom" ] diff --git a/src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc index 3995e9874d2..a98d82fad06 100644 --- a/src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/src/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc @@ -49,7 +49,6 @@ #include "chrome/browser/ui/webui/net_export_ui.h" #include "chrome/browser/ui/webui/net_internals/net_internals_ui.h" #include "chrome/browser/ui/webui/throttle/throttle_ui.h" -#include "chrome/browser/ui/webui/react/react_ui.h" #include "chrome/browser/ui/webui/rewards/rewards_ui.h" #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" @@ -446,8 +445,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIThrottleHost) return &NewWebUI; - if (url.host_piece() == chrome::kChromeUIReactHost) - return &NewWebUI; if (url.host_piece() == chrome::kChromeUIRewardsHost) return &NewWebUI; if (url.host_piece() == chrome::kChromeUINTPTilesInternalsHost) diff --git a/src/chrome/browser/ui/webui/discards/BUILD.gn b/src/chrome/browser/ui/webui/discards/BUILD.gn index de8db4e879f..91afc5e6032 100644 --- a/src/chrome/browser/ui/webui/discards/BUILD.gn +++ b/src/chrome/browser/ui/webui/discards/BUILD.gn @@ -4,6 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") +if (is_win || is_mac || is_linux || is_chromeos || is_android) { mojom("mojo_bindings") { sources = [ "discards.mojom", @@ -18,3 +19,4 @@ mojom("mojo_bindings") { webui_module_path = "/" } +} diff --git a/src/chrome/browser/ui/webui/downloads/BUILD.gn b/src/chrome/browser/ui/webui/downloads/BUILD.gn index 9829fe323b1..68e19b96ce9 100644 --- a/src/chrome/browser/ui/webui/downloads/BUILD.gn +++ b/src/chrome/browser/ui/webui/downloads/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "downloads.mojom" ] diff --git a/src/chrome/browser/ui/webui/new_tab_page/BUILD.gn b/src/chrome/browser/ui/webui/new_tab_page/BUILD.gn index ff62e14a429..f8cf64aa8d8 100644 --- a/src/chrome/browser/ui/webui/new_tab_page/BUILD.gn +++ b/src/chrome/browser/ui/webui/new_tab_page/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "new_tab_page.mojom" ] diff --git a/src/chrome/browser/ui/webui/settings/people_handler.cc b/src/chrome/browser/ui/webui/settings/people_handler.cc index 3e820fe6a50..63c5d800c8e 100644 --- a/src/chrome/browser/ui/webui/settings/people_handler.cc +++ b/src/chrome/browser/ui/webui/settings/people_handler.cc @@ -890,7 +890,6 @@ void PeopleHandler::HandleTurnOffSync(bool delete_profile, #if BUILDFLAG(ENABLE_DICE_SUPPORT) void PeopleHandler::HandlePauseSync(const base::Value::List& args) { - DCHECK(AccountConsistencyModeManager::IsDiceEnabledForProfile(profile_)); auto* identity_manager = IdentityManagerFactory::GetForProfile(profile_); DCHECK(identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSync)); diff --git a/src/chrome/browser/ui/webui/side_panel/bookmarks/BUILD.gn b/src/chrome/browser/ui/webui/side_panel/bookmarks/BUILD.gn index b92ce452fc8..c885ca80700 100644 --- a/src/chrome/browser/ui/webui/side_panel/bookmarks/BUILD.gn +++ b/src/chrome/browser/ui/webui/side_panel/bookmarks/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "bookmarks.mojom" ] diff --git a/src/chrome/browser/ui/webui/side_panel/customize_chrome/BUILD.gn b/src/chrome/browser/ui/webui/side_panel/customize_chrome/BUILD.gn index 8e234556a05..5e21568a36a 100644 --- a/src/chrome/browser/ui/webui/side_panel/customize_chrome/BUILD.gn +++ b/src/chrome/browser/ui/webui/side_panel/customize_chrome/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ diff --git a/src/chrome/browser/ui/webui/side_panel/performance_controls/BUILD.gn b/src/chrome/browser/ui/webui/side_panel/performance_controls/BUILD.gn index d45d9602759..434ec17d151 100644 --- a/src/chrome/browser/ui/webui/side_panel/performance_controls/BUILD.gn +++ b/src/chrome/browser/ui/webui/side_panel/performance_controls/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "performance.mojom" ] diff --git a/src/chrome/browser/ui/webui/side_panel/reading_list/BUILD.gn b/src/chrome/browser/ui/webui/side_panel/reading_list/BUILD.gn index 23d480332b0..8a965160463 100644 --- a/src/chrome/browser/ui/webui/side_panel/reading_list/BUILD.gn +++ b/src/chrome/browser/ui/webui/side_panel/reading_list/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "reading_list.mojom" ] diff --git a/src/chrome/browser/ui/webui/side_panel/user_notes/BUILD.gn b/src/chrome/browser/ui/webui/side_panel/user_notes/BUILD.gn index f7c09c2fb7d..b7117a3bc33 100644 --- a/src/chrome/browser/ui/webui/side_panel/user_notes/BUILD.gn +++ b/src/chrome/browser/ui/webui/side_panel/user_notes/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "user_notes.mojom" ] diff --git a/src/chrome/browser/ui/webui/tab_search/BUILD.gn b/src/chrome/browser/ui/webui/tab_search/BUILD.gn index 48539b48e5b..6d710207511 100644 --- a/src/chrome/browser/ui/webui/tab_search/BUILD.gn +++ b/src/chrome/browser/ui/webui/tab_search/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(is_linux || is_chromeos || is_win || is_mac) +# assert(is_linux || is_chromeos || is_win || is_mac) assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") mojom("mojo_bindings") { diff --git a/src/chrome/browser/web_applications/BUILD.gn b/src/chrome/browser/web_applications/BUILD.gn index b65de6fc431..f35eedccd2b 100644 --- a/src/chrome/browser/web_applications/BUILD.gn +++ b/src/chrome/browser/web_applications/BUILD.gn @@ -1067,7 +1067,7 @@ source_set("web_applications_browser_tests") { "//chrome/browser/profiles:profile", "//chrome/common:chrome_features", "//chrome/test:test_support", - "//chrome/test:test_support_ui", + #"//chrome/test:test_support_ui", "//components/browsing_data/core", "//components/embedder_support:embedder_support", "//components/segmentation_platform/public:public", @@ -1091,7 +1091,7 @@ source_set("web_applications_browser_tests") { deps += [ "//chrome/browser/ash:test_support", "//chrome/browser/ash/system_web_apps/test_support", - "//chrome/browser/ash/system_web_apps/test_support:test_support_ui", + #"//chrome/browser/ash/system_web_apps/test_support:test_support_ui", ] } @@ -1135,8 +1135,6 @@ source_set("app_service_browser_tests") { "//chrome/browser/apps/app_service", "//chrome/browser/apps/app_service:app_registry_cache_waiter", "//chrome/browser/apps/link_capturing:test_support", - "//chrome/test:test_support", - "//chrome/test:test_support_ui", "//components/webapps/browser", ] @@ -1167,7 +1165,7 @@ source_set("interactive_ui_tests") { ":web_applications_test_support", "//chrome/app:command_ids", "//chrome/test:test_support", - "//chrome/test:test_support_ui", + #"//chrome/test:test_support_ui", "//components/permissions:permissions", "//components/webapps/browser", "//components/webapps/common", diff --git a/src/chrome/browser/web_applications/extensions/BUILD.gn b/src/chrome/browser/web_applications/extensions/BUILD.gn index a1c5ed18b92..4c82e3ca2bb 100644 --- a/src/chrome/browser/web_applications/extensions/BUILD.gn +++ b/src/chrome/browser/web_applications/extensions/BUILD.gn @@ -55,7 +55,6 @@ source_set("unit_tests") { "//chrome/browser/web_applications:web_applications_test_support", "//chrome/browser/web_applications:web_applications_unit_tests", "//chrome/common", - "//chrome/test:test_support", "//components/crx_file:crx_file", "//components/webapps/browser:browser", "//components/webapps/common", diff --git a/src/chrome/chrome_paks.gni b/src/chrome/chrome_paks.gni index 1154a07c021..2ceb79c9d49 100644 --- a/src/chrome/chrome_paks.gni +++ b/src/chrome/chrome_paks.gni @@ -62,7 +62,7 @@ template("chrome_repack_percent") { deps += invoker.deps } - if (toolkit_views) { + if (true) { sources += [ "$root_gen_dir/chrome/app_icon_resources_${percent}_percent.pak", "$root_gen_dir/ui/views/resources/views_resources_${percent}_percent.pak", @@ -151,7 +151,7 @@ template("chrome_extra_paks") { sources += invoker.additional_paks } - if (!is_android) { + if (true) { # New paks should be added here by default. sources += [ "$root_gen_dir/chrome/about_sys_resources.pak", @@ -167,7 +167,7 @@ template("chrome_extra_paks") { "$root_gen_dir/chrome/hats_resources.pak", "$root_gen_dir/chrome/history_resources.pak", "$root_gen_dir/chrome/identity_internals_resources.pak", - "$root_gen_dir/chrome/inline_login_resources.pak", + # "$root_gen_dir/chrome/inline_login_resources.pak", "$root_gen_dir/chrome/key_value_pair_viewer_shared_resources.pak", "$root_gen_dir/chrome/lens_search_bubble_resources.pak", "$root_gen_dir/chrome/lens_untrusted_resources.pak", @@ -402,14 +402,14 @@ template("chrome_extra_paks") { sources += [ "$root_gen_dir/chrome/webui_js_error_resources.pak" ] deps += [ "//chrome/browser/resources/webui_js_error:resources" ] } - if (!is_android && !is_chromeos_ash) { + if (!is_android && !is_chromeos_ash || is_android) { sources += [ "$root_gen_dir/chrome/intro_resources.pak", "$root_gen_dir/chrome/profile_picker_resources.pak", "$root_gen_dir/chrome/welcome_resources.pak", ] deps += [ - "//chrome/browser/resources/intro:resources", + # "//chrome/browser/resources/intro:resources", "//chrome/browser/resources/signin/profile_picker:resources", "//chrome/browser/resources/welcome:resources", ] @@ -471,7 +471,7 @@ template("chrome_extra_paks") { deps += [ "//chrome/browser/resources/tab_strip:resources" ] } - if (headless_enable_commands && !is_android) { + if (headless_enable_commands && true) { sources += [ "$root_gen_dir/components/headless/command_handler/headless_command_resources.pak" ] deps += [ "//components/headless/command_handler" ] } diff --git a/src/chrome/common/accessibility/BUILD.gn b/src/chrome/common/accessibility/BUILD.gn index 67b77a72bf5..8e632636bcb 100644 --- a/src/chrome/common/accessibility/BUILD.gn +++ b/src/chrome/common/accessibility/BUILD.gn @@ -4,7 +4,7 @@ import("//mojo/public/tools/bindings/mojom.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "read_anything.mojom" ] diff --git a/src/chrome/common/importer/BUILD.gn b/src/chrome/common/importer/BUILD.gn index a64ef03ece1..e6d530ab279 100644 --- a/src/chrome/common/importer/BUILD.gn +++ b/src/chrome/common/importer/BUILD.gn @@ -81,8 +81,6 @@ source_set("importer") { sources = [ "firefox_importer_utils.cc", "firefox_importer_utils.h", - "imported_bookmark_entry.cc", - "imported_bookmark_entry.h", "importer_autofill_form_data_entry.cc", "importer_autofill_form_data_entry.h", "importer_bridge.cc", diff --git a/src/chrome/services/speech/soda/BUILD.gn b/src/chrome/services/speech/soda/BUILD.gn index be48b272e50..2e213beb50e 100644 --- a/src/chrome/services/speech/soda/BUILD.gn +++ b/src/chrome/services/speech/soda/BUILD.gn @@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("//components/soda/buildflags.gni") import("//third_party/protobuf/proto_library.gni") -assert(!is_android) +# assert(!is_android) proto_library("soda_api_proto") { sources = [ "proto/soda_api.proto" ] diff --git a/src/chrome/test/BUILD.gn b/src/chrome/test/BUILD.gn index b37715cc985..54aef3383ce 100644 --- a/src/chrome/test/BUILD.gn +++ b/src/chrome/test/BUILD.gn @@ -362,7 +362,6 @@ static_library("test_support") { "//components/reporting/storage:test_support", "//components/reporting/util:status_macros", "//components/reporting/util:test_callbacks_support", - "//components/safe_browsing/content/renderer/phishing_classifier:unit_tests_support", "//components/safe_browsing/core/browser/db:v4_database", "//components/safe_browsing/core/common", "//components/security_interstitials/content:security_interstitial_page", @@ -1962,7 +1961,6 @@ if (!is_android) { "//components/safe_browsing/content/common:interfaces_shared_cpp_sources", "//components/safe_browsing/content/renderer", "//components/safe_browsing/content/renderer/phishing_classifier", - "//components/safe_browsing/content/renderer/phishing_classifier:unit_tests_support", "//components/safe_browsing/core/browser:verdict_cache_manager", "//components/safe_browsing/core/browser/db:metadata_proto", "//components/safe_browsing/core/browser/db:test_database_manager", @@ -6739,7 +6737,7 @@ test("unit_tests") { data_deps = [ "//chrome/test/data/media/engagement/preload:generate_preload_list", "//chrome/test/data/media/engagement/preload:test_data", - "//testing/buildbot/filters:unit_tests_filters", + # "//testing/buildbot/filters:unit_tests_filters", "//third_party/perfetto/protos/perfetto/config/chrome:scenario_descriptor", ] @@ -6821,21 +6819,18 @@ test("unit_tests") { "//chrome/browser/apps:user_type_filter", "//chrome/browser/autofill", "//chrome/browser/bitmap_fetcher", - "//chrome/browser/bitmap_fetcher:unit_tests", + # "//chrome/browser/bitmap_fetcher:unit_tests", "//chrome/browser/breadcrumbs", - "//chrome/browser/breadcrumbs:unit_tests", + # "//chrome/browser/breadcrumbs:unit_tests", "//chrome/browser/browsing_data:constants", - "//chrome/browser/companion:unit_tests", - "//chrome/browser/crash_upload_list:unit_tests", + # "//chrome/browser/companion:unit_tests", + # "//chrome/browser/crash_upload_list:unit_tests", "//chrome/browser/devtools", - "//chrome/browser/dips:unit_tests", + # "//chrome/browser/dips:unit_tests", "//chrome/browser/enterprise/identifiers", "//chrome/browser/favicon", "//chrome/browser/first_party_sets", - "//chrome/browser/google:unit_tests", - "//chrome/browser/ip_protection:unit_tests", "//chrome/browser/media/prefs", - "//chrome/browser/media/prefs:unit_tests", "//chrome/browser/media/router", "//chrome/browser/media/router:media_router_feature", "//chrome/browser/media/router:unittests", @@ -6845,16 +6840,12 @@ test("unit_tests") { "//chrome/browser/net:probe_message_proto", "//chrome/browser/new_tab_page/chrome_colors:generate_chrome_colors_info", "//chrome/browser/new_tab_page/chrome_colors:generate_colors_info", - "//chrome/browser/notifications:unit_tests", "//chrome/browser/payments:unittests", "//chrome/browser/permissions", - "//chrome/browser/permissions:unit_tests", "//chrome/browser/persisted_state_db:persisted_state_db", "//chrome/browser/policy:test_support", "//chrome/browser/policy/messaging_layer/proto:log_upload_event_proto", "//chrome/browser/policy/messaging_layer/storage_selector", - "//chrome/browser/preloading/prerender:unit_tests", - "//chrome/browser/privacy_budget:unit_tests", "//chrome/browser/profile_resetter:profile_reset_report_proto", "//chrome/browser/profiling_host", "//chrome/browser/push_messaging:budget_proto", @@ -6868,25 +6859,15 @@ test("unit_tests") { "//chrome/browser/supervised_user:test_support", "//chrome/browser/sync_file_system/drive_backend:sync_file_system_drive_proto", "//chrome/browser/top_level_storage_access_api:permissions", - "//chrome/browser/tpcd/experiment:unit_tests", - "//chrome/browser/tpcd/heuristics:unit_tests", "//chrome/browser/ui:browser_element_identifiers", "//chrome/browser/ui:test_support", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/webui/top_chrome", - "//chrome/browser/updates/announcement_notification:unit_tests", - "//chrome/browser/web_share_target:unit_tests", "//chrome/common:test_support", "//chrome/common:version_header", "//chrome/common/notifications", "//chrome/common/privacy_budget:test_support", - "//chrome/common/privacy_budget:unit_tests", - "//chrome/common/profiler:unit_tests", "//chrome/common/themes:autogenerated_theme_util", - "//chrome/common/themes:unit_tests", - "//chrome/renderer/companion/visual_query:unit_tests", - "//chrome/services/file_util:unit_tests", - "//chrome/services/on_device_translation:unit_tests", "//components/account_id", "//components/affiliations/core/browser:test_support", "//components/assist_ranker/proto", @@ -7025,7 +7006,6 @@ test("unit_tests") { "//components/proxy_config", "//components/qr_code_generator:bitmap_generator", "//components/query_parser", - "//components/query_tiles:unit_tests", "//components/reading_list/core", "//components/reading_list/core:test_support", "//components/reading_list/features:flags", @@ -7177,7 +7157,6 @@ test("unit_tests") { "//storage/browser:test_support", "//testing/gmock", "//testing/gtest", - "//testing/perf:unit_tests", "//third_party/abseil-cpp:absl", "//third_party/blink/public/common/privacy_budget:test_support", "//third_party/icu", @@ -7187,7 +7166,6 @@ test("unit_tests") { "//third_party/metrics_proto", "//third_party/microsoft_webauthn", "//third_party/re2", - "//third_party/rust/fend_core/v1/wrapper:unit_tests", "//third_party/webrtc_overrides:webrtc_component", "//third_party/widevine/cdm:headers", "//third_party/zlib/google:compression_utils", @@ -7227,7 +7205,7 @@ test("unit_tests") { } if (enable_server_based_recognition) { - deps += [ "//chrome/services/speech/internal:unit_tests" ] + deps += [ ] } if (enable_compose) { @@ -7314,13 +7292,10 @@ test("unit_tests") { deps += [ "//chrome:other_version", "//chrome:packed_resources_integrity_header", - "//chrome//services/util_win:unit_tests", "//chrome/app:chrome_dll_resources", - "//chrome/app:win_unit_tests", "//chrome/browser:chrome_process_finder", "//chrome/browser/enterprise/platform_auth:test_utils", "//chrome/browser/shortcuts", - "//chrome/browser/win/conflicts:unit_tests", "//chrome/chrome_elf:constants", "//chrome/common/notifications", "//chrome/install_static:install_static_util", @@ -7416,7 +7391,6 @@ test("unit_tests") { "//chrome/common/notifications", "//chrome/common/safe_browsing:archive_analyzer_results", "//chrome/common/safe_browsing:disk_image_type_sniffer_mac", - "//chrome/services/mac_notifications:unit_tests", "//chrome/services/mac_notifications/public/mojom", "//chrome/updater:browser_sources", "//chrome/utility/safe_browsing", @@ -7449,7 +7423,7 @@ test("unit_tests") { } if (is_win || is_chromeos || is_mac) { - deps += [ "//chrome/browser/webshare:unit_tests" ] + deps += [ ] } if (is_win || is_mac || is_android) { @@ -7537,7 +7511,7 @@ test("unit_tests") { } if (enable_soda_integration_tests) { - deps += [ "//chrome/services/speech/soda:unit_tests" ] + deps += [] } if (is_android) { @@ -7658,32 +7632,20 @@ test("unit_tests") { "//chrome/browser/android/webapk:webapk_sources", "//chrome/browser/android/webapk/test:webapk_test_support", "//chrome/browser/commerce/merchant_viewer:merchant_viewer_data_manager", - "//chrome/browser/facilitated_payments:unit_tests", - "//chrome/browser/facilitated_payments/ui/android:unit_tests", "//chrome/browser/flags:flags_android", "//chrome/browser/keyboard_accessory/android", - "//chrome/browser/keyboard_accessory/android:unit_test", "//chrome/browser/keyboard_accessory/test_utils/android", "//chrome/browser/long_screenshots:services", "//chrome/browser/notifications", "//chrome/browser/optimization_guide/android:native_j_unittests_jni_headers", "//chrome/browser/optimization_guide/android:native_java_unittests", - "//chrome/browser/password_check/android:unit_tests", - "//chrome/browser/password_manager/android:unit_tests", "//chrome/browser/password_manager/android:utils", "//chrome/browser/reading_list/android:reading_list", - "//chrome/browser/reading_list/android:unit_tests", - "//chrome/browser/safety_hub/android:unit_tests", "//chrome/browser/share", - "//chrome/browser/thumbnail:unit_tests", "//chrome/browser/touch_to_fill/autofill/android:public", "//chrome/browser/touch_to_fill/password_manager/no_passkeys/android:public", - "//chrome/browser/touch_to_fill/password_manager/no_passkeys/android:unit_tests", - "//chrome/browser/touch_to_fill/password_manager/password_generation/android:unit_tests", - "//chrome/browser/translate/android:unit_tests", "//chrome/browser/ui/android/hats/test:test_support", "//chrome/common/wallet:mojo_bindings", - "//chrome/services/media_gallery_util:unit_tests", "//components/back_forward_cache", "//components/bookmarks/common/android:android", "//components/browser_ui/device_lock/android", @@ -7728,7 +7690,7 @@ test("unit_tests") { ] if (enable_chrome_android_internal) { - data_deps += [ "//clank/build/bot/filters:unit_tests_filters" ] + data_deps += [ ] } if (dfmify_dev_ui) { @@ -8395,12 +8357,11 @@ test("unit_tests") { "//chrome/browser/apps/app_service", "//chrome/browser/apps/app_service:app_registry_cache_waiter", "//chrome/browser/apps/app_service:test_support", - "//chrome/browser/apps/app_service:unit_tests", + #"//chrome/browser/apps/app_service:unit_tests", "//chrome/browser/apps/app_service/app_icon", "//chrome/browser/apps/app_service/app_icon:util", "//chrome/browser/apps/link_capturing", "//chrome/browser/apps/link_capturing:test_support", - "//chrome/browser/apps/link_capturing:unit_tests", "//chrome/browser/companion/core", "//chrome/browser/companion/core/mojom:mojo_bindings", "//chrome/browser/companion/core/proto", @@ -8423,7 +8384,6 @@ test("unit_tests") { "//chrome/browser/resources:component_extension_resources_grit", "//chrome/browser/resources/new_tab_page_instant:resources_grit", "//chrome/browser/support_tool:support_tool_proto", - "//chrome/browser/ui/actions:unit_tests", "//chrome/browser/ui/color:color_headers", "//chrome/browser/ui/color:mixers", "//chrome/browser/ui/lens", @@ -8472,7 +8432,6 @@ test("unit_tests") { "//components/send_tab_to_self:test_support", "//components/services/app_service", "//components/services/app_service/public/cpp:test_support", - "//components/services/app_service/public/cpp:unit_tests", "//components/session_proto_db:session_proto_db", "//components/signin/public/base:signin_buildflags", "//components/soda:constants", @@ -8491,7 +8450,6 @@ test("unit_tests") { "//third_party/crashpad/crashpad/util", "//third_party/lens_server_proto:lens_overlay_proto", "//third_party/libaddressinput", - "//third_party/lzma_sdk/google:unit_tests", "//third_party/omnibox_proto", "//third_party/zxcvbn-cpp", "//ui/base/idle:test_support", @@ -8520,7 +8478,7 @@ test("unit_tests") { "../browser/usb/usb_status_icon_unittest.cc", ] - deps += [ "//chrome/browser/shortcuts:unit_tests" ] + deps += [] } if (is_chromeos) { @@ -8555,7 +8513,6 @@ test("unit_tests") { deps += [ "//chrome/browser/chromeos", "//chrome/browser/chromeos:test_support", - "//chrome/browser/smart_card:unit_tests", "//chromeos/components/disks:prefs", "//chromeos/components/editor_menu/public/cpp:cpp", "//chromeos/dbus/power", @@ -8565,7 +8522,6 @@ test("unit_tests") { "//ui/chromeos", # Unit tests from subdirectories. - "//chrome/browser/chromeos:unit_tests", ] if (use_cups) { @@ -8787,20 +8743,14 @@ test("unit_tests") { "//ash/webui/settings/public/constants:mojom", "//chrome/browser/accessibility:test_support", "//chrome/browser/accessibility/media_app/test:test_support", - "//chrome/browser/apps/almanac_api_client:unit_tests", - "//chrome/browser/apps/app_deduplication_service:unit_tests", - "//chrome/browser/apps/app_discovery_service:unit_tests", - "//chrome/browser/apps/app_preload_service:unit_tests", "//chrome/browser/apps/app_service/promise_apps/proto", "//chrome/browser/ash", "//chrome/browser/ash:arc_test_support", "//chrome/browser/ash:test_support", - "//chrome/browser/ash:unit_tests", "//chrome/browser/ash/app_list/search/ranking:proto", "//chrome/browser/ash/app_list/search/util:proto", "//chrome/browser/ash/crosapi", "//chrome/browser/ash/crosapi:test_support", - "//chrome/browser/ash/crosapi:unit_tests", "//chrome/browser/ash/system_web_apps/test_support", "//chrome/browser/chromeos", "//chrome/browser/chromeos/launcher_search:search_util", @@ -8809,25 +8759,17 @@ test("unit_tests") { "//chrome/browser/nearby_sharing:share_target", "//chrome/browser/nearby_sharing/certificates", "//chrome/browser/nearby_sharing/certificates:test_support", - "//chrome/browser/nearby_sharing/certificates:unit_tests", - "//chrome/browser/nearby_sharing/client:unit_tests", "//chrome/browser/nearby_sharing/common", - "//chrome/browser/nearby_sharing/common:unit_tests", "//chrome/browser/nearby_sharing/contacts", "//chrome/browser/nearby_sharing/contacts:test_support", - "//chrome/browser/nearby_sharing/contacts:unit_tests", "//chrome/browser/nearby_sharing/instantmessaging/proto", "//chrome/browser/nearby_sharing/local_device_data", "//chrome/browser/nearby_sharing/local_device_data:test_support", - "//chrome/browser/nearby_sharing/local_device_data:unit_tests", - "//chrome/browser/nearby_sharing/logging:unit_tests", "//chrome/browser/nearby_sharing/proto:tachyon_proto", "//chrome/browser/policy:onc", - "//chrome/browser/policy:unit_tests", "//chrome/browser/push_notification:push_notification", "//chrome/browser/push_notification:test_support", "//chrome/browser/push_notification/protos:proto", - "//chrome/browser/screen_ai:unit_tests", "//chrome/browser/screen_ai/public:test_support", "//chrome/browser/ui/ash/holding_space:test_support", "//chrome/browser/ui/chromeos/magic_boost", @@ -8841,15 +8783,8 @@ test("unit_tests") { "//chrome/browser/ui/webui/nearby_share:mojom", "//chrome/services/pdf:pdf_searchifier_test", "//chrome/services/pdf:pdf_thumbnailer_test", - "//chrome/services/sharing:unit_tests", - "//chrome/services/sharing/nearby:unit_tests", "//chrome/services/sharing/nearby/decoder", - "//chrome/services/sharing/nearby/decoder:unit_tests", - "//chrome/services/sharing/nearby/platform:unit_tests", - "//chrome/services/sharing/nearby/quick_start_decoder:unit_tests", "//chrome/services/sharing/public/cpp", - "//chrome/services/sharing/public/cpp:unit_tests", - "//chrome/services/speech:unit_tests", "//chromeos/ash/components/assistant:buildflags", "//chromeos/ash/components/audio", "//chromeos/ash/components/browser_context_helper", @@ -8911,7 +8846,6 @@ test("unit_tests") { "//chromeos/ui/frame", "//chromeos/ui/wm", "//components/app_constants", - "//components/app_restore:unit_tests", "//components/arc:arc_test_support", "//components/arc/common", "//components/cross_device/nearby:nearby", @@ -8931,7 +8865,6 @@ test("unit_tests") { "//ui/base/ime/ash", "//ui/chromeos/strings", "//ui/file_manager:resources_grit", - "//ui/webui/resources/cr_components/app_management:unit_tests", "//ui/wm/public", ] @@ -8986,7 +8919,6 @@ test("unit_tests") { deps += [ "//chrome/browser/policy:onc", - "//chrome/browser/policy:unit_tests", "//chrome/browser/web_applications/app_service:test_support", "//chromeos/components/onc:onc", "//chromeos/crosapi/mojom", @@ -9025,7 +8957,7 @@ test("unit_tests") { } if (is_linux || is_chromeos) { - deps += [ "//chrome/browser/error_reporting:unit_test" ] + deps += [] } if (use_ozone) { @@ -9439,21 +9371,14 @@ test("unit_tests") { } allow_circular_includes_from = [ - "//chrome/browser/web_applications:web_applications_unit_tests", - "//chrome/browser/web_applications/extensions:unit_tests", ] deps += [ "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/extensions:test_support", - "//chrome/browser/ui/web_applications:unit_tests", - "//chrome/browser/web_applications:unit_tests", - "//chrome/browser/web_applications:web_applications_unit_tests", - "//chrome/browser/web_applications/extensions:unit_tests", "//chrome/common/apps/platform_apps", "//chrome/common/extensions:extension_features_unittest", "//chrome/common/extensions/api", - "//chrome/utility/image_writer:unit_tests", "//components/enterprise:test_support", "//components/password_manager/core/browser/features:password_features", "//components/password_manager/core/browser/sharing", @@ -9463,7 +9388,6 @@ test("unit_tests") { "//components/services/unzip:in_process", "//components/value_store", "//components/value_store:test_support", - "//extensions:extensions_resources", "//extensions/browser:test_support", "//extensions/browser/api/storage:settings_observer", "//extensions/browser/updater", @@ -9472,7 +9396,6 @@ test("unit_tests") { "//extensions/common:mojom", "//extensions/common:test_support", "//extensions/renderer", - "//extensions/renderer:unit_test_support", "//extensions/strings", "//google_apis", "//google_apis/common", @@ -9482,7 +9405,6 @@ test("unit_tests") { # This will add all of the unit tests for the schema compiler to this # target. "//third_party/blink/common/privacy_budget:test_support", - "//tools/json_schema_compiler/test:unit_tests", ] if (enable_service_discovery) { @@ -9537,7 +9459,6 @@ test("unit_tests") { ] deps += [ - "//chrome/browser/ash/system_web_apps:unit_tests", "//chrome/browser/ui/webui/ash/parent_access:mojo_bindings", "//chrome/common/chromeos/extensions", "//chromeos/ash/components/dbus/image_burner", @@ -9593,7 +9514,6 @@ test("unit_tests") { ] deps += [ - "../browser/enterprise/connectors/device_trust/key_management/installer/management_service:unit_tests", "//components/dbus/thread_linux", ] @@ -9783,7 +9703,6 @@ test("unit_tests") { "../common/safe_browsing:mock_binary_feature_extractor", "//chrome/common/safe_browsing:binary_feature_extractor", "//chrome/common/safe_browsing:download_type_util", - "//chrome/services/file_util/public/cpp:unit_tests", "//components/file_access:test_support", "//components/safe_browsing/content/browser:safe_browsing_service", "//components/safe_browsing/core/browser:token_fetcher_testing_helper", @@ -9825,7 +9744,6 @@ test("unit_tests") { ] deps += [ "../browser/enterprise/connectors/test:test_support", - "//components/enterprise/connectors:unit_tests", ] if (is_chromeos) { deps += [ "//chromeos/components/mgs" ] @@ -9851,11 +9769,9 @@ test("unit_tests") { "../browser/enterprise/connectors/device_trust/attestation/common", "../browser/enterprise/connectors/device_trust/attestation/common:test_support", "../browser/enterprise/connectors/device_trust/common", - "../browser/enterprise/connectors/device_trust/common:unit_tests", "../browser/enterprise/connectors/device_trust/signals:test_support", "../browser/enterprise/connectors/device_trust/signals/decorators/common", "../browser/enterprise/connectors/device_trust/signals/decorators/common:test_support", - "../browser/enterprise/connectors/device_trust/signals/decorators/common:unit_tests", "//components/device_signals/core/browser", "//components/device_signals/core/browser:test_support", "//components/device_signals/core/common", @@ -12122,7 +12038,7 @@ if (!is_android) { deps = [ ":browser_tests_runner", - ":sync_integration_test_support", + ":sync_integration_test_support", ":test_support", ":test_support_ui", "//build:chromeos_buildflags", diff --git a/src/chrome/test/data/webui/BUILD.gn b/src/chrome/test/data/webui/BUILD.gn index 92e0ff9c6df..f3abc7d1c5e 100644 --- a/src/chrome/test/data/webui/BUILD.gn +++ b/src/chrome/test/data/webui/BUILD.gn @@ -16,7 +16,7 @@ import("//tools/typescript/webui_ts_library.gni") import("//ui/webui/resources/tools/generate_grd.gni") import("//ui/webui/webui_features.gni") -assert(!is_android) +# assert(!is_android) assert(!is_fuchsia, "Fuchsia shouldn't use anything in //chrome") source_set("browser_tests") { diff --git a/src/chrome/test/data/webui/discards/BUILD.gn b/src/chrome/test/data/webui/discards/BUILD.gn index fd8cf50bd96..114220f4726 100644 --- a/src/chrome/test/data/webui/discards/BUILD.gn +++ b/src/chrome/test/data/webui/discards/BUILD.gn @@ -4,7 +4,7 @@ import("../build_webui_tests.gni") -assert(!is_android) +# assert(!is_android) build_webui_tests("build") { files = [ "discards_test.ts" ] diff --git a/src/chrome/test/data/webui/feedback/BUILD.gn b/src/chrome/test/data/webui/feedback/BUILD.gn index ce49be7f990..3fc8ac6fdce 100644 --- a/src/chrome/test/data/webui/feedback/BUILD.gn +++ b/src/chrome/test/data/webui/feedback/BUILD.gn @@ -4,7 +4,7 @@ import("../build_webui_tests.gni") -assert(!is_android) +# assert(!is_android) build_webui_tests("build") { files = [ diff --git a/src/chrome/test/data/webui/media_router/BUILD.gn b/src/chrome/test/data/webui/media_router/BUILD.gn index 5987580c24d..194fcaac223 100644 --- a/src/chrome/test/data/webui/media_router/BUILD.gn +++ b/src/chrome/test/data/webui/media_router/BUILD.gn @@ -5,7 +5,7 @@ import("//build/config/chrome_build.gni") import("../build_webui_tests.gni") -assert(!is_android) +# assert(!is_android) assert(is_chrome_branded) build_webui_tests("build") { diff --git a/src/chrome/test/data/webui/password_manager/BUILD.gn b/src/chrome/test/data/webui/password_manager/BUILD.gn index 822665bd72c..1788982eadd 100644 --- a/src/chrome/test/data/webui/password_manager/BUILD.gn +++ b/src/chrome/test/data/webui/password_manager/BUILD.gn @@ -4,7 +4,7 @@ import("../build_webui_tests.gni") -assert(!is_android) +# assert(!is_android) build_webui_tests("build") { files = [ diff --git a/src/chrome/test/data/webui/side_panel/read_anything/BUILD.gn b/src/chrome/test/data/webui/side_panel/read_anything/BUILD.gn index c57d0e338b8..df42cb1da44 100644 --- a/src/chrome/test/data/webui/side_panel/read_anything/BUILD.gn +++ b/src/chrome/test/data/webui/side_panel/read_anything/BUILD.gn @@ -4,7 +4,7 @@ import("../../build_webui_tests.gni") -assert(!is_android) +# assert(!is_android) build_webui_tests("build") { is_chrome_untrusted = true diff --git a/src/chrome/test/data/webui/support_tool/BUILD.gn b/src/chrome/test/data/webui/support_tool/BUILD.gn index ab9fe83d2d3..20719e79a63 100644 --- a/src/chrome/test/data/webui/support_tool/BUILD.gn +++ b/src/chrome/test/data/webui/support_tool/BUILD.gn @@ -4,7 +4,7 @@ import("../build_webui_tests.gni") -assert(!is_android) +# assert(!is_android) build_webui_tests("build") { files = [ "support_tool_test.ts" ] diff --git a/src/chrome/test/data/webui/whats_new/BUILD.gn b/src/chrome/test/data/webui/whats_new/BUILD.gn index 4dc5fa78a1e..0496b1b0f0a 100644 --- a/src/chrome/test/data/webui/whats_new/BUILD.gn +++ b/src/chrome/test/data/webui/whats_new/BUILD.gn @@ -4,7 +4,7 @@ import("../build_webui_tests.gni") -assert(!is_android) +# assert(!is_android) build_webui_tests("build") { files = [ diff --git a/src/chrome/test/payments/BUILD.gn b/src/chrome/test/payments/BUILD.gn index 74ff97c8d98..6a0360bb479 100644 --- a/src/chrome/test/payments/BUILD.gn +++ b/src/chrome/test/payments/BUILD.gn @@ -38,15 +38,15 @@ static_library("test_support") { deps += [ "//chrome/test:payment_test_support_jni_headers", - "//chrome/test:test_support_ui_android", + #"//chrome/test:test_support_ui_android", ] } - if (!is_android) { + if (true) { sources += [ "payment_request_test_controller_desktop.cc" ] deps += [ - "//chrome/test:test_support_ui", + #"//chrome/test:test_support_ui", "//components/webauthn/content/browser", ] } diff --git a/src/chromecast/media/cma/backend/proxy/BUILD.gn b/src/chromecast/media/cma/backend/proxy/BUILD.gn index 73f73c0d4ba..4b46cd1d8c8 100644 --- a/src/chromecast/media/cma/backend/proxy/BUILD.gn +++ b/src/chromecast/media/cma/backend/proxy/BUILD.gn @@ -30,7 +30,7 @@ cast_source_set("headers") { if (!is_android) { cast_source_set("proxy") { - assert(!is_android) + # assert(!is_android) sources = [ "audio_channel_broker_impl.cc", diff --git a/src/chromeos/ash/components/dbus/image_loader/BUILD.gn b/src/chromeos/ash/components/dbus/image_loader/BUILD.gn index e02be1a23e1..da90a66c700 100644 --- a/src/chromeos/ash/components/dbus/image_loader/BUILD.gn +++ b/src/chromeos/ash/components/dbus/image_loader/BUILD.gn @@ -4,8 +4,7 @@ import("//build/config/chromeos/ui_mode.gni") -assert(is_chromeos_ash, - "Non-Chrome-OS builds must not depend on //chromeos/ash") +assert(is_chromeos_ash,"Non-Chrome-OS builds must not depend on //chromeos/ash") component("image_loader") { output_name = "ash_image_loader" diff --git a/src/components/crx_file/crx_verifier.cc b/src/components/crx_file/crx_verifier.cc index dc25be3bc4f..429d043d60a 100644 --- a/src/components/crx_file/crx_verifier.cc +++ b/src/components/crx_file/crx_verifier.cc @@ -12,7 +12,7 @@ #include #include #include - +#include "base/android/content_uri_utils.h" #include "base/base64.h" #include "base/files/file.h" #include "base/files/file_path.h" @@ -27,6 +27,7 @@ #include "crypto/secure_util.h" #include "crypto/sha2.h" #include "crypto/signature_verifier.h" +#include "base/logging.h" namespace crx_file { @@ -237,7 +238,14 @@ VerifierResult Verify( std::vector* compressed_verified_contents) { std::string public_key_local; std::string crx_id_local; - base::File file(crx_path, base::File::FLAG_OPEN | base::File::FLAG_READ); + LOG(INFO) << "crx_verifier.cc: Verify: crx_path: " << crx_path; + base::File file; + if (crx_path.IsContentUri()) { + file = base::OpenContentUriForRead(crx_path); + } else { + file = base::File(crx_path, base::File::FLAG_OPEN | base::File::FLAG_READ); + } + LOG(INFO) << "crx_verifier.cc: Verify: file.IsValid(): " << (file.IsValid()); if (!file.IsValid()) return VerifierResult::ERROR_FILE_NOT_READABLE; diff --git a/src/components/enterprise/BUILD.gn b/src/components/enterprise/BUILD.gn index b25340807f8..db350f10dca 100644 --- a/src/components/enterprise/BUILD.gn +++ b/src/components/enterprise/BUILD.gn @@ -86,7 +86,7 @@ static_library("enterprise") { "//components/reporting/util:status", ] - if (!is_chromeos_ash) { + if (is_android && !is_chromeos) { sources += [ "browser/controller/chrome_browser_cloud_management_controller.cc", "browser/controller/chrome_browser_cloud_management_controller.h", diff --git a/src/components/enterprise/connectors/BUILD.gn b/src/components/enterprise/connectors/BUILD.gn index 3adeaf1170c..8d33a2257be 100644 --- a/src/components/enterprise/connectors/BUILD.gn +++ b/src/components/enterprise/connectors/BUILD.gn @@ -4,7 +4,7 @@ import("//components/enterprise/buildflags/buildflags.gni") -assert(enterprise_content_analysis) + source_set("connectors") { sources = [ diff --git a/src/components/guest_view/browser/BUILD.gn b/src/components/guest_view/browser/BUILD.gn index 795a3c58352..6a3445f756e 100644 --- a/src/components/guest_view/browser/BUILD.gn +++ b/src/components/guest_view/browser/BUILD.gn @@ -6,7 +6,7 @@ # assert to prevent the accidental building of GuestViews on mobile # platforms. If you're now using GuestViews on mobile, go ahead and # remove this assert. -assert(!is_android) + static_library("browser") { output_name = "guest_view_browser" diff --git a/src/components/guest_view/renderer/BUILD.gn b/src/components/guest_view/renderer/BUILD.gn index d12cd543e3b..7aed7a398fb 100644 --- a/src/components/guest_view/renderer/BUILD.gn +++ b/src/components/guest_view/renderer/BUILD.gn @@ -6,7 +6,7 @@ # assert to prevent the accidental building of GuestViews on mobile # platforms. If you're now using GuestViews on mobile, go ahead and # remove this assert. -assert(!is_android && !is_ios) + static_library("renderer") { sources = [ diff --git a/src/components/keep_alive_registry/BUILD.gn b/src/components/keep_alive_registry/BUILD.gn index f1df4c7e393..567eda19735 100644 --- a/src/components/keep_alive_registry/BUILD.gn +++ b/src/components/keep_alive_registry/BUILD.gn @@ -2,8 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -assert(!is_android) - source_set("keep_alive_registry") { sources = [ "keep_alive_registry.cc", diff --git a/src/components/media_router/browser/BUILD.gn b/src/components/media_router/browser/BUILD.gn index c7cbbc8d6e9..912c0edbb09 100644 --- a/src/components/media_router/browser/BUILD.gn +++ b/src/components/media_router/browser/BUILD.gn @@ -80,7 +80,6 @@ source_set("browser") { "android/media_router_dialog_controller_android.h", ] deps += [ "android:jni_headers" ] - } else { sources += [ "issue_manager.cc", "issue_manager.h", diff --git a/src/components/media_router/common/BUILD.gn b/src/components/media_router/common/BUILD.gn index 4a33857f656..16f3bdce335 100644 --- a/src/components/media_router/common/BUILD.gn +++ b/src/components/media_router/common/BUILD.gn @@ -41,7 +41,7 @@ static_library("common") { configs += [ "//build/config/compiler:wexit_time_destructors" ] - if (!is_android) { + if (is_android) { sources += [ "discovery/media_sink_service_base.cc", "discovery/media_sink_service_base.h", diff --git a/src/components/soda/BUILD.gn b/src/components/soda/BUILD.gn index b431189d9f5..4b1f8d36299 100644 --- a/src/components/soda/BUILD.gn +++ b/src/components/soda/BUILD.gn @@ -6,7 +6,7 @@ import("//build/buildflag_header.gni") import("//build/config/chromeos/ui_mode.gni") import("//components/soda/buildflags.gni") -assert(!is_android) +# assert(!is_android) buildflag_header("buildflags") { header = "buildflags.h" diff --git a/src/components/web_modal/BUILD.gn b/src/components/web_modal/BUILD.gn index 2a2384b4046..555ff0488e7 100644 --- a/src/components/web_modal/BUILD.gn +++ b/src/components/web_modal/BUILD.gn @@ -2,7 +2,6 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -assert(!is_android && !is_ios) component("web_modal") { sources = [ diff --git a/src/content/browser/BUILD.gn b/src/content/browser/BUILD.gn index 42ad9b47b0a..4ecf95f0b54 100644 --- a/src/content/browser/BUILD.gn +++ b/src/content/browser/BUILD.gn @@ -3229,7 +3229,7 @@ source_set("browser") { deps += [ "//gpu/vulkan/init" ] } libs += [ "jnigraphics" ] - } else { + # Not Android. sources += [ # The WebAuthn devtools protocol API is not supported in Android yet. @@ -3341,7 +3341,7 @@ source_set("browser") { ] } - if (!is_android && !is_ios) { + if (is_android && !is_ios) { sources += [ # Devtools frontend not included in Android and iOS "devtools/devtools_frontend_host_impl.cc", diff --git a/src/content/browser/devtools/BUILD.gn b/src/content/browser/devtools/BUILD.gn index cb78e031bff..caff886dafe 100644 --- a/src/content/browser/devtools/BUILD.gn +++ b/src/content/browser/devtools/BUILD.gn @@ -10,7 +10,7 @@ import("//third_party/protobuf/proto_library.gni") import("//tools/grit/grit_rule.gni") # Android and iOS don't support DevTools front-end. -if (!is_android && !is_ios) { +if (true || !is_ios) { source_set("devtools_resources_extern") { sources = [ "devtools_resources.cc" ] diff --git a/src/content/browser/resources/BUILD.gn b/src/content/browser/resources/BUILD.gn index f4f7f831179..d122b405e74 100644 --- a/src/content/browser/resources/BUILD.gn +++ b/src/content/browser/resources/BUILD.gn @@ -18,7 +18,7 @@ group("resources") { "service_worker:resources", ] - if (!is_android && !is_ios) { + if (is_android && !is_ios) { public_deps += [ "traces_internals:resources" ] } diff --git a/src/content/browser/tracing/BUILD.gn b/src/content/browser/tracing/BUILD.gn index ca4bfa39c2d..4f47e6489a1 100644 --- a/src/content/browser/tracing/BUILD.gn +++ b/src/content/browser/tracing/BUILD.gn @@ -5,7 +5,7 @@ import("//tools/grit/grit_rule.gni") import("//ui/webui/resources/tools/generate_grd.gni") -assert(!is_android) +# assert(!is_android) # The script just writes filename with no dirs to the .grd, so we always need # this file to be in the same directory as the inputs. diff --git a/src/content/shell/BUILD.gn b/src/content/shell/BUILD.gn index 46e690bda37..24f36d2ac11 100644 --- a/src/content/shell/BUILD.gn +++ b/src/content/shell/BUILD.gn @@ -596,7 +596,7 @@ repack("pak") { sources += [ "$root_gen_dir/ui/views/resources/views_resources_100_percent.pak" ] } - if (!is_android && !is_fuchsia && !is_ios) { + if (true) { sources += [ "$root_gen_dir/content/browser/devtools/devtools_resources.pak" ] deps += [ "//content/browser/devtools:devtools_resources" ] diff --git a/src/extensions/BUILD.gn b/src/extensions/BUILD.gn index 0d818ebc799..bb19ce8756f 100644 --- a/src/extensions/BUILD.gn +++ b/src/extensions/BUILD.gn @@ -226,7 +226,7 @@ repack("shell_and_test_pak") { deps = [ ":extensions_resources", "//content:content_resources", - "//content/browser/devtools:devtools_resources", + #"//content/browser/devtools:devtools_resources", "//content/shell:resources", "//device/bluetooth/strings", "//extensions/shell:resources", @@ -240,50 +240,7 @@ repack("shell_and_test_pak") { ] } -test("extensions_unittests") { - use_xvfb = use_xvfb_in_this_config - - sources = [ - "test/extensions_unittests_main.cc", - "test/flakiness_test_util_test.cc", - "test/logging_timer_unittest.cc", - ] - data = [ - "test/data/", - "//chrome/test/data/extensions/", - "$root_out_dir/content_shell.pak", - "$root_out_dir/extensions_shell_and_test.pak", - ] - - deps = [ - ":extensions_resources", - ":shell_and_test_pak", - ":test_support", - "//base/test:test_support", - "//content/public/common", - "//content/test:test_support", - "//extensions/browser:unit_tests", - "//extensions/common", - "//extensions/common:unit_tests", - "//extensions/renderer:unit_tests", - "//extensions/shell:unit_tests", - "//services/data_decoder/public/cpp:test_support", - "//services/service_manager/public/cpp/test:test_support", - "//ui/gl:test_support", - ] - - data_deps = [ - "//testing/buildbot/filters:extensions_unittests_filters", - "//third_party/mesa_headers", - ] - - if (is_chromeos) { - deps += [ - "//chrome/browser/chromeos/extensions/telemetry/api:extensions_unittests", - ] - } -} test("extensions_browsertests") { use_xvfb = use_xvfb_in_this_config diff --git a/src/extensions/browser/api/device_permissions_prompt.cc b/src/extensions/browser/api/device_permissions_prompt.cc index 163535a8991..abfcf822d22 100644 --- a/src/extensions/browser/api/device_permissions_prompt.cc +++ b/src/extensions/browser/api/device_permissions_prompt.cc @@ -244,8 +244,6 @@ class HidDevicePermissionsPrompt : public DevicePermissionsPrompt::Prompt, const auto& binder = GetHidManagerBinderOverride(); if (binder) binder.Run(std::move(receiver)); - else - content::GetDeviceService().BindHidManager(std::move(receiver)); hid_manager_->GetDevicesAndSetClient( receiver_.BindNewEndpointAndPassRemote(), diff --git a/src/extensions/browser/api/hid/hid_device_manager.cc b/src/extensions/browser/api/hid/hid_device_manager.cc index ed16ce0bcc7..e63e6f27d25 100644 --- a/src/extensions/browser/api/hid/hid_device_manager.cc +++ b/src/extensions/browser/api/hid/hid_device_manager.cc @@ -343,8 +343,6 @@ void HidDeviceManager::LazyInitialize() { const auto& binder = GetHidManagerBinderOverride(); if (binder) binder.Run(std::move(receiver)); - else - content::GetDeviceService().BindHidManager(std::move(receiver)); } // Enumerate HID devices and set client. std::vector empty_devices; diff --git a/src/extensions/browser/api/system_cpu/BUILD.gn b/src/extensions/browser/api/system_cpu/BUILD.gn index 2f39c29f7fb..db52e1767d0 100644 --- a/src/extensions/browser/api/system_cpu/BUILD.gn +++ b/src/extensions/browser/api/system_cpu/BUILD.gn @@ -32,7 +32,7 @@ source_set("system_cpu") { sources += [ "cpu_info_provider_mac.cc" ] } - if (is_linux || is_chromeos) { + if (is_linux || is_chromeos ||is_android) { sources += [ "cpu_info_provider_linux.cc" ] } diff --git a/src/extensions/browser/guest_view/web_view/web_view_guest.cc b/src/extensions/browser/guest_view/web_view/web_view_guest.cc index eb5f7ef1bfc..850de5a719d 100644 --- a/src/extensions/browser/guest_view/web_view/web_view_guest.cc +++ b/src/extensions/browser/guest_view/web_view/web_view_guest.cc @@ -171,6 +171,7 @@ static std::string TerminationStatusToString(base::TerminationStatus status) { case base::TERMINATION_STATUS_PROCESS_WAS_KILLED_BY_OOM: return "oom killed"; #endif + case base::TERMINATION_STATUS_OOM_PROTECTED: case base::TERMINATION_STATUS_OOM: return "oom"; case base::TERMINATION_STATUS_PROCESS_WAS_KILLED: diff --git a/src/extensions/browser/sandboxed_unpacker.cc b/src/extensions/browser/sandboxed_unpacker.cc index ec4d952078c..aaf3c316657 100644 --- a/src/extensions/browser/sandboxed_unpacker.cc +++ b/src/extensions/browser/sandboxed_unpacker.cc @@ -318,9 +318,9 @@ void SandboxedUnpacker::StartWithCrx(const CRXFileInfo& crx_info) { expected_hash = base::ToLowerASCII(crx_info.expected_hash); } - if (!CreateTempDirectory()) + if (!CreateTempDirectory()){ return; // ReportFailure() already called. - + } // Initialize the path that will eventually contain the unpacked extension. extension_root_ = temp_dir_.GetPath().AppendASCII(kTempExtensionName); diff --git a/src/extensions/common/file_util.cc b/src/extensions/common/file_util.cc index 59a704c3dee..6561049cc3e 100644 --- a/src/extensions/common/file_util.cc +++ b/src/extensions/common/file_util.cc @@ -289,7 +289,9 @@ std::optional LoadManifest( const base::FilePath::CharType* manifest_filename, std::string* error) { base::FilePath manifest_path = extension_path.Append(manifest_filename); + LOG(INFO) << "file_util.cc: LoadManifest: manifest_path: " << manifest_path; if (!base::PathExists(manifest_path)) { + LOG(INFO) << "file_util.cc: LoadManifest: !base::PathExists(manifest_path)"; *error = l10n_util::GetStringUTF8(IDS_EXTENSION_MANIFEST_UNREADABLE); return std::nullopt; } @@ -298,6 +300,7 @@ std::optional LoadManifest( std::unique_ptr root(deserializer.Deserialize(nullptr, error)); if (!root.get()) { if (error->empty()) { + LOG(INFO) << "file_util.cc: LoadManifest: error->empty()"; // If |error| is empty, then the file could not be read. // It would be cleaner to have the JSON reader give a specific error // in this case, but other code tests for a file error with @@ -306,11 +309,13 @@ std::optional LoadManifest( } else { *error = base::StringPrintf( "%s %s", manifest_errors::kManifestParseError, error->c_str()); + LOG(INFO) << "file_util.cc: LoadManifest: !error->empty(): error: " << *error; } return std::nullopt; } if (!root->is_dict()) { + LOG(INFO) << "file_util.cc: LoadManifest: !root->is_dict()"; *error = l10n_util::GetStringUTF8(IDS_EXTENSION_MANIFEST_INVALID); return std::nullopt; } diff --git a/src/extensions/common/manifest_handlers/default_locale_handler.cc b/src/extensions/common/manifest_handlers/default_locale_handler.cc index 533c3a956cf..0cb487ca050 100644 --- a/src/extensions/common/manifest_handlers/default_locale_handler.cc +++ b/src/extensions/common/manifest_handlers/default_locale_handler.cc @@ -91,9 +91,6 @@ bool DefaultLocaleHandler::Validate( base::FilePath locale_path; while (!(locale_path = locales.Next()).empty()) { - if (extension_l10n_util::ShouldSkipValidation(path, locale_path, - all_locales)) - continue; base::FilePath messages_path = locale_path.Append(kMessagesFilename); base::FilePath gzipped_messages_path = diff --git a/src/media/gpu/chromeos/BUILD.gn b/src/media/gpu/chromeos/BUILD.gn index 53d945af327..fa8883304e0 100644 --- a/src/media/gpu/chromeos/BUILD.gn +++ b/src/media/gpu/chromeos/BUILD.gn @@ -145,7 +145,7 @@ source_set("common") { } # Although fourcc is platform-agnostic; however, it is restricted by the above -# assert(use_v4l2_codec || use_vaapi). +assert(use_v4l2_codec || use_vaapi). source_set("fourcc") { defines = [ "MEDIA_GPU_IMPLEMENTATION" ] sources = [ diff --git a/src/mojo/public/tools/bindings/mojom.gni b/src/mojo/public/tools/bindings/mojom.gni index edb1532f355..13487cc94b1 100644 --- a/src/mojo/public/tools/bindings/mojom.gni +++ b/src/mojo/public/tools/bindings/mojom.gni @@ -1927,8 +1927,7 @@ template("mojom") { } if (defined(invoker.generate_webui_js_bindings)) { - assert(is_chromeos_ash, - "generate_webui_js_bindings can only be used on ChromeOS Ash") + assert(is_chromeos_ash,"generate_webui_js_bindings can only be used on ChromeOS Ash") assert(invoker.generate_webui_js_bindings, "generate_webui_js_bindings should be set to true or removed") } diff --git a/src/services/device/hid/BUILD.gn b/src/services/device/hid/BUILD.gn index 7421facd4c1..3773b4c7a60 100644 --- a/src/services/device/hid/BUILD.gn +++ b/src/services/device/hid/BUILD.gn @@ -9,7 +9,7 @@ import("//testing/libfuzzer/fuzzer_test.gni") source_set("hid") { # HID is not implemented on Android and we want to be particularly careful # about not bloating binary size by accidentially including it. - assert(!is_android) + # assert(!is_android) sources = [ "hid_connection.cc", diff --git a/src/services/device/public/cpp/hid/BUILD.gn b/src/services/device/public/cpp/hid/BUILD.gn index c2cf62c915f..fd5df300b8a 100644 --- a/src/services/device/public/cpp/hid/BUILD.gn +++ b/src/services/device/public/cpp/hid/BUILD.gn @@ -8,7 +8,7 @@ import("//build/config/features.gni") source_set("hid") { # HID is not implemented on Android and we want to be particularly careful # about not bloating binary size by accidentially including it. - assert(!is_android) + # assert(!is_android) sources = [ "hid_blocklist.cc", diff --git a/src/third_party/blink/renderer/modules/serial/BUILD.gn b/src/third_party/blink/renderer/modules/serial/BUILD.gn index 43d7442dcc1..1484fb58167 100644 --- a/src/third_party/blink/renderer/modules/serial/BUILD.gn +++ b/src/third_party/blink/renderer/modules/serial/BUILD.gn @@ -6,7 +6,7 @@ import("//third_party/blink/renderer/modules/modules.gni") # The Serial API will not be supported on Android. Assert here to ensure it # doesn't sneak back into the build. -assert(!is_android) +# assert(!is_android) blink_modules_sources("serial") { sources = [ diff --git a/src/third_party/blink/renderer/modules/window_controls_overlay/BUILD.gn b/src/third_party/blink/renderer/modules/window_controls_overlay/BUILD.gn index 07f9fd0225f..e0047fa5c19 100644 --- a/src/third_party/blink/renderer/modules/window_controls_overlay/BUILD.gn +++ b/src/third_party/blink/renderer/modules/window_controls_overlay/BUILD.gn @@ -6,7 +6,7 @@ import("//third_party/blink/renderer/modules/modules.gni") # The WindowControlsOverlay API will not be supported on Android. Assert here to # ensure it doesn't sneak back into the build. -assert(!is_android) +# assert(!is_android) blink_modules_sources("window_controls_overlay") { sources = [ diff --git a/src/third_party/polymer/v3_0/BUILD.gn b/src/third_party/polymer/v3_0/BUILD.gn index b6d6d2e8c3c..627d9b103a3 100644 --- a/src/third_party/polymer/v3_0/BUILD.gn +++ b/src/third_party/polymer/v3_0/BUILD.gn @@ -9,7 +9,7 @@ import("//ui/webui/resources/include_polymer.gni") import("//ui/webui/resources/tools/generate_grd.gni") import("//ui/webui/resources/tools/minify_js.gni") -assert(include_polymer) +# assert(include_polymer) js_files = [ "iron-a11y-keys-behavior/iron-a11y-keys-behavior.js", diff --git a/src/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/src/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java index 22decf0ebc2..53cf2a3169b 100644 --- a/src/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java +++ b/src/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java @@ -5,6 +5,7 @@ package org.chromium.ui.base; import android.Manifest; +import android.annotation.TargetApi; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ClipData; @@ -21,6 +22,9 @@ import android.provider.MediaStore; import android.text.TextUtils; import android.webkit.MimeTypeMap; +import android.os.storage.StorageManager; +import android.provider.DocumentsContract; +import androidx.annotation.Nullable; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -57,6 +61,8 @@ import java.util.List; import java.util.Locale; import java.util.concurrent.TimeUnit; +import java.lang.reflect.Array; +import java.lang.reflect.Method; /** * A dialog that is triggered from a file input field that allows a user to select a file based on @@ -250,6 +256,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick private long mNativeSelectFileDialog; private List mFileTypes; + private boolean mIsFolder; private boolean mCapture; private boolean mAllowMultiple; private Uri mCameraOutputUri; @@ -315,9 +322,10 @@ public void setFileTypesForTests(List fileTypes) { */ @CalledByNative protected void selectFile( - String[] fileTypes, boolean capture, boolean multiple, WindowAndroid window) { + String[] fileTypes, boolean capture, boolean multiple, boolean isFolder, WindowAndroid window) { mFileTypes = new ArrayList(Arrays.asList(fileTypes)); mCapture = capture; + mIsFolder = isFolder; mAllowMultiple = multiple; mWindowAndroid = (sWindowAndroidForTesting == null) ? window : sWindowAndroidForTesting; @@ -422,6 +430,11 @@ && shouldShowAudioTypes() /** Called to launch an intent to allow user to select files. */ private void launchSelectFileIntent() { + Intent folderSelector = null; + if (mIsFolder) { + folderSelector = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + folderSelector.addCategory(Intent.CATEGORY_DEFAULT); + } boolean hasCameraPermission = mWindowAndroid.hasPermission(Manifest.permission.CAMERA); if (mSupportsImageCapture && hasCameraPermission) { // GetCameraIntentTask will call LaunchSelectFileWithCameraIntent later. @@ -612,17 +625,26 @@ private void showExternalPickerDeprecated( // If one and only one category of accept type was specified (image, video, etc..), // then update the intent to specifically target that request. - if (shouldShowImageTypes()) { + if (shouldShowImageTypes() && !mIsFolder) { + Log.i("SelectFileDialog.java", "shouldShowImageTypes"); if (camera != null) extraIntents.add(camera); types.add(noOpMimeType); getContentIntent.putExtra(Intent.EXTRA_MIME_TYPES, types.toArray(new String[0])); - } else if (shouldShowVideoTypes()) { + } else if (shouldShowVideoTypes() && !mIsFolder) { + Log.i("SelectFileDialog.java", "shouldShowVideoTypes"); if (camcorder != null) extraIntents.add(camcorder); types.add(noOpMimeType); getContentIntent.putExtra(Intent.EXTRA_MIME_TYPES, types.toArray(new String[0])); - } else if (shouldShowAudioTypes()) { + } else if (shouldShowAudioTypes() && !mIsFolder) { + Log.i("SelectFileDialog.java", "shouldShowAudioTypes"); if (soundRecorder != null) extraIntents.add(soundRecorder); getContentIntent.putExtra(Intent.EXTRA_MIME_TYPES, types.toArray(new String[0])); + } else if (mIsFolder) { + Intent folderSelector = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + folderSelector.addCategory(Intent.CATEGORY_DEFAULT); + Log.i("SelectFileDialog.java", "mIsFolder, add(folderSelector)"); + if (folderSelector != null) extraIntents.add(folderSelector); + getContentIntent.setType(ALL_TYPES); } // If any types are specified, then only accept openable files, as coercing @@ -633,13 +655,23 @@ private void showExternalPickerDeprecated( Bundle extras = getContentIntent.getExtras(); if (extras == null || extras.get(Intent.EXTRA_MIME_TYPES) == null) { // We couldn't resolve a single accept type, so fallback to a generic chooser. - if (camera != null) extraIntents.add(camera); - if (camcorder != null) extraIntents.add(camcorder); - if (soundRecorder != null) extraIntents.add(soundRecorder); + if (!mIsFolder) { + Log.i("SelectFileDialog.java", "!mIsFolder"); + if (camera != null) extraIntents.add(camera); + if (camcorder != null) extraIntents.add(camcorder); + if (soundRecorder != null) extraIntents.add(soundRecorder); + } else { + Log.i("SelectFileDialog.java", "mIsFolder, add(folderSelector), 2"); + Intent folderSelector = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); + folderSelector.addCategory(Intent.CATEGORY_DEFAULT); + if (folderSelector != null) extraIntents.add(folderSelector); + } + } Intent chooser = new Intent(Intent.ACTION_CHOOSER); if (!extraIntents.isEmpty()) { + Log.i("SelectFileDialog.java", "EXTRA_INITIAL_INTENTS"); chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, extraIntents.toArray(new Intent[] {})); } chooser.putExtra(Intent.EXTRA_INTENT, getContentIntent); @@ -1170,6 +1202,16 @@ public String[] doInBackground() { String[] displayNames = new String[mUris.length]; try { for (int i = 0; i < mUris.length; i++) { + // Convert content Uri to absolute file path if in folder selection mode + if (mIsFolder) { + Context context = ContextUtils.getApplicationContext(); + String path = FileUtil.getFullPathFromTreeUri(mUris[i], context); + if (path != null) { + mUris[i] = Uri.fromFile(new File(path)); + Log.i("SelectFileDialog.java", "mUris: %s, path: %s", mUris[i].toString(), path); + } else + Log.i("SelectFileDialog.java", "mUris: %s, path: %s", mUris[i].toString(), "NULL"); + } // The selected files must be returned as a list of absolute paths. A MIUI 8.5 // device was observed to return a file:// URI instead, so convert if necessary. // See https://crbug.com/752834 for context. @@ -1177,18 +1219,28 @@ public String[] doInBackground() { if (isPathUnderAppDir(mUris[i].getSchemeSpecificPart(), mContext)) { return null; } - mFilePaths[i] = mUris[i].getSchemeSpecificPart(); + String filePath = mUris[i].getSchemeSpecificPart(); + // Remove extra "//" if exists + if (filePath.startsWith("//") && filePath.length() > 2) + mFilePaths[i] = filePath.substring(2); + Log.i("SelectFileDialog.java", "mFilePaths1: %s", mFilePaths[i]); + } else { if (ContentResolver.SCHEME_CONTENT.equals(mUris[i].getScheme()) && isContentUriUnderAppDir(mUris[i], mContext)) { return null; } mFilePaths[i] = mUris[i].toString(); + Log.i("SelectFileDialog.java", "mFilePaths2: %s", mFilePaths[i]); } - - displayNames[i] = - ContentUriUtils.getDisplayName( - mUris[i], mContext, MediaStore.MediaColumns.DISPLAY_NAME); + if (mIsFolder) { + displayNames[i] = mFilePaths[i]; + Log.i("SelectFileDialog.java", "displayNames1: %s", displayNames[i]); + } else { + displayNames[i] = ContentUriUtils.getDisplayName( + mUris[i], mContext, MediaStore.MediaColumns.DISPLAY_NAME); + Log.i("SelectFileDialog.java", "displayNames2: %s", displayNames[i]); + } } } catch (SecurityException e) { // Some third party apps will present themselves as being able @@ -1689,4 +1741,103 @@ void onMultipleFilesSelected( void onContactsSelected( long nativeSelectFileDialogImpl, SelectFileDialog caller, String contacts); } + + // The following code is from + // Stack Overflow. + // Licensed under CC-BY-SA 3.0. + private static final class FileUtil { + private static final String[] PRIMARY_VOLUME_NAME = {"primary", "raw"}; + + @Nullable + static String getFullPathFromTreeUri(@Nullable final Uri treeUri, Context con) { + if (treeUri == null) return null; + String volumePath = getVolumePath(getVolumeIdFromTreeUri(treeUri),con); + if (volumePath == null) + Log.i("SelectFileDialog.java", "volumePath: %s", "NULL"); + else + Log.i("SelectFileDialog.java", "volumePath: %s", volumePath); + if (volumePath == null) return File.separator; + if (volumePath.endsWith(File.separator)) + volumePath = volumePath.substring(0, volumePath.length() - 1); + + String documentPath = getDocumentPathFromTreeUri(treeUri); + if (documentPath == null || documentPath.equals("")) + Log.i("SelectFileDialog.java", "documentPath: %s", "NULL"); + else + Log.i("SelectFileDialog.java", "documentPath: %s", documentPath); + if (volumePath.endsWith(File.separator)) + volumePath = volumePath.substring(0, volumePath.length() - 1); + if (documentPath.endsWith(File.separator)) + documentPath = documentPath.substring(0, documentPath.length() - 1); + + if (documentPath.length() > 0) { + if (!documentPath.startsWith(volumePath)) { + if (documentPath.startsWith(File.separator)) + return volumePath + documentPath; + else + return volumePath + File.separator + documentPath; + } + else + return documentPath; + } + else return volumePath; + } + + private static String getVolumePath(final String volumeId, Context context) { + Log.i("SelectFileDialog.java", "getVolumePath: volumeId: %s", volumeId); + try { + StorageManager mStorageManager = + (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); + Class storageVolumeClazz = Class.forName("android.os.storage.StorageVolume"); + Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList"); + Method getUuid = storageVolumeClazz.getMethod("getUuid"); + Method getPath = storageVolumeClazz.getMethod("getPath"); + Method isPrimary = storageVolumeClazz.getMethod("isPrimary"); + Object result = getVolumeList.invoke(mStorageManager); + + final int length = Array.getLength(result); + Log.i("SelectFileDialog.java", "getVolumePath: length: %d", length); + for (int i = 0; i < length; i++) { + Object storageVolumeElement = Array.get(result, i); + String uuid = (String) getUuid.invoke(storageVolumeElement); + Log.i("SelectFileDialog.java", "getVolumePath: uuid: %s", uuid); + Boolean primary = (Boolean) isPrimary.invoke(storageVolumeElement); + Log.i("SelectFileDialog.java", "getVolumePath: primary: %b", primary); + + // primary volume? + for (String volume_name : PRIMARY_VOLUME_NAME) { + if (primary && volume_name.equals(volumeId)) + return (String) getPath.invoke(storageVolumeElement); + } + + // other volumes? + if (uuid != null && uuid.equals(volumeId)) + return (String) getPath.invoke(storageVolumeElement); + } + // not found. + return null; + } catch (Exception ex) { + Log.e("SelectFileDialog.java", "getVolumePath: Exception: %s", ex.getMessage()); + return null; + } + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + private static String getVolumeIdFromTreeUri(final Uri treeUri) { + final String docId = DocumentsContract.getTreeDocumentId(treeUri); + Log.i("SelectFileDialog.java", "getVolumeIdFromTreeUri: docId: %s", docId); + final String[] split = docId.split(":"); + if (split.length > 0) return split[0]; + else return null; + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + private static String getDocumentPathFromTreeUri(final Uri treeUri) { + final String docId = DocumentsContract.getTreeDocumentId(treeUri); + Log.i("SelectFileDialog.java", "getDocumentPathFromTreeUri: docId: %s", docId); + final String[] split = docId.split(":"); + if ((split.length >= 2) && (split[1] != null)) return split[1]; + else return File.separator; + } + } } diff --git a/src/ui/android/window_android.h b/src/ui/android/window_android.h index d3e77c09291..ecc4a256c5b 100644 --- a/src/ui/android/window_android.h +++ b/src/ui/android/window_android.h @@ -14,6 +14,7 @@ #include "base/functional/callback.h" #include "base/memory/raw_ptr.h" #include "base/observer_list.h" +#include "ui/events/event_target.h" #include "base/time/time.h" #include "third_party/blink/public/common/page/content_to_visible_time_reporter.h" #include "ui/android/ui_android_export.h" @@ -35,7 +36,8 @@ class WindowAndroidObserver; // Android implementation of the activity window. // WindowAndroid is also the root of a ViewAndroid tree. -class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid { +class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid, + public ui::EventTarget { public: class ScopedWindowAndroidForTesting { public: @@ -65,7 +67,12 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid { void Destroy(JNIEnv* env, const base::android::JavaParamRef& obj); base::android::ScopedJavaLocalRef GetJavaObject(); - + static void ConvertPointToTarget(const WindowAndroid* source, + const WindowAndroid* target, + gfx::PointF* point); + static void ConvertPointToTarget(const WindowAndroid* source, + const WindowAndroid* target, + gfx::Point* point); void AttachCompositor(WindowAndroidCompositor* compositor); void DetachCompositor(); @@ -146,7 +153,11 @@ class UI_ANDROID_EXPORT WindowAndroid : public ViewAndroid { // ViewAndroid overrides. WindowAndroid* GetWindowAndroid() const override; - + // Overridden from ui::EventTarget: + bool CanAcceptEvent(const ui::Event& event) override; + EventTarget* GetParentTarget() override; + std::unique_ptr GetChildIterator() const override; + ui::EventTargeter* GetEventTargeter() override; // The ID of the display that this window belongs to. int display_id() const { return display_id_; } diff --git a/src/ui/base/BUILD.gn b/src/ui/base/BUILD.gn index 3b28b01cebe..00cdcece75e 100644 --- a/src/ui/base/BUILD.gn +++ b/src/ui/base/BUILD.gn @@ -610,7 +610,9 @@ component("base") { if (is_chromeos_ash || (use_aura && (is_linux || is_chromeos_lacros)) || is_fuchsia) { sources += [ - "dragdrop/os_exchange_data_provider_non_backed.cc", + + + "dragdrop/os_exchange_data_provider_non_backed.h", ] } @@ -645,14 +647,6 @@ component("base") { if (!toolkit_views && !use_aura) { sources -= [ - "dragdrop/drop_target_event.cc", - "dragdrop/drop_target_event.h", - "dragdrop/os_exchange_data.cc", - "dragdrop/os_exchange_data.h", - "dragdrop/os_exchange_data_provider_factory.cc", - "dragdrop/os_exchange_data_provider_factory.h", - "nine_image_painter_factory.cc", - "nine_image_painter_factory.h", ] } @@ -661,9 +655,7 @@ component("base") { libs += [ "jnigraphics" ] sources -= [ - "l10n/l10n_font_util.cc", - "models/button_menu_item_model.cc", - "theme_provider.cc", + ] } diff --git a/src/ui/base/dragdrop/os_exchange_data.h b/src/ui/base/dragdrop/os_exchange_data.h index c01cc12e761..7b4ed57c5d0 100644 --- a/src/ui/base/dragdrop/os_exchange_data.h +++ b/src/ui/base/dragdrop/os_exchange_data.h @@ -57,7 +57,7 @@ class COMPONENT_EXPORT(UI_BASE) OSExchangeData { FILE_NAME = 1 << 2, PICKLED_DATA = 1 << 3, FILE_CONTENTS = 1 << 4, -#if defined(USE_AURA) +#if defined(USE_AURA) || defined(OS_ANDROID) HTML = 1 << 5, #endif #if BUILDFLAG(IS_CHROMEOS) @@ -190,7 +190,7 @@ class COMPONENT_EXPORT(UI_BASE) OSExchangeData { const; #endif -#if defined(USE_AURA) +#if defined(USE_AURA) || defined(OS_ANDROID) // Adds a snippet of HTML. |html| is just raw html but this sets both // text/html and CF_HTML. void SetHtml(const std::u16string& html, const GURL& base_url); diff --git a/src/ui/base/dragdrop/os_exchange_data_provider_factory.cc b/src/ui/base/dragdrop/os_exchange_data_provider_factory.cc index 4b965dddb9a..fa03ff028e3 100644 --- a/src/ui/base/dragdrop/os_exchange_data_provider_factory.cc +++ b/src/ui/base/dragdrop/os_exchange_data_provider_factory.cc @@ -15,7 +15,7 @@ #elif BUILDFLAG(IS_WIN) #include "ui/base/dragdrop/os_exchange_data_provider_win.h" #endif - +#include "ui/base/dragdrop/os_exchange_data_provider_non_backed.h" namespace ui { // static @@ -38,6 +38,8 @@ OSExchangeDataProviderFactory::CreateProvider() { #elif BUILDFLAG(IS_FUCHSIA) // TODO(crbug.com/42050646): Implement OSExchangeDataProvider for Fuchsia. return std::make_unique(); +#elif defined(OS_ANDROID) + return std::make_unique(); #else #error "Unknown operating system" #endif diff --git a/src/ui/events/event.h b/src/ui/events/event.h index bb66d66b5b0..de6326259ad 100644 --- a/src/ui/events/event.h +++ b/src/ui/events/event.h @@ -15,6 +15,7 @@ #include "base/memory/raw_ptr.h" #include "base/time/time.h" #include "build/build_config.h" +#include "ui/android/window_android.h" #include "ui/events/event_constants.h" #include "ui/events/gesture_event_details.h" #include "ui/events/gestures/gesture_types.h" diff --git a/src/ui/shell_dialogs/select_file_dialog_android.cc b/src/ui/shell_dialogs/select_file_dialog_android.cc index cb8b083460c..9bad32fb61f 100644 --- a/src/ui/shell_dialogs/select_file_dialog_android.cc +++ b/src/ui/shell_dialogs/select_file_dialog_android.cc @@ -131,9 +131,11 @@ void SelectFileDialogImpl::SelectFileImpl( base::android::ToJavaArrayOfStrings(env, accept_types.first); bool accept_multiple_files = SelectFileDialog::SELECT_OPEN_MULTI_FILE == type; - + bool is_folder = false; + if (type == SelectFileDialog::SELECT_EXISTING_FOLDER) + is_folder = true; Java_SelectFileDialog_selectFile(env, java_object_, accept_types_java, - accept_types.second, accept_multiple_files, + accept_types.second, accept_multiple_files, is_folder, owning_window->GetJavaObject()); } diff --git a/src/ui/views/BUILD.gn b/src/ui/views/BUILD.gn index a4bfc58afda..911829347e0 100644 --- a/src/ui/views/BUILD.gn +++ b/src/ui/views/BUILD.gn @@ -15,7 +15,7 @@ import("//testing/test.gni") import("//ui/base/ui_features.gni") import("//ui/views/features.gni") -assert(toolkit_views) +# assert(toolkit_views) config("flags") { defines = [ "TOOLKIT_VIEWS=1" ] diff --git a/src/ui/views/controls/menu/menu_controller.h b/src/ui/views/controls/menu/menu_controller.h index a0511951349..c60435eee4d 100644 --- a/src/ui/views/controls/menu/menu_controller.h +++ b/src/ui/views/controls/menu/menu_controller.h @@ -14,6 +14,7 @@ #include #include +#include "ui/android/window_android.h" #include "base/callback_list.h" #include "base/containers/flat_set.h" #include "base/functional/callback_forward.h" diff --git a/src/ui/views/controls/menu/menu_host.cc b/src/ui/views/controls/menu/menu_host.cc index b42556c2902..e8fd7dd89ec 100644 --- a/src/ui/views/controls/menu/menu_host.cc +++ b/src/ui/views/controls/menu/menu_host.cc @@ -46,7 +46,7 @@ namespace views { namespace internal { -#if defined(USE_AURA) +#if !defined(OS_APPLE) && !defined(OS_ANDROID) // This class adds itself as the pre target handler for the |window| // passed in. It currently handles touch events and forwards them to the // controller. Reason for this approach is views does not get raw touch @@ -101,7 +101,7 @@ class PreMenuEventDispatchHandler : public ui::EventHandler, void TransferGesture(ui::GestureRecognizer* gesture_recognizer, gfx::NativeView source, gfx::NativeView target) { -#if defined(USE_AURA) +#if defined(OS_APPLE) || defined(OS_ANDROID) // Use kCancel for the transfer touches behavior to ensure that `source` sees // a valid touch stream. If kCancel is not used source's touch state may not // be valid after the menu is closed, potentially causing it to drop touch @@ -180,7 +180,7 @@ void MenuHost::InitMenuHost(const InitParams& init_params) { show_menu_host_duration_histogram.value(), base::TimeTicks::Now())); } -#if defined(USE_AURA) +#if !defined(OS_APPLE) && !defined(OS_ANDROID) pre_dispatch_handler_ = std::make_unique( menu_controller, submenu_, GetNativeView()); @@ -251,7 +251,7 @@ void MenuHost::DestroyMenuHost() { HideMenuHost(); destroying_ = true; submenu_ = nullptr; -#if defined(USE_AURA) +#if !defined(OS_APPLE) && !defined(OS_ANDROID) pre_dispatch_handler_.reset(); #endif static_cast(GetRootView())->ClearSubmenu(); diff --git a/src/ui/views/controls/menu/menu_host.h b/src/ui/views/controls/menu/menu_host.h index fc1d5fccc38..f4ed6a329f4 100644 --- a/src/ui/views/controls/menu/menu_host.h +++ b/src/ui/views/controls/menu/menu_host.h @@ -28,7 +28,7 @@ class View; class Widget; namespace internal { -#if defined(USE_AURA) +#if defined(USE_AURA) && !defined(OS_ANDROID) // This class is internal to views. class PreMenuEventDispatchHandler; #endif // defined(USE_AURA) diff --git a/src/ui/webui/resources/BUILD.gn b/src/ui/webui/resources/BUILD.gn index 0694d559203..abddc53137d 100644 --- a/src/ui/webui/resources/BUILD.gn +++ b/src/ui/webui/resources/BUILD.gn @@ -89,7 +89,7 @@ generate_grd("build_grd") { } } - if (!is_android) { + if (is_android) { public_deps += [ "cr_components/history:build_grdp", "cr_components/history_clusters:build_grdp", diff --git a/src/ui/webui/resources/cr_components/app_management/BUILD.gn b/src/ui/webui/resources/cr_components/app_management/BUILD.gn index 45328d1f231..3a537b4ecb1 100644 --- a/src/ui/webui/resources/cr_components/app_management/BUILD.gn +++ b/src/ui/webui/resources/cr_components/app_management/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(!is_ios) mojom("mojo_bindings") { sources = [ "app_management.mojom" ] diff --git a/src/ui/webui/resources/cr_components/color_change_listener/BUILD.gn b/src/ui/webui/resources/cr_components/color_change_listener/BUILD.gn index 1cf9c1ca2ef..1f6877cc5f4 100644 --- a/src/ui/webui/resources/cr_components/color_change_listener/BUILD.gn +++ b/src/ui/webui/resources/cr_components/color_change_listener/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +# assert(!is_android && !is_ios) mojom("mojom") { sources = [ "color_change_listener.mojom" ] diff --git a/src/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn b/src/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn index 19ca9d54ef2..d14dcc24e4d 100644 --- a/src/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn +++ b/src/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(true && !is_ios) mojom("mojom") { sources = [ "customize_color_scheme_mode.mojom" ] diff --git a/src/ui/webui/resources/cr_components/customize_themes/BUILD.gn b/src/ui/webui/resources/cr_components/customize_themes/BUILD.gn index b0d94c5beaa..0ac15678f11 100644 --- a/src/ui/webui/resources/cr_components/customize_themes/BUILD.gn +++ b/src/ui/webui/resources/cr_components/customize_themes/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(true && !is_ios) mojom("mojom") { sources = [ "customize_themes.mojom" ] diff --git a/src/ui/webui/resources/cr_components/help_bubble/BUILD.gn b/src/ui/webui/resources/cr_components/help_bubble/BUILD.gn index a45bf1c86fb..b7181b8fd08 100644 --- a/src/ui/webui/resources/cr_components/help_bubble/BUILD.gn +++ b/src/ui/webui/resources/cr_components/help_bubble/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(true && !is_ios) mojom("mojo_bindings") { sources = [ "help_bubble.mojom" ] diff --git a/src/ui/webui/resources/cr_components/history/BUILD.gn b/src/ui/webui/resources/cr_components/history/BUILD.gn index fb5adc71ab2..1db8ea46051 100644 --- a/src/ui/webui/resources/cr_components/history/BUILD.gn +++ b/src/ui/webui/resources/cr_components/history/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(true && !is_ios) build_webui("build") { grd_prefix = "cr_components_history_embeddings" diff --git a/src/ui/webui/resources/cr_components/history_clusters/BUILD.gn b/src/ui/webui/resources/cr_components/history_clusters/BUILD.gn index 5bd216f6760..e5f90f390da 100644 --- a/src/ui/webui/resources/cr_components/history_clusters/BUILD.gn +++ b/src/ui/webui/resources/cr_components/history_clusters/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "history_clusters.mojom" ] diff --git a/src/ui/webui/resources/cr_components/history_embeddings/BUILD.gn b/src/ui/webui/resources/cr_components/history_embeddings/BUILD.gn index 937a1cce4c2..1e1aabf5c4a 100644 --- a/src/ui/webui/resources/cr_components/history_embeddings/BUILD.gn +++ b/src/ui/webui/resources/cr_components/history_embeddings/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android) +# assert(!is_android) mojom("mojo_bindings") { sources = [ "history_embeddings.mojom" ] diff --git a/src/ui/webui/resources/cr_components/localized_link/BUILD.gn b/src/ui/webui/resources/cr_components/localized_link/BUILD.gn index 19fedb083e8..583adae9785 100644 --- a/src/ui/webui/resources/cr_components/localized_link/BUILD.gn +++ b/src/ui/webui/resources/cr_components/localized_link/BUILD.gn @@ -5,7 +5,7 @@ import("//ui/webui/resources/include_polymer.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(include_polymer) +assert(is_android ||include_polymer) build_webui("build") { grd_prefix = "cr_components_localized_link" diff --git a/src/ui/webui/resources/cr_components/managed_dialog/BUILD.gn b/src/ui/webui/resources/cr_components/managed_dialog/BUILD.gn index 4b1c236e679..8b4015b5f2f 100644 --- a/src/ui/webui/resources/cr_components/managed_dialog/BUILD.gn +++ b/src/ui/webui/resources/cr_components/managed_dialog/BUILD.gn @@ -5,7 +5,7 @@ import("//ui/webui/resources/include_polymer.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(include_polymer) +assert(is_android || include_polymer) build_webui("build") { grd_prefix = "cr_components_managed_dialog" diff --git a/src/ui/webui/resources/cr_components/managed_footnote/BUILD.gn b/src/ui/webui/resources/cr_components/managed_footnote/BUILD.gn index 86fa8a17e3a..23a06ca40cc 100644 --- a/src/ui/webui/resources/cr_components/managed_footnote/BUILD.gn +++ b/src/ui/webui/resources/cr_components/managed_footnote/BUILD.gn @@ -5,7 +5,7 @@ import("//ui/webui/resources/include_polymer.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(include_polymer) +# assert(include_polymer) build_webui("build") { grd_prefix = "cr_components_managed_footnote" diff --git a/src/ui/webui/resources/cr_components/most_visited/BUILD.gn b/src/ui/webui/resources/cr_components/most_visited/BUILD.gn index 5254ab24238..2c25f549927 100644 --- a/src/ui/webui/resources/cr_components/most_visited/BUILD.gn +++ b/src/ui/webui/resources/cr_components/most_visited/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(true && !is_ios) mojom("mojom") { sources = [ "most_visited.mojom" ] diff --git a/src/ui/webui/resources/cr_components/page_image_service/BUILD.gn b/src/ui/webui/resources/cr_components/page_image_service/BUILD.gn index 931719eb54c..c730192e6a7 100644 --- a/src/ui/webui/resources/cr_components/page_image_service/BUILD.gn +++ b/src/ui/webui/resources/cr_components/page_image_service/BUILD.gn @@ -4,7 +4,7 @@ import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(true && !is_ios) build_webui("build") { grd_prefix = "cr_components_page_image_service" diff --git a/src/ui/webui/resources/cr_components/searchbox/BUILD.gn b/src/ui/webui/resources/cr_components/searchbox/BUILD.gn index 950eac7482e..8cca2759d93 100644 --- a/src/ui/webui/resources/cr_components/searchbox/BUILD.gn +++ b/src/ui/webui/resources/cr_components/searchbox/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(!is_ios) mojom("mojo_bindings") { sources = [ "searchbox.mojom" ] diff --git a/src/ui/webui/resources/cr_components/theme_color_picker/BUILD.gn b/src/ui/webui/resources/cr_components/theme_color_picker/BUILD.gn index cbc045f5dd8..9db7680ce67 100644 --- a/src/ui/webui/resources/cr_components/theme_color_picker/BUILD.gn +++ b/src/ui/webui/resources/cr_components/theme_color_picker/BUILD.gn @@ -5,7 +5,7 @@ import("//mojo/public/tools/bindings/mojom.gni") import("//ui/webui/resources/tools/build_webui.gni") -assert(!is_android && !is_ios) +assert(true && !is_ios) mojom("mojom") { sources = [ "theme_color_picker.mojom" ] diff --git a/src/ui/webui/resources/css/BUILD.gn b/src/ui/webui/resources/css/BUILD.gn index e734c2497f9..62a97f768af 100644 --- a/src/ui/webui/resources/css/BUILD.gn +++ b/src/ui/webui/resources/css/BUILD.gn @@ -5,7 +5,7 @@ import("//tools/grit/preprocess_if_expr.gni") import("//ui/webui/resources/tools/generate_grd.gni") -include_polymer = !is_android && !is_ios +include_polymer = is_android && !is_ios preprocess_manifest = "preprocessed_manifest.json" diff --git a/src/ui/webui/resources/js/BUILD.gn b/src/ui/webui/resources/js/BUILD.gn index c6679f4f34e..9a826f094a7 100644 --- a/src/ui/webui/resources/js/BUILD.gn +++ b/src/ui/webui/resources/js/BUILD.gn @@ -5,7 +5,7 @@ import("//build/config/chromeos/ui_mode.gni") import("../tools/build_webui.gni") -include_polymer = !is_android && !is_ios +include_polymer = is_android && !is_ios build_webui("build") { grd_prefix = "webui_js"