From c941fcf13745c0d4c416540e79fb2ed7b38bd5b7 Mon Sep 17 00:00:00 2001 From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 30 Nov 2019 17:51:25 +0100 Subject: [PATCH] Release 78.0.3904.119 --- CHANGELOG.md | 4 + build/bromite_patches_list.txt | 2 +- .../Add-a-flag-for-DNS-over-HTTPS.patch | 258 --------- ...nfigure-maximum-connections-per-host.patch | 16 +- ...ontrol-video-playback-resume-feature.patch | 15 +- .../Add-flag-to-disable-IPv6-probes.patch | 2 +- build/patches/Add-flag-to-disable-WebGL.patch | 2 +- ...etting-for-DNS-over-HTTPS-custom-URL.patch | 509 ++++++++++++++++++ .../Allow-playing-audio-in-background.patch | 17 +- ...c-dns-flag-regardless-of-SDK-version.patch | 2 +- ...e-fingerprinting-mitigations-via-IDL.patch | 2 +- ...tifications-to-default-search-engine.patch | 2 +- ...ownloads-storage-location-by-default.patch | 2 +- ...ation-for-devices-with-enough-memory.patch | 4 +- ...tracking-ads-and-video-functionality.patch | 2 +- ...y-Omnibox-flag-since-it-has-launched.patch | 2 +- build/patches/User-Agent-anonymize.patch | 2 +- 17 files changed, 535 insertions(+), 308 deletions(-) delete mode 100644 build/patches/Add-a-flag-for-DNS-over-HTTPS.patch create mode 100644 build/patches/Add-user-setting-for-DNS-over-HTTPS-custom-URL.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 3584eb14..01f05bcb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 78.0.3904.119 +* replace fixed DNS-over-HTTPS feature flag with user-customizable option +* fix background playback issue (fixes https://github.com/bromite/bromite/issues/424) + # 78.0.3904.105 * add flag to disable WebGL (fixes https://github.com/bromite/bromite/issues/411) * more selective AMP sanitization (fixes https://github.com/bromite/bromite/issues/410) diff --git a/build/bromite_patches_list.txt b/build/bromite_patches_list.txt index a9948dc3..2e4ebf18 100644 --- a/build/bromite_patches_list.txt +++ b/build/bromite_patches_list.txt @@ -69,7 +69,6 @@ Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch Add-flags-to-disable-device-motion-and-orientation-APIs.patch Punt-the-Widevine-version-string.patch Disable-metrics-on-all-I-O-threads.patch -Add-a-flag-for-DNS-over-HTTPS.patch Always-respect-async-dns-flag-regardless-of-SDK-version.patch Add-flag-to-configure-maximum-connections-per-host.patch Add-site-settings-option-for-session-only-cookies.patch @@ -141,3 +140,4 @@ Disable-HEAD-requests-for-single-word-Omnibar-searches.patch Block-all-connection-requests-with-qjz9zk-in-the-domain-name-or-with-a-trk-scheme.patch Disable-some-signed-exchange-features.patch Add-flag-to-disable-WebGL.patch +Add-user-setting-for-DNS-over-HTTPS-custom-URL.patch diff --git a/build/patches/Add-a-flag-for-DNS-over-HTTPS.patch b/build/patches/Add-a-flag-for-DNS-over-HTTPS.patch deleted file mode 100644 index 5df7a7bb..00000000 --- a/build/patches/Add-a-flag-for-DNS-over-HTTPS.patch +++ /dev/null @@ -1,258 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Sat, 28 Apr 2018 08:30:26 +0200 -Subject: Add a flag for DNS-over-HTTPS - -Allow selection between Google and Cloudflare endpoints. -Serve DoH requests with maximum priority, remove traffic annotation. -Reduce HTTP headers in DoH requests to bare minimum. -Add AdGuard (default) endpoint -Do not fallback to UDP when using DoH - -See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-14.txt ---- - chrome/browser/about_flags.cc | 10 +++++++++- - chrome/browser/net/system_network_context_manager.cc | 18 +++++++++++------- - chrome/common/chrome_features.cc | 9 --------- - chrome/common/chrome_features.h | 2 -- - .../common/network_features.cc | 6 ++++++ - .../common/network_features.h | 6 ++++++ - .../common/network_switch_list.h | 4 ++++ - net/base/load_flags_list.h | 6 ++++++ - net/dns/dns_transaction.cc | 4 ++-- - net/url_request/url_request_http_job.cc | 16 +++++++++++----- - 10 files changed, 55 insertions(+), 26 deletions(-) - -diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc ---- a/chrome/browser/about_flags.cc -+++ b/chrome/browser/about_flags.cc -@@ -418,6 +418,14 @@ const FeatureEntry::FeatureVariation kCCTModuleCacheVariations[] = { - base::size(kCCTModuleCache_ThirtyMinutes), nullptr}, - }; - -+const FeatureEntry::Choice kDnsOverHttpsChoices[] = { -+ {features::kDnsOverHttpsChoiceDefault, "", ""}, -+ {features::kDnsOverHttpsChoiceGoogle, switches::kDnsOverHttpsServer, "https://dns.google/dns-query"}, -+ {features::kDnsOverHttpsChoiceCloudflare, switches::kDnsOverHttpsServer, "https://1.1.1.1/dns-query"}, -+ {features::kDnsOverHttpsChoiceQuad9, switches::kDnsOverHttpsServer, "https://9.9.9.9/dns-query"}, -+ {features::kDnsOverHttpsChoiceAdGuard, switches::kDnsOverHttpsServer, "https://dns.adguard.com/dns-query"} -+}; -+ - #endif // OS_ANDROID - - const FeatureEntry::FeatureParam kForceDark_SimpleHsl[] = { -@@ -4491,7 +4499,7 @@ const FeatureEntry kFeatureEntries[] = { - {"dns-over-https", flag_descriptions::kDnsOverHttpsName, - flag_descriptions::kDnsOverHttpsDescription, - kOsMac | kOsWin | kOsCrOS | kOsAndroid, -- FEATURE_VALUE_TYPE(features::kDnsOverHttps)}, -+ MULTI_VALUE_TYPE(kDnsOverHttpsChoices)}, - - #if defined(OS_ANDROID) - {"tab-switcher-longpress-menu", -diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc ---- a/chrome/browser/net/system_network_context_manager.cc -+++ b/chrome/browser/net/system_network_context_manager.cc -@@ -25,6 +25,7 @@ - #include "chrome/browser/chrome_content_browser_client.h" - #include "chrome/browser/component_updater/crl_set_component_installer.h" - #include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h" -+#include "components/network_session_configurator/common/network_switches.h" - #include "chrome/browser/net/dns_util.h" - #include "chrome/browser/safe_browsing/safe_browsing_service.h" - #include "chrome/browser/ssl/ssl_config_service_manager.h" -@@ -142,6 +143,7 @@ void GetStubResolverConfig( - base::SPLIT_WANT_NONEMPTY)) { - if (!chrome_browser_net::IsValidDohTemplate(server_template, - &server_method)) { -+ LOG(ERROR) << "Invalid DoH template: " << server_template << " with method " << server_method; - continue; - } - -@@ -406,14 +408,16 @@ SystemNetworkContextManager::SystemNetworkContextManager( - base::Value(ShouldEnableAsyncDns())); - std::string default_doh_mode = chrome_browser_net::kDnsOverHttpsModeOff; - std::string default_doh_templates = ""; -- if (base::FeatureList::IsEnabled(features::kDnsOverHttps)) { -- if (features::kDnsOverHttpsFallbackParam.Get()) { -- default_doh_mode = chrome_browser_net::kDnsOverHttpsModeAutomatic; -- } else { -- default_doh_mode = chrome_browser_net::kDnsOverHttpsModeSecure; -- } -- default_doh_templates = features::kDnsOverHttpsTemplatesParam.Get(); -+ -+ std::string server = -+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( -+ switches::kDnsOverHttpsServer); -+ if (!server.empty()) { -+ default_doh_mode = chrome_browser_net::kDnsOverHttpsModeSecure; -+ // will use POST when URLs do not contain a 'dns' query parameter -+ default_doh_templates = server; - } -+ - local_state_->SetDefaultPrefValue(prefs::kDnsOverHttpsMode, - base::Value(default_doh_mode)); - local_state_->SetDefaultPrefValue(prefs::kDnsOverHttpsTemplates, -diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc ---- a/chrome/common/chrome_features.cc -+++ b/chrome/common/chrome_features.cc -@@ -269,15 +269,6 @@ const base::Feature kDisallowUnsafeHttpDownloads{ - "DisallowUnsafeHttpDownloads", base::FEATURE_DISABLED_BY_DEFAULT}; - const char kDisallowUnsafeHttpDownloadsParamName[] = "MimeTypeList"; - --// Enable DNS over HTTPS (DoH). --const base::Feature kDnsOverHttps{"DnsOverHttps", -- base::FEATURE_DISABLED_BY_DEFAULT}; -- --// Set whether fallback to insecure DNS is allowed by default. This setting may --// be overridden for individual transactions. --const base::FeatureParam kDnsOverHttpsFallbackParam{&kDnsOverHttps, -- "Fallback", true}; -- - // Supply one or more space-separated DoH server URI templates to use when this - // feature is enabled. If no templates are specified, then a hardcoded mapping - // will be used to construct a list of DoH templates associated with the IP -diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h ---- a/chrome/common/chrome_features.h -+++ b/chrome/common/chrome_features.h -@@ -166,8 +166,6 @@ extern const char kDisallowUnsafeHttpDownloadsParamName[]; - COMPONENT_EXPORT(CHROME_FEATURES) - extern const base::Feature kDnsOverHttps; - COMPONENT_EXPORT(CHROME_FEATURES) --extern const base::FeatureParam kDnsOverHttpsFallbackParam; --COMPONENT_EXPORT(CHROME_FEATURES) - extern const base::FeatureParam kDnsOverHttpsTemplatesParam; - - #if defined(OS_ANDROID) -diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc ---- a/components/network_session_configurator/common/network_features.cc -+++ b/components/network_session_configurator/common/network_features.cc -@@ -8,4 +8,10 @@ - - namespace features { - -+const char kDnsOverHttpsChoiceDefault[] = "Disabled", -+ kDnsOverHttpsChoiceGoogle[] = "Google", -+ kDnsOverHttpsChoiceCloudflare[] = "Cloudflare", -+ kDnsOverHttpsChoiceQuad9[] = "Quad9", -+ kDnsOverHttpsChoiceAdGuard[] = "AdGuard"; -+ - } // namespace features -diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h ---- a/components/network_session_configurator/common/network_features.h -+++ b/components/network_session_configurator/common/network_features.h -@@ -10,6 +10,12 @@ - - namespace features { - -+// DNS over HTTPS server endpoint choices -+ // (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt). -+NETWORK_SESSION_CONFIGURATOR_EXPORT extern const char kDnsOverHttpsChoiceDefault[], -+ kDnsOverHttpsChoiceGoogle[], kDnsOverHttpsChoiceCloudflare[], kDnsOverHttpsChoiceQuad9[], -+ kDnsOverHttpsChoiceAdGuard[]; -+ - } // namespace features - - #endif // COMPONENTS_NETWORK_SESSION_CONFIGURATOR_COMMON_NETWORK_FEATURES_H_ -diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h ---- a/components/network_session_configurator/common/network_switch_list.h -+++ b/components/network_session_configurator/common/network_switch_list.h -@@ -32,6 +32,10 @@ NETWORK_SWITCH(kOriginToForceQuicOn, "origin-to-force-quic-on") - // the server. - NETWORK_SWITCH(kQuicConnectionOptions, "quic-connection-options") - -+// Specifies an IETF DNS-over-HTTPS server endpoint -+// (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt). -+NETWORK_SWITCH(kDnsOverHttpsServer, "dns-over-https-server") -+ - // Specifies the maximum length for a QUIC packet. - NETWORK_SWITCH(kQuicMaxPacketLength, "quic-max-packet-length") - -diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h ---- a/net/base/load_flags_list.h -+++ b/net/base/load_flags_list.h -@@ -117,3 +117,9 @@ LOAD_FLAG(RESTRICTED_PREFETCH, 1 << 18) - // is considered privileged, and therefore this flag must only be set from a - // trusted process. - LOAD_FLAG(CAN_USE_RESTRICTED_PREFETCH, 1 << 19) -+ -+// This load will not send Accept-Language or User-Agent headers, and not -+// advertise brotli encoding. -+// Used to comply with IETF (draft) DNS-over-HTTPS: -+// "Implementors SHOULD NOT set non-essential HTTP headers in DoH client requests." -+LOAD_FLAG(MINIMAL_HEADERS, 1 << 20) -diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc ---- a/net/dns/dns_transaction.cc -+++ b/net/dns/dns_transaction.cc -@@ -403,7 +403,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { - // perspective to prevent the client from sending AIA requests). - request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | - LOAD_BYPASS_PROXY | -- LOAD_DISABLE_CERT_NETWORK_FETCHES); -+ LOAD_DISABLE_CERT_NETWORK_FETCHES | LOAD_MINIMAL_HEADERS); - request_->set_allow_credentials(false); - } - -@@ -997,7 +997,7 @@ class DnsTransactionImpl : public DnsTransaction, - had_tcp_attempt_(false), - first_server_index_(0), - url_request_context_(url_request_context), -- request_priority_(DEFAULT_PRIORITY) { -+ request_priority_(MAXIMUM_PRIORITY) { - DCHECK(session_.get()); - DCHECK(!hostname_.empty()); - DCHECK(!callback_.is_null()); -diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc ---- a/net/url_request/url_request_http_job.cc -+++ b/net/url_request/url_request_http_job.cc -@@ -339,6 +339,7 @@ void URLRequestHttpJob::Start() { - // plugin could set a referrer although sending the referrer is inhibited. - request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer); - -+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) { - // Our consumer should have made sure that this is a safe referrer. See for - // instance WebCore::FrameLoader::HideReferrer. - if (referrer.is_valid()) { -@@ -354,11 +355,14 @@ void URLRequestHttpJob::Start() { - request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer, - referer_value); - } -+ } - -+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) { - request_info_.extra_headers.SetHeaderIfMissing( - HttpRequestHeaders::kUserAgent, - http_user_agent_settings_ ? - http_user_agent_settings_->GetUserAgent() : std::string()); -+ } - - AddExtraHeaders(); - AddCookieHeaderAndStart(); -@@ -582,10 +586,12 @@ void URLRequestHttpJob::AddExtraHeaders() { - } else { - // Advertise "br" encoding only if transferred data is opaque to proxy. - bool advertise_brotli = false; -- if (request()->context()->enable_brotli()) { -- if (request()->url().SchemeIsCryptographic() || -- IsLocalhost(request()->url())) { -- advertise_brotli = true; -+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) { -+ if (request()->context()->enable_brotli()) { -+ if (request()->url().SchemeIsCryptographic() || -+ IsLocalhost(request()->url())) { -+ advertise_brotli = true; -+ } - } - } - -@@ -603,7 +609,7 @@ void URLRequestHttpJob::AddExtraHeaders() { - } - } - -- if (http_user_agent_settings_) { -+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS) && http_user_agent_settings_) { - // Only add default Accept-Language if the request didn't have it - // specified. - std::string accept_language = --- -2.11.0 - diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 3fdc1df7..1507a333 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -19,7 +19,7 @@ with limited CPU/memory resources and it is disabled by default. diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -677,6 +677,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { +@@ -669,6 +669,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = { net::kEffectiveConnectionType4G}, }; @@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // Ensure that all effective connection types returned by Network Quality // Estimator (NQE) are also exposed via flags. static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 == -@@ -2546,6 +2551,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -2538,6 +2543,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kPassiveDocumentEventListenersName, flag_descriptions::kPassiveDocumentEventListenersDescription, kOsAll, FEATURE_VALUE_TYPE(features::kPassiveDocumentEventListeners)}, @@ -71,16 +71,14 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc --- a/components/network_session_configurator/common/network_features.cc +++ b/components/network_session_configurator/common/network_features.cc -@@ -8,6 +8,9 @@ +@@ -8,4 +8,7 @@ namespace features { +const char kMaxConnectionsPerHostChoiceDefault[] = "6", + kMaxConnectionsPerHostChoice15[] = "15"; + - const char kDnsOverHttpsChoiceDefault[] = "Disabled", - kDnsOverHttpsChoiceGoogle[] = "Google", - kDnsOverHttpsChoiceCloudflare[] = "Cloudflare", + } // namespace features diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h --- a/components/network_session_configurator/common/network_features.h +++ b/components/network_session_configurator/common/network_features.h @@ -92,9 +90,9 @@ diff --git a/components/network_session_configurator/common/network_features.h b + kMaxConnectionsPerHostChoice6[], + kMaxConnectionsPerHostChoice15[]; + - // DNS over HTTPS server endpoint choices - // (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt). - NETWORK_SESSION_CONFIGURATOR_EXPORT extern const char kDnsOverHttpsChoiceDefault[], + } // namespace features + + #endif // COMPONENTS_NETWORK_SESSION_CONFIGURATOR_COMMON_NETWORK_FEATURES_H_ diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h --- a/components/network_session_configurator/common/network_switch_list.h +++ b/components/network_session_configurator/common/network_switch_list.h diff --git a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch index f957168a..069da1d8 100644 --- a/build/patches/Add-flag-to-control-video-playback-resume-feature.patch +++ b/build/patches/Add-flag-to-control-video-playback-resume-feature.patch @@ -4,11 +4,11 @@ Subject: Add flag to control video playback resume feature Disable it by default on Android as it is everywhere else --- - chrome/browser/about_flags.cc | 8 ++++---- + chrome/browser/about_flags.cc | 4 ++++ chrome/browser/flag_descriptions.cc | 5 +++++ chrome/browser/flag_descriptions.h | 3 +++ media/base/media_switches.cc | 6 +----- - 4 files changed, 13 insertions(+), 9 deletions(-) + 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc @@ -24,17 +24,6 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc {"shared-array-buffer", flag_descriptions::kEnableSharedArrayBufferName, flag_descriptions::kEnableSharedArrayBufferDescription, kOsAll, FEATURE_VALUE_TYPE(features::kSharedArrayBuffer)}, -@@ -1603,10 +1607,6 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE(features::kAppNotificationStatusMessaging)}, - #endif // OS_ANDROID - {"enable-devtools-experiments", flag_descriptions::kDevtoolsExperimentsName, -- {"resume-background-video", -- flag_descriptions::kResumeBackgroundVideoName, -- flag_descriptions::kResumeBackgroundVideoDescription, kOsAll, -- FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)}, - flag_descriptions::kDevtoolsExperimentsDescription, kOsDesktop, - SINGLE_VALUE_TYPE(switches::kEnableDevToolsExperiments)}, - {"silent-debugger-extension-api", diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 64aa8926..43067243 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -16,7 +16,7 @@ Subject: Add flag to disable IPv6 probes diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -3206,6 +3206,11 @@ const FeatureEntry kFeatureEntries[] = { +@@ -3198,6 +3198,11 @@ const FeatureEntry kFeatureEntries[] = { kMarkHttpAsFeatureVariations, "HTTPReallyBadFinal")}, diff --git a/build/patches/Add-flag-to-disable-WebGL.patch b/build/patches/Add-flag-to-disable-WebGL.patch index 3d83651a..7c1795f4 100644 --- a/build/patches/Add-flag-to-disable-WebGL.patch +++ b/build/patches/Add-flag-to-disable-WebGL.patch @@ -11,7 +11,7 @@ Subject: Add flag to disable WebGL diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1372,6 +1372,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1364,6 +1364,9 @@ const FeatureEntry kFeatureEntries[] = { flag_descriptions::kAccelerated2dCanvasName, flag_descriptions::kAccelerated2dCanvasDescription, kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kDisableAccelerated2dCanvas)}, diff --git a/build/patches/Add-user-setting-for-DNS-over-HTTPS-custom-URL.patch b/build/patches/Add-user-setting-for-DNS-over-HTTPS-custom-URL.patch new file mode 100644 index 00000000..59dcd5da --- /dev/null +++ b/build/patches/Add-user-setting-for-DNS-over-HTTPS-custom-URL.patch @@ -0,0 +1,509 @@ +From: csagan5 <32685696+csagan5@users.noreply.github.com> +Date: Sat, 23 Nov 2019 10:55:16 +0100 +Subject: Add user setting for DNS-over-HTTPS custom URL + +--- + chrome/android/chrome_java_sources.gni | 2 + + chrome/android/java/res/layout/doh_editor.xml | 65 ++++++++++++++++ + chrome/android/java/res/values/values.xml | 2 + + chrome/android/java/res/xml/doh_preferences.xml | 25 ++++++ + .../android/java/res/xml/privacy_preferences.xml | 5 ++ + .../chrome/browser/preferences/DoHEditor.java | 91 ++++++++++++++++++++++ + .../chrome/browser/preferences/DoHPreferences.java | 52 +++++++++++++ + .../chrome/browser/util/FeatureUtilities.java | 25 ++++++ + .../java/strings/android_chrome_strings.grd | 11 +++ + chrome/app/generated_resources.grd | 6 ++ + chrome/browser/android/feature_utilities.cc | 23 ++++++ + .../browser/net/system_network_context_manager.cc | 36 +-------- + chrome/common/chrome_features.cc | 4 +- + 13 files changed, 313 insertions(+), 34 deletions(-) + create mode 100644 chrome/android/java/res/layout/doh_editor.xml + create mode 100644 chrome/android/java/res/xml/doh_preferences.xml + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/preferences/DoHEditor.java + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/preferences/DoHPreferences.java + +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 +@@ -1251,7 +1251,9 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/preferences/ClearBrowsingDataCheckBoxPreference.java", + "java/src/org/chromium/chrome/browser/preferences/ExpandablePreferenceGroup.java", + "java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java", ++ "java/src/org/chromium/chrome/browser/preferences/DoHEditor.java", + "java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java", ++ "java/src/org/chromium/chrome/browser/preferences/DoHPreferences.java", + "java/src/org/chromium/chrome/browser/preferences/HyperlinkPreference.java", + "java/src/org/chromium/chrome/browser/preferences/LearnMorePreference.java", + "java/src/org/chromium/chrome/browser/preferences/LegalInformationPreferences.java", +diff --git a/chrome/android/java/res/layout/doh_editor.xml b/chrome/android/java/res/layout/doh_editor.xml +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/res/layout/doh_editor.xml +@@ -0,0 +1,65 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml +--- a/chrome/android/java/res/values/values.xml ++++ b/chrome/android/java/res/values/values.xml +@@ -88,6 +88,8 @@ + 400 + 200 + ++ https://www.bromite.org/doh ++ + + true + +diff --git a/chrome/android/java/res/xml/doh_preferences.xml b/chrome/android/java/res/xml/doh_preferences.xml +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/res/xml/doh_preferences.xml +@@ -0,0 +1,25 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml +--- a/chrome/android/java/res/xml/privacy_preferences.xml ++++ b/chrome/android/java/res/xml/privacy_preferences.xml +@@ -19,6 +19,11 @@ + android:key="can_make_payment" + android:title="@string/can_make_payment_title" + android:summary="@string/settings_can_make_payment_toggle_label" /> ++ + { ++ FeatureUtilities.setDoHEnabled((boolean) newValue); ++ return true; ++ }); ++ ++ mDoHEdit = findPreference(PREF_DOH_EDIT); ++ updateCurrentDoHUrl(); ++ } ++ ++ private void updateCurrentDoHUrl() { ++ mDoHEdit.setSummary(FeatureUtilities.getDoHTemplates()); ++ } ++ ++ @Override ++ public void onResume() { ++ super.onResume(); ++ updateCurrentDoHUrl(); ++ } ++} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java +@@ -163,6 +163,27 @@ public class FeatureUtilities { + nativeSetCustomTabVisible(visible); + } + ++ /** ++ * Records whether custom URL for DoH is enabled with native-side feature utilities. ++ * @param url Whether custom URL is enabled or not. ++ */ ++ public static void setDoHEnabled(boolean enabled) { ++ nativeSetDoHEnabled(enabled); ++ } ++ ++ public static boolean getDoHEnabled() { ++ return nativeGetDoHEnabled(); ++ } ++ ++ public static void setDoHTemplates(String t) { ++ nativeSetDoHTemplates(t); ++ } ++ ++ public static String getDoHTemplates() { ++ return nativeGetDoHTemplates(); ++ } ++ ++ + /** + * Records whether the activity is in multi-window mode with native-side feature utilities. + * @param isInMultiWindowMode Whether the activity is in Android N multi-window mode. +@@ -897,6 +918,10 @@ public class FeatureUtilities { + } + + private static native void nativeSetCustomTabVisible(boolean visible); ++ private static native void nativeSetDoHEnabled(boolean enabled); ++ private static native boolean nativeGetDoHEnabled(); ++ private static native void nativeSetDoHTemplates(String templates); ++ private static native String nativeGetDoHTemplates(); + private static native void nativeSetIsInMultiWindowMode(boolean isInMultiWindowMode); + private static native boolean nativeIsNetworkServiceWarmUpEnabled(); + } +diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd +--- a/chrome/android/java/strings/android_chrome_strings.grd ++++ b/chrome/android/java/strings/android_chrome_strings.grd +@@ -656,6 +656,17 @@ CHAR-LIMIT guidelines: + Chrome Passwords + + ++ ++ ++ Edit DoH template URLs ++ ++ ++ DoH template URLs ++ ++ ++ Visit help page ++ ++ + + + Edit home page +diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd +--- a/chrome/app/generated_resources.grd ++++ b/chrome/app/generated_resources.grd +@@ -6507,6 +6507,12 @@ the Bookmarks menu."> + + Home page + ++ ++ Secure DNS ++ ++ ++ Configure DNS-over-HTTPS (DoH) secure DNS ++ + + + +diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/android/feature_utilities.cc +--- a/chrome/browser/android/feature_utilities.cc ++++ b/chrome/browser/android/feature_utilities.cc +@@ -7,6 +7,9 @@ + #include "chrome/android/chrome_jni_headers/FeatureUtilities_jni.h" + + #include "base/android/jni_string.h" ++#include "chrome/browser/browser_process.h" ++#include "components/prefs/pref_service.h" ++#include "chrome/common/pref_names.h" + #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h" + #include "chrome/browser/profiles/profile_manager.h" + #include "components/ntp_snippets/content_suggestions_service.h" +@@ -73,3 +76,23 @@ static jboolean JNI_FeatureUtilities_IsNetworkServiceWarmUpEnabled( + return content::IsOutOfProcessNetworkService() && + base::FeatureList::IsEnabled(features::kWarmUpNetworkProcess); + } ++ ++static jboolean JNI_FeatureUtilities_GetDoHEnabled(JNIEnv* env) { ++ std::string doh_mode = g_browser_process->local_state()->GetString(prefs::kDnsOverHttpsMode); ++ return ((doh_mode == "secure") || (doh_mode == "auto")); ++} ++ ++static void JNI_FeatureUtilities_SetDoHEnabled(JNIEnv* env, jboolean enabled) { ++ if (enabled) ++ g_browser_process->local_state()->SetString(prefs::kDnsOverHttpsMode, "secure"); ++ else ++ g_browser_process->local_state()->SetString(prefs::kDnsOverHttpsMode, "off"); ++} ++ ++static ScopedJavaLocalRef JNI_FeatureUtilities_GetDoHTemplates(JNIEnv* env) { ++ return base::android::ConvertUTF8ToJavaString(env, g_browser_process->local_state()->GetString(prefs::kDnsOverHttpsTemplates)); ++} ++ ++static void JNI_FeatureUtilities_SetDoHTemplates(JNIEnv* env, const JavaParamRef& templates) { ++ g_browser_process->local_state()->SetString(prefs::kDnsOverHttpsTemplates, base::android::ConvertJavaStringToUTF8(env, templates)); ++} +diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc +--- a/chrome/browser/net/system_network_context_manager.cc ++++ b/chrome/browser/net/system_network_context_manager.cc +@@ -134,6 +134,7 @@ void GetStubResolverConfig( + + std::string doh_templates = + local_state->GetString(prefs::kDnsOverHttpsTemplates); ++ LOG(INFO) << "DoH templates: '" << doh_templates << "' with mode " << doh_mode; + std::string server_method; + if (!doh_templates.empty() && + *secure_dns_mode != net::DnsConfig::SecureDnsMode::OFF) { +@@ -404,40 +405,11 @@ SystemNetworkContextManager::SystemNetworkContextManager( + // features before registering change callbacks for these preferences. + local_state_->SetDefaultPrefValue(prefs::kBuiltInDnsClientEnabled, + base::Value(ShouldEnableAsyncDns())); +- std::string default_doh_mode = chrome_browser_net::kDnsOverHttpsModeOff; +- std::string default_doh_templates = ""; +- if (base::FeatureList::IsEnabled(features::kDnsOverHttps)) { +- if (features::kDnsOverHttpsFallbackParam.Get()) { +- default_doh_mode = chrome_browser_net::kDnsOverHttpsModeAutomatic; +- } else { +- default_doh_mode = chrome_browser_net::kDnsOverHttpsModeSecure; +- } +- default_doh_templates = features::kDnsOverHttpsTemplatesParam.Get(); +- } ++ //NOTE: DoH fallback feature to insecure mode is not evaluated + local_state_->SetDefaultPrefValue(prefs::kDnsOverHttpsMode, +- base::Value(default_doh_mode)); ++ base::Value(chrome_browser_net::kDnsOverHttpsModeOff)); + local_state_->SetDefaultPrefValue(prefs::kDnsOverHttpsTemplates, +- base::Value(default_doh_templates)); +- +- // If the user has explicitly enabled or disabled the DoH experiment in +- // chrome://flags, store that choice in the user prefs so that it can be +- // persisted after the experiment ends. Also make sure to remove the stored +- // prefs value if the user has changed their chrome://flags selection to the +- // default. +- flags_ui::PrefServiceFlagsStorage flags_storage(local_state_); +- std::set entries = flags_storage.GetFlags(); +- if (entries.count("dns-over-https@1")) { +- // The user has "Enabled" selected. +- local_state_->SetString(prefs::kDnsOverHttpsMode, +- chrome_browser_net::kDnsOverHttpsModeAutomatic); +- } else if (entries.count("dns-over-https@2")) { +- // The user has "Disabled" selected. +- local_state_->SetString(prefs::kDnsOverHttpsMode, +- chrome_browser_net::kDnsOverHttpsModeOff); +- } else { +- // The user has "Default" selected. +- local_state_->ClearPref(prefs::kDnsOverHttpsMode); +- } ++ base::Value(features::kDnsOverHttpsTemplatesParam.Get())); + + PrefChangeRegistrar::NamedChangeCallback dns_pref_callback = + base::BindRepeating(&OnStubResolverConfigChanged, +diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc +--- a/chrome/common/chrome_features.cc ++++ b/chrome/common/chrome_features.cc +@@ -271,12 +271,12 @@ const char kDisallowUnsafeHttpDownloadsParamName[] = "MimeTypeList"; + + // Enable DNS over HTTPS (DoH). + const base::Feature kDnsOverHttps{"DnsOverHttps", +- base::FEATURE_DISABLED_BY_DEFAULT}; ++ base::FEATURE_ENABLED_BY_DEFAULT}; + + // Set whether fallback to insecure DNS is allowed by default. This setting may + // be overridden for individual transactions. + const base::FeatureParam kDnsOverHttpsFallbackParam{&kDnsOverHttps, +- "Fallback", true}; ++ "Fallback", false}; + + // Supply one or more space-separated DoH server URI templates to use when this + // feature is enabled. If no templates are specified, then a hardcoded mapping +-- +2.11.0 + diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index f3304dcf..f1cb5ed9 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -3,25 +3,10 @@ Date: Thu, 2 Nov 2017 18:21:16 +0200 Subject: Allow playing audio in background --- - chrome/browser/about_flags.cc | 4 ++++ media/blink/webmediaplayer_impl.cc | 12 +++++++++++- media/blink/webmediaplayer_impl.h | 2 ++ - 3 files changed, 17 insertions(+), 1 deletion(-) + 2 files changed, 13 insertions(+), 1 deletion(-) -diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc ---- a/chrome/browser/about_flags.cc -+++ b/chrome/browser/about_flags.cc -@@ -1603,6 +1603,10 @@ const FeatureEntry kFeatureEntries[] = { - FEATURE_VALUE_TYPE(features::kAppNotificationStatusMessaging)}, - #endif // OS_ANDROID - {"enable-devtools-experiments", flag_descriptions::kDevtoolsExperimentsName, -+ {"resume-background-video", -+ flag_descriptions::kResumeBackgroundVideoName, -+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll, -+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)}, - flag_descriptions::kDevtoolsExperimentsDescription, kOsDesktop, - SINGLE_VALUE_TYPE(switches::kEnableDevToolsExperiments)}, - {"silent-debugger-extension-api", diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc diff --git a/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch b/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch index 815a6215..0ac9ef74 100644 --- a/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch +++ b/build/patches/Always-respect-async-dns-flag-regardless-of-SDK-version.patch @@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -244,7 +244,7 @@ void OnAuthPrefsChanged(PrefService* local_state, +@@ -242,7 +242,7 @@ void OnAuthPrefsChanged(PrefService* local_state, // Android this includes checking the Android version in the field trial. bool ShouldEnableAsyncDns() { bool feature_can_be_enabled = true; diff --git a/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch b/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch index ec0e90f4..6a7fb9db 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch @@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -343,6 +343,7 @@ void AudioContext::StopRendering() { +@@ -358,6 +358,7 @@ void AudioContext::StopRendering() { double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); diff --git a/build/patches/Do-not-grant-notifications-to-default-search-engine.patch b/build/patches/Do-not-grant-notifications-to-default-search-engine.patch index d0c07e8a..cf595284 100644 --- a/build/patches/Do-not-grant-notifications-to-default-search-engine.patch +++ b/build/patches/Do-not-grant-notifications-to-default-search-engine.patch @@ -63,7 +63,7 @@ diff --git a/chrome/browser/android/search_permissions/search_permissions_servic diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -279,7 +279,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ +@@ -288,7 +288,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ #if defined(OS_ANDROID) // Enable changing default downloads storage location on Android. const base::Feature kDownloadsLocationChange{"DownloadsLocationChange", diff --git a/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch b/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch index 07c8beca..e1523e0f 100644 --- a/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch +++ b/build/patches/Enable-changing-default-downloads-storage-location-by-default.patch @@ -9,7 +9,7 @@ Subject: Enable changing default downloads storage location by default diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -279,7 +279,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ +@@ -288,7 +288,7 @@ const base::FeatureParam kDnsOverHttpsTemplatesParam{ #if defined(OS_ANDROID) // Enable changing default downloads storage location on Android. const base::Feature kDownloadsLocationChange{"DownloadsLocationChange", diff --git a/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch b/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch index 660aa523..e79d0a96 100644 --- a/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch +++ b/build/patches/Enable-site-per-process-isolation-for-devices-with-enough-memory.patch @@ -9,7 +9,7 @@ Subject: Enable site per process isolation for devices with enough memory diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -608,11 +608,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL", +@@ -617,11 +617,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL", // browser_features, as they are only used on the browser side. const base::Feature kSitePerProcess { "site-per-process", @@ -21,7 +21,7 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc }; // Controls a mode for dynamically process-isolating sites where the user has -@@ -634,7 +630,7 @@ const base::Feature kSiteIsolationForPasswordSites{ +@@ -643,7 +639,7 @@ const base::Feature kSiteIsolationForPasswordSites{ // base::SysInfo::AmountOfPhysicalMemoryMB(). const base::Feature kSitePerProcessOnlyForHighMemoryClients{ "site-per-process-only-for-high-memory-clients", diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch index c7f0fa47..b73c658a 100644 --- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch +++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video-functionality.patch @@ -146,7 +146,7 @@ new file mode 100644 +#ifndef video_bg_play_h +#define video_bg_play_h + -+#define VIDEO_BG_PLAY_JS "'use strict';\n\n/* generate a synthetic keypress to circumvent the extremely useful pause-and-prompt beaviour */\nsetInterval(function() {\n document.dispatchEvent(new KeyboardEvent(\"keydown\", {key : \"a\", char : \"a\", shiftKey: false}));\n}, 3 * 60 * 1000);\n\n/* video background play fix - original version by timdream */\ndocument.videoBGFix = {};\n\n// Page Visibility API\nObject.defineProperties(document.videoBGFix,\n { 'hidden': {value: false}, 'visibilityState': {value: 'visible'} });\n\nwindow.addEventListener(\n 'visibilitychange', evt => evt.stopImmediatePropagation(), true);\nwindow.addEventListener(\n 'blur', evt => evt.stopImmediatePropagation(), true);\n\n// Fullscreen API\nwindow.addEventListener('fullscreenchange', evt => {\n Object.defineProperties(document.videoBGFix,\n { 'fullscreenEnabled': {value: true},\n 'fullscreen': {value: true},\n 'fullscreenElement': {value: document.fullscreenElement.videoBGFix}});\n window.addEventListener(\n 'fullscreenchange', evt => evt.stopImmediatePropagation(), true);\n}, { capture: true, once: true });\n" ++#define VIDEO_BG_PLAY_JS "'use strict';\n\nconst IS_YOUTUBE = window.location.hostname.search(/(?:^|.+\\.)youtube.com/) > -1 ||\n window.location.hostname.search(/(?:^|.+\\.)youtube-nocookie.com/) > -1;\nconst IS_MOBILE_YOUTUBE = window.location.hostname == 'm.youtube.com';\nconst IS_VIMEO = window.location.hostname.search(/(?:^|.+\\.)vimeo.com/) > -1;\n\n/* video background play fix - based on https://github.com/mozilla/video-bg-play */\ndocument.wrappedJSObject = {};\n\n// Page Visibility API\nObject.defineProperties(document.wrappedJSObject,\n { 'hidden': {value: false}, 'visibilityState': {value: 'visible'} });\n\nwindow.addEventListener(\n 'visibilitychange', evt => evt.stopImmediatePropagation(), true);\n\n// Fullscreen API\nif (IS_VIMEO) {\n window.addEventListener(\n 'fullscreenchange', evt => evt.stopImmediatePropagation(), true);\n}\n\n// User activity tracking\nif (IS_YOUTUBE) {\n const refreshInterval = 2 + 3 * 60 * 1000; // every 3 minutes\n waitForYoutubeLactInit(() => refreshLact(), refreshInterval);\n}\n\nfunction waitForYoutubeLactInit(aCallback, aCallbackInterval, aDelay) {\n let pageWin = window.wrappedJSObject;\n if (pageWin.hasOwnProperty('_lact')) {\n window.setInterval(aCallback, aCallbackInterval);\n } else {\n window.setTimeout(() => waitForYoutubeLactInit(aCallback,\n aCallbackInterval,\n aDelay * 2),\n aDelay);\n }\n}\n\nfunction refreshLact() {\n window.wrappedJSObject._lact = Date.now();\n}\n" + +#endif // video_bg_play_h diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc diff --git a/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch b/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch index be8ab620..0c4d6a3b 100644 --- a/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch +++ b/build/patches/Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggest diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -1974,6 +1974,9 @@ const FeatureEntry kFeatureEntries[] = { +@@ -1966,6 +1966,9 @@ const FeatureEntry kFeatureEntries[] = { {"enable-homepage-tile", flag_descriptions::kHomepageTileName, flag_descriptions::kHomepageTileDescription, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kHomepageTile)}, diff --git a/build/patches/User-Agent-anonymize.patch b/build/patches/User-Agent-anonymize.patch index 81fb8908..7b91240b 100644 --- a/build/patches/User-Agent-anonymize.patch +++ b/build/patches/User-Agent-anonymize.patch @@ -18,7 +18,7 @@ diff --git a/components/version_info/version_info.cc b/components/version_info/v std::string GetProductNameAndVersionForUserAgent() { - return "Chrome/" + GetVersionNumber(); + // latest stable version -+ return "Chrome/78.0.3904.96"; ++ return "Chrome/78.0.3904.108"; } std::string GetProductName() {