patches for v108

This commit is contained in:
Carmelo Messina
2022-11-22 13:21:05 +01:00
parent ef21fa4706
commit c84e2af096
33 changed files with 563 additions and 413 deletions
+1 -2
View File
@@ -202,8 +202,8 @@ Partition-blobs-by-top-frame-url.patch
Disable-add-to-home-screen-prompt.patch
Remove-http-referrals-in-cross-origin-navigation.patch
Add-kill-switch-for-unsupported-clangd-flags.patch
Fix-WebWorker-requestAnimationFrame.patch
00Enable-ThirdPartyStoragePartitioning-flag.patch
00Enable-CrossSiteFlagNetworkAnonymizationKey-flag.patch
00OpenSearch--miscellaneous--fixup-.patch
@@ -244,7 +244,6 @@ Fix-WebWorker-requestAnimationFrame.patch
00Fix-windows-build.patch
00ungoogled-chr-no-special-hosts-domains--add-fixup-.patch
00Disable-fetching-of-all-field-trials--add-fixup-.patch
00Add-an-always-incognito-mode--add-fixup-.patch
00Move-navigation-bar-to-bottom--add-fixup-.patch
00Add-menu-item-to-view-source--add-fixup-.patch
00Add-AudioContextAPI-flags.patch
@@ -77,7 +77,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -620,6 +620,11 @@ BASE_FEATURE(kWebRtcUseMinMaxVEADimensions,
@@ -621,6 +621,11 @@ BASE_FEATURE(kWebRtcUseMinMaxVEADimensions,
#endif
);
@@ -92,7 +92,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -246,6 +246,9 @@ BLINK_COMMON_EXPORT bool IsPlzDedicatedWorkerEnabled();
@@ -247,6 +247,9 @@ BLINK_COMMON_EXPORT bool IsPlzDedicatedWorkerEnabled();
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kWebRtcUseMinMaxVEADimensions);
@@ -1,81 +0,0 @@
From: Your Name <you@example.com>
Date: Mon, 7 Nov 2022 12:39:07 +0000
Subject: Add an always-incognito mode (add fixup)
---
.../offline_pages/android/offline_page_bridge.cc | 16 ++++++++--------
.../android/offline_page_model_factory.cc | 1 -
.../android/request_coordinator_factory.cc | 5 +++++
3 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrome/browser/offline_pages/android/offline_page_bridge.cc
--- a/chrome/browser/offline_pages/android/offline_page_bridge.cc
+++ b/chrome/browser/offline_pages/android/offline_page_bridge.cc
@@ -159,13 +159,7 @@ void ValidateFileCallback(
int64_t offline_id,
const GURL& url,
const base::FilePath& file_path,
- SimpleFactoryKey* key,
bool is_trusted) {
- // in always incognito, never trust input file (show file name in url)
- ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key);
- if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
- is_trusted = false;
-
// If trusted, the launch url will be the http/https url of the offline
// page. If the file path is content URI, directly open it. Otherwise, the
// launch url will be the file URL pointing to the archive file of the offline
@@ -794,9 +788,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
}
if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) {
+ bool is_trusted = true;
+ // in always incognito, never trust input file (show file name in url)
+ ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key_);
+ if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
+ is_trusted = false;
+
ValidateFileCallback(launch_location, j_callback_obj,
offline_page->offline_id, offline_page->url,
- offline_page->file_path, key_, true /* is_trusted*/);
+ offline_page->file_path, is_trusted);
return;
}
@@ -806,7 +806,7 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
offline_page->file_size, offline_page->digest),
base::BindOnce(&ValidateFileCallback, launch_location, j_callback_obj,
offline_page->offline_id, offline_page->url,
- offline_page->file_path, key_));
+ offline_page->file_path));
}
void OfflinePageBridge::GetSizeAndComputeDigestDone(
diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
--- a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
+++ b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
@@ -49,7 +49,6 @@ OfflinePageModel* OfflinePageModelFactory::GetForKey(SimpleFactoryKey* key) {
OfflinePageModel* OfflinePageModelFactory::GetForBrowserContext(
content::BrowserContext* browser_context) {
Profile* profile = Profile::FromBrowserContext(browser_context);
- profile = profile->GetOriginalProfile();
return GetForKey(profile->GetProfileKey());
}
diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc b/chrome/browser/offline_pages/android/request_coordinator_factory.cc
--- a/chrome/browser/offline_pages/android/request_coordinator_factory.cc
+++ b/chrome/browser/offline_pages/android/request_coordinator_factory.cc
@@ -86,6 +86,11 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext(
KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
+ if(context->IsOffTheRecord() &&
+ Profile::FromBrowserContext(context)->GetOriginalProfile()
+ ->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == false) {
+ return nullptr;
+ }
std::unique_ptr<OfflinerPolicy> policy(new OfflinerPolicy());
std::unique_ptr<Offliner> offliner;
OfflinePageModel* model =
--
2.25.1
+8 -14
View File
@@ -486,7 +486,7 @@ Subject: Diff from 108.0.5359.47
content/renderer/render_frame_impl.h | 4 +
...web_request_proxying_url_loader_factory.cc | 5 +
.../browser/extension_event_histogram_value.h | 13 +
.../extension_function_histogram_value.h | 35 +
.../extension_function_histogram_value.h | 32 +
.../common/mojom/api_permission_id.mojom | 5 +
gclient/.gclient | 25 +
gclient/.gclient_ci_android | 22 +
@@ -502,10 +502,10 @@ Subject: Diff from 108.0.5359.47
.../core/frame/local_frame_mojo_handler.h | 5 +
.../url_loader/mojo_url_loader_client.cc | 6 +-
tools/adblock/interdiff.py | 87 +
tools/metrics/histograms/enums.xml | 40 +
tools/metrics/histograms/enums.xml | 37 +
tools/perf/benchmarks/eyeo.py | 1193 +
tools/perf/page_sets/eyeo_page_set.py | 978 +
502 files changed, 146224 insertions(+), 22 deletions(-)
502 files changed, 146218 insertions(+), 22 deletions(-)
create mode 100644 chrome/browser/adblock/README.md
create mode 100644 chrome/browser/adblock/adblock_content_browser_client.cc
create mode 100644 chrome/browser/adblock/adblock_content_browser_client.h
@@ -1119,7 +1119,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/autofill/android:autofill_java",
"//components/autofill/android:prefeditor_autofill_java",
"//components/autofill_assistant/android:public_dependencies_java",
@@ -4162,6 +4169,7 @@ group("jni_headers") {
@@ -4161,6 +4168,7 @@ group("jni_headers") {
"//chrome/browser/ui/messages/android:jni_headers",
"//chrome/browser/util:jni_headers",
"//chrome/browser/webauthn/android:jni_headers",
@@ -160982,12 +160982,10 @@ diff --git a/extensions/browser/extension_function_histogram_value.h b/extension
#ifndef EXTENSIONS_BROWSER_EXTENSION_FUNCTION_HISTOGRAM_VALUE_H_
#define EXTENSIONS_BROWSER_EXTENSION_FUNCTION_HISTOGRAM_VALUE_H_
@@ -1786,6 +1790,37 @@ enum HistogramValue {
@@ -1786,6 +1790,34 @@ enum HistogramValue {
AUTOTESTPRIVATE_REMOVEFUSEBOXTEMPDIR = 1723,
AUTOTESTPRIVATE_GETTHROUGHPUTTRACKERDATA = 1724,
ENTERPRISE_REMOTEAPPS_SORTLAUNCHER = 1725,
+<<<<<<< HEAD
+=======
+ PASSWORDSPRIVATE_SHOWADDSHORTCUTDIALOG = 1726,
+ ACTION_GETBADGETEXTCOLOR = 1727,
+ ACTION_SETBADGETEXTCOLOR = 1728,
@@ -161016,7 +161014,6 @@ diff --git a/extensions/browser/extension_function_histogram_value.h b/extension
+ ADBLOCKPRIVATE_GETSESSIONBLOCKEDADSCOUNT = 5019,
+ ADBLOCKPRIVATE_GETCUSTOMFILTERS = 5020,
+
+>>>>>>> b6e42af3ffff6... Squashed commits
// Last entry: Add new entries above, then run:
// tools/metrics/histograms/update_extension_histograms.py
ENUM_BOUNDARY
@@ -161536,12 +161533,10 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
</enum>
<enum name="ExtensionFileWriteResult">
@@ -35802,6 +35811,34 @@ Called by update_extension_histograms.py.-->
@@ -35802,6 +35811,31 @@ Called by update_extension_histograms.py.-->
<int value="1723" label="AUTOTESTPRIVATE_REMOVEFUSEBOXTEMPDIR"/>
<int value="1724" label="AUTOTESTPRIVATE_GETTHROUGHPUTTRACKERDATA"/>
<int value="1725" label="ENTERPRISE_REMOTEAPPS_SORTLAUNCHER"/>
+<<<<<<< HEAD
+=======
+ <int value="1726" label="PASSWORDSPRIVATE_SHOWADDSHORTCUTDIALOG"/>
+ <int value="1727" label="ACTION_GETBADGETEXTCOLOR"/>
+ <int value="1728" label="ACTION_SETBADGETEXTCOLOR"/>
@@ -161567,11 +161562,10 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
+ <int value="5018" label="ADBLOCKPRIVATE_GETSESSIONALLOWEDADSCOUNT"/>
+ <int value="5019" label="ADBLOCKPRIVATE_GETSESSIONBLOCKEDADSCOUNT"/>
+ <int value="5020" label="ADBLOCKPRIVATE_GETCUSTOMFILTERS"/>
+>>>>>>> b6e42af3ffff6... Squashed commits
</enum>
<enum name="ExtensionIconState">
@@ -36436,6 +36473,7 @@ Called by update_extension_permission.py.-->
@@ -36436,6 +36470,7 @@ Called by update_extension_permission.py.-->
<int value="242" label="kDownloadsUi"/>
<int value="243" label="kWebRequestAuthProvider"/>
<int value="244" label="kChromeOSTelemetryNetworkInformation"/>
@@ -161579,7 +161573,7 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
</enum>
<enum name="ExtensionPointEnableState">
@@ -97869,6 +97907,8 @@ Full version information for the fingerprint enum values:
@@ -97869,6 +97904,8 @@ Full version information for the fingerprint enum values:
<int value="29" label="kMediaStorageIdSalt"/>
<int value="30" label="kModuleBlocklistCacheMD5Digest"/>
<int value="32" label="kMediaCdmOriginData"/>
@@ -30,9 +30,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
gpu/config/gpu_workaround_list.txt | 1 +
gpu/ipc/service/gpu_init.cc | 5 +++++
gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
media/base/media_switches.cc | 4 ++++
media/base/media_switches.cc | 5 +++++
media/base/media_switches.h | 1 +
12 files changed, 65 insertions(+), 5 deletions(-)
12 files changed, 66 insertions(+), 5 deletions(-)
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
--- a/base/android/android_image_reader_compat.cc
@@ -231,27 +231,28 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -853,6 +853,10 @@ BASE_FEATURE(kMediaDrmPreprovisioning,
BASE_FEATURE(kMediaDrmPreprovisioningAtStartup,
@@ -854,6 +854,11 @@ BASE_FEATURE(kMediaDrmPreprovisioningAtStartup,
"MediaDrmPreprovisioningAtStartup",
base::FEATURE_ENABLED_BY_DEFAULT);
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
+const base::Feature kAImageReaderVideoOutput{"AImageReaderVideoOutput",
+ base::FEATURE_ENABLED_BY_DEFAULT};
+
+// Enables the Android Image Reader path for Video decoding(for AVDA and MCVD)
+BASE_FEATURE(kAImageReaderVideoOutput,
+ "AImageReaderVideoOutput",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
// Enable picture in picture web api for android.
BASE_FEATURE(kPictureInPictureAPI,
"PictureInPictureAPI",
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -58,6 +58,7 @@ MEDIA_EXPORT extern const char kWaveOutBuffers[];
MEDIA_EXPORT extern const char kEnableProtectedVideoBuffers[];
MEDIA_EXPORT extern const char kForceProtectedVideoOutputBuffers[];
MEDIA_EXPORT extern const char kDisableAudioInput[];
+MEDIA_EXPORT extern const base::Feature kAImageReaderVideoOutput;
MEDIA_EXPORT extern const char kUseOverlaysForVideo[];
MEDIA_EXPORT extern const char kMinVideoDecoderOutputBufferSize[];
MEDIA_EXPORT extern const char kAudioCapturerWithEchoCancellation[];
@@ -246,6 +246,7 @@ MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaControlsExpandGesture);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaDrmPersistentLicense);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaDrmPreprovisioning);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kMediaDrmPreprovisioningAtStartup);
+MEDIA_EXPORT BASE_DECLARE_FEATURE(kAImageReaderVideoOutput);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kCanPlayHls);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kPictureInPictureAPI);
MEDIA_EXPORT BASE_DECLARE_FEATURE(kHlsPlayer);
--
2.25.1
@@ -21,8 +21,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/prefs/browser_prefs.cc | 4 +
.../prefs/chrome_command_line_pref_store.cc | 2 +-
chrome/browser/resources/proxy_config.css | 61 +++
chrome/browser/resources/proxy_config.html | 79 ++++
chrome/browser/resources/proxy_config.js | 266 +++++++++++
chrome/browser/resources/proxy_config.html | 78 ++++
chrome/browser/resources/proxy_config.js | 267 +++++++++++
chrome/browser/ui/BUILD.gn | 2 +
.../webui/chrome_web_ui_controller_factory.cc | 3 +
chrome/browser/ui/webui/proxy_config_ui.cc | 418 ++++++++++++++++++
@@ -283,7 +283,7 @@ diff --git a/chrome/browser/resources/proxy_config.html b/chrome/browser/resourc
new file mode 100644
--- /dev/null
+++ b/chrome/browser/resources/proxy_config.html
@@ -0,0 +1,79 @@
@@ -0,0 +1,78 @@
+<!doctype html>
+<html>
+<head>
@@ -297,8 +297,7 @@ new file mode 100644
+<script src="chrome://resources/js/ios/web_ui.js"></script>
+</if>
+
+<script src="chrome://resources/js/assert.js"></script>
+<script src="chrome://resources/js/util.js"></script>
+<script type="module" src="chrome://resources/js/assert.js"></script>
+<script type="module" src="chrome://proxy/proxy_config.js"></script>
+<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
+<link rel="stylesheet" href="proxy_config.css">
@@ -367,7 +366,7 @@ diff --git a/chrome/browser/resources/proxy_config.js b/chrome/browser/resources
new file mode 100644
--- /dev/null
+++ b/chrome/browser/resources/proxy_config.js
@@ -0,0 +1,266 @@
@@ -0,0 +1,267 @@
+/*
+ This file is part of Bromite.
+
@@ -385,6 +384,7 @@ new file mode 100644
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+import {$} from 'chrome://resources/js/util.js';
+import {addSingletonGetter} from 'chrome://resources/js/cr.m.js';
+
+/**
@@ -932,7 +932,7 @@ new file mode 100644
+
+ const PrefService::Preference* const pref =
+ pref_service_->FindPreference(proxy_config::prefs::kProxy);
+ ProxyConfigDictionary proxy_dict(pref->GetValue()->Clone());
+ ProxyConfigDictionary proxy_dict(pref->GetValue()->GetDict().Clone());
+ ProxyPrefs::ProxyMode mode;
+ if (!proxy_dict.GetMode(&mode) || mode == ProxyPrefs::MODE_SYSTEM) {
+ availability = net::ProxyConfigService::CONFIG_UNSET;
@@ -944,8 +944,8 @@ new file mode 100644
+void ProxyConfigMessageHandler::OnClear(const base::Value::List& list) {
+ DCHECK_CURRENTLY_ON(BrowserThread::UI);
+
+ const base::Value cfg = ProxyConfigDictionary::CreateSystem();
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateSystem();
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ pref_service_->CommitPendingWrite();
+ OnEnableNotifyUIWithState(list);
+}
@@ -1056,22 +1056,22 @@ new file mode 100644
+
+void ProxyConfigMessageHandler::apply(const net::ProxyConfig& proxyConfig) {
+ if (proxyConfig.auto_detect()) {
+ const base::Value cfg = ProxyConfigDictionary::CreateAutoDetect();
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateAutoDetect();
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ } else if (proxyConfig.has_pac_url()) {
+ const base::Value cfg = ProxyConfigDictionary::CreatePacScript(proxyConfig.pac_url().spec(), proxyConfig.pac_mandatory());
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreatePacScript(proxyConfig.pac_url().spec(), proxyConfig.pac_mandatory());
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ } else if (proxyConfig.proxy_rules().type == net::ProxyConfig::ProxyRules::Type::EMPTY) {
+ const base::Value cfg = ProxyConfigDictionary::CreateDirect();
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateDirect();
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ } else {
+ auto proxyRulesAsString = proxyConfig.proxy_rules().ToString();
+ auto bypassRulesAsString = proxyConfig.proxy_rules().bypass_rules.ToString();
+
+ // fixed servers
+ const base::Value cfg = ProxyConfigDictionary::CreateFixedServers(proxyRulesAsString,
+ const base::Value::Dict cfg = ProxyConfigDictionary::CreateFixedServers(proxyRulesAsString,
+ bypassRulesAsString, proxyConfig.proxy_rules().reverse_bypass);
+ pref_service_->Set(proxy_config::prefs::kProxy, cfg);
+ pref_service_->SetDict(proxy_config::prefs::kProxy, cfg.Clone());
+ }
+ pref_service_->CommitPendingWrite();
+
@@ -1193,7 +1193,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
}
+bool ProxyConfigDictionary::HasReverseBypass() const {
+ const base::Value* value = dict_.FindKey(kProxyReverseBypass);
+ const base::Value* value = dict_.Find(kProxyReverseBypass);
+ if (!value || !value->is_bool()) {
+ return false;
+ }
@@ -1266,7 +1266,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/pro
- if (!bypass_list.empty())
+ if (!bypass_list.empty()) {
dict.Set(kProxyBypassList, base::Value(bypass_list));
+ dict.SetKey(kProxyReverseBypass, base::Value(reverse_bypass));
+ dict.Set(kProxyReverseBypass, base::Value(reverse_bypass));
+ }
return dict;
}
+158 -57
View File
@@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../java/res/xml/incognito_preferences.xml | 37 ++++
.../java/res/xml/privacy_preferences.xml | 5 +
.../AlwaysIncognitoLinkInterceptor.java | 53 ++++++
.../chrome/browser/ChromeTabbedActivity.java | 6 +-
.../chrome/browser/ChromeTabbedActivity.java | 9 +-
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 26 ++-
.../ChromeContextMenuPopulator.java | 7 +-
@@ -35,16 +35,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/history/HistoryManager.java | 18 +-
.../chrome/browser/history/HistoryPage.java | 16 ++
.../native_page/NativePageFactory.java | 4 +-
.../chrome/browser/ntp/RecentTabsManager.java | 3 +-
.../chrome/browser/ntp/RecentTabsManager.java | 27 ++-
.../privacy/settings/IncognitoSettings.java | 160 ++++++++++++++++++
.../browser/settings/SettingsActivity.java | 4 +
.../HistoricalTabModelObserver.java | 8 +-
.../HistoricalTabModelObserver.java | 6 +-
.../tab/tab_restore/HistoricalTabSaver.java | 2 +-
.../tab_restore/HistoricalTabSaverImpl.java | 17 +-
.../tabbed_mode/TabbedRootUiCoordinator.java | 4 +-
.../browser/tabmodel/ChromeTabCreator.java | 5 +-
.../tabmodel/TabModelSelectorImpl.java | 3 +
.../browser/tabmodel/TabPersistentStore.java | 9 +
.../browser/toolbar/ToolbarManager.java | 4 +-
.../webapps/WebappIntentDataProvider.java | 14 ++
chrome/browser/about_flags.cc | 4 +
.../browser/android/historical_tab_saver.cc | 22 ++-
@@ -56,9 +57,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../flags/android/chrome_feature_list.cc | 4 +-
chrome/browser/history/history_tab_helper.cc | 18 ++
chrome/browser/history/history_tab_helper.h | 10 +-
.../android/offline_page_bridge.cc | 13 +-
.../android/offline_page_model_factory.cc | 21 ++-
.../android/request_coordinator_factory.cc | 21 ++-
.../android/offline_page_bridge.cc | 11 +-
.../android/offline_page_model_factory.cc | 20 ++-
.../android/request_coordinator_factory.cc | 26 ++-
.../offline_page_model_factory.h | 1 +
.../offline_pages/recent_tab_helper.cc | 19 ++-
.../browser/offline_pages/recent_tab_helper.h | 3 +
@@ -67,6 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/ui/android/native_page/BUILD.gn | 2 +
.../browser/ui/native_page/NativePage.java | 12 +-
.../strings/android_chrome_strings.grd | 31 ++++
.../browser/toolbar/LocationBarModel.java | 11 +-
chrome/browser/ui/messages/android/BUILD.gn | 1 +
.../snackbar/INeedSnackbarManager.java | 27 +++
chrome/common/pref_names.cc | 6 +
@@ -82,7 +84,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../omnibox/browser/base_search_provider.cc | 2 +-
components/omnibox/browser/search_provider.cc | 4 +-
.../host_content_settings_map_factory.cc | 1 +
63 files changed, 682 insertions(+), 74 deletions(-)
65 files changed, 721 insertions(+), 77 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -244,7 +246,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
@@ -1904,8 +1905,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -578,8 +579,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModelOrchestrator.onNativeLibraryReady(getTabContentManager());
// For saving non-incognito tab closures for Recent Tabs.
+ boolean alwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
mHistoricalTabModelObserver =
- new HistoricalTabModelObserver(mTabModelSelector.getModel(false));
+ new HistoricalTabModelObserver(mTabModelSelector.getModel(alwaysIncognito));
if (TabUiFeatureUtilities.isTabletGridTabSwitcherEnabled(this)) {
mTabModelSelector.addObserver(new TabModelSelectorObserver() {
@@ -1904,8 +1906,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Bundle savedInstanceState = getSavedInstanceState();
// We determine the model as soon as possible so every systems get initialized coherently.
@@ -603,7 +616,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
@@ -81,7 +81,8 @@ public class RecentTabsManager implements AccountsChangeObserver {
@@ -24,6 +24,15 @@ import org.chromium.components.signin.identitymanager.ConsentLevel;
import org.chromium.components.signin.metrics.SigninAccessPoint;
import org.chromium.url.GURL;
+import android.content.Intent;
+import android.provider.Browser;
+import android.net.Uri;
+import org.chromium.base.ContextUtils;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.IntentHandler;
+import org.chromium.ui.mojom.WindowOpenDisposition;
+import org.chromium.components.embedder_support.util.UrlUtilities;
+
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -81,7 +90,8 @@ public class RecentTabsManager implements AccountsChangeObserver {
*/
public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile,
Context context, Runnable showHistoryManager) {
@@ -613,6 +642,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
mActiveTab = tab;
mTabModelSelector = tabModelSelector;
mShowHistoryManager = showHistoryManager;
@@ -213,6 +223,21 @@ public class RecentTabsManager implements AccountsChangeObserver {
*/
public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
if (mIsDestroyed) return;
+ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) {
+ // allow only http/https urls
+ if (!UrlUtilities.isHttpOrHttps(tab.getUrl())) return;
+
+ Context context = ContextUtils.getApplicationContext();
+ Intent intent = new Intent(Intent.ACTION_VIEW,
+ Uri.parse(tab.getUrl().getSpec()));
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
+ if (windowDisposition != WindowOpenDisposition.CURRENT_TAB)
+ intent.putExtra(Browser.EXTRA_CREATE_NEW_TAB, true);
+ intent.setPackage(context.getPackageName());
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ IntentHandler.startActivityForTrustedIntent(intent);
+ return;
+ }
mTabSessionIdsRestored.put(tab.getSessionId(), true);
RecordUserAction.record("MobileRecentTabManagerRecentTabOpened");
// Window disposition will select which tab to open.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
new file mode 100644
--- /dev/null
@@ -821,20 +872,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
return;
}
@@ -49,6 +52,7 @@ public class HistoricalTabModelObserver implements TabModelObserver {
}
private void buildGroupsAndCreateClosure(List<Tab> tabs) {
+ boolean is_always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
HashMap<Integer, HistoricalEntry> idToGroup = new HashMap<>();
List<HistoricalEntry> entries = new ArrayList<>();
@@ -72,7 +76,7 @@ public class HistoricalTabModelObserver implements TabModelObserver {
@@ -72,7 +75,6 @@ public class HistoricalTabModelObserver implements TabModelObserver {
entries.add(historicalGroup);
idToGroup.put(groupId, historicalGroup);
}
-
+ fix me!
mHistoricalTabSaver.createHistoricalBulkClosure(entries);
}
}
@@ -1006,6 +1048,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
TabModel model = mTabModelSelector.getModel(isIncognito);
if (model.isIncognito() != isIncognito) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -38,6 +38,7 @@ import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
@@ -526,7 +527,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
return ret;
}
},
- SearchEngineLogoUtils.getInstance());
+ SearchEngineLogoUtils.getInstance(),
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
mControlContainer = controlContainer;
assert mControlContainer != null;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
@@ -1113,7 +1176,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
const JavaParamRef<jobject>& state,
- jint saved_state_version) {
+ jint saved_state_version,
+ bool is_always_incognito) {
+ jboolean is_always_incognito) {
void* data = env->GetDirectBufferAddress(state);
int size = env->GetDirectBufferCapacity(state);
@@ -1332,38 +1395,23 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom
using base::android::ConvertJavaStringToUTF8;
using base::android::ConvertUTF16ToJavaString;
@@ -156,7 +159,13 @@ void ValidateFileCallback(
int64_t offline_id,
const GURL& url,
const base::FilePath& file_path,
+ SimpleFactoryKey* key,
bool is_trusted) {
+ // in always incognito, never trust input file (show file name in url)
+ ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key);
+ if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
+ is_trusted = false;
+
// If trusted, the launch url will be the http/https url of the offline
// page. If the file path is content URI, directly open it. Otherwise, the
// launch url will be the file URL pointing to the archive file of the offline
@@ -787,7 +796,7 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
@@ -785,9 +788,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
}
if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) {
+ bool is_trusted = true;
+ // in always incognito, never trust input file (show file name in url)
+ ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key_);
+ if(profile_key->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled))
+ is_trusted = false;
+
ValidateFileCallback(launch_location, j_callback_obj,
offline_page->offline_id, offline_page->url,
- offline_page->file_path, true /* is_trusted*/);
+ offline_page->file_path, key_, true /* is_trusted*/);
+ offline_page->file_path, is_trusted);
return;
}
@@ -797,7 +806,7 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
offline_page->file_size, offline_page->digest),
base::BindOnce(&ValidateFileCallback, launch_location, j_callback_obj,
offline_page->offline_id, offline_page->url,
- offline_page->file_path));
+ offline_page->file_path, key_));
}
void OfflinePageBridge::GetSizeAndComputeDigestDone(
diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
--- a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
+++ b/chrome/browser/offline_pages/android/offline_page_model_factory.cc
@@ -1377,15 +1425,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
namespace offline_pages {
@@ -46,6 +49,7 @@ OfflinePageModel* OfflinePageModelFactory::GetForKey(SimpleFactoryKey* key) {
OfflinePageModel* OfflinePageModelFactory::GetForBrowserContext(
content::BrowserContext* browser_context) {
Profile* profile = Profile::FromBrowserContext(browser_context);
+ profile = profile->GetOriginalProfile();
return GetForKey(profile->GetProfileKey());
}
@@ -54,13 +58,15 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
@@ -54,13 +57,15 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
scoped_refptr<base::SequencedTaskRunner> background_task_runner =
base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()});
@@ -1403,7 +1443,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
// If base::PathService::Get returns false, the temporary_archives_dir will be
// empty, and no temporary pages will be saved during this chrome lifecycle.
base::FilePath temporary_archives_dir;
@@ -69,7 +75,6 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
@@ -69,7 +74,6 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
temporary_archives_dir.Append(chrome::kOfflinePageArchivesDirname);
}
@@ -1411,7 +1451,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
auto archive_manager = std::make_unique<DownloadArchiveManager>(
temporary_archives_dir, persistent_archives_dir,
DownloadPrefs::GetDefaultDownloadDirectory(), background_task_runner,
@@ -87,4 +92,14 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
@@ -87,4 +91,14 @@ std::unique_ptr<KeyedService> OfflinePageModelFactory::BuildServiceInstanceFor(
return model;
}
@@ -1459,7 +1499,19 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc
// Depends on OfflinePageModelFactory in SimpleDependencyManager.
}
@@ -111,4 +118,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
@@ -79,6 +86,11 @@ RequestCoordinator* RequestCoordinatorFactory::GetForBrowserContext(
KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
+ if(context->IsOffTheRecord() &&
+ Profile::FromBrowserContext(context)->GetOriginalProfile()
+ ->GetPrefs()->GetBoolean(prefs::kIncognitoTabHistoryEnabled) == false) {
+ return nullptr;
+ }
std::unique_ptr<OfflinerPolicy> policy(new OfflinerPolicy());
std::unique_ptr<Offliner> offliner;
OfflinePageModel* model =
@@ -111,4 +123,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
return request_coordinator;
}
@@ -1687,6 +1739,55 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<message name="IDS_CLEAR_SEARCH_HISTORY_LINK" desc="Text informing the user that they can clear search history and other data using MyActivity.">
<ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Search history<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>other forms of activity<ph name="END_LINK2">&lt;/link2&gt;</ph> may be saved in your Google Account when youre signed in. You can delete them anytime.
</message>
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
@@ -178,6 +178,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
protected GURL mVisibleGurl = GURL.emptyGURL();
protected String mFormattedFullUrl;
protected String mUrlForDisplay;
+ private boolean mIsAlwaysIncognito;
/**
* Default constructor for this class.
@@ -192,7 +193,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
public LocationBarModel(Context context, NewTabPageDelegate newTabPageDelegate,
@NonNull UrlFormatter urlFormatter, @NonNull ProfileProvider profileProvider,
@NonNull OfflineStatus offlineStatus,
- @NonNull SearchEngineLogoUtils searchEngineLogoUtils) {
+ @NonNull SearchEngineLogoUtils searchEngineLogoUtils,
+ boolean isAlwaysIncognito) {
mContext = context;
mNtpDelegate = newTabPageDelegate;
mUrlFormatter = urlFormatter;
@@ -200,6 +202,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
mOfflineStatus = offlineStatus;
mPrimaryColor = ChromeColors.getDefaultThemeColor(context, false);
mSearchEngineLogoUtils = searchEngineLogoUtils;
+ mIsAlwaysIncognito = isAlwaysIncognito;
}
/**
@@ -429,6 +432,10 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
if (mOptimizationsEnabled) {
autocompleteSchemeClassifier = mChromeAutocompleteSchemeClassifier;
cachedSpannableDisplayText = mSpannableDisplayTextCache.get(cacheKey);
+ if (mIsAlwaysIncognito) {
+ // the profile may be destroyed and no longer be valid
+ autocompleteSchemeClassifier = new ChromeAutocompleteSchemeClassifier(getProfile());
+ }
} else {
autocompleteSchemeClassifier = new ChromeAutocompleteSchemeClassifier(getProfile());
}
@@ -446,7 +453,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
}
}
} finally {
- if (!mOptimizationsEnabled) {
+ if (!mOptimizationsEnabled || mIsAlwaysIncognito) {
autocompleteSchemeClassifier.destroy();
}
}
diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn
--- a/chrome/browser/ui/messages/android/BUILD.gn
+++ b/chrome/browser/ui/messages/android/BUILD.gn
@@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../DownloadLocationDialogCoordinator.java | 8 +-
chrome/browser/flag_descriptions.cc | 5 +
chrome/browser/flag_descriptions.h | 3 +
.../flags/android/chrome_feature_list.cc | 5 +
.../flags/android/chrome_feature_list.cc | 6 +
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
chrome/browser/importer/profile_writer.cc | 12 +
@@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
ui/shell_dialogs/select_file_dialog.h | 2 +
.../select_file_dialog_android.cc | 6 +
ui/shell_dialogs/select_file_dialog_android.h | 2 +
35 files changed, 847 insertions(+), 29 deletions(-)
35 files changed, 848 insertions(+), 29 deletions(-)
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
@@ -1287,13 +1287,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCriticalPersistedTabData,
&kCommerceCoupons,
&kCCTBackgroundTab,
@@ -1156,6 +1157,10 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent,
@@ -1156,6 +1157,11 @@ BASE_FEATURE(kWebApkTrampolineOnInitialIntent,
"WebApkTrampolineOnInitialIntent",
base::FEATURE_ENABLED_BY_DEFAULT);
+// disabled by default because of an issue on Android 6.0
+const base::Feature kBookmarksExportUseSaf{"BookmarksExportUseSaf",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+BASE_FEATURE(kBookmarksExportUseSaf,
+ "BookmarksExportUseSaf",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
static jboolean JNI_ChromeFeatureList_IsEnabled(
JNIEnv* env,
@@ -1298,15 +1298,15 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_)
return;
DCHECK(view_);
@@ -586,7 +597,7 @@ void PermissionRequestManager::Deny() {
std::vector<PermissionRequest*>::iterator requests_iter;
for (requests_iter = requests_.begin(); requests_iter != requests_.end();
requests_iter++) {
- StorePermissionActionForUMA((*requests_iter)->requesting_origin(),
+ StorePermissionActionForUMA((*requests_iter, is_one_time, lifetime_option)->requesting_origin(),
@@ -589,7 +600,7 @@ void PermissionRequestManager::Deny() {
StorePermissionActionForUMA((*requests_iter)->requesting_origin(),
(*requests_iter)->request_type(),
PermissionAction::DENIED);
PermissionDeniedIncludingDuplicates(*requests_iter);
- PermissionDeniedIncludingDuplicates(*requests_iter);
+ PermissionDeniedIncludingDuplicates(*requests_iter, is_one_time, lifetime_option);
}
NotifyRequestDecided(PermissionAction::DENIED);
@@ -967,25 +978,25 @@ PermissionRequest* PermissionRequestManager::GetExistingRequest(
void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
@@ -5,7 +5,7 @@ Subject: Add menu item to bookmark all tabs
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/java/res/menu/main_menu.xml | 7 +++
.../chrome/browser/ChromeTabbedActivity.java | 26 ++++++++
.../chrome/browser/ChromeTabbedActivity.java | 24 ++++++++
.../browser/bookmarks/BookmarkBridge.java | 60 +++++++++++++++++++
.../browser/bookmarks/BookmarkUtils.java | 4 ++
.../bookmarks/android/bookmark_bridge.cc | 17 ++++++
@@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/bookmarks/browser/bookmark_node.h | 5 ++
components/bookmarks/browser/model_loader.cc | 3 +-
.../bookmark_specifics_conversions.cc | 1 +
21 files changed, 202 insertions(+), 10 deletions(-)
21 files changed, 200 insertions(+), 10 deletions(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
@@ -54,16 +54,15 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -77,6 +77,8 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan
@@ -77,6 +77,7 @@ import org.chromium.chrome.browser.back_press.MinimizeAppAndCloseTabBackPressHan
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
+import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
+import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -2202,6 +2204,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2203,6 +2204,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
() -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false);
RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -72,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
@@ -2254,6 +2258,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2255,6 +2258,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
}
@@ -84,17 +83,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+ return;
+ }
+
+ final BookmarkBridge bridge = mBookmarkBridgeSupplier.get();
+ final BookmarkModel bookmarkModel = new BookmarkModel();
+ final BookmarkModel bookmarkModel = mBookmarkModelSupplier.get();
+ bookmarkModel.finishLoadingBookmarkModel(() -> {
+ for (int i = 0; i < tabModel.getCount(); i++) {
+ Tab tab = tabModel.getTabAt(i);
+ if (tab.isNativePage()) {
+ continue;
+ }
+ bridge.addToTabsCollection(this, tab);
+ bookmarkModel.addToTabsCollection(this, tab);
+ }
+ bridge.finishedAddingToTabsCollection(this, getSnackbarManager());
+ bookmarkModel.finishedAddingToTabsCollection(this, getSnackbarManager());
+ });
+ }
+
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -2228,6 +2228,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2229,6 +2229,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
import org.chromium.base.MemoryPressureListener;
@@ -1321,8 +1322,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1322,8 +1323,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
+2 -2
View File
@@ -158,7 +158,7 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -552,7 +552,7 @@ BASE_FEATURE(kAudioWorkletThreadRealtimePriority,
@@ -553,7 +553,7 @@ BASE_FEATURE(kAudioWorkletThreadRealtimePriority,
BASE_FEATURE(kLightweightNoStatePrefetch,
"LightweightNoStatePrefetch",
#if BUILDFLAG(IS_ANDROID)
@@ -167,7 +167,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
#else
base::FEATURE_DISABLED_BY_DEFAULT
#endif
@@ -1090,7 +1090,7 @@ BASE_FEATURE(kForceMajorVersionInMinorPositionInUserAgent,
@@ -1091,7 +1091,7 @@ BASE_FEATURE(kForceMajorVersionInMinorPositionInUserAgent,
// Enable `sec-ch-device-memory` client hint.
BASE_FEATURE(kClientHintsDeviceMemory,
"ClientHintsDeviceMemory",
@@ -23,8 +23,8 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
-#else
- base::FEATURE_DISABLED_BY_DEFAULT
-#endif
+ "AsyncDns", // Bromite guard for this feature to be always disabled
+ FEATURE_DISABLED_BY_DEFAULT // ^
+ "AsyncDns", // Bromite guard for this feature to be always disabled
+ base::FEATURE_DISABLED_BY_DEFAULT // ^
);
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
+1 -1
View File
@@ -115,7 +115,7 @@ diff --git a/net/base/features.h b/net/base/features.h
+NET_EXPORT BASE_DECLARE_FEATURE(kDisableTLSResumption);
+
+// Log TLS resumption.
+NET_EXPORT BASE_DECLARE_FEATURE(base::Feature kLogTLSResumption);
+NET_EXPORT BASE_DECLARE_FEATURE(kLogTLSResumption);
+
// Enables the TLS Encrypted ClientHello feature.
// https://datatracker.ietf.org/doc/html/draft-ietf-tls-esni-13
+8 -11
View File
@@ -1967,7 +1967,7 @@ diff --git a/chrome/browser/permissions/permission_revocation_request.cc b/chrom
CrowdDenyPreloadData* crowd_deny = CrowdDenyPreloadData::GetInstance();
permissions::PermissionUmaUtil::RecordCrowdDenyVersionAtAbuseCheckTime(
crowd_deny->version_on_disk());
@@ -156,6 +157,9 @@ void PermissionRevocationRequest::CheckAndRevokeIfBlocklisted() {
@@ -156,10 +157,14 @@ void PermissionRevocationRequest::CheckAndRevokeIfBlocklisted() {
url::Origin::Create(origin_),
base::BindOnce(&PermissionRevocationRequest::OnSiteReputationReady,
weak_factory_.GetWeakPtr()));
@@ -1977,22 +1977,19 @@ diff --git a/chrome/browser/permissions/permission_revocation_request.cc b/chrom
}
void PermissionRevocationRequest::OnSiteReputationReady(
@@ -180,6 +184,7 @@ void PermissionRevocationRequest::OnSiteReputationReady(
default:
should_revoke_permission = false;
}
const CrowdDenyPreloadData::SiteReputation* site_reputation) {
+#if BUILDFLAG(FULL_SAFE_BROWSING)
DCHECK(g_browser_process->safe_browsing_service());
if (should_revoke_permission &&
g_browser_process->safe_browsing_service()) {
@@ -191,6 +196,7 @@ void PermissionRevocationRequest::OnSiteReputationReady(
weak_factory_.GetWeakPtr(), site_reputation));
if (crowd_deny_request_start_time_.has_value()) {
crowd_deny_request_duration_ =
base::TimeTicks::Now() - crowd_deny_request_start_time_.value();
@@ -192,6 +197,7 @@ void PermissionRevocationRequest::OnSiteReputationReady(
return;
}
+#endif
}
+#endif
NotifyCallback(Outcome::PERMISSION_NOT_REVOKED);
}
diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
--- a/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
+++ b/chrome/browser/permissions/quiet_notification_permission_ui_config.cc
@@ -13,11 +13,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/flag_descriptions.h | 3 +++
chrome/browser/ui/prefs/prefs_tab_helper.cc | 2 +-
content/child/runtime_features.cc | 1 +
third_party/blink/common/features.cc | 4 ++++
third_party/blink/common/features.cc | 5 +++++
third_party/blink/public/common/features.h | 1 +
third_party/blink/renderer/core/dom/document.cc | 5 +++++
.../blink/renderer/platform/runtime_enabled_features.json5 | 5 ++---
10 files changed, 31 insertions(+), 4 deletions(-)
10 files changed, 32 insertions(+), 4 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
@@ -102,13 +102,14 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -496,6 +496,10 @@ BASE_FEATURE(kDropInputEventsBeforeFirstPaint,
@@ -496,6 +496,11 @@ BASE_FEATURE(kDropInputEventsBeforeFirstPaint,
"DropInputEventsBeforeFirstPaint",
base::FEATURE_DISABLED_BY_DEFAULT);
+// Enable text snippets in URL fragments. https://crbug.com/919204.
+const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+BASE_FEATURE(kTextFragmentAnchor,
+ "TextFragmentAnchor",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
// File handling icons. https://crbug.com/1218213
BASE_FEATURE(kFileHandlingIcons,
@@ -116,14 +117,14 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -608,6 +608,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPrewarmDefaultFontFamilies);
BLINK_COMMON_EXPORT extern const base::FeatureParam<bool> kPrewarmStandard;
BLINK_COMMON_EXPORT extern const base::FeatureParam<bool> kPrewarmFixed;
BLINK_COMMON_EXPORT extern const base::FeatureParam<bool> kPrewarmSerif;
+BLINK_COMMON_EXPORT extern const base::Feature kTextFragmentAnchor;
BLINK_COMMON_EXPORT extern const base::FeatureParam<bool> kPrewarmSansSerif;
BLINK_COMMON_EXPORT extern const base::FeatureParam<bool> kPrewarmCursive;
BLINK_COMMON_EXPORT extern const base::FeatureParam<bool> kPrewarmFantasy;
@@ -216,6 +216,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kResourceLoadViaDataPipe);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kServiceWorkerUpdateDelay);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kStopInBackground);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kDropInputEventsBeforeFirstPaint);
+BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kTextFragmentAnchor);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kFileHandlingIcons);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kAllowSyncXHRInPageDismissal);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kPrefetchPrivacyChanges);
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
+1 -1
View File
@@ -41,7 +41,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -972,6 +972,7 @@ chrome_java_sources = [
@@ -971,6 +971,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/sharing/click_to_call/ClickToCallUma.java",
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
"java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java",
@@ -2607,10 +2607,9 @@ new file mode 100644
+js_library("view_script_source") {
+ deps = [
+ "//ui/webui/resources/js:cr.m",
+ "//ui/webui/resources/js:util.m",
+ "//ui/webui/resources/js:util",
+ ]
+}
\ No newline at end of file
diff --git a/components/user_scripts/browser/resources/user-script-ui/user-scripts-ui.html b/components/user_scripts/browser/resources/user-script-ui/user-scripts-ui.html
new file mode 100644
--- /dev/null
@@ -2620,7 +2619,7 @@ new file mode 100644
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>Local State Debug Page</title>
+ <title>Userscript View Source</title>
+ <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
+ <script type="module" src="user-scripts-ui.js"></script>
+</head>
@@ -2630,14 +2629,13 @@ new file mode 100644
+ </pre>
+</body>
+</html>
\ No newline at end of file
diff --git a/components/user_scripts/browser/resources/user-script-ui/user-scripts-ui.js b/components/user_scripts/browser/resources/user-script-ui/user-scripts-ui.js
new file mode 100644
--- /dev/null
+++ b/components/user_scripts/browser/resources/user-script-ui/user-scripts-ui.js
@@ -0,0 +1,9 @@
+import {sendWithPromise} from 'chrome://resources/js/cr.m.js';
+import {$} from 'chrome://resources/js/util.m.js';
+import {$} from 'chrome://resources/js/util.js';
+
+document.addEventListener('DOMContentLoaded', function() {
+ const urlParams = new URLSearchParams(window.location.search);
@@ -2645,7 +2643,6 @@ new file mode 100644
+ $('content').textContent = textContent[0].content;
+ });
+});
\ No newline at end of file
diff --git a/components/user_scripts/browser/ui/user_scripts_ui.cc b/components/user_scripts/browser/ui/user_scripts_ui.cc
new file mode 100644
--- /dev/null
@@ -5071,19 +5068,19 @@ new file mode 100755
+ // Not IPv6 (either IPv4 or just a normal address).
+ port_separator_pos = host_and_port.find(':');
+ } else { // IPv6.
+ size_t host_end_pos = host_and_port.find(']');
+ if (host_end_pos == base::StringPiece::npos)
+ size_t ipv6_host_end_pos = host_and_port.find(']');
+ if (ipv6_host_end_pos == base::StringPiece::npos)
+ return ParseResult::kInvalidHost;
+ if (host_end_pos == 1)
+ if (ipv6_host_end_pos == 1)
+ return ParseResult::kEmptyHost;
+
+ if (host_end_pos < host_and_port.length() - 1) {
+ if (ipv6_host_end_pos < host_and_port.length() - 1) {
+ // The host isn't the only component. Check for a port. This would
+ // require a ':' to follow the closing ']' from the host.
+ if (host_and_port[host_end_pos + 1] != ':')
+ if (host_and_port[ipv6_host_end_pos + 1] != ':')
+ return ParseResult::kInvalidHost;
+
+ port_separator_pos = host_end_pos + 1;
+ port_separator_pos = ipv6_host_end_pos + 1;
+ }
+ }
+
@@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
+void Document::injectScripts() {
+ // determine whether this is a search results page
+ const WTF::String& host = url_.Host();
+ if ((host == nullptr) || host.IsEmpty())
+ if ((host == nullptr) || host.empty())
+ return;
+
+ auto* bodyElement = body();
@@ -108,7 +108,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
+ for (unsigned i = 0; i < source_length; ++i) {
+ Element* element = s->item(i);
+ const AtomicString& nonce = element->nonce();
+ if ((nonce != g_null_atom) && !nonce.IsEmpty())
+ if ((nonce != g_null_atom) && !nonce.empty())
+ return nonce;
+ }
+ return g_null_atom;
@@ -57,14 +57,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/flag_descriptions.cc | 4 ++
chrome/browser/flag_descriptions.h | 3 ++
.../flags/android/cached_feature_flags.cc | 18 +++++++
.../flags/android/chrome_feature_list.cc | 3 ++
.../flags/android/chrome_feature_list.cc | 2 +
.../browser/flags/CachedFeatureFlags.java | 19 +++++++
.../browser/flags/ChromeFeatureList.java | 4 ++
.../chrome/browser/ui/appmenu/AppMenu.java | 25 +++++++++
.../ui/appmenu/AppMenuHandlerImpl.java | 11 ++++
.../omnibox/LocationBarCoordinator.java | 9 +++-
.../browser/omnibox/UrlBarCoordinator.java | 11 +++-
.../suggestions/AutocompleteCoordinator.java | 20 +++++--
.../suggestions/AutocompleteCoordinator.java | 18 ++++++-
.../suggestions/AutocompleteMediator.java | 7 ++-
.../OmniboxSuggestionsDropdown.java | 22 +++++++-
.../OmniboxSuggestionsDropdownEmbedder.java | 4 ++
@@ -85,7 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../accessibility/AccessibilitySettings.java | 16 ++++++
.../AccessibilitySettingsDelegate.java | 6 +++
.../render_widget_host_view_android.cc | 3 ++
73 files changed, 771 insertions(+), 59 deletions(-)
73 files changed, 770 insertions(+), 57 deletions(-)
diff --git a/cc/base/features.cc b/cc/base/features.cc
--- a/cc/base/features.cc
@@ -108,7 +108,7 @@ diff --git a/cc/base/features.h b/cc/base/features.h
// that resets the scale at the end. When enabled, this aovids recomputing
// raster scale during elastic overscroll.
CC_BASE_EXPORT BASE_DECLARE_FEATURE(kAvoidRasterDuringElasticOverscroll);
+CC_BASE_EXPORT extern const base::Feature kMoveTopToolbarToBottom;
+CC_BASE_EXPORT BASE_DECLARE_FEATURE(kMoveTopToolbarToBottom);
// When enabled, the double tap to zoom will be disabled when the viewport
// meta tag is properly set for mobile using content=width=device-width
@@ -1293,7 +1293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
}
// clang-format off
- mLocationBarCoordinator = new LocationBarCoordinator(mSearchBox, mAnchorView,
+ mLocationBarCoordinator = new LocationBarCoordinator(mSearchBox, anchorView, mAnchorView,
+ mLocationBarCoordinator = new LocationBarCoordinator(mSearchBox, mAnchorView, mAnchorView,
mProfileSupplier, PrivacyPreferencesManagerImpl.getInstance(),
mSearchBoxDataProvider, null, new WindowDelegate(getWindow()), getWindowAndroid(),
/*activityTabSupplier=*/() -> null, getModalDialogManagerSupplier(),
@@ -1366,7 +1366,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -177,6 +177,9 @@ import org.chromium.url.GURL;
@@ -178,6 +178,9 @@ import org.chromium.url.GURL;
import java.util.List;
@@ -1376,7 +1376,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
/**
* Contains logic for managing the toolbar visual component. This class manages the interactions
* with the rest of the application to ensure the toolbar is always visually up to date.
@@ -668,7 +671,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -670,7 +673,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
mEphemeralTabCoordinatorSupplier);
// clang-format off
LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator(
@@ -1385,7 +1385,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
PrivacyPreferencesManagerImpl.getInstance(), mLocationBarModel,
mActionModeController.getActionModeCallback(),
new WindowDelegate(mActivity.getWindow()), windowAndroid, mActivityTabProvider,
@@ -925,11 +928,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -927,11 +930,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
// the height won't be measured by the background image.
if (mControlContainer.getBackground() == null) {
setControlContainerTopMargin(getToolbarExtraYOffset());
@@ -1399,7 +1399,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mControlContainer.removeOnLayoutChangeListener(mLayoutChangeListener);
mLayoutChangeListener = null;
}
@@ -1309,13 +1314,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -1311,13 +1316,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
return mLocationBar.getOmniboxStub().isUrlBarFocused();
}
@@ -1427,7 +1427,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mScrimCoordinator, mOmniboxFocusStateSupplier, mBottomSheetController,
mActivityLifecycleDispatcher, mIsWarmOnResumeSupplier, mTabModelSelector,
mTabContentManager, mCompositorViewHolder,
@@ -1324,8 +1341,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -1326,8 +1343,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
mBottomControlsCoordinatorSupplier.set(new BottomControlsCoordinator(mActivity,
mWindowAndroid, mLayoutManager, mCompositorViewHolder.getResourceManager(),
mBrowserControlsSizer, mFullscreenManager,
@@ -1439,7 +1439,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
}
/**
@@ -2089,6 +2107,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -2091,6 +2109,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
private void setControlContainerTopMargin(int margin) {
final ViewGroup.MarginLayoutParams layoutParams =
((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams());
@@ -1663,12 +1663,11 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
#include "base/metrics/field_trial_params.h"
#include "base/no_destructor.h"
#include "base/strings/string_piece_forward.h"
@@ -258,6 +259,8 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -258,6 +259,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kKitKatSupported,
&kLensCameraAssistedSearch,
&kLensOnQuickActionSearchWidget,
+ &kMoveTopToolbarToBottom,
+ &kMostRecentTabOnBackgroundCloseTab,
+ &features::kMoveTopToolbarToBottom,
&kNewInstanceFromDraggedLink,
&kNewTabPageTilesTitleWrapAround,
&kNewWindowAppMenu,
@@ -1900,17 +1899,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import java.util.ArrayList;
import java.util.List;
@@ -75,8 +77,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
private final @NonNull AutocompleteMediator mMediator;
private final @NonNull Supplier<ModalDialogManager> mModalDialogManagerSupplier;
@@ -77,6 +79,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
private @Nullable OmniboxSuggestionsDropdown mDropdown;
- private @NonNull ObserverList<OmniboxSuggestionsDropdownScrollListener> mScrollListenerList =
- new ObserverList<>();
private @NonNull ObserverList<OmniboxSuggestionsDropdownScrollListener> mScrollListenerList =
new ObserverList<>();
+ private final @NonNull OmniboxSuggestionsDropdownEmbedder mDropdownEmbedder;
public AutocompleteCoordinator(@NonNull ViewGroup parent,
@NonNull AutocompleteDelegate delegate,
@@ -99,6 +100,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
@@ -99,6 +102,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
PropertyModel listModel = new PropertyModel(SuggestionListProperties.ALL_KEYS);
ModelList listItems = new ModelList();
@@ -1918,7 +1915,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
listModel.set(SuggestionListProperties.EMBEDDER, dropdownEmbedder);
listModel.set(SuggestionListProperties.VISIBLE, false);
listModel.set(SuggestionListProperties.SUGGESTION_MODELS, listItems);
@@ -154,7 +156,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
@@ -154,7 +158,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
public void inflate() {
OmniboxSuggestionsDropdown dropdown;
try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
@@ -1927,7 +1924,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}
// Start with visibility GONE to ensure that show() is called.
@@ -232,6 +234,16 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
@@ -232,6 +236,16 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
ViewGroup container = (ViewGroup) ((ViewStub) mParent.getRootView().findViewById(
R.id.omnibox_results_container_stub))
.inflate();
@@ -1944,7 +1941,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
mHolder = new SuggestionListViewHolder(container, dropdown);
for (int i = 0; i < mCallbacks.size(); i++) {
@@ -458,4 +470,4 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
@@ -458,4 +472,4 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC
listener.onSuggestionDropdownOverscrolledToTop();
}
}
+9 -19
View File
@@ -12,11 +12,11 @@ Add verbose logging
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../settings/SearchEngineAdapter.java | 4 +-
.../search_engine_tab_helper.cc | 51 ++++++++++++++-----
.../search_engine_tab_helper.cc | 47 ++++++++++++++-----
.../renderer/chrome_render_frame_observer.cc | 2 +
.../search_engines/template_url_fetcher.cc | 23 +++++++--
.../search_engines/template_url_service.h | 8 +--
5 files changed, 65 insertions(+), 23 deletions(-)
.../search_engines/template_url_service.h | 8 ++--
5 files changed, 62 insertions(+), 22 deletions(-)
diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java
--- a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java
@@ -80,17 +80,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
return std::u16string();
}
@@ -114,22 +119,27 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
const GURL& page_url,
const GURL& osdd_url) {
// Checks to see if we should generate a keyword based on the OSDD, and if
- // necessary uses TemplateURLFetcher to download the OSDD and create a
+ // necessary uses TemplateURLFetcher to download the OSDD and create a {
+ LOG(INFO) << "OpenSearch: frame mismatch on page " << page_url;
// keyword.
+ }
// Make sure that the page is the current page and other basic checks.
@@ -121,15 +126,18 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
// When |page_url| has file: scheme, this method doesn't work because of
// http://b/issue?id=863583. For that reason, this doesn't check and allow
// urls referring to osdd urls with same schemes.
@@ -112,7 +102,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
// If the current page is a form submit, find the last page that was not a
// form submit and use its url to generate the keyword from.
@@ -139,8 +149,10 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
@@ -139,8 +147,10 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
(index > 0) && IsFormSubmit(entry);
entry = controller.GetEntryAtIndex(index))
--index;
@@ -124,7 +114,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
// Autogenerate a keyword for the autodetected case; in the other cases we'll
// generate a keyword later after fetching the OSDD.
@@ -148,6 +160,12 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
@@ -148,6 +158,12 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
if (keyword.empty())
return;
@@ -137,7 +127,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
auto* frame = web_contents()->GetPrimaryMainFrame();
mojo::Remote<network::mojom::URLLoaderFactory> url_loader_factory;
frame->CreateNetworkServiceDefaultFactory(
@@ -155,6 +173,7 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
@@ -155,6 +171,7 @@ void SearchEngineTabHelper::PageHasOpenSearchDescriptionDocument(
// Download the OpenSearch description document. If this is successful, a
// new keyword will be created when done.
@@ -145,7 +135,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
TemplateURLFetcherFactory::GetForProfile(profile)->ScheduleDownload(
keyword, osdd_url, entry->GetFavicon().url,
frame->GetLastCommittedOrigin(), url_loader_factory.get(),
@@ -196,11 +215,18 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary(
@@ -196,11 +213,18 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary(
if (last_index <= 0)
return;
@@ -166,7 +156,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
TemplateURLService* url_service =
TemplateURLServiceFactory::GetForProfile(profile);
if (!url_service)
@@ -211,7 +237,6 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary(
@@ -211,7 +235,6 @@ void SearchEngineTabHelper::GenerateKeywordIfNecessary(
return;
}
@@ -85,7 +85,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/
bool MemoryCache::Contains(const Resource* resource) const {
- if (!resource || resource->Url().IsEmpty())
+ if (!resource || resource->Url().IsEmpty() || resource->CacheIdentifier().IsEmpty())
+ if (!resource || resource->Url().IsEmpty() || resource->CacheIdentifier().empty())
return false;
const auto resource_maps_it =
@@ -99,7 +99,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/
-
Resource* MemoryCache::ResourceForURL(const KURL& resource_url,
const String& cache_identifier) const {
+ if (cache_identifier.IsEmpty()) return nullptr;
+ if (cache_identifier.empty()) return nullptr;
DCHECK(WTF::IsMainThread());
if (!resource_url.IsValid() || resource_url.IsNull())
return nullptr;
@@ -14,10 +14,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/about_flags.cc | 7 ++++++
chrome/browser/flag_descriptions.cc | 5 ++++
chrome/browser/flag_descriptions.h | 3 +++
.../flags/android/chrome_feature_list.cc | 4 ++++
.../flags/android/chrome_feature_list.cc | 5 ++++
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
9 files changed, 53 insertions(+)
9 files changed, 54 insertions(+)
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java
@@ -185,12 +185,13 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCloseTabSuggestions,
&kBookmarksExportUseSaf,
&kCriticalPersistedTabData,
@@ -544,6 +545,9 @@ BASE_FEATURE(kConditionalTabStripAndroid,
@@ -543,6 +544,10 @@ BASE_FEATURE(kConditionalTabStripAndroid,
"ConditionalTabStripAndroid",
base::FEATURE_DISABLED_BY_DEFAULT);
+const base::Feature kCloseAllTabsModalDialog{"CloseAllTabsModalDialog",
+ base::FEATURE_ENABLED_BY_DEFAULT};
+BASE_FEATURE(kCloseAllTabsModalDialog,
+ "CloseAllTabsModalDialog",
+ base::FEATURE_ENABLED_BY_DEFAULT);
+
// Used in downstream code.
BASE_FEATURE(kCastDeviceFilter,
@@ -25,7 +25,7 @@ Parts of this patch were developed by csagan5, uazo and others.
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
...em_webview_bundle.AndroidManifest.expected | 5 -
chrome/android/BUILD.gn | 46 +-
chrome/android/BUILD.gn | 47 +-
chrome/android/chrome_java_sources.gni | 5 -
.../features/cablev2_authenticator/BUILD.gn | 2 -
chrome/android/java/AndroidManifest.xml | 68 ---
@@ -94,7 +94,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/signin/public/android/BUILD.gn | 3 -
.../signin/AccountRenameChecker.java | 16 -
components/webauthn/android/BUILD.gn | 10 -
.../webauthn/AuthenticatorImpl.java | 50 +-
.../webauthn/AuthenticatorImpl.java | 59 +-
.../webauthn/Fido2ApiCallHelper.java | 23 +-
.../push_messaging/push_messaging_manager.cc | 2 +-
content/public/android/BUILD.gn | 4 -
@@ -108,7 +108,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
third_party/android_deps/BUILD.gn | 539 +-----------------
.../preconditions/javatests/BUILD.gn | 1 -
.../gms/ChromiumPlayServicesAvailability.java | 10 +-
84 files changed, 87 insertions(+), 2015 deletions(-)
84 files changed, 88 insertions(+), 2024 deletions(-)
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
--- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -205,15 +205,17 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//base:base_java_test_support",
"//base:jni_java",
@@ -2579,7 +2568,6 @@ if (current_toolchain == default_toolchain) {
@@ -2579,9 +2568,7 @@ if (current_toolchain == default_toolchain) {
# is in a DFM.
android_library("base_module_java") {
sources = [
- "java/src/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
"java/src/org/chromium/chrome/app/TrichromeZygotePreload.java",
"java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
- "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
@@ -2595,8 +2583,6 @@ if (current_toolchain == default_toolchain) {
"java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
"java/src/org/chromium/chrome/browser/app/bluetooth/BluetoothNotificationService.java",
@@ -2595,8 +2582,6 @@ if (current_toolchain == default_toolchain) {
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
@@ -222,7 +224,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
@@ -2621,17 +2607,11 @@ if (current_toolchain == default_toolchain) {
@@ -2621,17 +2606,11 @@ if (current_toolchain == default_toolchain) {
"java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
"java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
"java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
@@ -240,7 +242,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//base:jni_java",
"//chrome/browser/download/android:file_provider_java",
@@ -2645,7 +2625,6 @@ if (current_toolchain == default_toolchain) {
@@ -2645,7 +2624,6 @@ if (current_toolchain == default_toolchain) {
"//components/media_router/browser/android:cast_options_provider_java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/module_installer/android:module_installer_java",
@@ -248,7 +250,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_collection_collection_java",
"//ui/android:ui_no_recycler_view_java",
@@ -2665,7 +2644,6 @@ if (current_toolchain == default_toolchain) {
@@ -2665,7 +2643,6 @@ if (current_toolchain == default_toolchain) {
# Deps to pull services into base module.
# TODO(crbug.com/1126301): Consider moving these to the chrome module to
# reduce base dex size.
@@ -3395,7 +3397,23 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
/**
@@ -238,10 +196,7 @@ public final class AuthenticatorImpl implements Authenticator {
@@ -215,14 +173,7 @@ public final class AuthenticatorImpl implements Authenticator {
*/
public void getMatchingCredentialIds(String relyingPartyId, byte[][] credentialIds,
boolean requireThirdPartyPayment, GetMatchingCredentialIdsResponseCallback callback) {
- if (mGmsCorePackageVersion < GMSCORE_MIN_VERSION_GET_MATCHING_CRED_IDS) {
- callback.onResponse(new ArrayList<byte[]>());
- return;
- }
-
- getFido2CredentialRequest().handleGetMatchingCredentialIdsRequest(mRenderFrameHost,
- relyingPartyId, credentialIds, requireThirdPartyPayment, callback,
- status -> onError(status));
+ callback.onResponse(new ArrayList<byte[]>());
}
@Override
@@ -238,10 +189,7 @@ public final class AuthenticatorImpl implements Authenticator {
// reason, this method will return true but chrome will ignore conditional requests.
// Android surfaces only platform credentials on conditional requests, use IsUVPAA as a
// proxy for availability.
@@ -3407,7 +3425,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
@Override
@@ -251,8 +206,6 @@ public final class AuthenticatorImpl implements Authenticator {
@@ -251,8 +199,6 @@ public final class AuthenticatorImpl implements Authenticator {
if (!mIsOperationPending || mGetAssertionCallback == null) {
return;
}
@@ -3416,7 +3434,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
/**
@@ -302,7 +255,6 @@ public final class AuthenticatorImpl implements Authenticator {
@@ -302,7 +248,6 @@ public final class AuthenticatorImpl implements Authenticator {
mIsOperationPending = false;
mMakeCredentialCallback = null;
mGetAssertionCallback = null;
@@ -524,7 +524,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1734,7 +1734,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1735,7 +1735,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged,
getShareDelegateSupplier(), getActivityTabProvider(), mTabModelProfileSupplier,
mBookmarkModelSupplier, mTabBookmarkerSupplier,
@@ -533,7 +533,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
mStartSurfaceSupplier, mTabSwitcherSupplier, mIntentMetadataOneshotSupplier,
mLayoutStateProviderSupplier, mStartSurfaceParentTabSupplier,
getBrowserControlsManager(), getWindowAndroid(), mJankTracker,
@@ -2808,7 +2808,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2809,7 +2809,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// TODO(crbug.com/1157310): Transition this::method refs to dedicated suppliers.
mTabModalHandler = new TabModalLifetimeHandler(this, getLifecycleDispatcher(), manager,
this::getAppBrowserControlsVisibilityDelegate, this::getTabObscuringHandler,
@@ -5,7 +5,7 @@ Subject: Remove price/shopping/commerce integrations
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 23 ---
chrome/android/chrome_java_sources.gni | 4 -
chrome/android/chrome_java_sources.gni | 5 -
chrome/android/features/tab_ui/BUILD.gn | 7 -
.../res/layout/large_message_card_item.xml | 9 -
.../java/res/layout/tab_grid_card_item.xml | 8 -
@@ -31,6 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../bookmarks/BookmarkSaveFlowMediator.java | 68 +------
.../browser/bookmarks/BookmarkUtils.java | 12 +-
.../init/ProcessInitializationHandler.java | 5 -
.../ContextualPageActionController.java | 4 -
.../chrome/browser/tab/TabHelpers.java | 9 -
.../tabbed_mode/TabbedRootUiCoordinator.java | 22 ---
.../ToolbarButtonInProductHelpController.java | 27 ---
@@ -43,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../CommerceSubscriptionsService.java | 36 +---
.../SubscriptionsManagerImpl.java | 26 +--
chrome/browser/persisted_state_db/BUILD.gn | 1 -
39 files changed, 23 insertions(+), 981 deletions(-)
40 files changed, 23 insertions(+), 986 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
@@ -111,7 +112,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
if (enable_basic_printing) {
deps += [ "//printing:printing_java" ]
}
@@ -4160,8 +4139,6 @@ group("jni_headers") {
@@ -4159,8 +4138,6 @@ group("jni_headers") {
"//chrome/browser/android/browserservices/verification:jni_headers",
"//chrome/browser/battery/android:jni_headers",
"//chrome/browser/commerce/merchant_viewer/android:jni_headers",
@@ -134,6 +135,14 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/bookmarks/ReadingListFeatures.java",
"java/src/org/chromium/chrome/browser/bookmarks/ReadingListSectionHeader.java",
"java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java",
@@ -951,7 +947,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/searchwidget/SearchType.java",
"java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
"java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java",
- "java/src/org/chromium/chrome/browser/segmentation_platform/PriceTrackingActionProvider.java",
"java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java",
"java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
"java/src/org/chromium/chrome/browser/settings/MainSettings.java",
diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn
--- a/chrome/android/features/tab_ui/BUILD.gn
+++ b/chrome/android/features/tab_ui/BUILD.gn
@@ -1773,6 +1782,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
});
deferredStartupHandler.addDeferredTask(() -> {
if (ChromeFeatureList.isEnabled(ChromeFeatureList.FEATURE_NOTIFICATION_GUIDE)) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java
@@ -106,10 +106,6 @@ public class ContextualPageActionController {
protected void initActionProviders(Supplier<ShoppingService> shoppingServiceSupplier,
Supplier<BookmarkModel> bookmarkModelSupplier) {
mActionProviders.clear();
- if (AdaptiveToolbarFeatures.isPriceTrackingPageActionEnabled()) {
- mActionProviders.add(new PriceTrackingActionProvider(
- shoppingServiceSupplier, bookmarkModelSupplier));
- }
if (AdaptiveToolbarFeatures.isReaderModePageActionEnabled()) {
mActionProviders.add(new ReaderModeActionProvider());
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabHelpers.java
@@ -1920,7 +1943,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -92,8 +92,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate;
@@ -93,8 +93,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate;
import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.page_info.ChromePageInfo;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
@@ -1929,7 +1952,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
@@ -1994,22 +1992,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -1996,22 +1994,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@VisibleForTesting
public void showPriceDropIPH() {
@@ -1952,7 +1975,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
}
/**
@@ -2018,21 +2000,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -2020,21 +2002,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
* viewed in the tab switcher grid.
*/
private void maybeShowPriceDropIPH() {
@@ -35,6 +35,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../java/res/xml/manage_sync_preferences.xml | 12 -
.../java/res/xml/privacy_preferences.xml | 4 -
.../org/chromium/chrome/browser/AppHooks.java | 34 ---
.../chrome/browser/BackupSigninProcessor.java | 54 ----
.../chrome/browser/ChromeBackupAgentImpl.java | 9 +-
.../chrome/browser/ChromeBackupWatcher.java | 10 -
.../chrome/browser/ChromeTabbedActivity.java | 9 -
@@ -42,7 +43,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../AutofillAssistantPreferenceFragment.java | 17 +-
.../bookmarks/BookmarkItemsAdapter.java | 56 +----
.../bookmarks/BookmarkPromoHeader.java | 230 +-----------------
.../ClearBrowsingDataFragment.java | 64 +----
.../ClearBrowsingDataFragment.java | 79 +-----
.../ClearBrowsingDataFragmentBasic.java | 27 +-
.../contacts_picker/ChromePickerAdapter.java | 67 +----
.../browser/customtabs/CustomTabActivity.java | 6 -
@@ -120,7 +121,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../ProfileOAuth2TokenServiceDelegate.java | 52 ----
.../net/HttpNegotiateAuthenticator.java | 88 +------
.../chromoting/base/OAuthTokenFetcher.java | 2 -
101 files changed, 91 insertions(+), 2538 deletions(-)
102 files changed, 92 insertions(+), 2606 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
@@ -514,15 +515,15 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
private void maybeUpdateSignInPromo() {
// Only call #setupPromoViewFromCache() if SignInPromo is visible to avoid potentially
// blocking the UI thread for several seconds if the accounts cache is not populated
@@ -173,7 +167,7 @@ public class FeedSurfaceMediator
FeedSurfaceMediator.this.switchToStream(headerIndex);
}
@@ -158,7 +152,7 @@ public class FeedSurfaceMediator
super.onDismissPromo();
mCoordinator.updateHeaderViews(false);
}
- }
+ } */
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public static void setPrefForTest(
/**
* Internal implementation of Stream.StreamsMediator.
@@ -192,7 +186,6 @@ public class FeedSurfaceMediator
private final Context mContext;
private final @Nullable SnapScrollHelper mSnapScrollHelper;
@@ -884,6 +885,73 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b
/**
* This is deprecated, and should not be called. Use FeedHooks instead.
*/
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackupSigninProcessor.java b/chrome/android/java/src/org/chromium/chrome/browser/BackupSigninProcessor.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/BackupSigninProcessor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BackupSigninProcessor.java
@@ -37,63 +37,9 @@ public final class BackupSigninProcessor {
* @param activity The current activity.
*/
public static void start(final Activity activity) {
- // Warning, another layer relies on SigninManager being instantiated at this moment, don't
- // move this call around.
- // TODO(crbug.com/1336196): Delete comment above once the dependency is gone.
- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
- Profile.getLastUsedRegularProfile());
- final String accountName = getBackupFlowSigninAccountName();
- if (!signinManager.isSyncOptInAllowed() || TextUtils.isEmpty(accountName)) {
- setBackupFlowSigninComplete();
- return;
- }
-
- final AccountManagerFacade accountManagerFacade =
- AccountManagerFacadeProvider.getInstance();
- accountManagerFacade.getAccounts().then(accounts -> {
- AccountUtils.checkChildAccountStatus(
- accountManagerFacade, accounts, (isChild, unused) -> {
- if (isChild) {
- // TODO(crbug.com/1318350): Pre-AllowSyncOffForChildAccounts, the backup
- // sign-in for child accounts would happen in SigninChecker anyways.
- // Maybe it should be handled by this class once the feature launches.
- setBackupFlowSigninComplete();
- return;
- }
-
- Account account = AccountUtils.findAccountByName(accounts, accountName);
- if (account == null) {
- setBackupFlowSigninComplete();
- return;
- }
-
- signinAndEnableSync(account, activity);
- });
- });
}
private static void signinAndEnableSync(@NonNull Account account, Activity activity) {
- IdentityServicesProvider.get()
- .getSigninManager(Profile.getLastUsedRegularProfile())
- .signinAndEnableSync(SigninAccessPoint.POST_DEVICE_RESTORE_BACKGROUND_SIGNIN,
- account, new SignInCallback() {
- @Override
- public void onSignInComplete() {
- UnifiedConsentServiceBridge
- .setUrlKeyedAnonymizedDataCollectionEnabled(
- Profile.getLastUsedRegularProfile(), true);
- SyncService.get().setFirstSetupComplete(
- SyncFirstSetupCompleteSource.ANDROID_BACKUP_RESTORE);
- setBackupFlowSigninComplete();
- }
-
- @Override
- public void onSignInAborted() {
- // If sign-in failed, give up and mark as complete.
- // TODO(crbug.com/1371130): Measure how often this happens.
- setBackupFlowSigninComplete();
- }
- });
}
/**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java
@@ -1621,14 +1689,58 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
implements BrowsingDataBridge.OnClearBrowsingDataListener,
- Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener,
- SignOutDialogCoordinator.Listener, SigninManager.SignInStateObserver {
+ Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener, SigninManager.SignInStateObserver {
+ Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {
private static final String CLEAR_DATA_PROGRESS_DIALOG_TAG = "clear_data_progress";
/**
@@ -674,21 +666,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -228,8 +220,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
private OtherFormsOfHistoryDialogFragment mDialogAboutOtherFormsOfBrowsingHistory;
- private SigninManager mSigninManager;
-
private ProgressDialog mProgressDialog;
private Item[] mItems;
private ClearBrowsingDataFetcher mFetcher;
@@ -539,8 +529,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
}
getActivity().setTitle(R.string.clear_browsing_data_title);
SettingsUtils.addPreferencesFromResource(this, R.xml.clear_browsing_data_preferences_tab);
- mSigninManager = IdentityServicesProvider.get().getSigninManager(
- Profile.getLastUsedRegularProfile());
List<Integer> options = getDialogOptions();
mItems = new Item[options.size()];
for (int i = 0; i < options.size(); i++) {
@@ -592,8 +580,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
// Text for sign-out option.
updateSignOutOfChromeText();
-
- mSigninManager.addSignInStateObserver(this);
}
@Override
@@ -639,7 +625,6 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
for (Item item : mItems) {
item.destroy();
}
- mSigninManager.removeSignInStateObserver(this);
}
// We either show the dialog, or modify the current one to display our messages. This avoids
@@ -665,28 +650,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
private void updateSignOutOfChromeText() {
ClickableSpansTextMessagePreference signOutOfChromeTextPref =
findPreference(ClearBrowsingDataFragment.PREF_SIGN_OUT_OF_CHROME_TEXT);
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.ENABLE_CBD_SIGN_OUT)
- && mSigninManager.isSignOutAllowed()) {
- signOutOfChromeTextPref.setSummary(buildSignOutOfChromeText());
- signOutOfChromeTextPref.setVisible(true);
- } else {
- signOutOfChromeTextPref.setVisible(false);
- }
- }
-
- @VisibleForTesting
- SpannableString buildSignOutOfChromeText() {
- return SpanApplier.applySpans(getContext().getString(R.string.sign_out_of_chrome_link),
@@ -1642,12 +1754,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
- -> SignOutDialogCoordinator.show(requireContext(),
- ((ModalDialogManagerHolder) getActivity()).getModalDialogManager(), this,
- ActionType.CLEAR_PRIMARY_ACCOUNT, GAIAServiceType.GAIA_SERVICE_TYPE_NONE);
- }
-
+ signOutOfChromeTextPref.setVisible(false);
}
/**
* This method shows the important sites dialog. After the dialog is shown, we correctly clear.
*/
@@ -751,43 +728,4 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -751,43 +715,4 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
ignoredDomains, ignoredDomainReasons);
}
}
@@ -474,7 +474,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -89,7 +89,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate;
@@ -90,7 +90,6 @@ import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegate;
import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils;
import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate;
@@ -482,7 +482,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.page_info.ChromePageInfo;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
@@ -2057,11 +2056,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -2059,11 +2058,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
return mLocationBar.getOmniboxStub();
}
@@ -90,9 +90,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
"ShareButtonInTopToolbar",
base::FEATURE_DISABLED_BY_DEFAULT);
+BASE_FEATURE(kSearchReadyOmniboxFeature{
+BASE_FEATURE(kSearchReadyOmniboxFeature,
+ "SearchReadyOmnibox",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
BASE_FEATURE(kShowScrollableMVTOnNTPAndroid,
"ShowScrollableMVTOnNTPAndroid",
@@ -13,9 +13,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../android/external_intents_features.cc | 7 ++++++-
.../android/external_intents_features.h | 1 +
.../ExternalIntentsFeatures.java | 6 ++++++
.../ExternalNavigationHandler.java | 19 +++++++++++++++++++
.../ExternalNavigationHandlerTest.java | 11 +++++++----
9 files changed, 60 insertions(+), 5 deletions(-)
.../ExternalNavigationHandler.java | 21 +++++++++++++++++++
.../ExternalNavigationHandlerTest.java | 11 ++++++----
9 files changed, 62 insertions(+), 5 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
@@ -152,7 +152,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component
private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal(
ExternalNavigationParams params, Intent targetIntent, GURL browserFallbackUrl,
MutableBoolean canLaunchExternalFallbackResult) {
@@ -1637,6 +1643,19 @@ public class ExternalNavigationHandler {
@@ -1637,6 +1643,21 @@ public class ExternalNavigationHandler {
return OverrideUrlLoadingResult.forNoOverride();
}
@@ -160,6 +160,8 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component
+ // protocols.
+ // TODO(tedchoc): Turn this on by default once we verify this change does
+ // not break the world.
+ int pageTransitionCore = params.getPageTransition() & PageTransition.CORE_MASK;
+ boolean isFormSubmit = pageTransitionCore == PageTransition.FORM_SUBMIT;
+ boolean isRedirectFromFormSubmit = isFormSubmit && params.isRedirect();
+ if (isRedirectFromFormSubmit && !incomingIntentRedirect && !params.hasUserGesture()
+ && blockExternalFormRedirectsWithoutGesture()) {
@@ -17,14 +17,10 @@ This reverts commit 11f6a3e29bee9a6590a4fd56b28e8048200c18d0.
Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../renderer_host/policy_container_host.cc | 2 +-
content/renderer/policy_container_util.cc | 1 +
.../public/mojom/frame/policy_container.mojom | 2 ++
.../public/platform/web_policy_container.h | 1 +
.../execution_context/execution_context.cc | 9 +++++
.../execution_context/execution_context.h | 4 +++
.../core/exported/web_shared_worker_impl.cc | 1 +
.../renderer/core/frame/policy_container.cc | 11 ++++++
.../renderer/core/frame/policy_container.cc | 10 ++++++
.../renderer/core/frame/policy_container.h | 11 ++++++
.../renderer/core/frame/web_frame_test.cc | 34 +++++++++++++++++++
.../layout_worklet_global_scope_proxy.cc | 2 +-
@@ -57,54 +53,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../audio_worklet_global_scope_test.cc | 1 +
.../webaudio/audio_worklet_thread_test.cc | 1 +
.../worklet/worklet_thread_test_common.cc | 2 +-
40 files changed, 195 insertions(+), 25 deletions(-)
36 files changed, 189 insertions(+), 24 deletions(-)
diff --git a/content/browser/renderer_host/policy_container_host.cc b/content/browser/renderer_host/policy_container_host.cc
--- a/content/browser/renderer_host/policy_container_host.cc
+++ b/content/browser/renderer_host/policy_container_host.cc
@@ -201,7 +201,7 @@ void PolicyContainerPolicies::AddContentSecurityPolicies(
blink::mojom::PolicyContainerPoliciesPtr
PolicyContainerPolicies::ToMojoPolicyContainerPolicies() const {
return blink::mojom::PolicyContainerPolicies::New(
- cross_origin_embedder_policy.value, referrer_policy,
+ cross_origin_embedder_policy.value, referrer_policy, ip_address_space,
mojo::Clone(content_security_policies), is_anonymous, sandbox_flags,
ip_address_space, can_navigate_top_without_user_gesture);
}
diff --git a/content/renderer/policy_container_util.cc b/content/renderer/policy_container_util.cc
--- a/content/renderer/policy_container_util.cc
+++ b/content/renderer/policy_container_util.cc
@@ -18,6 +18,7 @@ std::unique_ptr<blink::WebPolicyContainer> ToWebPolicyContainer(
blink::WebPolicyContainerPolicies{
in->policies->cross_origin_embedder_policy,
in->policies->referrer_policy,
+ in->policies->ip_address_space,
ToWebContentSecurityPolicies(
std::move(in->policies->content_security_policies)),
in->policies->is_anonymous,
diff --git a/third_party/blink/public/mojom/frame/policy_container.mojom b/third_party/blink/public/mojom/frame/policy_container.mojom
--- a/third_party/blink/public/mojom/frame/policy_container.mojom
+++ b/third_party/blink/public/mojom/frame/policy_container.mojom
@@ -19,6 +19,8 @@ struct PolicyContainerPolicies {
network.mojom.CrossOriginEmbedderPolicyValue.kNone;
network.mojom.ReferrerPolicy referrer_policy =
network.mojom.ReferrerPolicy.kDefault;
+ network.mojom.IPAddressSpace ip_address_space =
+ network.mojom.IPAddressSpace.kUnknown;
array<network.mojom.ContentSecurityPolicy> content_security_policies;
bool is_anonymous = false;
network.mojom.WebSandboxFlags sandbox_flags =
diff --git a/third_party/blink/public/platform/web_policy_container.h b/third_party/blink/public/platform/web_policy_container.h
--- a/third_party/blink/public/platform/web_policy_container.h
+++ b/third_party/blink/public/platform/web_policy_container.h
@@ -23,6 +23,7 @@ struct WebPolicyContainerPolicies {
network::mojom::CrossOriginEmbedderPolicyValue::kNone;
network::mojom::ReferrerPolicy referrer_policy =
network::mojom::ReferrerPolicy::kDefault;
+ network::mojom::IPAddressSpace ip_address_space;
WebVector<WebContentSecurityPolicy> content_security_policies;
bool is_anonymous = false;
network::mojom::WebSandboxFlags sandbox_flags =
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -159,15 +109,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
diff --git a/third_party/blink/renderer/core/frame/policy_container.cc b/third_party/blink/renderer/core/frame/policy_container.cc
--- a/third_party/blink/renderer/core/frame/policy_container.cc
+++ b/third_party/blink/renderer/core/frame/policy_container.cc
@@ -37,6 +37,7 @@ std::unique_ptr<PolicyContainer> PolicyContainer::CreateFromWebPolicyContainer(
mojom::blink::PolicyContainerPolicies::New(
container->policies.cross_origin_embedder_policy,
container->policies.referrer_policy,
+ container->policies.ip_address_space,
ConvertToMojoBlink(
std::move(container->policies.content_security_policies)),
container->policies.is_anonymous, container->policies.sandbox_flags,
@@ -52,12 +53,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy()
@@ -52,12 +52,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy()
return policies_->referrer_policy;
}
+60 -2
View File
@@ -33,7 +33,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../strings/android_chrome_strings.grd | 35 ++++
chrome/common/pref_names.cc | 13 ++
chrome/common/pref_names.h | 8 +
.../WebsitePreferenceBridge.java | 2 +-
.../android/website_preference_bridge.cc | 10 +-
.../widget/RadioButtonWithEditText.java | 11 +
.../core/browser/host_content_settings_map.cc | 8 +-
.../embedder_support/user_agent_utils.cc | 15 +-
.../navigation_controller_android.cc | 4 +
.../navigation_controller_android.h | 1 +
@@ -41,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/web_contents/web_contents_impl.cc | 4 +
.../framehost/NavigationControllerImpl.java | 3 +-
content/renderer/render_thread_impl.cc | 1 -
31 files changed, 766 insertions(+), 16 deletions(-)
34 files changed, 776 insertions(+), 26 deletions(-)
create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml
create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
@@ -329,7 +332,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ boolean isOverrideUserAgentEnabled(boolean desktopMode);
+ void setOverrideUserAgentEnabled(boolean enabled, boolean desktopMode);
+ String getOverrideUserAgentValue(boolean desktopMode);
+ void setOverrideUserAgentValue(String timezone, boolean desktopMode);
+ void setOverrideUserAgentValue(String customTimezone, boolean desktopMode);
+ boolean isDesktopModeViewportMetaEnabled();
+ void setDesktopModeViewportMetaEnabled(boolean enabled);
}
@@ -1084,6 +1087,41 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
#if !BUILDFLAG(IS_ANDROID)
extern const char kLensRegionSearchEnabled[];
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
@@ -467,6 +467,6 @@ public class WebsitePreferenceBridge {
String toDomainWildcardPattern(String pattern);
String toHostOnlyPattern(String pattern);
String getCustomTimezone(BrowserContextHandle browserContextHandle);
- void setCustomTimezone(BrowserContextHandle browserContextHandle, String timezone);
+ void setCustomTimezone(BrowserContextHandle browserContextHandle, String customTimezone);
}
}
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
@@ -1021,15 +1021,15 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(
static void JNI_WebsitePreferenceBridge_SetCustomTimezone(
JNIEnv* env,
const JavaParamRef<jobject>& jbrowser_context_handle,
- const JavaParamRef<jstring>& timezone) {
- std::string new_timezone = ConvertJavaStringToUTF8(env, timezone);
+ const JavaParamRef<jstring>& custom_timezone) {
+ std::string new_timezone = ConvertJavaStringToUTF8(env, custom_timezone);
GetHostContentSettingsMap(jbrowser_context_handle)->SetTimezoneOverrideValue(new_timezone);
}
static base::android::ScopedJavaLocalRef<jstring> JNI_WebsitePreferenceBridge_GetCustomTimezone(
JNIEnv* env,
const JavaParamRef<jobject>& jbrowser_context_handle) {
- std::string timezone;
- GetHostContentSettingsMap(jbrowser_context_handle)->GetTimezoneOverrideValue(timezone);
- return ConvertUTF8ToJavaString(env, timezone);
+ std::string custom_timezone;
+ GetHostContentSettingsMap(jbrowser_context_handle)->GetTimezoneOverrideValue(custom_timezone);
+ return ConvertUTF8ToJavaString(env, custom_timezone);
}
diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java
--- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java
+++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java
@@ -1105,6 +1143,26 @@ diff --git a/components/browser_ui/widget/android/java/src/org/chromium/componen
}
/**
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
@@ -604,12 +604,12 @@ void HostContentSettingsMap::SetClockForTesting(base::Clock* clock) {
provider->SetClockForTesting(clock);
}
-void HostContentSettingsMap::GetTimezoneOverrideValue(std::string& timezone) const {
- GetPrefProvider()->GetPrefTimezoneOverrideValue(timezone);
+void HostContentSettingsMap::GetTimezoneOverrideValue(std::string& custom_timezone) const {
+ GetPrefProvider()->GetPrefTimezoneOverrideValue(custom_timezone);
}
-void HostContentSettingsMap::SetTimezoneOverrideValue(const std::string& timezone) {
- GetPrefProvider()->SetPrefTimezoneOverrideValue(timezone);
+void HostContentSettingsMap::SetTimezoneOverrideValue(const std::string& custom_timezone) {
+ GetPrefProvider()->SetPrefTimezoneOverrideValue(custom_timezone);
}
void HostContentSettingsMap::RecordExceptionMetrics() {
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc