patches for v108
This commit is contained in:
@@ -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
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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"><link1></ph>Search history<ph name="END_LINK1"></link1></ph> and <ph name="BEGIN_LINK2"><link2></ph>other forms of activity<ph name="END_LINK2"></link2></ph> may be saved in your Google Account when you’re 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());
|
||||
|
||||
|
||||
@@ -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) || \
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user