commit
8a1352c7f8
114 changed files with 11645 additions and 2499 deletions
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -6,7 +6,7 @@ about: Create a Bromite bug report
|
|||
|
||||
**Bromite version**
|
||||
|
||||
Version: `v67...`
|
||||
Version: `69.0...`
|
||||
Arch: `arm` or `arm64` or `x86`
|
||||
Android version: ... (example: `lollipop`)
|
||||
|
||||
|
|
4
.github/ISSUE_TEMPLATE/feature_request.md
vendored
4
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -5,7 +5,7 @@ about: Suggest a privacy-related idea for this project
|
|||
---
|
||||
|
||||
**Is your feature request related to privacy?**
|
||||
Only privacy-related feature requests are considered.
|
||||
Features that are not related to privacy are unlikely to be considered.
|
||||
|
||||
**Is there a patch available for this feature somewhere?**
|
||||
...
|
||||
|
@ -14,4 +14,4 @@ Only privacy-related feature requests are considered.
|
|||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
A clear and concise description of any alternative solutions or features you have considered.
|
||||
|
|
81
CHANGELOG.md
81
CHANGELOG.md
|
@ -1,3 +1,84 @@
|
|||
# 71.0.3578.101
|
||||
|
||||
# 71.0.3578.98
|
||||
* do not ask permissions for camera when importing bookmarks (fixes https://github.com/bromite/bromite/issues/200)
|
||||
|
||||
# 71.0.3578.88
|
||||
* add proxy configuration page (see https://github.com/bromite/bromite/wiki/ProxyConfiguration)
|
||||
* use more recent versions in User-Agent (fixes https://github.com/bromite/bromite/issues/156)
|
||||
|
||||
# 71.0.3578.85
|
||||
* fix blurry adaptive icon (fixes https://github.com/bromite/bromite/issues/197)
|
||||
|
||||
# 71.0.3578.76
|
||||
|
||||
# 71.0.3578.72
|
||||
* add flag to disable IPv6 probes
|
||||
|
||||
# 70.0.3538.107
|
||||
* added adaptive icon (fixes https://github.com/bromite/bromite/issues/181)
|
||||
* do not change randomisation at each call (fixes https://github.com/bromite/bromite/issues/177)
|
||||
* do not enable #enable-scroll-anchor-serialization by default
|
||||
|
||||
# 70.0.3538.102
|
||||
* do not grant notifications to default search engine
|
||||
* remove all promos from bookmark manager page
|
||||
* re-introduced various patches to eradicate binary blob dependencies (only Cast left)
|
||||
* remove contacts picker permission
|
||||
|
||||
# 70.0.3538.95
|
||||
* fix crash on bookmark edit activity (fixes https://github.com/bromite/bromite/issues/172)
|
||||
* fix slow chrome://flags (fixes https://github.com/bromite/bromite/issues/173)
|
||||
* enable TLS 1.3 final support by default (fixes https://github.com/bromite/bromite/issues/174)
|
||||
* dropped some patches related to GCM/GMS on suspicion of being related to random crashes
|
||||
|
||||
# 70.0.3538.87
|
||||
* enable history requirement of user gesture (fixes https://github.com/bromite/bromite/issues/171)
|
||||
* enable serialization of scroll position changes while loading (fixes https://github.com/bromite/bromite/issues/171)
|
||||
* remove passwords keyboard accessory option (fixes https://github.com/bromite/bromite/issues/171)
|
||||
* some improvements to bookmark import/export interaction
|
||||
* add flag to disable orientation API, disabled by default
|
||||
* disable device motion API by default (fixes https://github.com/bromite/bromite/issues/171)
|
||||
|
||||
# 70.0.3538.83
|
||||
* fix keep session cookies option showing on all site settings views
|
||||
* fix blank site settings entry showing (fixes https://github.com/bromite/bromite/issues/166)
|
||||
* offer builtin autocomplete for chrome://flags quick access
|
||||
|
||||
# 70.0.3538.80
|
||||
* add flag to disable video resume functionality, allowing to not pause video playback on tab switch (fixes https://github.com/bromite/bromite/issues/108)
|
||||
* prevent "are you there" prompts from appearing when playing videos
|
||||
* completely disable update scheduler checks to fix a related crash
|
||||
|
||||
# 70.0.3538.77
|
||||
* disable generic sensor APIs by default (fixes https://github.com/bromite/bromite/issues/160)
|
||||
* introduce flag to disable device motion API (fixes https://github.com/bromite/bromite/issues/160)
|
||||
* add Quad9 as a DNS-over-HTTPS (DoH) option (fixes https://github.com/bromite/bromite/issues/140)
|
||||
|
||||
# 70.0.3538.71
|
||||
* fix bug with canvas fingerprinting (fixes https://github.com/bromite/bromite/issues/154)
|
||||
|
||||
# 70.0.3538.67
|
||||
* re-enabled DNS-over-HTTPS (DoH) flag (fixes https://github.com/bromite/bromite/issues/139)
|
||||
* dropped GCM removal patch
|
||||
* disable kSigninAllowedOnNextStartup by default
|
||||
* permanently disable query-in-omnibox (fixes https://github.com/bromite/bromite/issues/143)
|
||||
|
||||
# 69.0.3497.113
|
||||
* disabled DNS-over-HTTPS (DoH) flag, not working since 69.0.3497.73 (see https://github.com/bromite/bromite/issues/139)
|
||||
|
||||
# 69.0.3497.109
|
||||
|
||||
# 69.0.3497.102
|
||||
* ungoogled-chromium: disable network time tracker
|
||||
* ungoogled-chromium: remove third-party/analytics
|
||||
* ungoogled-chromium: always use local Devtools instead of remote files
|
||||
* build without safebrowsing
|
||||
* drop "Hide NTP tiles" flag
|
||||
|
||||
# 69.0.3497.91
|
||||
* fixed crash when accessing site settings media preferences (fixes https://github.com/bromite/bromite/issues/122)
|
||||
|
||||
# 69.0.3497.73
|
||||
* enabled WebRTC
|
||||
* drop clear HTTP cache patch
|
||||
|
|
30
GN_ARGS
Normal file
30
GN_ARGS
Normal file
|
@ -0,0 +1,30 @@
|
|||
android_channel="stable"
|
||||
blink_symbol_level=1
|
||||
dcheck_always_on=false
|
||||
debuggable_apks=false
|
||||
enable_ac3_eac3_audio_demuxing=true enable_hevc_demuxing=true enable_iterator_debugging=false
|
||||
enable_av1_decoder=true
|
||||
enable_hangout_services_extension=false
|
||||
enable_mdns=false
|
||||
enable_mse_mpeg2ts_stream_parser=true ffmpeg_branding="Chrome" proprietary_codecs=true
|
||||
enable_nacl=false
|
||||
enable_nacl_nonsfi=false
|
||||
enable_remoting=false
|
||||
enable_reporting=false
|
||||
enable_resource_whitelist_generation=false
|
||||
enable_vr=false
|
||||
fieldtrial_testing_like_official_build=true
|
||||
is_component_build=false
|
||||
is_debug=false
|
||||
is_official_build=true
|
||||
jumbo_file_merge_limit=60
|
||||
safe_browsing_mode=0
|
||||
strip_absolute_paths_from_debug_symbols=true
|
||||
strip_debug_info=false
|
||||
symbol_level=1
|
||||
target_os="android"
|
||||
use_debug_fission=true
|
||||
use_errorprone_java_compiler=false
|
||||
use_official_google_api_keys=false
|
||||
use_openh264=true chrome_pgo_phase=0 full_wpo_on_official=true
|
||||
use_sysroot=false
|
38
README.md
38
README.md
|
@ -8,8 +8,6 @@ Bromite is [Chromium](https://www.chromium.org/Home) plus some patches for ad bl
|
|||
|
||||
Bromite is only available for Android v4.1 and above.
|
||||
|
||||
See [open issues](https://github.com/bromite/bromite/issues) for the development in progress.
|
||||
|
||||
<img src="https://www.bromite.org/bromite_bromite_gh_downloads.svg" alt="downloads on Github" title="downloads on Github" />
|
||||
|
||||
# Goals
|
||||
|
@ -35,9 +33,16 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
|
|||
No.
|
||||
This is not a limitation of Bromite but of all Chromium-based projects in general, as general public is not allowed to use Google's APIs for free unless when using Chrome.
|
||||
|
||||
Additionally, these features would not be privacy-friendly.
|
||||
|
||||
## Does Bromite require root?
|
||||
No.
|
||||
|
||||
## Is Bromite de-googled?
|
||||
|
||||
Yes, although this has not been verified (and hardly can be) under all situations; if you were to find connections to cloud-based services please report them via the issue tracker.
|
||||
Projects which follow a strict approach on this are [Iridium](https://iridiumbrowser.de/) and [Inox patchset](https://github.com/gcarq/inox-patchset).
|
||||
|
||||
## What is the SystemWebView?
|
||||
It is the core component of Android for all web page visualizations. For example when you access a new wifi network and need to activate it, that is using the SystemWebView. If you do not know what it is then you do not need to install it.
|
||||
|
||||
|
@ -47,14 +52,16 @@ See [this wiki page](https://github.com/bromite/bromite/wiki/Enabling-DNS-over-H
|
|||
|
||||
## Can you add dark mode/some cool themes?
|
||||
No.
|
||||
Bromite is about adblocking and privacy.
|
||||
Bromite is about privacy and adblocking.
|
||||
|
||||
## Can you add HTTPS everywhere?
|
||||
No.
|
||||
We cannot add add-ons to Bromite (merely some features) and anyway HTTPS everywhere in particular is too invasive to be easily maintained across new releases.
|
||||
We cannot add add-ons to Bromite (merely some features).
|
||||
|
||||
## Is Bromite on Play Store?
|
||||
No, and this is unlikely to change. The Play Store would not allow total freedom on the adblocking choice, amongst other limitations.
|
||||
No, and this is unlikely to change. Many limitations apply for submissions there, including which ads are allowed to be blocked.
|
||||
|
||||
Bromite favors user freedom in software choice: the device is yours so you get to choose which software to run on it, end of the story.
|
||||
|
||||
## Is Bromite on F-Droid?
|
||||
It is not on the official F-Droid repository and there are no (more) plans to submit it.
|
||||
|
@ -68,16 +75,19 @@ Yes, since version 69. While the desktop version of Chromium has an option to di
|
|||
|
||||
* baked-in adblock engine with filters from EasyList, EasyPrivacy and others
|
||||
* remove click-tracking and AMP from search results
|
||||
* DNS-over-HTTPS support via Google/CloudFlare servers
|
||||
* DNS-over-HTTPS support via Google, Cloudflare and Quad9 servers
|
||||
* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support
|
||||
* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines
|
||||
* chrome flags to hide NTP tiles, disable custom intents and clear session on exit
|
||||
* chrome flags to disable custom intents and clear session on exit
|
||||
* always-incognito mode
|
||||
* completely removed safe browsing and other privacy-unfriendly features
|
||||
* anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs
|
||||
* use fixed User-Agent to conceal real model and browser version
|
||||
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
|
||||
* canvas, audio and other anti-fingerprinting mitigations
|
||||
|
||||
## Features not related to privacy
|
||||
* import/export bookmarks
|
||||
* allow playing videos in background
|
||||
* allow playing videos in background tabs and disable pause on switching tabs
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* built with official speed optimizations
|
||||
|
||||
|
@ -85,14 +95,14 @@ You can inspect all functionality/privacy changes by reading the patches: https:
|
|||
|
||||
# Releases
|
||||
|
||||
All built versions are available as [releases](https://github.com/bromite/bromite/releases); the [official website](https://www.bromite.org/) points to those releases and - when browsing via Android - it will automatically select the one apt for your device.
|
||||
All built versions are available as [releases](https://github.com/bromite/bromite/releases); the [official website](https://www.bromite.org/) points to those releases and - when browsing via Android - it will automatically select the one apt for your device (or none otherwise).
|
||||
|
||||
Each tag corresponds to a Chromium Stable release tag.
|
||||
|
||||
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDKs versions 16 and 21
|
||||
Additionally, [SystemWebView](https://www.bromite.org/system_web_view) and the [vanilla Chromium](https://www.bromite.org/chromium) builds are provided.
|
||||
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDK versions 16 and 21; [Bromite SystemWebView](https://www.bromite.org/system_web_view) is provided as well (SDK21+).
|
||||
For every Bromite build you can always find a matching [vanilla Chromium](https://www.bromite.org/chromium) build which is used for example to verify which issues are specific to Bromite or not.
|
||||
|
||||
The official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
|
||||
All official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
|
||||
|
||||
## Integrity and authenticity
|
||||
|
||||
|
@ -102,7 +112,6 @@ $ sha256sum --check brm_68.0.3440.54.sha256.txt
|
|||
arm64_SystemWebView.apk: OK
|
||||
arm64_ChromePublic.apk: OK
|
||||
arm64_ChromeModernPublic.apk: OK
|
||||
arm64_MonochromePublic.apk: OK
|
||||
```
|
||||
|
||||
If you prefer an UI-based tool, you might want to look into [GtkHash](https://github.com/tristanheaven/gtkhash).
|
||||
|
@ -134,6 +143,7 @@ Please refer to [official Chromium build documentation](https://www.chromium.org
|
|||
* [Brave Browser](https://github.com/brave/browser-android-tabs) for some patches
|
||||
* nochromo for the original adblock patch
|
||||
* [AdBlock Plus](https://adblockplus.org/), [uBlock Origin](https://github.com/uBlockOrigin), [Peter Lowe's adservers list](https://pgl.yoyo.org/adservers/), [EasyList and EasyPrivacy](https://easylist.to/) for the filters included
|
||||
* [Vadim Pleshkov](http://vadimpleshkov.me/) for Bromite's logo
|
||||
|
||||
# License
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
|
|||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -22,5 +22,5 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
|||
|
||||
bool ShouldDelayRemoteNTP(const GURL& search_provider_url, Profile* profile) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -41,5 +41,5 @@ diff --git a/services/device/battery/battery_status_service.cc b/services/device
|
|||
return callback_list_.Add(callback);
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -3,22 +3,9 @@ Date: Thu, 22 Mar 2018 22:11:57 +0100
|
|||
Subject: Battery API: return nothing
|
||||
|
||||
---
|
||||
services/device/battery/battery_status_service.cc | 2 +-
|
||||
.../renderer/modules/battery/battery_manager.cc | 25 ++++------------------
|
||||
2 files changed, 5 insertions(+), 22 deletions(-)
|
||||
1 file changed, 4 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/services/device/battery/battery_status_service.cc b/services/device/battery/battery_status_service.cc
|
||||
--- a/services/device/battery/battery_status_service.cc
|
||||
+++ b/services/device/battery/battery_status_service.cc
|
||||
@@ -41,7 +41,7 @@ BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) {
|
||||
if (!battery_fetcher_)
|
||||
battery_fetcher_ = BatteryStatusManager::Create(update_callback_);
|
||||
|
||||
-#if 0
|
||||
+#if !defined(OS_ANDROID)
|
||||
if (callback_list_.empty()) {
|
||||
bool success = battery_fetcher_->StartListeningBatteryChange();
|
||||
// On failure pass the default values back.
|
||||
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
--- a/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
|
@ -56,22 +43,22 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
|
|||
return;
|
||||
}
|
||||
-
|
||||
- Document* document = ToDocument(GetExecutionContext());
|
||||
- Document* document = To<Document>(GetExecutionContext());
|
||||
- DCHECK(document);
|
||||
- if (document->IsContextPaused() || document->IsContextDestroyed())
|
||||
- return;
|
||||
-
|
||||
- if (battery_status_.Charging() != old_status.Charging())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::chargingchange));
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::chargingchange));
|
||||
- if (battery_status_.charging_time() != old_status.charging_time())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::chargingtimechange));
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::chargingtimechange));
|
||||
- if (battery_status_.discharging_time() != old_status.discharging_time())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::dischargingtimechange));
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::dischargingtimechange));
|
||||
- if (battery_status_.Level() != old_status.Level())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::levelchange));
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::levelchange));
|
||||
}
|
||||
|
||||
void BatteryManager::RegisterWithDispatcher() {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -40,5 +40,5 @@ diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gc
|
|||
// TODO(https://crbug.com/808498): Re-add data use measurement once
|
||||
// SimpleURLLoader supports it.
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -60,5 +60,5 @@ diff --git a/components/component_updater/configurator_impl.h b/components/compo
|
|||
const int initial_delay_;
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Out with all those tracking cookies!
|
|||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
@@ -119,7 +119,7 @@ void ContentSettingsRegistry::Init() {
|
||||
@@ -118,7 +118,7 @@ void ContentSettingsRegistry::Init() {
|
||||
// WARNING: The string names of the permissions passed in below are used to
|
||||
// generate preference names and should never be changed!
|
||||
|
||||
|
@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
|
|||
WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
|
||||
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -42,5 +42,5 @@ diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc
|
|||
#endif // defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
} // namespace
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ References: https://github.com/iridium-browser/iridium-browser/issues/33
|
|||
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
|
||||
--- a/chrome/browser/signin/signin_promo.cc
|
||||
+++ b/chrome/browser/signin/signin_promo.cc
|
||||
@@ -140,6 +140,7 @@ const char kSigninPromoLandingURLSuccessPage[] = "success.html";
|
||||
@@ -130,6 +130,7 @@ const char kSigninPromoLandingURLSuccessPage[] = "success.html";
|
||||
|
||||
bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) {
|
||||
DCHECK(profile);
|
||||
|
@ -31,5 +31,5 @@ diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signi
|
|||
// Don't show if the profile is an incognito.
|
||||
if (profile->IsOffTheRecord())
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Disable all omissions (already shadowed by first flag)
|
|||
diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
|
||||
--- a/components/url_formatter/url_formatter.cc
|
||||
+++ b/components/url_formatter/url_formatter.cc
|
||||
@@ -407,12 +407,12 @@ bool IDNToUnicodeOneComponent(const base::char16* comp,
|
||||
@@ -410,12 +410,12 @@ IDNConversionStatus IDNToUnicodeOneComponent(const base::char16* comp,
|
||||
} // namespace
|
||||
|
||||
const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
|
@ -30,5 +30,5 @@ diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatte
|
|||
|
||||
const FormatUrlType kFormatUrlOmitDefaults =
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -14,11 +14,12 @@ Subject: Modify default preferences
|
|||
chrome/browser/ui/navigation_correction_tab_observer.cc | 2 +-
|
||||
chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc | 4 ----
|
||||
chrome/service/cloud_print/connector_settings.cc | 2 +-
|
||||
components/autofill/core/browser/autofill_manager.cc | 2 +-
|
||||
components/autofill/core/browser/autofill_manager.cc | 5 +----
|
||||
components/autofill/core/common/autofill_prefs.cc | 6 +++---
|
||||
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
|
||||
components/safe_browsing/common/safe_browsing_prefs.cc | 4 ++--
|
||||
extensions/common/extension.cc | 8 --------
|
||||
15 files changed, 17 insertions(+), 29 deletions(-)
|
||||
16 files changed, 20 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc
|
||||
--- a/chrome/browser/background/background_mode_manager.cc
|
||||
|
@ -95,7 +96,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
|
|||
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
|
||||
--- a/chrome/browser/signin/signin_promo.cc
|
||||
+++ b/chrome/browser/signin/signin_promo.cc
|
||||
@@ -385,8 +385,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
|
||||
@@ -353,8 +353,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
|
||||
void RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterIntegerPref(prefs::kSignInPromoStartupCount, 0);
|
||||
|
@ -109,7 +110,7 @@ diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signi
|
|||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -70,11 +70,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -68,11 +68,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
|
||||
registry->RegisterBooleanPref(
|
||||
|
@ -126,7 +127,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
|
|||
diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
--- a/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
+++ b/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
@@ -58,7 +58,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {
|
||||
@@ -56,7 +56,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {
|
||||
void NavigationCorrectionTabObserver::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* prefs) {
|
||||
prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled,
|
||||
|
@ -138,7 +139,7 @@ diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/br
|
|||
diff --git a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
--- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
@@ -143,10 +143,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
|
||||
@@ -127,10 +127,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kLocalDiscoveryNotificationsEnabled,
|
||||
|
@ -164,19 +165,47 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
|
|||
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_manager.cc
|
||||
@@ -189,7 +189,7 @@ void AutofillManager::RegisterProfilePrefs(
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kAutofillCreditCardSigninPromoImpressionCount, 0);
|
||||
@@ -290,10 +290,7 @@ bool AutofillManager::ShouldShowCreditCardSigninPromo(
|
||||
bool AutofillManager::ShouldParseForms(const std::vector<FormData>& forms,
|
||||
const base::TimeTicks timestamp) {
|
||||
bool enabled = IsAutofillEnabled();
|
||||
- if (!has_logged_autofill_enabled_) {
|
||||
- AutofillMetrics::LogIsAutofillEnabledAtPageLoad(enabled);
|
||||
- has_logged_autofill_enabled_ = true;
|
||||
- }
|
||||
+ has_logged_autofill_enabled_ = true;
|
||||
|
||||
return enabled;
|
||||
}
|
||||
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
|
||||
--- a/components/autofill/core/common/autofill_prefs.cc
|
||||
+++ b/components/autofill/core/common/autofill_prefs.cc
|
||||
@@ -91,10 +91,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kAutofillBillingCustomerNumber, 0.0,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kAutofillEnabled, true,
|
||||
+ prefs::kAutofillEnabled, false,
|
||||
- prefs::kAutofillEnabledDeprecated, true,
|
||||
+ prefs::kAutofillEnabledDeprecated, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kAutofillProfileEnabled, true,
|
||||
- prefs::kAutofillProfileEnabled, true,
|
||||
+ prefs::kAutofillProfileEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kAutofillLastVersionDeduped, 0,
|
||||
@@ -103,7 +103,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kAutofillLastVersionDisusedAddressesDeleted, 0,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kAutofillCreditCardEnabled, true,
|
||||
+ prefs::kAutofillCreditCardEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterStringPref(
|
||||
prefs::kAutofillProfileValidity, "",
|
||||
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
|
||||
--- a/components/bookmarks/browser/bookmark_utils.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_utils.cc
|
||||
@@ -443,12 +443,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
|
||||
@@ -441,12 +441,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
|
||||
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowBookmarkBar,
|
||||
|
@ -194,7 +223,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar
|
|||
diff --git a/components/safe_browsing/common/safe_browsing_prefs.cc b/components/safe_browsing/common/safe_browsing_prefs.cc
|
||||
--- a/components/safe_browsing/common/safe_browsing_prefs.cc
|
||||
+++ b/components/safe_browsing/common/safe_browsing_prefs.cc
|
||||
@@ -278,9 +278,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
@@ -229,9 +229,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
|
||||
registry->RegisterBooleanPref(
|
||||
|
@ -209,7 +238,7 @@ diff --git a/components/safe_browsing/common/safe_browsing_prefs.cc b/components
|
|||
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
||||
--- a/extensions/common/extension.cc
|
||||
+++ b/extensions/common/extension.cc
|
||||
@@ -366,14 +366,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
@@ -367,14 +367,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
if (is_theme())
|
||||
return false;
|
||||
|
||||
|
@ -225,5 +254,5 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
|||
// show packaged apps and platform apps because there are some pieces of
|
||||
// functionality that are only available in chrome://extensions/ but which
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -19,5 +19,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
|||
#if defined(OS_ANDROID)
|
||||
const base::Feature kAllowAutoplayUnmutedInWebappManifestScope{
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Do not store passwords by default
|
|||
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
|
||||
--- a/components/password_manager/core/browser/password_manager.cc
|
||||
+++ b/components/password_manager/core/browser/password_manager.cc
|
||||
@@ -278,10 +278,10 @@ bool ShouldPromptUserToSavePassword(const PasswordFormManager& manager) {
|
||||
@@ -363,10 +363,10 @@ void RecordParsingOnSavingDifference(
|
||||
void PasswordManager::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
|
@ -23,5 +23,5 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp
|
|||
registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(),
|
||||
PrefRegistry::NO_REGISTRATION_FLAGS);
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ Subject: Disable NTP remote suggestions by default
|
|||
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
|
||||
--- a/components/ntp_snippets/features.cc
|
||||
+++ b/components/ntp_snippets/features.cc
|
||||
@@ -38,13 +38,13 @@ const base::Feature kArticleSuggestionsExpandableHeader{
|
||||
"NTPArticleSuggestionsExpandableHeader", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -35,13 +35,13 @@ const base::Feature* const kAllFeatures[] = {
|
||||
&kRemoteSuggestionsBackendFeature};
|
||||
|
||||
const base::Feature kArticleSuggestionsFeature{
|
||||
- "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
@ -27,5 +27,5 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu
|
|||
const base::Feature kForeignSessionsSuggestionsFeature{
|
||||
"NTPForeignSessionsSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -59,5 +59,5 @@ diff --git a/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css b/th
|
|||
body,
|
||||
table,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Disable WebRTC by default
|
|||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -87,10 +87,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -85,10 +85,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
false);
|
||||
#endif
|
||||
// TODO(guoweis): Remove next 2 options at M50.
|
||||
|
@ -21,8 +21,8 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
|
|||
- content::kWebRTCIPHandlingDefault);
|
||||
+ content::kWebRTCIPHandlingDisableNonProxiedUdp);
|
||||
registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string());
|
||||
registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false);
|
||||
|
||||
// Dictionaries to keep track of default tasks in the file browser.
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
|
||||
@@ -150,6 +150,7 @@ public class DataReductionProxySettings {
|
||||
@@ -131,6 +131,7 @@ public class DataReductionProxySettings {
|
||||
// DataReductionProxySettings is a singleton that lives forever and there's no clean
|
||||
// shutdown of Chrome on Android
|
||||
mNativeDataReductionProxySettings = nativeInit();
|
||||
|
@ -30,7 +30,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/D
|
|||
}
|
||||
|
||||
/** Returns true if the SPDY proxy promo is allowed to be shown. */
|
||||
@@ -172,6 +173,7 @@ public class DataReductionProxySettings {
|
||||
@@ -153,6 +154,7 @@ public class DataReductionProxySettings {
|
||||
* data reduction statistics if this is the first time the SPDY proxy has been enabled.
|
||||
*/
|
||||
public void setDataReductionProxyEnabled(Context context, boolean enabled) {
|
||||
|
@ -51,5 +51,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat
|
|||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -78,5 +78,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd
|
|||
|
||||
NoUnderlineClickableSpan clickableTermsSpan = new NoUnderlineClickableSpan((view1) -> {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -4,45 +4,41 @@ Subject: Disable signin and data saver preferences
|
|||
|
||||
Never show the data saver promo snackbar
|
||||
---
|
||||
chrome/android/java/res/xml/main_preferences.xml | 8 ++---
|
||||
chrome/android/java/res/xml/main_preferences.xml | 9 -----
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 6 ++--
|
||||
.../browser/preferences/MainPreferences.java | 42 ++++++++++++----------
|
||||
3 files changed, 31 insertions(+), 25 deletions(-)
|
||||
.../browser/preferences/MainPreferences.java | 39 +++++++++++-----------
|
||||
3 files changed, 24 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -10,10 +10,10 @@
|
||||
@@ -10,10 +10,6 @@
|
||||
android:key="account_section"
|
||||
android:order="0"
|
||||
android:title="@string/prefs_section_account"/>
|
||||
- <org.chromium.chrome.browser.preferences.SignInPreference
|
||||
+ <!-- org.chromium.chrome.browser.preferences.SignInPreference
|
||||
android:key="sign_in"
|
||||
android:order="1"
|
||||
- android:key="sign_in"
|
||||
- android:order="1"
|
||||
- android:title="@string/sign_in_to_chrome"/>
|
||||
+ android:title="@string/sign_in_to_chrome"/-->
|
||||
<org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.SyncAndServicesPreferences"
|
||||
android:key="sync_and_services"
|
||||
@@ -79,11 +79,11 @@
|
||||
android:key="languages"
|
||||
android:order="14"
|
||||
android:title="@string/prefs_languages"/>
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
+ <!-- org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferences"
|
||||
android:key="data_reduction"
|
||||
@@ -85,11 +81,6 @@
|
||||
android:order="15"
|
||||
- android:title="@string/data_reduction_title"/>
|
||||
+ android:title="@string/data_reduction_title"/-->
|
||||
android:title="@string/prefs_languages"/>
|
||||
<org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
- android:fragment="org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferences"
|
||||
- android:key="data_reduction"
|
||||
- android:order="16"
|
||||
- android:title="@string/data_reduction_title"/>
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.download.DownloadPreferences"
|
||||
android:key="downloads"
|
||||
android:order="17"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -114,7 +114,7 @@ import org.chromium.chrome.browser.printing.TabPrinter;
|
||||
@@ -118,7 +118,7 @@ import org.chromium.chrome.browser.printing.TabPrinter;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.share.ShareMenuActionHandler;
|
||||
import org.chromium.chrome.browser.snackbar.BottomContainer;
|
||||
|
@ -51,7 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
import org.chromium.chrome.browser.snackbar.SnackbarManager;
|
||||
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
|
||||
import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
@@ -252,7 +252,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -263,7 +263,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
protected ReaderModeManager mReaderModeManager;
|
||||
private SnackbarManager mSnackbarManager;
|
||||
private ModalDialogManager mModalDialogManager;
|
||||
|
@ -60,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
|
||||
private AppMenuHandler mAppMenuHandler;
|
||||
private ToolbarManager mToolbarManager;
|
||||
@@ -600,6 +600,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -666,6 +666,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(mTabModelSelector) {
|
||||
@Override
|
||||
public void didFirstVisuallyNonEmptyPaint(Tab tab) {
|
||||
|
@ -68,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
// Only alert about data savings once the first paint has happened. It
|
||||
// doesn't make sense to show a snackbar about savings when nothing has been
|
||||
// displayed yet.
|
||||
@@ -613,6 +614,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -679,6 +680,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
DataReductionProxySettings.getInstance()
|
||||
.getTotalHttpContentLengthSaved());
|
||||
}
|
||||
|
@ -79,10 +75,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
@@ -18,9 +18,9 @@ import org.chromium.chrome.R;
|
||||
@@ -17,9 +17,9 @@ import org.chromium.base.VisibleForTesting;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.autofill.PersonalDataManager;
|
||||
import org.chromium.chrome.browser.contextual_suggestions.EnabledStateMonitor;
|
||||
import org.chromium.chrome.browser.contextual_suggestions.ContextualSuggestionsEnabledStateUtils;
|
||||
-import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
+//import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
|
||||
|
@ -91,32 +87,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
import org.chromium.chrome.browser.search_engines.TemplateUrl;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
||||
import org.chromium.chrome.browser.signin.SigninManager;
|
||||
@@ -35,21 +35,21 @@ import java.util.Map;
|
||||
@@ -34,13 +34,11 @@ import java.util.Map;
|
||||
public class MainPreferences extends PreferenceFragment
|
||||
implements SigninManager.SignInStateObserver, TemplateUrlService.LoadListener {
|
||||
public static final String PREF_ACCOUNT_SECTION = "account_section";
|
||||
- public static final String PREF_SIGN_IN = "sign_in";
|
||||
+// public static final String PREF_SIGN_IN = "sign_in";
|
||||
public static final String PREF_SYNC_AND_SERVICES = "sync_and_services";
|
||||
public static final String PREF_AUTOFILL_SETTINGS = "autofill_settings";
|
||||
public static final String PREF_SEARCH_ENGINE = "search_engine";
|
||||
public static final String PREF_SAVED_PASSWORDS = "saved_passwords";
|
||||
public static final String PREF_CONTEXTUAL_SUGGESTIONS = "contextual_suggestions";
|
||||
public static final String PREF_HOMEPAGE = "homepage";
|
||||
- public static final String PREF_DATA_REDUCTION = "data_reduction";
|
||||
+// public static final String PREF_DATA_REDUCTION = "data_reduction";
|
||||
public static final String PREF_NOTIFICATIONS = "notifications";
|
||||
public static final String PREF_LANGUAGES = "languages";
|
||||
public static final String PREF_DOWNLOADS = "downloads";
|
||||
@@ -52,7 +50,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
|
||||
private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private final Map<String, Preference> mAllPreferences = new HashMap<>();
|
||||
- private SignInPreference mSignInPreference;
|
||||
+// private SignInPreference mSignInPreference;
|
||||
|
||||
public MainPreferences() {
|
||||
setHasOptionsMenu(true);
|
||||
@@ -65,25 +65,29 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -68,25 +65,29 @@ public class MainPreferences extends PreferenceFragment
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
@ -147,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -96,9 +100,9 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -99,16 +100,16 @@ public class MainPreferences extends PreferenceFragment
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.main_preferences);
|
||||
cachePreferences();
|
||||
|
||||
|
@ -159,16 +152,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
getPreferenceScreen().removePreference(findPreference(PREF_ACCOUNT_SECTION));
|
||||
getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES));
|
||||
}
|
||||
@@ -106,7 +110,7 @@ public class MainPreferences extends PreferenceFragment
|
||||
|
||||
setManagedPreferenceDelegateForPreference(PREF_SEARCH_ENGINE);
|
||||
setManagedPreferenceDelegateForPreference(PREF_AUTOFILL_SETTINGS);
|
||||
setManagedPreferenceDelegateForPreference(PREF_SAVED_PASSWORDS);
|
||||
- setManagedPreferenceDelegateForPreference(PREF_DATA_REDUCTION);
|
||||
+ //setManagedPreferenceDelegateForPreference(PREF_DATA_REDUCTION);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// If we are on Android O+ the Notifications preference should lead to the Android
|
||||
@@ -162,7 +166,7 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -164,7 +165,7 @@ public class MainPreferences extends PreferenceFragment
|
||||
Preference preference = getPreferenceScreen().getPreference(index);
|
||||
mAllPreferences.put(preference.getKey(), preference);
|
||||
}
|
||||
|
@ -177,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
}
|
||||
|
||||
private void setManagedPreferenceDelegateForPreference(String key) {
|
||||
@@ -171,12 +175,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -173,12 +174,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
}
|
||||
|
||||
private void updatePreferences() {
|
||||
|
@ -190,7 +182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
updateSearchEnginePreference();
|
||||
|
||||
if (HomepageManager.shouldShowHomepageSetting()) {
|
||||
@@ -197,9 +195,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -201,9 +196,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
removePreferenceIfPresent(PREF_CONTEXTUAL_SUGGESTIONS);
|
||||
}
|
||||
|
||||
|
@ -202,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
}
|
||||
|
||||
private Preference addPreferenceIfAbsent(String key) {
|
||||
@@ -250,11 +250,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -254,11 +251,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
|
||||
private void onSignInPreferenceStateChanged() {
|
||||
// Remove "Account" section header if the personalized sign-in promo is shown.
|
||||
|
@ -217,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
}
|
||||
|
||||
// TemplateUrlService.LoadListener implementation.
|
||||
@@ -279,9 +279,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -280,9 +277,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
if (PREF_SAVED_PASSWORDS.equals(preference.getKey())) {
|
||||
return PrefServiceBridge.getInstance().isRememberPasswordsManaged();
|
||||
}
|
||||
|
@ -229,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
|
||||
return TemplateUrlService.getInstance().isDefaultSearchManaged();
|
||||
}
|
||||
@@ -299,11 +301,13 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -296,11 +295,13 @@ public class MainPreferences extends PreferenceFragment
|
||||
return prefs.isRememberPasswordsManaged()
|
||||
&& !prefs.isRememberPasswordsEnabled();
|
||||
}
|
||||
|
@ -244,5 +236,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
|||
return TemplateUrlService.getInstance().isDefaultSearchManaged();
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Disable signin/data reduction promos
|
|||
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
|
||||
@@ -575,7 +575,7 @@ public class ChromeTabbedActivity
|
||||
@@ -603,7 +603,7 @@ public class ChromeTabbedActivity
|
||||
// TODO(tedchoc): Unify promo dialog logic as the search engine promo dialog checks
|
||||
// might not have completed at this point and we could show multiple
|
||||
// promos.
|
||||
|
@ -18,8 +18,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
// Promo dialogs in multiwindow mode are broken on some devices: http://crbug.com/354696
|
||||
boolean isLegacyMultiWindow = MultiWindowUtils.getInstance().isLegacyMultiWindow(this);
|
||||
if (!isShowingPromo && !mIntentWithEffect && FirstRunStatus.getFirstRunFlowComplete()
|
||||
@@ -595,7 +595,7 @@ public class ChromeTabbedActivity
|
||||
preferenceManager.setPromosSkippedOnFirstStart(true);
|
||||
@@ -621,7 +621,7 @@ public class ChromeTabbedActivity
|
||||
ChromePreferenceManager.PROMOS_SKIPPED_ON_FIRST_START, true);
|
||||
}
|
||||
|
||||
- if (!isShowingPromo) {
|
||||
|
@ -28,5 +28,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -3,14 +3,14 @@ Date: Wed, 22 Mar 2017 19:10:30 -0400
|
|||
Subject: Remove Sync and Translate menu
|
||||
|
||||
---
|
||||
.../java/res/drawable-hdpi/settings_translate.png | Bin 399 -> 0 bytes
|
||||
.../java/res/drawable-mdpi/settings_translate.png | Bin 284 -> 0 bytes
|
||||
.../java/res/drawable-xhdpi/settings_translate.png | Bin 547 -> 0 bytes
|
||||
.../java/res/drawable-xxhdpi/settings_translate.png | Bin 793 -> 0 bytes
|
||||
.../java/res/drawable-xxxhdpi/settings_translate.png | Bin 1038 -> 0 bytes
|
||||
.../android/java/res/xml/site_settings_preferences.xml | 4 ++--
|
||||
.../preferences/website/SiteSettingsPreferences.java | 12 ++++++------
|
||||
7 files changed, 8 insertions(+), 8 deletions(-)
|
||||
.../java/res/drawable-hdpi/settings_translate.png | Bin 399 -> 0 bytes
|
||||
.../java/res/drawable-mdpi/settings_translate.png | Bin 284 -> 0 bytes
|
||||
.../java/res/drawable-xhdpi/settings_translate.png | Bin 547 -> 0 bytes
|
||||
.../res/drawable-xxhdpi/settings_translate.png | Bin 793 -> 0 bytes
|
||||
.../res/drawable-xxxhdpi/settings_translate.png | Bin 1038 -> 0 bytes
|
||||
.../java/res/xml/site_settings_preferences.xml | 8 ++++----
|
||||
.../website/SiteSettingsPreferences.java | 22 ++-------------------
|
||||
7 files changed, 6 insertions(+), 24 deletions(-)
|
||||
delete mode 100644 chrome/android/java/res/drawable-hdpi/settings_translate.png
|
||||
delete mode 100644 chrome/android/java/res/drawable-mdpi/settings_translate.png
|
||||
delete mode 100644 chrome/android/java/res/drawable-xhdpi/settings_translate.png
|
||||
|
@ -33,10 +33,22 @@ diff --git a/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png b/c
|
|||
deleted file mode 100644
|
||||
index 058b50b84dd216d983e9dea2ea264b39773ac318..0000000000000000000000000000000000000000
|
||||
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
index 8165826..346cdce 100644
|
||||
index d5ae426f7d7b..a01b1144639c 100644
|
||||
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
@@ -73,11 +73,11 @@
|
||||
@@ -50,9 +50,9 @@
|
||||
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
|
||||
android:key="ads" />
|
||||
<!-- Background sync -->
|
||||
- <org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
|
||||
+ <!-- org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
|
||||
- android:key="background_sync" />
|
||||
+ android:key="background_sync" /-->
|
||||
<!-- Automatic Downloads -->
|
||||
<org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
|
||||
@@ -77,11 +77,11 @@
|
||||
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
|
||||
android:key="sound" />
|
||||
<!-- Google Translate -->
|
||||
|
@ -51,42 +63,74 @@ index 8165826..346cdce 100644
|
|||
<!-- TODO(finnur): Move this over to the new Usage screen, once it exists. -->
|
||||
<org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
index bf12a5c..9059822 100644
|
||||
index 95a1c127a28f..e8b87fcefb3f 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
@@ -118,9 +118,9 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
@@ -39,7 +39,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
// are defined in the SiteSettingsCategory, additional keys
|
||||
// are listed here.
|
||||
static final String MEDIA_KEY = "media";
|
||||
- static final String TRANSLATE_KEY = "translate";
|
||||
|
||||
// Whether the Protected Content menu is available for display.
|
||||
boolean mProtectedContentMenuAvailable;
|
||||
@@ -83,11 +82,10 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
// The Media sub-menu only contains Protected Content and Autoplay, so remove all other
|
||||
// menus.
|
||||
for (@Type int i = 0; i < Type.NUM_ENTRIES; i++) {
|
||||
- if (i == Type.AUTOPLAY || i == Type.PROTECTED_MEDIA) continue;
|
||||
+ if (i == Type.AUTOPLAY || i == Type.PROTECTED_MEDIA || i == Type.BACKGROUND_SYNC) continue;
|
||||
getPreferenceScreen().removePreference(findPreference(i));
|
||||
}
|
||||
// The new Languages Preference *feature* is an advanced version of this translate
|
||||
// preference. Once Languages Preference is enabled, remove this setting.
|
||||
getPreferenceScreen().removePreference(findPreference(MEDIA_KEY));
|
||||
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
} else {
|
||||
// If both Autoplay and Protected Content menus are available, they'll be tucked under
|
||||
// the Media key. Otherwise, we can remove the Media menu entry.
|
||||
@@ -109,11 +107,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
|
||||
getPreferenceScreen().removePreference(findPreference(Type.CLIPBOARD));
|
||||
}
|
||||
- // The new Languages Preference *feature* is an advanced version of this translate
|
||||
- // preference. Once Languages Preference is enabled, remove this setting.
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
|
||||
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
- }
|
||||
+// if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
|
||||
+// getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
+// }
|
||||
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.GENERIC_SENSOR_EXTRA_CLASSES)) {
|
||||
getPreferenceScreen().removePreference(
|
||||
findPreference(SiteSettingsCategory.Type.SENSORS));
|
||||
@@ -132,8 +132,8 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
getPreferenceScreen().removePreference(findPreference(Type.SENSORS));
|
||||
}
|
||||
@@ -123,10 +116,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
private void updatePreferenceStates() {
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
|
||||
// Translate preference.
|
||||
- // Translate preference.
|
||||
- Preference translatePref = findPreference(TRANSLATE_KEY);
|
||||
- if (translatePref != null) setTranslateStateSummary(translatePref);
|
||||
+// Preference translatePref = findPreference(TRANSLATE_KEY);
|
||||
+// if (translatePref != null) setTranslateStateSummary(translatePref);
|
||||
|
||||
-
|
||||
// Preferences that navigate to Website Settings.
|
||||
List<Integer> websitePrefs = new ArrayList<Integer>();
|
||||
@@ -149,7 +149,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (mMediaSubMenu) {
|
||||
@@ -143,7 +132,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (!mProtectedContentMenuAvailable) {
|
||||
websitePrefs.add(SiteSettingsCategory.Type.AUTOPLAY);
|
||||
websitePrefs.add(Type.AUTOPLAY);
|
||||
}
|
||||
- websitePrefs.add(SiteSettingsCategory.Type.BACKGROUND_SYNC);
|
||||
+ //websitePrefs.add(SiteSettingsCategory.Type.BACKGROUND_SYNC);
|
||||
websitePrefs.add(SiteSettingsCategory.Type.CAMERA);
|
||||
- websitePrefs.add(Type.BACKGROUND_SYNC);
|
||||
+// websitePrefs.add(Type.BACKGROUND_SYNC);
|
||||
websitePrefs.add(Type.CAMERA);
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
|
||||
websitePrefs.add(SiteSettingsCategory.Type.CLIPBOARD);
|
||||
websitePrefs.add(Type.CLIPBOARD);
|
||||
@@ -246,11 +235,4 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
preference.getTitle().toString());
|
||||
return false;
|
||||
}
|
||||
-
|
||||
- private void setTranslateStateSummary(Preference translatePref) {
|
||||
- boolean translateEnabled = PrefServiceBridge.getInstance().isTranslateEnabled();
|
||||
- translatePref.setSummary(translateEnabled
|
||||
- ? R.string.website_settings_category_ask
|
||||
- : R.string.website_settings_category_blocked);
|
||||
- }
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: Never send any crash upload data
|
|||
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
--- a/chrome/browser/tracing/crash_service_uploader.cc
|
||||
+++ b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
@@ -122,6 +122,9 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
@@ -126,6 +126,9 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
std::unique_ptr<const base::DictionaryValue> metadata,
|
||||
const UploadProgressCallback& progress_callback,
|
||||
UploadDoneCallback done_callback) {
|
||||
|
@ -20,5 +20,5 @@ diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/t
|
|||
|
||||
progress_callback_ = progress_callback;
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 12 Jun 2018 15:03:29 +0200
|
||||
Subject: Hide "Send reports to Google"
|
||||
Subject: Hide send reports checkbox
|
||||
|
||||
---
|
||||
chrome/android/java/res/layout/fre_tosanduma.xml | 2 +-
|
||||
|
@ -19,5 +19,5 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
|
|||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -23,5 +23,5 @@ diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/p
|
|||
prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref));
|
||||
const base::TimeDelta time_since_last_download =
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.
|
|||
// Shows either the help app or the appropriate help page for |source|. If
|
||||
// |browser| is NULL and the help page is used (vs the app), the help page is
|
||||
// shown in the last active browser. If there is no such browser, a new browser
|
||||
@@ -384,6 +378,7 @@ void ShowSearchEngineSettings(Browser* browser) {
|
||||
@@ -383,6 +377,7 @@ void ShowSearchEngineSettings(Browser* browser) {
|
||||
#if !defined(OS_ANDROID)
|
||||
void ShowBrowserSignin(Browser* browser,
|
||||
signin_metrics::AccessPoint access_point) {
|
||||
|
@ -31,7 +31,7 @@ diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.
|
|||
Profile* original_profile = browser->profile()->GetOriginalProfile();
|
||||
SigninManagerBase* manager =
|
||||
SigninManagerFactory::GetForProfile(original_profile);
|
||||
@@ -435,6 +430,7 @@ void ShowBrowserSignin(Browser* browser,
|
||||
@@ -434,6 +429,7 @@ void ShowBrowserSignin(Browser* browser,
|
||||
access_point);
|
||||
#endif
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.
|
|||
diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/signin/core/browser/signin_manager_base.cc
|
||||
--- a/components/signin/core/browser/signin_manager_base.cc
|
||||
+++ b/components/signin/core/browser/signin_manager_base.cc
|
||||
@@ -158,7 +158,7 @@ void SigninManagerBase::Initialize(PrefService* local_state) {
|
||||
@@ -155,7 +155,7 @@ void SigninManagerBase::Initialize(PrefService* local_state) {
|
||||
bool SigninManagerBase::IsInitialized() const { return initialized_; }
|
||||
|
||||
bool SigninManagerBase::IsSigninAllowed() const {
|
||||
|
@ -52,5 +52,5 @@ diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/
|
|||
|
||||
AccountInfo SigninManagerBase::GetAuthenticatedAccountInfo() const {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ Subject: ungoogled-chromium: Disable webRTC log uploader
|
|||
diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
--- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
+++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
@@ -117,30 +117,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
|
||||
@@ -119,30 +119,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
|
||||
DCHECK(meta_data.get());
|
||||
DCHECK(!upload_done_data.log_path.empty());
|
||||
|
||||
|
@ -28,7 +28,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
|
|||
- WriteCompressedLogToFile(compressed_log, log_file_path);
|
||||
-
|
||||
- base::FilePath log_list_path =
|
||||
- webrtc_logging::LogList::GetWebRtcLogListFileForDirectory(
|
||||
- webrtc_logging::TextLogList::GetWebRtcLogListFileForDirectory(
|
||||
- upload_done_data.log_path);
|
||||
- AddLocallyStoredLogInfoToUploadListFile(log_list_path, local_log_id);
|
||||
- }
|
||||
|
@ -41,7 +41,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
|
|||
}
|
||||
|
||||
void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
@@ -151,6 +128,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
@@ -153,6 +130,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
DCHECK(!compressed_log.empty());
|
||||
DCHECK(meta_data.get());
|
||||
|
||||
|
@ -52,5 +52,5 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
|
|||
SetupMultipart(post_data.get(), compressed_log,
|
||||
upload_done_data.incoming_rtp_dump,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/and
|
|||
diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser/plugins/plugins_resource_service.cc
|
||||
--- a/chrome/browser/plugins/plugins_resource_service.cc
|
||||
+++ b/chrome/browser/plugins/plugins_resource_service.cc
|
||||
@@ -53,9 +53,6 @@ const int kStartResourceFetchDelayMs = 60 * 1000;
|
||||
@@ -54,9 +54,6 @@ const int kStartResourceFetchDelayMs = 60 * 1000;
|
||||
// Delay between calls to update the cache 1 day and 2 minutes in testing mode.
|
||||
const int kCacheUpdateDelayMs = 24 * 60 * 60 * 1000;
|
||||
|
||||
|
@ -38,7 +38,7 @@ diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser
|
|||
GURL GetPluginsServerURL() {
|
||||
std::string filename;
|
||||
#if defined(OS_WIN)
|
||||
@@ -70,7 +67,7 @@ GURL GetPluginsServerURL() {
|
||||
@@ -71,7 +68,7 @@ GURL GetPluginsServerURL() {
|
||||
#error Unknown platform
|
||||
#endif
|
||||
|
||||
|
@ -91,7 +91,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_model_loader.h b/chrome/br
|
|||
diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc
|
||||
--- a/rlz/lib/financial_ping.cc
|
||||
+++ b/rlz/lib/financial_ping.cc
|
||||
@@ -350,7 +350,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request,
|
||||
@@ -339,7 +339,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request,
|
||||
|
||||
// Open network connection.
|
||||
InternetHandle connection_handle = InternetConnectA(inet_handle,
|
||||
|
@ -100,7 +100,7 @@ diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc
|
|||
INTERNET_FLAG_NO_CACHE_WRITE, 0);
|
||||
if (!connection_handle)
|
||||
return PING_FAILURE;
|
||||
@@ -394,7 +394,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request,
|
||||
@@ -383,7 +383,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request,
|
||||
return PING_SUCCESSFUL;
|
||||
#else
|
||||
std::string url =
|
||||
|
@ -132,5 +132,5 @@ diff --git a/rlz/lib/lib_values.h b/rlz/lib/lib_values.h
|
|||
extern const int kFinancialPort;
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ diff --git a/components/translate/content/renderer/translate_helper.cc b/compone
|
|||
diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
|
||||
--- a/components/translate/core/browser/translate_manager.cc
|
||||
+++ b/components/translate/core/browser/translate_manager.cc
|
||||
@@ -133,8 +133,9 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
|
||||
@@ -134,8 +134,9 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
|
||||
if (net::NetworkChangeNotifier::IsOffline())
|
||||
return;
|
||||
|
||||
|
@ -40,7 +40,7 @@ diff --git a/components/translate/core/browser/translate_manager.cc b/components
|
|||
diff --git a/components/translate/core/browser/translate_script.cc b/components/translate/core/browser/translate_script.cc
|
||||
--- a/components/translate/core/browser/translate_script.cc
|
||||
+++ b/components/translate/core/browser/translate_script.cc
|
||||
@@ -152,9 +152,8 @@ void TranslateScript::OnScriptFetchComplete(bool success,
|
||||
@@ -151,9 +151,8 @@ void TranslateScript::OnScriptFetchComplete(bool success,
|
||||
base::StringAppendF(&data_, "var serverParams = '%s';\n",
|
||||
server_params.c_str());
|
||||
|
||||
|
@ -49,8 +49,8 @@ diff --git a/components/translate/core/browser/translate_script.cc b/components/
|
|||
- &data_, "var securityOrigin = '%s';", security_origin.spec().c_str());
|
||||
+ &data_, "var securityOrigin = '';");
|
||||
|
||||
// Append embedded translate.js and a remote element library.
|
||||
// Load embedded translate.js.
|
||||
base::StringPiece str =
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -2,10 +2,49 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
|||
Date: Mon, 12 Feb 2018 21:29:30 +0100
|
||||
Subject: ungoogled-chromium: Disable profile avatar downloading
|
||||
|
||||
Added some Bromite-specific further improvements
|
||||
---
|
||||
chrome/browser/profiles/profile_avatar_downloader.cc | 8 +-------
|
||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
||||
chrome/browser/BUILD.gn | 2 --
|
||||
chrome/browser/profiles/profile_attributes_entry.cc | 14 --------------
|
||||
chrome/browser/profiles/profile_avatar_downloader.cc | 8 +-------
|
||||
3 files changed, 1 insertion(+), 23 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -1270,8 +1270,6 @@ jumbo_split_static_library("browser") {
|
||||
"profiles/profile_attributes_entry.h",
|
||||
"profiles/profile_attributes_storage.cc",
|
||||
"profiles/profile_attributes_storage.h",
|
||||
- "profiles/profile_avatar_downloader.cc",
|
||||
- "profiles/profile_avatar_downloader.h",
|
||||
"profiles/profile_avatar_icon_util.cc",
|
||||
"profiles/profile_avatar_icon_util.h",
|
||||
"profiles/profile_destroyer.cc",
|
||||
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
|
||||
--- a/chrome/browser/profiles/profile_attributes_entry.cc
|
||||
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
|
||||
@@ -83,20 +83,6 @@ base::string16 ProfileAttributesEntry::GetUserName() const {
|
||||
}
|
||||
|
||||
const gfx::Image& ProfileAttributesEntry::GetAvatarIcon() const {
|
||||
- if (IsUsingGAIAPicture()) {
|
||||
- const gfx::Image* image = GetGAIAPicture();
|
||||
- if (image)
|
||||
- return *image;
|
||||
- }
|
||||
-
|
||||
-#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
|
||||
- // Use the high resolution version of the avatar if it exists. Mobile and
|
||||
- // ChromeOS don't need the high resolution version so no need to fetch it.
|
||||
- const gfx::Image* image = GetHighResAvatar();
|
||||
- if (image)
|
||||
- return *image;
|
||||
-#endif
|
||||
-
|
||||
int resource_id =
|
||||
profiles::GetDefaultAvatarIconResourceIDAtIndex(GetAvatarIconIndex());
|
||||
return ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
|
||||
diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
--- a/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
+++ b/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
|
@ -31,5 +70,5 @@ diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/brows
|
|||
net::DefineNetworkTrafficAnnotation("profile_avatar", R"(
|
||||
semantics {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ See this page for more information: https://mikewest.org/2012/02/chrome-connects
|
|||
diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intranet_redirect_detector.cc
|
||||
--- a/chrome/browser/intranet_redirect_detector.cc
|
||||
+++ b/chrome/browser/intranet_redirect_detector.cc
|
||||
@@ -77,9 +77,7 @@ void IntranetRedirectDetector::FinishSleep() {
|
||||
@@ -76,9 +76,7 @@ void IntranetRedirectDetector::FinishSleep() {
|
||||
simple_loaders_.clear();
|
||||
resulting_origins_.clear();
|
||||
|
||||
|
@ -24,5 +24,5 @@ diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intra
|
|||
DCHECK(simple_loaders_.empty() && resulting_origins_.empty());
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -5,11 +5,11 @@ Subject: ungoogled-chromium: Disable Google host detection
|
|||
Disables various detections of Google hosts and functionality specific to them
|
||||
---
|
||||
.../page_load_metrics/page_load_metrics_util.cc | 4 +-
|
||||
.../page_load_metrics/page_load_metrics_util.cc | 33 +----
|
||||
components/google/core/browser/google_util.cc | 138 +++++----------------
|
||||
.../page_load_metrics/page_load_metrics_util.cc | 33 +---
|
||||
components/google/core/common/google_util.cc | 194 ++-------------------
|
||||
components/search_engines/template_url.cc | 6 +-
|
||||
net/base/url_util.cc | 22 ----
|
||||
5 files changed, 31 insertions(+), 172 deletions(-)
|
||||
net/base/url_util.cc | 22 ---
|
||||
5 files changed, 14 insertions(+), 245 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util.cc b/chrome/browser/page_load_metrics/page_load_metrics_util.cc
|
||||
--- a/chrome/browser/page_load_metrics/page_load_metrics_util.cc
|
||||
|
@ -68,10 +68,10 @@ diff --git a/chrome/common/page_load_metrics/page_load_metrics_util.cc b/chrome/
|
|||
}
|
||||
|
||||
bool IsGoogleHostname(const GURL& url) {
|
||||
diff --git a/components/google/core/browser/google_util.cc b/components/google/core/browser/google_util.cc
|
||||
--- a/components/google/core/browser/google_util.cc
|
||||
+++ b/components/google/core/browser/google_util.cc
|
||||
@@ -41,118 +41,16 @@ namespace {
|
||||
diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
|
||||
--- a/components/google/core/common/google_util.cc
|
||||
+++ b/components/google/core/common/google_util.cc
|
||||
@@ -43,118 +43,16 @@ namespace {
|
||||
|
||||
bool gUseMockLinkDoctorBaseURLForTesting = false;
|
||||
|
||||
|
@ -148,9 +148,9 @@ diff --git a/components/google/core/browser/google_util.cc b/components/google/c
|
|||
- // same page.
|
||||
- StripTrailingDot(&tld);
|
||||
-
|
||||
- CR_DEFINE_STATIC_LOCAL(std::set<std::string>, google_tlds,
|
||||
- ({GOOGLE_TLD_LIST}));
|
||||
- return base::ContainsKey(google_tlds, tld.as_string());
|
||||
- static base::NoDestructor<std::set<std::string>> google_tlds(
|
||||
- {GOOGLE_TLD_LIST});
|
||||
- return base::ContainsKey(*google_tlds, tld.as_string());
|
||||
-}
|
||||
-
|
||||
-// True if |url| is a valid URL with a host that is in the static list of
|
||||
|
@ -163,10 +163,10 @@ diff --git a/components/google/core/browser/google_util.cc b/components/google/c
|
|||
- base::StringPiece host(url.host_piece());
|
||||
- StripTrailingDot(&host);
|
||||
-
|
||||
- CR_DEFINE_STATIC_LOCAL(std::set<std::string>, google_subdomains,
|
||||
- ({"ipv4.google.com", "ipv6.google.com"}));
|
||||
- static base::NoDestructor<std::set<std::string>> google_subdomains(
|
||||
- {"ipv4.google.com", "ipv6.google.com"});
|
||||
-
|
||||
- return base::ContainsKey(google_subdomains, host.as_string());
|
||||
- return base::ContainsKey(*google_subdomains, host.as_string());
|
||||
-}
|
||||
-
|
||||
} // namespace
|
||||
|
@ -191,62 +191,72 @@ diff --git a/components/google/core/browser/google_util.cc b/components/google/c
|
|||
}
|
||||
|
||||
void SetMockLinkDoctorBaseURLForTesting() {
|
||||
@@ -166,11 +64,11 @@ std::string GetGoogleLocale(const std::string& application_locale) {
|
||||
@@ -168,120 +66,50 @@ std::string GetGoogleLocale(const std::string& application_locale) {
|
||||
|
||||
GURL AppendGoogleLocaleParam(const GURL& url,
|
||||
const std::string& application_locale) {
|
||||
- return net::AppendQueryParameter(
|
||||
- url, "hl", GetGoogleLocale(application_locale));
|
||||
- return net::AppendQueryParameter(url, "hl",
|
||||
- GetGoogleLocale(application_locale));
|
||||
+ return url;
|
||||
}
|
||||
|
||||
std::string GetGoogleCountryCode(const GURL& google_homepage_url) {
|
||||
+#if 0
|
||||
base::StringPiece google_hostname = google_homepage_url.host_piece();
|
||||
// TODO(igorcov): This needs a fix for case when the host has a trailing dot,
|
||||
// like "google.com./". https://crbug.com/720295.
|
||||
@@ -190,18 +88,24 @@ std::string GetGoogleCountryCode(const GURL& google_homepage_url) {
|
||||
if (country_code == "cat")
|
||||
return "es";
|
||||
return country_code.as_string();
|
||||
+#endif
|
||||
- base::StringPiece google_hostname = google_homepage_url.host_piece();
|
||||
- // TODO(igorcov): This needs a fix for case when the host has a trailing dot,
|
||||
- // like "google.com./". https://crbug.com/720295.
|
||||
- const size_t last_dot = google_hostname.find_last_of('.');
|
||||
- if (last_dot == std::string::npos)
|
||||
- return std::string();
|
||||
- base::StringPiece country_code = google_hostname.substr(last_dot + 1);
|
||||
- // Assume the com TLD implies the US.
|
||||
- if (country_code == "com")
|
||||
- return "us";
|
||||
- // Google uses the Unicode Common Locale Data Repository (CLDR), and the CLDR
|
||||
- // code for the UK is "gb".
|
||||
- if (country_code == "uk")
|
||||
- return "gb";
|
||||
- // Catalonia does not have a CLDR country code, since it's a region in Spain,
|
||||
- // so use Spain instead.
|
||||
- if (country_code == "cat")
|
||||
- return "es";
|
||||
- return country_code.as_string();
|
||||
+ return "nolocale";
|
||||
}
|
||||
|
||||
GURL GetGoogleSearchURL(const GURL& google_homepage_url) {
|
||||
+#if 0
|
||||
// To transform the homepage URL into the corresponding search URL, add the
|
||||
// "search" and the "q=" query string.
|
||||
GURL::Replacements replacements;
|
||||
replacements.SetPathStr("search");
|
||||
replacements.SetQueryStr("q=");
|
||||
return google_homepage_url.ReplaceComponents(replacements);
|
||||
+#endif
|
||||
- // To transform the homepage URL into the corresponding search URL, add the
|
||||
- // "search" and the "q=" query string.
|
||||
- GURL::Replacements replacements;
|
||||
- replacements.SetPathStr("search");
|
||||
- replacements.SetQueryStr("q=");
|
||||
- return google_homepage_url.ReplaceComponents(replacements);
|
||||
+ return google_homepage_url;
|
||||
}
|
||||
|
||||
const GURL& CommandLineGoogleBaseURL() {
|
||||
+#if 0
|
||||
// Unit tests may add command-line flags after the first call to this
|
||||
// function, so we don't simply initialize a static |base_url| directly and
|
||||
// then unconditionally return it.
|
||||
@@ -216,31 +120,35 @@ const GURL& CommandLineGoogleBaseURL() {
|
||||
if (!base_url.is_valid() || base_url.has_query() || base_url.has_ref())
|
||||
base_url = GURL();
|
||||
}
|
||||
+#endif
|
||||
+ CR_DEFINE_STATIC_LOCAL(GURL, base_url, ());
|
||||
+ base_url = GURL();
|
||||
return base_url;
|
||||
- // Unit tests may add command-line flags after the first call to this
|
||||
- // function, so we don't simply initialize a static |base_url| directly and
|
||||
- // then unconditionally return it.
|
||||
- static base::NoDestructor<std::string> switch_value;
|
||||
static base::NoDestructor<GURL> base_url;
|
||||
- std::string current_switch_value(
|
||||
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
||||
- switches::kGoogleBaseURL));
|
||||
- if (current_switch_value != *switch_value) {
|
||||
- *switch_value = current_switch_value;
|
||||
- *base_url = url_formatter::FixupURL(*switch_value, std::string());
|
||||
- if (!base_url->is_valid() || base_url->has_query() || base_url->has_ref())
|
||||
- *base_url = GURL();
|
||||
- }
|
||||
+ *base_url = GURL();
|
||||
return *base_url;
|
||||
}
|
||||
|
||||
bool StartsWithCommandLineGoogleBaseURL(const GURL& url) {
|
||||
+#if 0
|
||||
const GURL& base_url(CommandLineGoogleBaseURL());
|
||||
return base_url.is_valid() &&
|
||||
base::StartsWith(url.possibly_invalid_spec(), base_url.spec(),
|
||||
base::CompareCase::SENSITIVE);
|
||||
+#endif
|
||||
- const GURL& base_url(CommandLineGoogleBaseURL());
|
||||
- return base_url.is_valid() &&
|
||||
- base::StartsWith(url.possibly_invalid_spec(), base_url.spec(),
|
||||
- base::CompareCase::SENSITIVE);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
|
@ -267,41 +277,47 @@ diff --git a/components/google/core/browser/google_util.cc b/components/google/c
|
|||
}
|
||||
|
||||
bool IsGoogleHomePageUrl(const GURL& url) {
|
||||
+#if 0
|
||||
// First check to see if this has a Google domain.
|
||||
if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN,
|
||||
DISALLOW_NON_STANDARD_PORTS) &&
|
||||
@@ -252,9 +160,13 @@ bool IsGoogleHomePageUrl(const GURL& url) {
|
||||
base::StringPiece path(url.path_piece());
|
||||
return IsPathHomePageBase(path) ||
|
||||
base::StartsWith(path, "/ig", base::CompareCase::INSENSITIVE_ASCII);
|
||||
+#else
|
||||
- // First check to see if this has a Google domain.
|
||||
- if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN,
|
||||
- DISALLOW_NON_STANDARD_PORTS) &&
|
||||
- !IsGoogleSearchSubdomainUrl(url)) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- // Make sure the path is a known home page path.
|
||||
- base::StringPiece path(url.path_piece());
|
||||
- return IsPathHomePageBase(path) ||
|
||||
- base::StartsWith(path, "/ig", base::CompareCase::INSENSITIVE_ASCII);
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
bool IsGoogleSearchUrl(const GURL& url) {
|
||||
+#if 0
|
||||
// First check to see if this has a Google domain.
|
||||
if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN,
|
||||
DISALLOW_NON_STANDARD_PORTS) &&
|
||||
@@ -272,14 +184,20 @@ bool IsGoogleSearchUrl(const GURL& url) {
|
||||
// the path type.
|
||||
return HasGoogleSearchQueryParam(url.ref_piece()) ||
|
||||
(!is_home_page_base && HasGoogleSearchQueryParam(url.query_piece()));
|
||||
+#else
|
||||
- // First check to see if this has a Google domain.
|
||||
- if (!IsGoogleDomainUrl(url, DISALLOW_SUBDOMAIN,
|
||||
- DISALLOW_NON_STANDARD_PORTS) &&
|
||||
- !IsGoogleSearchSubdomainUrl(url)) {
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- // Make sure the path is a known search path.
|
||||
- base::StringPiece path(url.path_piece());
|
||||
- bool is_home_page_base = IsPathHomePageBase(path);
|
||||
- if (!is_home_page_base && (path != "/search"))
|
||||
- return false;
|
||||
-
|
||||
- // Check for query parameter in URL parameter and hash fragment, depending on
|
||||
- // the path type.
|
||||
- return HasGoogleSearchQueryParam(url.ref_piece()) ||
|
||||
- (!is_home_page_base && HasGoogleSearchQueryParam(url.query_piece()));
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
bool IsYoutubeDomainUrl(const GURL& url,
|
||||
SubdomainPermission subdomain_permission,
|
||||
PortPermission port_permission) {
|
||||
+#if 0
|
||||
return IsValidURL(url, port_permission) &&
|
||||
IsValidHostName(url.host_piece(), "youtube", subdomain_permission,
|
||||
nullptr);
|
||||
+#endif
|
||||
- return IsValidURL(url, port_permission) &&
|
||||
- IsValidHostName(url.host_piece(), "youtube", subdomain_permission,
|
||||
- nullptr);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
|
@ -309,7 +325,7 @@ diff --git a/components/google/core/browser/google_util.cc b/components/google/c
|
|||
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
|
||||
--- a/components/search_engines/template_url.cc
|
||||
+++ b/components/search_engines/template_url.cc
|
||||
@@ -499,11 +499,7 @@ base::string16 TemplateURLRef::SearchTermToString16(
|
||||
@@ -505,11 +505,7 @@ base::string16 TemplateURLRef::SearchTermToString16(
|
||||
bool TemplateURLRef::HasGoogleBaseURLs(
|
||||
const SearchTermsData& search_terms_data) const {
|
||||
ParseIfNecessary(search_terms_data);
|
||||
|
@ -355,5 +371,5 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc
|
|||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -10,15 +10,15 @@ Disable Google Cloud Messaging (GCM) client
|
|||
diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
|
||||
--- a/components/gcm_driver/gcm_client_impl.cc
|
||||
+++ b/components/gcm_driver/gcm_client_impl.cc
|
||||
@@ -491,6 +491,7 @@ void GCMClientImpl::StartGCM() {
|
||||
@@ -493,6 +493,7 @@ void GCMClientImpl::StartGCM() {
|
||||
device_checkin_info_.Reset();
|
||||
StartCheckin();
|
||||
}
|
||||
+ return;
|
||||
|
||||
void GCMClientImpl::InitializeMCSClient() {
|
||||
+ return;
|
||||
std::vector<GURL> endpoints;
|
||||
endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
|
||||
GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
|
||||
@@ -684,6 +685,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
|
||||
DCHECK(network_connection_tracker_);
|
||||
@@ -685,6 +686,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
|
||||
}
|
||||
|
||||
void GCMClientImpl::StartCheckin() {
|
||||
|
@ -26,7 +26,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
|
|||
// Make sure no checkin is in progress.
|
||||
if (checkin_request_)
|
||||
return;
|
||||
@@ -759,6 +761,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
|
||||
@@ -760,6 +762,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
|
||||
}
|
||||
|
||||
void GCMClientImpl::SchedulePeriodicCheckin() {
|
||||
|
@ -35,5 +35,5 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
|
|||
if (checkin_request_.get() || !device_checkin_info_.accounts_set)
|
||||
return;
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ See also: https://github.com/Eloston/ungoogled-chromium/issues/104
|
|||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
+++ b/chrome/browser/browser_resources.grd
|
||||
@@ -303,7 +303,6 @@
|
||||
@@ -348,7 +348,6 @@
|
||||
<include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
|
||||
<include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" flattenhtml="true" type="BINDATA" />
|
||||
|
@ -26,7 +26,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
|
|||
<include name="IDR_INSPECT_CSS" file="resources\inspect\inspect.css" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
|
||||
<include name="IDR_INSPECT_JS" file="resources\inspect\inspect.js" flattenhtml="true" type="BINDATA" />
|
||||
@@ -444,7 +443,6 @@
|
||||
@@ -492,7 +491,6 @@
|
||||
<include name="IDR_WEBRTC_LOGS_JS" file="resources\media\webrtc_logs.js" type="BINDATA" />
|
||||
<include name="IDR_WEBSTORE_MANIFEST" file="resources\webstore_app\manifest.json" type="BINDATA" />
|
||||
<include name="IDR_CRYPTOTOKEN_MANIFEST" file="resources\cryptotoken\manifest.json" type="BINDATA" />
|
||||
|
@ -37,7 +37,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
|
|||
diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
|
||||
--- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
|
||||
+++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
|
||||
@@ -68,7 +68,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) {
|
||||
@@ -67,7 +67,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) {
|
||||
#endif
|
||||
case IDR_CRYPTOTOKEN_MANIFEST:
|
||||
case IDR_FEEDBACK_MANIFEST:
|
||||
|
@ -91,16 +91,16 @@ diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/
|
|||
diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
--- a/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
+++ b/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
@@ -39,7 +39,7 @@ namespace {
|
||||
@@ -44,7 +44,7 @@ namespace {
|
||||
const int kLoadFlagsIgnoreCookies = net::LOAD_DO_NOT_SEND_COOKIES |
|
||||
net::LOAD_DO_NOT_SAVE_COOKIES;
|
||||
|
||||
-const size_t kMaxMessageSize = 1024 * 1024; // 1MB
|
||||
+//const size_t kMaxMessageSize = 1024 * 1024; // 1MB
|
||||
|
||||
static bool CookiePartsContains(const std::vector<std::string>& parts,
|
||||
const char* part) {
|
||||
@@ -251,6 +251,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
std::unique_ptr<const GaiaAuthConsumer::ClientOAuthResult>
|
||||
ExtractOAuth2TokenPairResponse(const std::string& data) {
|
||||
@@ -240,6 +240,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
const net::NetworkTrafficAnnotationTag& traffic_annotation) {
|
||||
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
|
||||
|
||||
|
@ -108,7 +108,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
|
|||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = gaia_gurl;
|
||||
original_url_ = gaia_gurl;
|
||||
@@ -299,6 +300,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
@@ -294,6 +295,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete,
|
||||
base::Unretained(this)),
|
||||
kMaxMessageSize);
|
||||
|
@ -117,5 +117,5 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
|
|||
|
||||
// static
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ Subject: ungoogled-chromium: Disable domain reliability
|
|||
diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn
|
||||
--- a/components/domain_reliability/BUILD.gn
|
||||
+++ b/components/domain_reliability/BUILD.gn
|
||||
@@ -7,26 +7,6 @@ action("bake_in_configs") {
|
||||
@@ -9,26 +9,6 @@ action("bake_in_configs") {
|
||||
script = "bake_in_configs.py"
|
||||
|
||||
inputs = [
|
||||
|
@ -39,7 +39,7 @@ diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliabil
|
|||
]
|
||||
|
||||
output_file = "$target_gen_dir/baked_in_configs.cc"
|
||||
@@ -36,13 +16,21 @@ action("bake_in_configs") {
|
||||
@@ -38,13 +18,21 @@ action("bake_in_configs") {
|
||||
|
||||
# The JSON file list is too long for the command line on Windows, so put
|
||||
# them in a response file.
|
||||
|
@ -67,7 +67,7 @@ diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliabil
|
|||
+ }
|
||||
}
|
||||
|
||||
component("domain_reliability") {
|
||||
jumbo_component("domain_reliability") {
|
||||
diff --git a/components/domain_reliability/bake_in_configs.py b/components/domain_reliability/bake_in_configs.py
|
||||
--- a/components/domain_reliability/bake_in_configs.py
|
||||
+++ b/components/domain_reliability/bake_in_configs.py
|
||||
|
@ -672,5 +672,5 @@ diff --git a/components/domain_reliability/uploader.cc b/components/domain_relia
|
|||
UploadResult result;
|
||||
result.status = UploadResult::SUCCESS;
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 17 Sep 2018 21:50:15 +0200
|
||||
Subject: ungoogled-chromium: Disable Network Time Tracker
|
||||
|
||||
This connects to Google to check if the system time is correct when a website certificate
|
||||
date seems incorrect, according to https://bugs.chromium.org/p/chromium/issues/detail?id=725232
|
||||
|
||||
Fixes https://github.com/Eloston/ungoogled-chromium/issues/302
|
||||
---
|
||||
components/network_time/network_time_tracker.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/network_time/network_time_tracker.cc b/components/network_time/network_time_tracker.cc
|
||||
--- a/components/network_time/network_time_tracker.cc
|
||||
+++ b/components/network_time/network_time_tracker.cc
|
||||
@@ -277,7 +277,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time,
|
||||
}
|
||||
|
||||
bool NetworkTimeTracker::AreTimeFetchesEnabled() const {
|
||||
- return base::FeatureList::IsEnabled(kNetworkTimeServiceQuerying);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
NetworkTimeTracker::FetchBehavior NetworkTimeTracker::GetFetchBehavior() const {
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 17 Sep 2018 21:55:33 +0200
|
||||
Subject: ungoogled-chromium: Remove third_party/analytics
|
||||
|
||||
---
|
||||
ui/webui/resources/webui_resources.grd | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/ui/webui/resources/webui_resources.grd b/ui/webui/resources/webui_resources.grd
|
||||
--- a/ui/webui/resources/webui_resources.grd
|
||||
+++ b/ui/webui/resources/webui_resources.grd
|
||||
@@ -15,7 +15,6 @@ without changes to the corresponding grd file. -->
|
||||
<includes>
|
||||
<include name="IDR_WEBUI_I18N_TEMPLATE_JS" file="js/i18n_template.js" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_WEBUI_JSTEMPLATE_JS" file="js/jstemplate_compiled.js" flattenhtml="true" type="BINDATA" />
|
||||
- <include name="IDR_WEBUI_ANALYTICS_JS" file="js/analytics.js" flattenhtml="true" type="BINDATA" compress="gzip" />
|
||||
<!-- Roboto Font. Roboto-Regular and Roboto-Light is already available on
|
||||
Android, and Roboto-Medium is not used on Android. All 6 weights of
|
||||
Roboto are available on Chrome OS.-->
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 17 Sep 2018 21:57:19 +0200
|
||||
Subject: ungoogled-chromium: Always use local DevTools files instead of remote
|
||||
files from Google
|
||||
|
||||
NOTE: This can break Remote Debugging
|
||||
This also fixes local debugging with domain substitution
|
||||
Related comment: https://bugs.chromium.org/p/chromium/issues/detail?id=710701#c14
|
||||
---
|
||||
third_party/blink/renderer/devtools/BUILD.gn | 6 ++----
|
||||
third_party/blink/renderer/devtools/front_end/audits2_worker.json | 2 +-
|
||||
third_party/blink/renderer/devtools/front_end/devtools_app.json | 6 +++---
|
||||
third_party/blink/renderer/devtools/front_end/shell.json | 4 ++--
|
||||
third_party/blink/renderer/devtools/front_end/worker_app.json | 2 +-
|
||||
5 files changed, 9 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/devtools/BUILD.gn b/third_party/blink/renderer/devtools/BUILD.gn
|
||||
--- a/third_party/blink/renderer/devtools/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/devtools/BUILD.gn
|
||||
@@ -1162,10 +1162,8 @@ action("generate_devtools_grd") {
|
||||
devtools_embedder_scripts +
|
||||
[ "$resources_out_dir/devtools_extension_api.js" ]
|
||||
|
||||
- # Bundle remote modules in ChromeOS.
|
||||
- if (is_chromeos) {
|
||||
- grd_files += generated_remote_modules + devtools_emulated_devices_images
|
||||
- }
|
||||
+ # Always bundle remote modules.
|
||||
+ grd_files += generated_remote_modules + devtools_emulated_devices_images
|
||||
|
||||
inputs = grd_files + devtools_image_files
|
||||
outfile = "$root_gen_dir/devtools/devtools_resources.grd"
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/audits2_worker.json b/third_party/blink/renderer/devtools/front_end/audits2_worker.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/audits2_worker.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/audits2_worker.json
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"modules": [
|
||||
{ "name": "worker_service", "type": "autostart" },
|
||||
- { "name": "audits2_worker", "type": "remote" }
|
||||
+ { "name": "audits2_worker" }
|
||||
]
|
||||
}
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/devtools_app.json b/third_party/blink/renderer/devtools/front_end/devtools_app.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/devtools_app.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/devtools_app.json
|
||||
@@ -4,7 +4,7 @@
|
||||
{ "name": "inspector_main", "type": "autostart" },
|
||||
{ "name": "mobile_throttling", "type": "autostart" },
|
||||
|
||||
- { "name": "accessibility", "type": "remote" },
|
||||
+ { "name": "accessibility" },
|
||||
{ "name": "animation" },
|
||||
{ "name": "audits2" },
|
||||
{ "name": "browser_console" },
|
||||
@@ -12,14 +12,14 @@
|
||||
{ "name": "cookie_table" },
|
||||
{ "name": "devices" },
|
||||
{ "name": "elements" },
|
||||
- { "name": "emulated_devices" , "type": "remote" },
|
||||
+ { "name": "emulated_devices" },
|
||||
{ "name": "har_importer" },
|
||||
{ "name": "help" },
|
||||
{ "name": "layers" },
|
||||
{ "name": "layer_viewer" },
|
||||
{ "name": "network" },
|
||||
{ "name": "performance_monitor" },
|
||||
- { "name": "product_registry_impl", "type": "remote" },
|
||||
+ { "name": "product_registry_impl" },
|
||||
{ "name": "resources" },
|
||||
{ "name": "security" },
|
||||
{ "name": "timeline" },
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/shell.json b/third_party/blink/renderer/devtools/front_end/shell.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/shell.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/shell.json
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
{ "name": "changes" },
|
||||
{ "name": "cm" },
|
||||
- { "name": "cm_modes", "type": "remote" },
|
||||
+ { "name": "cm_modes" },
|
||||
{ "name": "color_picker" },
|
||||
{ "name": "console" },
|
||||
{ "name": "coverage" },
|
||||
@@ -41,7 +41,7 @@
|
||||
{ "name": "snippets" },
|
||||
{ "name": "source_frame" },
|
||||
{ "name": "sources" },
|
||||
- { "name": "terminal", "type": "remote" },
|
||||
+ { "name": "terminal" },
|
||||
{ "name": "text_editor" },
|
||||
{ "name": "workspace_diff" },
|
||||
{ "name": "protocol_monitor"}
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/worker_app.json b/third_party/blink/renderer/devtools/front_end/worker_app.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/worker_app.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/worker_app.json
|
||||
@@ -11,7 +11,7 @@
|
||||
{ "name": "help" },
|
||||
{ "name": "layer_viewer" },
|
||||
{ "name": "network" },
|
||||
- { "name": "product_registry_impl", "type": "remote" },
|
||||
+ { "name": "product_registry_impl" },
|
||||
{ "name": "resources" },
|
||||
{ "name": "timeline" },
|
||||
{ "name": "timeline_model" }
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -19,5 +19,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
|
|||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
33
patches/BRM038_Disable-update-scheduler.patch
Normal file
33
patches/BRM038_Disable-update-scheduler.patch
Normal file
|
@ -0,0 +1,33 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 27 Oct 2018 17:54:01 +0200
|
||||
Subject: Disable update scheduler
|
||||
|
||||
---
|
||||
.../chromium/chrome/browser/component_updater/UpdateScheduler.java | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/component_updater/UpdateScheduler.java
|
||||
@@ -35,10 +35,7 @@ public class UpdateScheduler {
|
||||
|
||||
@CalledByNative
|
||||
/* package */ static boolean isAvailable() {
|
||||
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||
- || GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext())
|
||||
- == ConnectionResult.SUCCESS;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/* package */ void onStartTaskBeforeNativeLoaded(TaskFinishedCallback callback) {
|
||||
@@ -108,4 +105,4 @@ public class UpdateScheduler {
|
||||
|
||||
private native void nativeOnStartTask(long nativeBackgroundTaskUpdateScheduler);
|
||||
private native void nativeOnStopTask(long nativeBackgroundTaskUpdateScheduler);
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -711,5 +711,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
|
||||
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -710,5 +710,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
|
||||
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 11 Dec 2017 22:42:11 +0100
|
||||
Subject: Add Google English-only engine
|
||||
Subject: Add English-only search engine
|
||||
|
||||
Add a Google search engine that forces languages to English,
|
||||
disable from all its searches RLZ and field experiments querystring parameters.
|
||||
|
@ -723,5 +723,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
|
||||
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -722,5 +722,5 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
|||
&yahoo, &yahoo_ar, &yahoo_at, &yahoo_au, &yahoo_br, &yahoo_ca, &yahoo_ch,
|
||||
&yahoo_cl, &yahoo_co, &yahoo_de, &yahoo_dk, &yahoo_es, &yahoo_fi, &yahoo_fr,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -9,7 +9,7 @@ Subject: Fix crash when accessing page info / site settings
|
|||
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
|
||||
--- a/chrome/browser/permissions/permission_manager.cc
|
||||
+++ b/chrome/browser/permissions/permission_manager.cc
|
||||
@@ -633,6 +633,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
@@ -677,6 +677,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
GURL canonical_requesting_origin =
|
||||
GetCanonicalOrigin(requesting_origin, embedding_origin);
|
||||
PermissionContextBase* context = GetPermissionContext(permission);
|
||||
|
@ -20,5 +20,5 @@ diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/p
|
|||
render_frame_host, canonical_requesting_origin.GetOrigin(),
|
||||
embedding_origin.GetOrigin());
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -105,5 +105,5 @@ diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
|||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":config" ]
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -5,6 +5,7 @@ Subject: Inject scripts for AMP, tracking, ads and video functionality
|
|||
Remove AMP, tracking and ads from search results
|
||||
Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com to
|
||||
allow playing videos in background (original Javascript code by timdream)
|
||||
Send a random key press to circumvent idle status detection
|
||||
---
|
||||
third_party/blink/renderer/core/dom/BUILD.gn | 2 ++
|
||||
third_party/blink/renderer/core/dom/document.cc | 28 +++++++++++++++++++++-
|
||||
|
@ -17,7 +18,7 @@ allow playing videos in background (original Javascript code by timdream)
|
|||
diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
--- a/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
@@ -147,6 +147,8 @@ blink_core_sources("dom") {
|
||||
@@ -146,6 +146,8 @@ blink_core_sources("dom") {
|
||||
"global_event_handlers.h",
|
||||
"icon_url.cc",
|
||||
"icon_url.h",
|
||||
|
@ -29,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/re
|
|||
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
|
||||
@@ -223,6 +223,7 @@
|
||||
@@ -233,6 +233,7 @@
|
||||
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
|
||||
|
@ -37,16 +38,16 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
#include "third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h"
|
||||
#include "third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h"
|
||||
#include "third_party/blink/renderer/core/paint/paint_layer.h"
|
||||
@@ -282,6 +283,8 @@
|
||||
@@ -291,6 +292,8 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/time.h"
|
||||
|
||||
+#include "extensions/anti_amp_cure.h"
|
||||
+
|
||||
#ifndef NDEBUG
|
||||
using WeakDocumentSet =
|
||||
blink::PersistentHeapHashSet<blink::WeakMember<blink::Document>>;
|
||||
@@ -5926,8 +5929,31 @@ void Document::FinishedParsing() {
|
||||
using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
|
||||
static WeakDocumentSet& liveDocumentSet();
|
||||
@@ -6088,8 +6091,31 @@ void Document::FinishedParsing() {
|
||||
fetcher_->ClearResourcesFromPreviousFetcher();
|
||||
}
|
||||
|
||||
|
@ -62,7 +63,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
+ if (bodyElement) {
|
||||
+ size_t pos = host.Find(".google.");
|
||||
+ if ((pos != WTF::kNotFound) && (host.length() - pos - 8 < 4)) {
|
||||
+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload";
|
||||
+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload, URL: " << url_.GetString();
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(ANTI_AMP_CURE_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
|
@ -70,15 +71,15 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
|||
+
|
||||
+ // check for eligibility of the video bg fix
|
||||
+ if ((WTF::kNotFound != host.Find("youtube.com")) || (WTF::kNotFound != host.Find("vimeo.com"))) {
|
||||
+ LOG(INFO) << "injecting video-bg-play Javascript payload";
|
||||
+ LOG(INFO) << "injecting video-bg-play Javascript payload, URL: " << url_.GetString();
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(VIDEO_BG_PLAY_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+ } // has origin and body element
|
||||
|
||||
FirstMeaningfulPaintDetector::From(*this).CheckNetworkStable();
|
||||
}
|
||||
|
||||
void Document::ElementDataCacheClearTimerFired(TimerBase*) {
|
||||
diff --git a/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h b/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
@ -87,7 +88,7 @@ new file mode 100644
|
|||
+#ifndef anti_amp_cure_h
|
||||
+#define anti_amp_cure_h
|
||||
+
|
||||
+#define ANTI_AMP_CURE_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=<url>)\n // Mobile (/url?q=<url>)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks(document));\n}\n\nfunction hookMoreResults() {\n var extrares = document.getElementById('extrares');\n if (!extrares) {\n console.log(\"could not hook more results\");\n return;\n }\n // mutation observers are great but they don't work\n extrares.addEventListener(\"DOMNodeInserted\", function(e) {\n var node = e.target;\n if (node.id && node.id.startsWith(\"arc-srp\"))\n console.log(\"hyperlinks sanitized on new result node: \", sanitizeAllHyperlinks(node));\n });\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('qslc');\n if (mlogo && mlogo.children[0]) {\n mlogo = mlogo.children[0];\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks(rootNode) {\n var saned = 0, total = 0;\n rootNode.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && (document.location.host.indexOf(\"news.google.\") == -1)) {\n sanitizeAll();\n}\nsetMlogoClick();\n\nhookMoreResults();\n"
|
||||
+#define ANTI_AMP_CURE_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=<url>)\n // Mobile (/url?q=<url>)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks(document));\n}\n\nfunction hookMoreResults() {\n var extrares = document.getElementById('extrares');\n if (!extrares) {\n console.log(\"could not hook more results\");\n return;\n }\n // mutation observers are great but they don't work\n extrares.addEventListener(\"DOMNodeInserted\", function(e) {\n var node = e.target;\n if (node.id && node.id.startsWith(\"arc-srp\"))\n console.log(\"hyperlinks sanitized on new result node: \", sanitizeAllHyperlinks(node));\n });\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('qslc');\n if (mlogo && mlogo.children[0]) {\n mlogo = mlogo.children[0];\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks(rootNode) {\n var saned = 0, total = 0;\n rootNode.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && \n (document.location.host.indexOf(\"accounts.google.\") == -1) &&\n (document.location.host.indexOf(\"news.google.\") == -1)) {\n sanitizeAll();\n}\nsetMlogoClick();\n\nhookMoreResults();\n"
|
||||
+
|
||||
+#endif // anti_amp_cure_h
|
||||
diff --git a/third_party/blink/renderer/core/dom/extensions/video_bg_play.h b/third_party/blink/renderer/core/dom/extensions/video_bg_play.h
|
||||
|
@ -98,9 +99,9 @@ new file mode 100644
|
|||
+#ifndef video_bg_play_h
|
||||
+#define video_bg_play_h
|
||||
+
|
||||
+#define VIDEO_BG_PLAY_JS "'use strict';\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\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"
|
||||
+
|
||||
+#endif // video_bg_play_h
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -10,7 +10,7 @@ Subject: Allow playing audio in background
|
|||
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
|
||||
@@ -862,6 +862,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
@@ -908,6 +908,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
return pipeline_metadata_.has_audio;
|
||||
}
|
||||
|
||||
|
@ -23,10 +23,10 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
|
|||
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
|
||||
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
|
||||
DCHECK(main_task_runner_->BelongsToCurrentThread());
|
||||
@@ -2953,7 +2959,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
|
||||
@@ -3053,7 +3059,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
|
||||
// If suspending background video, pause any video that's not remoted or
|
||||
// not unlocked to play in the background.
|
||||
if (IsBackgroundedSuspendEnabled()) {
|
||||
if (IsBackgroundSuspendEnabled(delegate_)) {
|
||||
- if (!HasVideo())
|
||||
+ //pipeline_metadata_.has_video is true for MediaPlayerRenderer,
|
||||
+ //see media/base/pipeline_metadata.h. This is a workaround to allow audio
|
||||
|
@ -38,7 +38,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
|
|||
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
|
||||
--- a/media/blink/webmediaplayer_impl.h
|
||||
+++ b/media/blink/webmediaplayer_impl.h
|
||||
@@ -159,6 +159,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
||||
@@ -161,6 +161,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
||||
// True if the loaded media has a playable video/audio track.
|
||||
bool HasVideo() const override;
|
||||
bool HasAudio() const override;
|
||||
|
@ -48,5 +48,5 @@ diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl
|
|||
void EnabledAudioTracksChanged(
|
||||
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds)
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -0,0 +1,74 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 25 Oct 2018 23:13:34 +0200
|
||||
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 | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
media/base/media_switches.cc | 6 +-----
|
||||
4 files changed, 14 insertions(+), 5 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
|
||||
@@ -3439,6 +3439,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kUseGoogleLocalNtp)},
|
||||
#endif // !defined(OS_ANDROID)
|
||||
|
||||
+ {"resume-background-video",
|
||||
+ flag_descriptions::kResumeBackgroundVideoName,
|
||||
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
|
||||
+
|
||||
#if defined(OS_MACOSX)
|
||||
{"mac-rtl", flag_descriptions::kMacRTLName,
|
||||
flag_descriptions::kMacRTLDescription, kOsMac,
|
||||
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
|
||||
@@ -759,6 +759,11 @@ const char kEnablePictureInPictureName[] = "Enable Picture-in-Picture.";
|
||||
const char kEnablePictureInPictureDescription[] =
|
||||
"Enable the Picture-in-Picture feature for videos.";
|
||||
|
||||
+const char kResumeBackgroundVideoName[] = "Resume background video.";
|
||||
+const char kResumeBackgroundVideoDescription[] =
|
||||
+ "Resume background video playback when tab re-gains focus; additionally, "
|
||||
+ "it will pause video playback every single time you switch tabs.";
|
||||
+
|
||||
const char kEnablePixelCanvasRecordingName[] = "Enable pixel canvas recording";
|
||||
const char kEnablePixelCanvasRecordingDescription[] =
|
||||
"Pixel canvas recording allows the compositor to raster contents aligned "
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -470,6 +470,9 @@ extern const char kOOPHPStackModePseudo[];
|
||||
extern const char kEnablePictureInPictureName[];
|
||||
extern const char kEnablePictureInPictureDescription[];
|
||||
|
||||
+extern const char kResumeBackgroundVideoName[];
|
||||
+extern const char kResumeBackgroundVideoDescription[];
|
||||
+
|
||||
extern const char kEnablePixelCanvasRecordingName[];
|
||||
extern const char kEnablePixelCanvasRecordingDescription[];
|
||||
|
||||
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
|
||||
@@ -221,11 +221,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
|
||||
// when in background.
|
||||
const base::Feature kResumeBackgroundVideo {
|
||||
"resume-background-video",
|
||||
-#if defined(OS_ANDROID)
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#else
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#endif
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT
|
||||
};
|
||||
|
||||
// Display the Cast overlay button on the media controls.
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -9,7 +9,7 @@ Subject: Open YouTube links in Bromite
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
||||
@@ -384,6 +384,13 @@ public class ExternalNavigationHandler {
|
||||
@@ -386,6 +386,13 @@ public class ExternalNavigationHandler {
|
||||
return OverrideUrlLoadingResult.NO_OVERRIDE;
|
||||
}
|
||||
|
||||
|
@ -24,5 +24,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext
|
|||
// security (only access to BROWSABLE activities).
|
||||
intent.addCategory(Intent.CATEGORY_BROWSABLE);
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,110 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 21 Mar 2018 14:15:28 +0100
|
||||
Subject: User Agent: anonymize
|
||||
|
||||
Use a fixed device name and Chrome product version.
|
||||
---
|
||||
components/version_info/version_info.cc | 17 ++++++++++++-
|
||||
content/common/user_agent.cc | 45 +++++++++++++++++++--------------
|
||||
2 files changed, 42 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
|
||||
--- a/components/version_info/version_info.cc
|
||||
+++ b/components/version_info/version_info.cc
|
||||
@@ -7,13 +7,28 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/version.h"
|
||||
+#include "base/sys_info.h"
|
||||
#include "build/build_config.h"
|
||||
#include "components/version_info/version_info_values.h"
|
||||
|
||||
namespace version_info {
|
||||
|
||||
std::string GetProductNameAndVersionForUserAgent() {
|
||||
- return "Chrome/" + GetVersionNumber();
|
||||
+ int32_t major, minor, bugfix;
|
||||
+ base::SysInfo::OperatingSystemVersionNumbers(&major,
|
||||
+ &minor,
|
||||
+ &bugfix);
|
||||
+ switch (major) {
|
||||
+ case 7:
|
||||
+ return "Chrome/63.0.3239.111";
|
||||
+ case 6:
|
||||
+ return "Chrome/63.0.3239.83";
|
||||
+ case 5:
|
||||
+ case 4:
|
||||
+ return "Chrome/62.0.3202.84";
|
||||
+ }
|
||||
+ // version 8 and above
|
||||
+ return "Chrome/67.0.3396.87";
|
||||
}
|
||||
|
||||
std::string GetProductName() {
|
||||
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
|
||||
--- a/content/common/user_agent.cc
|
||||
+++ b/content/common/user_agent.cc
|
||||
@@ -59,26 +59,33 @@ std::string BuildOSCpuInfo() {
|
||||
architecture_token = "; Win64; IA64";
|
||||
}
|
||||
#elif defined(OS_ANDROID)
|
||||
- std::string android_version_str = base::SysInfo::OperatingSystemVersion();
|
||||
+ int32_t major, minor, bugfix;
|
||||
+ base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix);
|
||||
+ std::string android_version_str = base::StringPrintf("%d.%d.%d", major, minor, bugfix);
|
||||
|
||||
+ // Send information about the device and buld ID.
|
||||
+ // Use a common device/build ID based on Android major version.
|
||||
std::string android_info_str;
|
||||
-
|
||||
- // Send information about the device.
|
||||
- bool semicolon_inserted = false;
|
||||
- std::string android_build_codename = base::SysInfo::GetAndroidBuildCodename();
|
||||
- std::string android_device_name = base::SysInfo::HardwareModelName();
|
||||
- if ("REL" == android_build_codename && android_device_name.size() > 0) {
|
||||
- android_info_str += "; " + android_device_name;
|
||||
- semicolon_inserted = true;
|
||||
- }
|
||||
-
|
||||
- // Append the build ID.
|
||||
- std::string android_build_id = base::SysInfo::GetAndroidBuildID();
|
||||
- if (android_build_id.size() > 0) {
|
||||
- if (!semicolon_inserted) {
|
||||
- android_info_str += ";";
|
||||
- }
|
||||
- android_info_str += " Build/" + android_build_id;
|
||||
+ switch (major) {
|
||||
+ case 7:
|
||||
+ // Chrome/63.0.3239.111
|
||||
+ android_info_str = "SM-J730GM Build/NRD90M";
|
||||
+ break;
|
||||
+ case 6:
|
||||
+ // Chrome/63.0.3239.83
|
||||
+ android_info_str = "SM-G532G Build/MMB29T";
|
||||
+ break;
|
||||
+ case 5:
|
||||
+ // Chrome/62.0.3202.84
|
||||
+ android_info_str = "A37fw Build/LMY47V";
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ // Chrome/62.0.3202.84
|
||||
+ android_info_str = "SM-G7102 Build/KOT49H";
|
||||
+ break;
|
||||
+ default: // version 8 and above
|
||||
+ android_info_str = "SM-G950U Build/R16NW";
|
||||
+ break;
|
||||
}
|
||||
#elif (defined(OS_POSIX) && !defined(OS_MACOSX)) || defined(OS_FUCHSIA)
|
||||
// Should work on any Posix system.
|
||||
@@ -115,7 +122,7 @@ std::string BuildOSCpuInfo() {
|
||||
os_minor_version,
|
||||
os_bugfix_version
|
||||
#elif defined(OS_ANDROID)
|
||||
- "Android %s%s",
|
||||
+ "Android %s; %s",
|
||||
android_version_str.c_str(),
|
||||
android_info_str.c_str()
|
||||
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -13,7 +13,7 @@ Corrected Exit functionality
|
|||
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
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -78,6 +78,8 @@
|
||||
@@ -80,6 +80,8 @@
|
||||
android:title="@string/menu_help" />
|
||||
<item android:id="@+id/enter_vr_id"
|
||||
android:title="@string/enter_vr" />
|
||||
|
@ -25,7 +25,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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2022,6 +2022,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2100,6 +2100,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
RecordUserAction.record("MobileMenuSettings");
|
||||
} else if (id == R.id.show_menu) {
|
||||
showAppMenuForKeyboardEvent();
|
||||
|
@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
|
|||
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
|
||||
@@ -2837,6 +2837,9 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
@@ -2992,6 +2992,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR-LIMIT=27]">
|
||||
Settings
|
||||
</message>
|
||||
|
@ -64,5 +64,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
|||
Close all tabs
|
||||
</message>
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -12,7 +12,7 @@ Subject: Remove help menu item
|
|||
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
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -74,8 +74,6 @@
|
||||
@@ -76,8 +76,6 @@
|
||||
android:icon="@drawable/reader_mode_prefs_icon" />
|
||||
<item android:id="@+id/preferences_id"
|
||||
android:title="@string/menu_preferences" />
|
||||
|
@ -24,7 +24,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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2046,15 +2046,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2124,15 +2124,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
final Tab currentTab = getActivityTab();
|
||||
|
||||
|
@ -43,7 +43,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||
@@ -338,9 +338,6 @@ public class KeyboardShortcuts {
|
||||
@@ -341,9 +341,6 @@ public class KeyboardShortcuts {
|
||||
tab = activity.getActivityTab();
|
||||
if (tab != null && tab.canGoForward()) tab.goForward();
|
||||
return true;
|
||||
|
@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
@@ -1219,7 +1219,7 @@ public class CustomTabActivity extends ChromeActivity {
|
||||
@@ -1314,7 +1314,7 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
|
||||
public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
|
||||
// Disable creating new tabs, bookmark, history, print, help, focus_url, etc.
|
||||
if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id
|
||||
|
@ -66,5 +66,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||
|| id == R.id.open_history_menu_id) {
|
||||
return true;
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
|
|||
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
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -59,6 +59,7 @@
|
||||
@@ -61,6 +61,7 @@
|
||||
android:title="@string/menu_add_to_homescreen" />
|
||||
<item android:id="@+id/open_webapk_id"
|
||||
android:title="@string/menu_open_webapk" />
|
||||
|
@ -53,7 +53,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
|||
<item android:id="@+id/request_desktop_site_row_menu_id"
|
||||
android:title="@null">
|
||||
<menu>
|
||||
@@ -69,6 +70,18 @@
|
||||
@@ -71,6 +72,18 @@
|
||||
android:checkable="true" />
|
||||
</menu>
|
||||
</item>
|
||||
|
@ -75,7 +75,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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2114,6 +2114,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2195,6 +2195,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();
|
||||
currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
|
||||
RecordUserAction.record("MobileMenuRequestDesktopSite");
|
||||
|
@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
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
|
||||
@@ -1707,6 +1707,14 @@ public class ChromeTabbedActivity
|
||||
@@ -1718,6 +1718,14 @@ public class ChromeTabbedActivity
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
|
@ -111,15 +111,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
@@ -24,6 +24,7 @@ import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.chrome.R;
|
||||
@@ -25,6 +25,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeActivity;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.ChromeSwitches;
|
||||
+import org.chromium.chrome.browser.ContentSettingsType;
|
||||
import org.chromium.chrome.browser.ShortcutHelper;
|
||||
import org.chromium.chrome.browser.UrlConstants;
|
||||
import org.chromium.chrome.browser.banners.AppBannerManager;
|
||||
@@ -196,6 +197,8 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -209,6 +210,8 @@ public class AppMenuPropertiesDelegate {
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
|
@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
|||
// Only display reader mode settings menu option if the current page is in reader mode.
|
||||
menu.findItem(R.id.reader_mode_prefs_id)
|
||||
.setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl()));
|
||||
@@ -418,6 +421,41 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -448,6 +451,41 @@ public class AppMenuPropertiesDelegate {
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -173,7 +173,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
@@ -165,6 +165,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -182,6 +182,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
}
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
||||
|
@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||
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
|
||||
@@ -2822,6 +2822,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
@@ -2977,6 +2977,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR-LIMIT=27]">
|
||||
Find in page
|
||||
</message>
|
||||
|
@ -203,5 +203,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
|||
Desktop site
|
||||
</message>
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -18,12 +18,12 @@ New mechanism for adblocking based on Brave's adblocking hook
|
|||
.../browser/appmenu/AppMenuPropertiesDelegate.java | 38 +++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 2 +
|
||||
.../java/strings/android_chrome_strings.grd | 11 +
|
||||
chrome/browser/net/chrome_network_delegate.cc | 58 ++++
|
||||
chrome/browser/net/chrome_network_delegate.cc | 83 +++--
|
||||
.../subresource_filter_content_settings_manager.cc | 1 +
|
||||
net/BUILD.gn | 7 +
|
||||
net/url_request/adblock_intercept.cc | 321 +++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 17 ++
|
||||
12 files changed, 494 insertions(+)
|
||||
net/url_request/adblock_intercept.cc | 341 +++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 41 +++
|
||||
12 files changed, 543 insertions(+), 20 deletions(-)
|
||||
create mode 100644 net/url_request/adblock_intercept.cc
|
||||
create mode 100644 net/url_request/adblock_intercept.h
|
||||
|
||||
|
@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
|
|||
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
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -82,6 +82,17 @@
|
||||
@@ -84,6 +84,17 @@
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
|
@ -73,7 +73,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/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2124,6 +2124,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2205,6 +2205,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
|
@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
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
|
||||
@@ -1665,6 +1665,14 @@ public class ChromeTabbedActivity
|
||||
@@ -1676,6 +1676,14 @@ public class ChromeTabbedActivity
|
||||
reportNewTabShortcutUsed(true);
|
||||
getTabCreator(true).launchNTP();
|
||||
}
|
||||
|
@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
@@ -195,6 +195,8 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -208,6 +208,8 @@ public class AppMenuPropertiesDelegate {
|
||||
&& !TextUtils.isEmpty(url);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem);
|
||||
|
||||
|
@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
|||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
@@ -456,6 +458,42 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -486,6 +488,42 @@ public class AppMenuPropertiesDelegate {
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
|
||||
@@ -164,6 +164,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -181,6 +181,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -176,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
|||
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
|
||||
@@ -2842,6 +2842,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
@@ -2997,6 +2997,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
|
||||
Turn on Request desktop site
|
||||
</message>
|
||||
|
@ -197,7 +197,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
|||
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
|
||||
--- a/chrome/browser/net/chrome_network_delegate.cc
|
||||
+++ b/chrome/browser/net/chrome_network_delegate.cc
|
||||
@@ -24,6 +24,7 @@
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/content_settings/cookie_settings_factory.h"
|
||||
|
@ -205,7 +205,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
|||
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
|
||||
#include "chrome/browser/custom_handlers/protocol_handler_registry.h"
|
||||
#include "chrome/browser/net/chrome_extensions_network_delegate.h"
|
||||
@@ -59,6 +60,7 @@
|
||||
@@ -60,6 +61,7 @@
|
||||
#if defined(OS_ANDROID)
|
||||
#include "base/android/path_utils.h"
|
||||
#include "chrome/browser/io_thread.h"
|
||||
|
@ -213,8 +213,8 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
|||
#endif
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
@@ -215,10 +217,64 @@ void ChromeNetworkDelegate::InitializePrefsOnUIThread(
|
||||
}
|
||||
@@ -207,34 +209,75 @@ void ChromeNetworkDelegate::set_cookie_settings(
|
||||
cookie_settings_ = cookie_settings;
|
||||
}
|
||||
|
||||
+#define TRANSPARENT1PXGIF "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
||||
|
@ -223,7 +223,26 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
|||
net::URLRequest* request,
|
||||
net::CompletionOnceCallback callback,
|
||||
GURL* new_url) {
|
||||
+
|
||||
- extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
-
|
||||
- // The non-redirect case is handled in GoogleURLLoaderThrottle.
|
||||
- bool force_safe_search =
|
||||
- (force_google_safe_search_ && force_google_safe_search_->GetValue() &&
|
||||
- request->is_redirecting());
|
||||
-
|
||||
- net::CompletionOnceCallback wrapped_callback = std::move(callback);
|
||||
-
|
||||
- if (force_safe_search) {
|
||||
- wrapped_callback = base::BindOnce(
|
||||
- &ForceGoogleSafeSearchCallbackWrapper, std::move(wrapped_callback),
|
||||
- base::Unretained(request), base::Unretained(new_url));
|
||||
- }
|
||||
|
||||
- int rv = extensions_delegate_->NotifyBeforeURLRequest(
|
||||
- request, std::move(wrapped_callback), new_url);
|
||||
-
|
||||
- if (force_safe_search && rv == net::OK && new_url->is_empty())
|
||||
- safe_search_util::ForceGoogleSafeSearch(request->url(), new_url);
|
||||
+#if defined(OS_ANDROID)
|
||||
+ if (request) {
|
||||
+ bool block = false, isValidUrl;
|
||||
|
@ -244,14 +263,18 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
|||
+ content::WebContents* web_contents = web_contents_getter.Run();
|
||||
+ if (web_contents) {
|
||||
+ Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
||||
+ //FIXME: this should not be called from the IO thread
|
||||
+ const HostContentSettingsMap* content_settings = HostContentSettingsMapFactory::GetForProfile(profile);
|
||||
+
|
||||
+ // check global value first
|
||||
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetDefaultContentSetting(ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS, NULL);
|
||||
+ if (content_settings) {
|
||||
+ // check global value first
|
||||
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetDefaultContentSetting(ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS, NULL);
|
||||
+
|
||||
+ if (!adblock_enabled) {
|
||||
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetContentSetting(request->url(), GURL(), ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS,
|
||||
+ std::string());
|
||||
+ if (!adblock_enabled) {
|
||||
+ // check per-site value
|
||||
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetContentSetting(request->url(), GURL(), ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS,
|
||||
+ std::string());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
|
@ -274,12 +297,11 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
|||
+ } // valid URL and info
|
||||
+ } // request
|
||||
+#endif // OS_ANDROID
|
||||
+
|
||||
extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
|
||||
bool force_safe_search =
|
||||
@@ -248,6 +304,8 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
return rv;
|
||||
- return rv;
|
||||
+ extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
+ return extensions_delegate_->NotifyBeforeURLRequest(
|
||||
+ request, std::move(callback), new_url);
|
||||
}
|
||||
|
||||
+#undef TRANSPARENT1PXGIF
|
||||
|
@ -301,7 +323,7 @@ diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settin
|
|||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1715,6 +1715,13 @@ component("net") {
|
||||
@@ -1731,6 +1731,13 @@ component("net") {
|
||||
"url_request/websocket_handshake_userdata_key.h",
|
||||
]
|
||||
|
||||
|
@ -319,9 +341,24 @@ diff --git a/net/url_request/adblock_intercept.cc b/net/url_request/adblock_inte
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/adblock_intercept.cc
|
||||
@@ -0,0 +1,321 @@
|
||||
@@ -0,0 +1,341 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+#include "url/gurl.h"
|
||||
+#include "content/public/common/resource_type.h"
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+#include <cstddef>
|
||||
|
@ -333,6 +370,7 @@ new file mode 100644
|
|||
+
|
||||
+#else
|
||||
+
|
||||
+#include "content/public/common/resource_type.h"
|
||||
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
||||
+#include <android/log.h>
|
||||
+
|
||||
|
@ -573,7 +611,11 @@ new file mode 100644
|
|||
+ return fp == wanted_fp;
|
||||
+}
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host, content::ResourceType resource_type) {
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host
|
||||
+#ifndef ADB_TESTER
|
||||
+, content::ResourceType resource_type
|
||||
+#endif
|
||||
+) {
|
||||
+ if (url.is_valid() && url.SchemeIsHTTPOrHTTPS()) {
|
||||
+ const char *c_url = url.spec().c_str();
|
||||
+ char *c_url_lower = strtolower(c_url);
|
||||
|
@ -645,12 +687,32 @@ diff --git a/net/url_request/adblock_intercept.h b/net/url_request/adblock_inter
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/adblock_intercept.h
|
||||
@@ -0,0 +1,17 @@
|
||||
@@ -0,0 +1,41 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#ifndef NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+#define NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+#ifndef ADB_TESTER
|
||||
+#include "content/public/common/resource_type.h"
|
||||
+#endif
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
|
@ -658,11 +720,15 @@ new file mode 100644
|
|||
+int adblock_rules_count();
|
||||
+#endif
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host, content::ResourceType resource_type);
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host
|
||||
+#ifndef ADB_TESTER
|
||||
+, content::ResourceType resource_type
|
||||
+#endif
|
||||
+);
|
||||
+
|
||||
+} // namespace net
|
||||
+
|
||||
+#endif // NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
157
patches/BRM053_User-Agent-anonymize.patch
Normal file
157
patches/BRM053_User-Agent-anonymize.patch
Normal file
|
@ -0,0 +1,157 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 21 Mar 2018 14:15:28 +0100
|
||||
Subject: User Agent: anonymize
|
||||
|
||||
Use a fixed device name and Chrome product version with the goal of not
|
||||
disclosing the specific build of Bromite.
|
||||
---
|
||||
components/version_info/version_info.cc | 13 +++++-
|
||||
content/common/user_agent.cc | 72 ++++++++++++++++++++-------------
|
||||
2 files changed, 57 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
|
||||
--- a/components/version_info/version_info.cc
|
||||
+++ b/components/version_info/version_info.cc
|
||||
@@ -7,13 +7,24 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/version.h"
|
||||
+#include "base/sys_info.h"
|
||||
#include "build/build_config.h"
|
||||
#include "components/version_info/version_info_values.h"
|
||||
|
||||
namespace version_info {
|
||||
|
||||
std::string GetProductNameAndVersionForUserAgent() {
|
||||
- return "Chrome/" + GetVersionNumber();
|
||||
+ int32_t major, minor, bugfix;
|
||||
+ base::SysInfo::OperatingSystemVersionNumbers(&major,
|
||||
+ &minor,
|
||||
+ &bugfix);
|
||||
+ switch (major) {
|
||||
+ case 4:
|
||||
+ return "Chrome/69.0.3497.100";
|
||||
+ }
|
||||
+
|
||||
+ // version 5 and above
|
||||
+ return "Chrome/70.0.3538.80";
|
||||
}
|
||||
|
||||
std::string GetProductName() {
|
||||
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
|
||||
--- a/content/common/user_agent.cc
|
||||
+++ b/content/common/user_agent.cc
|
||||
@@ -22,11 +22,6 @@
|
||||
|
||||
namespace content {
|
||||
|
||||
-#if defined(OS_ANDROID)
|
||||
-const base::Feature kAndroidUserAgentStringContainsBuildId{
|
||||
- "AndroidUserAgentStringContainsBuildId", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
-#endif // defined(OS_ANDROID)
|
||||
-
|
||||
std::string GetWebKitVersion() {
|
||||
return base::StringPrintf("%d.%d (%s)",
|
||||
WEBKIT_VERSION_MAJOR,
|
||||
@@ -66,7 +61,32 @@ std::string BuildOSCpuInfo(bool include_android_build_number) {
|
||||
}
|
||||
#elif defined(OS_ANDROID)
|
||||
std::string android_version_str = base::SysInfo::OperatingSystemVersion();
|
||||
- std::string android_info_str = GetAndroidOSInfo(include_android_build_number);
|
||||
+ std::string android_info_str;
|
||||
+
|
||||
+ // Send information about the device and build ID.
|
||||
+ // Use a common device/build ID based on Android major version.
|
||||
+ switch (os_major_version) {
|
||||
+ default: // version 9 and above
|
||||
+ android_info_str = "ONEPLUS A6000";
|
||||
+ break;
|
||||
+ case 8:
|
||||
+ android_info_str = "FIG-LX3";
|
||||
+ break;
|
||||
+ case 7:
|
||||
+ android_info_str = "SM-G610M";
|
||||
+ break;
|
||||
+ case 6:
|
||||
+ android_info_str = "SM-J700M";
|
||||
+ break;
|
||||
+ case 5:
|
||||
+ android_info_str = "XT1033";
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ android_info_str = "ZTE Blade C370 Build/KOT49H";
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ android_info_str = " " + android_info_str;
|
||||
#elif (defined(OS_POSIX) && !defined(OS_MACOSX)) || defined(OS_FUCHSIA)
|
||||
// Should work on any Posix system.
|
||||
struct utsname unixinfo;
|
||||
@@ -102,7 +122,7 @@ std::string BuildOSCpuInfo(bool include_android_build_number) {
|
||||
os_minor_version,
|
||||
os_bugfix_version
|
||||
#elif defined(OS_ANDROID)
|
||||
- "Android %s%s",
|
||||
+ "Android %s;%s",
|
||||
android_version_str.c_str(),
|
||||
android_info_str.c_str()
|
||||
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
||||
@@ -137,18 +157,6 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
|
||||
return BuildUserAgentFromOSAndProduct(os_info, product);
|
||||
}
|
||||
|
||||
-#if defined(OS_ANDROID)
|
||||
-std::string BuildUserAgentFromProductAndExtraOSInfo(
|
||||
- const std::string& product,
|
||||
- const std::string& extra_os_info,
|
||||
- bool include_android_build_number) {
|
||||
- std::string os_info;
|
||||
- base::StringAppendF(&os_info, "%s%s%s", getUserAgentPlatform().c_str(),
|
||||
- BuildOSCpuInfo(include_android_build_number).c_str(),
|
||||
- extra_os_info.c_str());
|
||||
- return BuildUserAgentFromOSAndProduct(os_info, product);
|
||||
-}
|
||||
-
|
||||
std::string GetAndroidOSInfo(bool include_android_build_number) {
|
||||
std::string android_info_str;
|
||||
|
||||
@@ -162,18 +170,28 @@ std::string GetAndroidOSInfo(bool include_android_build_number) {
|
||||
}
|
||||
|
||||
// Append the build ID.
|
||||
- if (base::FeatureList::IsEnabled(kAndroidUserAgentStringContainsBuildId) ||
|
||||
- include_android_build_number) {
|
||||
- std::string android_build_id = base::SysInfo::GetAndroidBuildID();
|
||||
- if (!android_build_id.empty()) {
|
||||
- if (!semicolon_inserted)
|
||||
- android_info_str += ";";
|
||||
- android_info_str += " Build/" + android_build_id;
|
||||
- }
|
||||
+ std::string android_build_id = base::SysInfo::GetAndroidBuildID();
|
||||
+ if (!android_build_id.empty()) {
|
||||
+ if (!semicolon_inserted)
|
||||
+ android_info_str += ";";
|
||||
+ android_info_str += " Build/" + android_build_id;
|
||||
}
|
||||
|
||||
return android_info_str;
|
||||
}
|
||||
+
|
||||
+#if defined(OS_ANDROID)
|
||||
+std::string BuildUserAgentFromProductAndExtraOSInfo(
|
||||
+ const std::string& product,
|
||||
+ const std::string& extra_os_info,
|
||||
+ bool include_android_build_number) {
|
||||
+ std::string os_info;
|
||||
+ base::StringAppendF(&os_info, "%s%s%s", getUserAgentPlatform().c_str(),
|
||||
+ BuildOSCpuInfo(include_android_build_number).c_str(),
|
||||
+ extra_os_info.c_str());
|
||||
+ return BuildUserAgentFromOSAndProduct(os_info, product);
|
||||
+}
|
||||
+
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
std::string BuildUserAgentFromOSAndProduct(const std::string& os_info,
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -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
|
||||
@@ -314,6 +314,7 @@ void AudioContext::StopRendering() {
|
||||
@@ -320,6 +320,7 @@ void AudioContext::StopRendering() {
|
||||
double AudioContext::baseLatency() const {
|
||||
DCHECK(IsMainThread());
|
||||
DCHECK(destination());
|
||||
|
@ -52,5 +52,5 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir
|
|||
// TODO(hongchan): Due to the incompatible constructor between
|
||||
// AudioDestinationNode and DefaultAudioDestinationNode, casting directly from
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -13,32 +13,85 @@ to poison the well.
|
|||
|
||||
See also: http://www.gsd.inesc-id.pt/~mpc/pubs/fingerprinting-trustcom2016.pdf
|
||||
---
|
||||
third_party/blink/renderer/core/dom/element.cc | 17 +++++++++++++++++
|
||||
third_party/blink/renderer/core/dom/range.cc | 20 +++++++++++++++++++-
|
||||
.../blink/renderer/core/html/canvas/text_metrics.cc | 18 ++++++++++++++++++
|
||||
.../blink/renderer/core/html/canvas/text_metrics.h | 2 ++
|
||||
.../canvas/canvas2d/canvas_rendering_context_2d.cc | 10 +++++++++-
|
||||
5 files changed, 65 insertions(+), 2 deletions(-)
|
||||
third_party/blink/renderer/core/dom/document.cc | 13 +++++++++++++
|
||||
third_party/blink/renderer/core/dom/document.h | 5 +++++
|
||||
third_party/blink/renderer/core/dom/element.cc | 16 ++++++++++++++++
|
||||
third_party/blink/renderer/core/dom/range.cc | 18 +++++++++++++++++-
|
||||
.../blink/renderer/core/html/canvas/text_metrics.cc | 18 ++++++++++++++++++
|
||||
.../blink/renderer/core/html/canvas/text_metrics.h | 2 ++
|
||||
.../canvas/canvas2d/canvas_rendering_context_2d.cc | 10 +++++++++-
|
||||
7 files changed, 80 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include "base/auto_reset.h"
|
||||
#include "base/optional.h"
|
||||
+#include "base/rand_util.h"
|
||||
#include "services/metrics/public/cpp/mojo_ukm_recorder.h"
|
||||
#include "services/metrics/public/cpp/ukm_builders.h"
|
||||
#include "services/metrics/public/cpp/ukm_source_id.h"
|
||||
@@ -725,6 +726,10 @@ Document::Document(const DocumentInit& initializer,
|
||||
}
|
||||
DCHECK(fetcher_);
|
||||
|
||||
+ // add X/Y noise factors that will be used to mitigate fingerprinting
|
||||
+ shuffleFactorX_ = base::RandDouble();
|
||||
+ shuffleFactorY_ = base::RandDouble();
|
||||
+
|
||||
root_scroller_controller_ = RootScrollerController::Create(*this);
|
||||
|
||||
// We depend on the url getting immediately set in subframes, but we
|
||||
@@ -790,6 +795,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope,
|
||||
Position::BeforeNode(*shadow_host));
|
||||
}
|
||||
|
||||
+double Document::GetShuffleFactorX() {
|
||||
+ return shuffleFactorX_;
|
||||
+}
|
||||
+
|
||||
+double Document::GetShuffleFactorY() {
|
||||
+ return shuffleFactorY_;
|
||||
+}
|
||||
+
|
||||
SelectorQueryCache& Document::GetSelectorQueryCache() {
|
||||
if (!selector_query_cache_)
|
||||
selector_query_cache_ = std::make_unique<SelectorQueryCache>();
|
||||
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
|
||||
--- a/third_party/blink/renderer/core/dom/document.h
|
||||
+++ b/third_party/blink/renderer/core/dom/document.h
|
||||
@@ -427,6 +427,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
|
||||
}
|
||||
|
||||
+ double GetShuffleFactorX();
|
||||
+ double GetShuffleFactorY();
|
||||
+
|
||||
String visibilityState() const;
|
||||
mojom::PageVisibilityState GetPageVisibilityState() const;
|
||||
bool hidden() const;
|
||||
@@ -1780,6 +1783,8 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
|
||||
double start_time_;
|
||||
|
||||
+ double shuffleFactorX_, shuffleFactorY_;
|
||||
+
|
||||
TraceWrapperMember<ScriptRunner> script_runner_;
|
||||
|
||||
HeapVector<Member<ScriptElementBase>> current_script_stack_;
|
||||
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
|
||||
--- a/third_party/blink/renderer/core/dom/element.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/element.cc
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "third_party/blink/renderer/core/dom/element.h"
|
||||
|
||||
#include <memory>
|
||||
+#include "base/rand_util.h"
|
||||
|
||||
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
|
||||
#include "third_party/blink/renderer/bindings/core/v8/dictionary.h"
|
||||
@@ -1382,6 +1383,15 @@ DOMRectList* Element::getClientRects() {
|
||||
@@ -1363,6 +1363,15 @@ DOMRectList* Element::getClientRects() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
||||
quads, *element_layout_object);
|
||||
+
|
||||
+ // scale all quads
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleX = 1 + (GetDocument().GetShuffleFactorX() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (GetDocument().GetShuffleFactorY() - 0.5) * 0.000003;
|
||||
+
|
||||
+ for (FloatQuad& quad : quads) {
|
||||
+ quad.Scale(shuffleX, shuffleY);
|
||||
|
@ -47,14 +100,14 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
|||
return DOMRectList::Create(quads);
|
||||
}
|
||||
|
||||
@@ -1399,6 +1409,13 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
@@ -1380,6 +1389,13 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
||||
*element_layout_object);
|
||||
+
|
||||
+ // scale rect by 3/1000000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleX = 1 + (GetDocument().GetShuffleFactorX() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (GetDocument().GetShuffleFactorY() - 0.5) * 0.000003;
|
||||
+
|
||||
+ result.Scale(shuffleX, shuffleY);
|
||||
+
|
||||
|
@ -64,22 +117,13 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
|||
diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
|
||||
--- a/third_party/blink/renderer/core/dom/range.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/range.cc
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
#include "third_party/blink/renderer/core/dom/range.h"
|
||||
|
||||
+#include "base/rand_util.h"
|
||||
+
|
||||
#include "third_party/blink/renderer/bindings/core/v8/string_or_trusted_html.h"
|
||||
#include "third_party/blink/renderer/core/dom/character_data.h"
|
||||
#include "third_party/blink/renderer/core/dom/container_node.h"
|
||||
@@ -1604,11 +1606,27 @@ DOMRectList* Range::getClientRects() const {
|
||||
@@ -1606,11 +1606,27 @@ DOMRectList* Range::getClientRects() const {
|
||||
Vector<FloatQuad> quads;
|
||||
GetBorderAndTextQuads(quads);
|
||||
|
||||
+ // scale all quads by 3/1000000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleX = 1 + (owner_document_->GetShuffleFactorX() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (owner_document_->GetShuffleFactorY() - 0.5) * 0.000003;
|
||||
+
|
||||
+ for (FloatQuad& quad : quads) {
|
||||
+ quad.Scale(shuffleX, shuffleY);
|
||||
|
@ -93,8 +137,8 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
|
|||
+ auto rect = BoundingRect();
|
||||
+
|
||||
+ // scale rect by 3/1000000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleX = 1 + (owner_document_->GetShuffleFactorX() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (owner_document_->GetShuffleFactorY() - 0.5) * 0.000003;
|
||||
+
|
||||
+ rect.Scale(shuffleX, shuffleY);
|
||||
+
|
||||
|
@ -105,7 +149,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
|
|||
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
|
||||
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
|
||||
@@ -48,6 +48,24 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
|
||||
@@ -38,6 +38,24 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -122,9 +166,9 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third
|
|||
+ actual_bounding_box_descent_ *= factor;
|
||||
+ em_height_ascent_ *= factor;
|
||||
+ em_height_descent_ *= factor;
|
||||
+ hanging_baseline_ *= factor;
|
||||
+ alphabetic_baseline_ *= factor;
|
||||
+ ideographic_baseline_ *= factor;
|
||||
+ baselines_.setAlphabetic(baselines_.alphabetic() * factor);
|
||||
+ baselines_.setHanging(baselines_.hanging() * factor);
|
||||
+ baselines_.setIdeographic(baselines_.ideographic() * factor);
|
||||
+}
|
||||
+
|
||||
void TextMetrics::Update(const Font& font,
|
||||
|
@ -135,7 +179,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
|
|||
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
||||
@@ -68,6 +68,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
|
||||
|
||||
static float GetFontBaseline(const TextBaseline&, const FontMetrics&);
|
||||
static float GetFontBaseline(const TextBaseline&, const SimpleFontData&);
|
||||
|
||||
+ void Shuffle(const double factor);
|
||||
+
|
||||
|
@ -154,7 +198,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
|
|||
#include "third_party/blink/public/platform/platform.h"
|
||||
#include "third_party/blink/public/platform/task_type.h"
|
||||
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
|
||||
@@ -775,8 +777,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
@@ -782,8 +784,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
else
|
||||
direction = ToTextDirection(GetState().GetDirection(), canvas());
|
||||
|
||||
|
@ -171,5 +215,5 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
|
|||
|
||||
void CanvasRenderingContext2D::DrawTextInternal(
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -4,18 +4,41 @@ Subject: Canvas: fingerprinting mitigations for image data and webGL
|
|||
|
||||
Disable webGL renderer info and modify the color data returned by ToBlob,
|
||||
ToDataURL and getImageData so that it will contain randomly manipulated
|
||||
pixels (maximum 10) that slightly change the color of the R,G,B components
|
||||
pixels (maximum 20) that slightly change the color of the R,G,B components
|
||||
without a visible effect.
|
||||
|
||||
Credits to Slaviro (https://github.com/Slaviro) for coming up with a better
|
||||
approach to change color components.
|
||||
---
|
||||
.../canvas/canvas2d/canvas_rendering_context_2d.cc | 4 +-
|
||||
.../modules/webgl/webgl_debug_renderer_info.cc | 4 +-
|
||||
third_party/blink/renderer/platform/BUILD.gn | 4 +-
|
||||
.../platform/graphics/image_data_buffer.cc | 5 +
|
||||
.../platform/graphics/static_bitmap_image.cc | 154 +++++++++++++++++++++
|
||||
.../platform/graphics/static_bitmap_image.cc | 156 +++++++++++++++++++++
|
||||
.../platform/graphics/static_bitmap_image.h | 2 +
|
||||
4 files changed, 163 insertions(+), 2 deletions(-)
|
||||
6 files changed, 169 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
@@ -33,8 +33,6 @@
|
||||
|
||||
#include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h"
|
||||
|
||||
-#include "base/rand_util.h"
|
||||
-
|
||||
#include "third_party/blink/public/platform/platform.h"
|
||||
#include "third_party/blink/public/platform/task_type.h"
|
||||
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
|
||||
@@ -788,7 +786,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
GetState().GetTextAlign(), text);
|
||||
|
||||
// scale text metrics by 3/1000000th
|
||||
- auto shuffleFactor = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleFactor = 1 + (canvas()->GetDocument().GetShuffleFactorX() - 0.5) * 0.000003;
|
||||
textMetrics->Shuffle(shuffleFactor);
|
||||
|
||||
return textMetrics;
|
||||
diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
--- a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
+++ b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
|
@ -33,6 +56,20 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.
|
|||
}
|
||||
|
||||
const char* WebGLDebugRendererInfo::ExtensionName() {
|
||||
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
|
||||
--- a/third_party/blink/renderer/platform/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/platform/BUILD.gn
|
||||
@@ -1432,7 +1432,9 @@ jumbo_component("platform") {
|
||||
"//third_party/blink/renderer:non_test_config",
|
||||
]
|
||||
|
||||
- include_dirs = []
|
||||
+ include_dirs = [
|
||||
+ "//third_party/skia/include/private", # For shuffler in graphics/static_bitmap_image.cc
|
||||
+ ]
|
||||
|
||||
public_deps = [
|
||||
":blink_platform_public_deps",
|
||||
diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
|
||||
--- a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
|
||||
+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
|
||||
|
@ -44,15 +81,15 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
|
|||
+#include "base/logging.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
|
||||
#include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
|
||||
#include "third_party/blink/renderer/platform/network/mime/mime_type_registry.h"
|
||||
@@ -129,6 +131,9 @@ bool ImageDataBuffer::EncodeImageInternal(const String& mime_type,
|
||||
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
@@ -128,6 +130,9 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type,
|
||||
const SkPixmap& pixmap) const {
|
||||
DCHECK(is_valid_);
|
||||
|
||||
+ // shuffle subchannel color data within the pixmap
|
||||
+ StaticBitmapImage::ShuffleSubchannelColorData(pixmap_.writable_addr(), pixmap_.info(), 0, 0);
|
||||
+
|
||||
if (mime_type == "image/jpeg") {
|
||||
if (mime_type == kMimeTypeJpeg) {
|
||||
SkJpegEncoder::Options options;
|
||||
options.fQuality = ImageEncoder::ComputeJpegQuality(quality);
|
||||
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc b/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
|
@ -72,10 +109,10 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
|||
#include "third_party/skia/include/core/SkImage.h"
|
||||
#include "third_party/skia/include/core/SkPaint.h"
|
||||
+#include "third_party/skia/src/core/SkColorData.h"
|
||||
#include "third_party/skia/include/core/SkSurface.h"
|
||||
#include "third_party/skia/include/gpu/GrContext.h"
|
||||
|
||||
namespace blink {
|
||||
@@ -154,10 +157,161 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
@@ -176,10 +179,163 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
DCHECK(read_pixels_successful ||
|
||||
!sk_image->bounds().intersect(SkIRect::MakeXYWH(
|
||||
rect.X(), rect.Y(), info.width(), info.height())));
|
||||
|
@ -104,8 +141,8 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
|||
+
|
||||
+ // cap maximum pixels to change
|
||||
+ auto pixels = (w + h) / 128;
|
||||
+ if (pixels > 10) {
|
||||
+ pixels = 10;
|
||||
+ if (pixels > 20) {
|
||||
+ pixels = 20;
|
||||
+ } else if (pixels < 2) {
|
||||
+ pixels = 2;
|
||||
+ }
|
||||
|
@ -124,7 +161,9 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
|||
+ int x = currentW * shuffleX, y = currentH * shuffleY;
|
||||
+
|
||||
+ // calculate randomisation amounts for each RGB component
|
||||
+ auto shuffleR = (uint8_t)base::RandInt(0, 4), shuffleG = (uint8_t)base::RandInt(0, 4), shuffleB = (uint8_t)base::RandInt(0, 4);
|
||||
+ uint8_t shuffleR = base::RandInt(0, 4);
|
||||
+ uint8_t shuffleG = (shuffleR + x) % 4;
|
||||
+ uint8_t shuffleB = (shuffleG + y) % 4;
|
||||
+
|
||||
+ // manipulate pixel data to slightly change the R, G, B components
|
||||
+ switch (colorType) {
|
||||
|
@ -250,5 +289,5 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
|
|||
|
||||
// Methods overridden by all sub-classes
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,116 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 9 Jul 2018 20:12:19 +0200
|
||||
Subject: Add flag to show/hide NTP tiles
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/android/ntp/most_visited_sites_bridge.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/common/chrome_switches.cc | 3 +++
|
||||
chrome/common/chrome_switches.h | 1 +
|
||||
6 files changed, 23 insertions(+)
|
||||
|
||||
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
|
||||
@@ -1902,6 +1902,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
SINGLE_VALUE_TYPE(switches::kHostedAppQuitNotification)},
|
||||
#endif // OS_MACOSX
|
||||
#if defined(OS_ANDROID)
|
||||
+ {"hide-ntp-tiles",
|
||||
+ flag_descriptions::kHideNTPTilesName,
|
||||
+ flag_descriptions::kHideNTPTilesDescription, kOsAndroid,
|
||||
+ SINGLE_VALUE_TYPE(switches::kHideNTPTiles)},
|
||||
{"disable-pull-to-refresh-effect",
|
||||
flag_descriptions::kPullToRefreshEffectName,
|
||||
flag_descriptions::kPullToRefreshEffectDescription, kOsAndroid,
|
||||
diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
--- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
+++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
@@ -13,9 +13,11 @@
|
||||
#include "base/android/jni_array.h"
|
||||
#include "base/android/jni_string.h"
|
||||
#include "base/android/scoped_java_ref.h"
|
||||
+#include "base/command_line.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
+#include "chrome/common/chrome_switches.h"
|
||||
#include "chrome/browser/history/history_service_factory.h"
|
||||
#include "chrome/browser/ntp_tiles/chrome_most_visited_sites_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
@@ -162,6 +164,10 @@ void MostVisitedSitesBridge::JavaObserver::OnURLsAvailable(
|
||||
std::vector<int> sources;
|
||||
std::vector<int> section_types;
|
||||
std::vector<int64_t> data_generation_times;
|
||||
+
|
||||
+ // do not source any tile if NTP is disabled
|
||||
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
+ switches::kHideNTPTiles)) {
|
||||
for (const auto& section : sections) {
|
||||
const NTPTilesVector& tiles = section.second;
|
||||
section_types.resize(section_types.size() + tiles.size(),
|
||||
@@ -176,6 +182,8 @@ void MostVisitedSitesBridge::JavaObserver::OnURLsAvailable(
|
||||
tile.data_generation_time.ToJavaTime());
|
||||
}
|
||||
}
|
||||
+ }
|
||||
+
|
||||
Java_MostVisitedSitesBridge_onURLsAvailable(
|
||||
env, observer_, ToJavaArrayOfStrings(env, titles),
|
||||
ToJavaArrayOfStrings(env, urls), ToJavaIntArray(env, section_types),
|
||||
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
|
||||
@@ -141,6 +141,10 @@ const char kBackgroundVideoTrackOptimizationDescription[] =
|
||||
"Disable video tracks when the video is played in the background to "
|
||||
"optimize performance.";
|
||||
|
||||
+const char kHideNTPTilesName[] = "Hide NTP tiles";
|
||||
+const char kHideNTPTilesDescription[] =
|
||||
+ "Hide all tiles on the New Tab Page, making it effectively empty all the time.";
|
||||
+
|
||||
const char kBleAdvertisingInExtensionsName[] = "BLE Advertising in Chrome Apps";
|
||||
const char kBleAdvertisingInExtensionsDescription[] =
|
||||
"Enables BLE Advertising in Chrome Apps. BLE Advertising might interfere "
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -113,6 +113,9 @@ extern const char kAv1DecoderDescription[];
|
||||
extern const char kBackgroundVideoTrackOptimizationName[];
|
||||
extern const char kBackgroundVideoTrackOptimizationDescription[];
|
||||
|
||||
+extern const char kHideNTPTilesName[];
|
||||
+extern const char kHideNTPTilesDescription[];
|
||||
+
|
||||
extern const char kBleAdvertisingInExtensionsName[];
|
||||
extern const char kBleAdvertisingInExtensionsDescription[];
|
||||
|
||||
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
|
||||
--- a/chrome/common/chrome_switches.cc
|
||||
+++ b/chrome/common/chrome_switches.cc
|
||||
@@ -88,6 +88,9 @@ const char kAutoSelectDesktopCaptureSource[] =
|
||||
const char kBypassAppBannerEngagementChecks[] =
|
||||
"bypass-app-banner-engagement-checks";
|
||||
|
||||
+// Hide all New Tab Page tiles, making it effectively empty all the time.
|
||||
+const char kHideNTPTiles[] = "hide-ntp-tiles";
|
||||
+
|
||||
// How often (in seconds) to check for updates. Should only be used for testing
|
||||
// purposes.
|
||||
const char kCheckForUpdateIntervalSec[] = "check-for-update-interval";
|
||||
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
|
||||
--- a/chrome/common/chrome_switches.h
|
||||
+++ b/chrome/common/chrome_switches.h
|
||||
@@ -46,6 +46,7 @@ extern const char kAuthServerWhitelist[];
|
||||
extern const char kAutoOpenDevToolsForTabs[];
|
||||
extern const char kAutoSelectDesktopCaptureSource[];
|
||||
extern const char kBypassAppBannerEngagementChecks[];
|
||||
+extern const char kHideNTPTiles[];
|
||||
extern const char kCheckForUpdateIntervalSec[];
|
||||
extern const char kCipherSuiteBlacklist[];
|
||||
extern const char kCloudPrintFile[];
|
||||
--
|
||||
2.7.4
|
||||
|
23
patches/BRM057_Disable-generic-sensor-API-by-default.patch
Normal file
23
patches/BRM057_Disable-generic-sensor-API-by-default.patch
Normal file
|
@ -0,0 +1,23 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 22 Oct 2018 21:14:57 +0200
|
||||
Subject: Disable generic sensor API by default
|
||||
|
||||
---
|
||||
services/device/public/cpp/device_features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc
|
||||
--- a/services/device/public/cpp/device_features.cc
|
||||
+++ b/services/device/public/cpp/device_features.cc
|
||||
@@ -9,7 +9,7 @@ namespace features {
|
||||
// Enables sensors based on Generic Sensor API:
|
||||
// https://w3c.github.io/sensors/
|
||||
const base::Feature kGenericSensor{"GenericSensor",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
// Enables an extra set of concrete sensors classes based on Generic Sensor API,
|
||||
// which expose previously unexposed platform features, e.g. ALS or Magnetometer
|
||||
const base::Feature kGenericSensorExtraClasses{
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -0,0 +1,184 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 22 Oct 2018 21:29:53 +0200
|
||||
Subject: Add flags to disable device motion and orientation APIs
|
||||
|
||||
Both flags will be disabled by default and prevent usage of gyroscope and
|
||||
legacy acceleration events.
|
||||
---
|
||||
chrome/browser/about_flags.cc | 6 ++++++
|
||||
chrome/browser/flag_descriptions.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.h | 6 ++++++
|
||||
content/child/runtime_features.cc | 3 +++
|
||||
content/public/common/content_features.cc | 10 ++++++++++
|
||||
content/public/common/content_features.h | 2 ++
|
||||
third_party/blink/public/platform/web_runtime_features.h | 2 ++
|
||||
third_party/blink/renderer/modules/modules_initializer.cc | 9 ++++++---
|
||||
.../blink/renderer/platform/exported/web_runtime_features.cc | 8 ++++++++
|
||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 8 ++++++++
|
||||
10 files changed, 59 insertions(+), 3 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
|
||||
@@ -3005,6 +3005,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-generic-sensor", flag_descriptions::kEnableGenericSensorName,
|
||||
flag_descriptions::kEnableGenericSensorDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(features::kGenericSensor)},
|
||||
+ {"enable-device-motion", flag_descriptions::kEnableDeviceMotionName,
|
||||
+ flag_descriptions::kEnableDeviceMotionDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(features::kDeviceMotion)},
|
||||
+ {"enable-device-orientation", flag_descriptions::kEnableDeviceOrientationName,
|
||||
+ flag_descriptions::kEnableDeviceOrientationDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(features::kDeviceOrientation)},
|
||||
{"enable-generic-sensor-extra-classes",
|
||||
flag_descriptions::kEnableGenericSensorExtraClassesName,
|
||||
flag_descriptions::kEnableGenericSensorExtraClassesDescription, kOsAll,
|
||||
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
|
||||
@@ -551,6 +551,14 @@ const char kEnableGenericSensorDescription[] =
|
||||
"Accelerometer, LinearAccelerationSensor, Gyroscope, "
|
||||
"AbsoluteOrientationSensor and RelativeOrientationSensor interfaces.";
|
||||
|
||||
+const char kEnableDeviceMotionName[] = "Enable device motion";
|
||||
+const char kEnableDeviceMotionDescription[] =
|
||||
+ "Enable device motion API which is used to detect changes in acceleration";
|
||||
+
|
||||
+const char kEnableDeviceOrientationName[] = "Enable device orientation";
|
||||
+const char kEnableDeviceOrientationDescription[] =
|
||||
+ "Enable device orientation API which is used to detect changes in orientation";
|
||||
+
|
||||
const char kEnableGenericSensorExtraClassesName[] =
|
||||
"Generic Sensor Extra Classes";
|
||||
const char kEnableGenericSensorExtraClassesDescription[] =
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -362,6 +362,12 @@ extern const char kEnableEnumeratingAudioDevicesDescription[];
|
||||
extern const char kEnableGenericSensorName[];
|
||||
extern const char kEnableGenericSensorDescription[];
|
||||
|
||||
+extern const char kEnableDeviceMotionName[];
|
||||
+extern const char kEnableDeviceMotionDescription[];
|
||||
+
|
||||
+extern const char kEnableDeviceOrientationName[];
|
||||
+extern const char kEnableDeviceOrientationDescription[];
|
||||
+
|
||||
extern const char kEnableGenericSensorExtraClassesName[];
|
||||
extern const char kEnableGenericSensorExtraClassesDescription[];
|
||||
|
||||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||
--- a/content/child/runtime_features.cc
|
||||
+++ b/content/child/runtime_features.cc
|
||||
@@ -143,6 +143,9 @@ void SetRuntimeFeaturesDefaultsAndUpdateFromArgs(
|
||||
if (command_line.HasSwitch(switches::kDisableSharedWorkers))
|
||||
WebRuntimeFeatures::EnableSharedWorker(false);
|
||||
|
||||
+ WebRuntimeFeatures::EnableDeviceMotion(base::FeatureList::IsEnabled(features::kDeviceMotion));
|
||||
+ WebRuntimeFeatures::EnableDeviceOrientation(base::FeatureList::IsEnabled(features::kDeviceOrientation));
|
||||
+
|
||||
if (command_line.HasSwitch(switches::kDisableSpeechAPI))
|
||||
WebRuntimeFeatures::EnableScriptedSpeech(false);
|
||||
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -570,6 +570,16 @@ const base::Feature kWebRtcHideLocalIpsWithMdns{
|
||||
// https://wicg.github.io/webusb
|
||||
const base::Feature kWebUsb{"WebUSB", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
+// Enables the device motion API used to track device acceleration;
|
||||
+// no user authorization or notifications happens when in use.
|
||||
+const base::Feature kDeviceMotion{"DeviceMotion",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
+// Enables the device orientation API used to track device orientation;
|
||||
+// no user authorization or notifications happens when in use.
|
||||
+const base::Feature kDeviceOrientation{"DeviceOrientation",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
// Controls whether WebVR VSync-aligned render loop timing is enabled.
|
||||
const base::Feature kWebVrVsyncAlign{"WebVrVsyncAlign",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
|
||||
--- a/content/public/common/content_features.h
|
||||
+++ b/content/public/common/content_features.h
|
||||
@@ -152,6 +152,8 @@ CONTENT_EXPORT extern const char kWebXrRenderPathParamValueGpuFence[];
|
||||
CONTENT_EXPORT extern const char kWebXrRenderPathParamValueSharedBuffer[];
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
+CONTENT_EXPORT extern const base::Feature kDeviceMotion, kDeviceOrientation;
|
||||
+
|
||||
#if !defined(OS_ANDROID)
|
||||
CONTENT_EXPORT extern const base::Feature kWebUIPolymer2;
|
||||
#endif // !defined(OS_ANDROID)
|
||||
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
|
||||
--- a/third_party/blink/public/platform/web_runtime_features.h
|
||||
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
||||
@@ -85,6 +85,8 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableCSSFragmentIdentifiers(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableDatabase(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableDeviceMotion(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableDeviceOrientation(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableDecodeToYUV(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableDisplayCutoutAPI(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableFastMobileScrolling(bool);
|
||||
diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
--- a/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
+++ b/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
@@ -233,9 +233,12 @@ void ModulesInitializer::InitInspectorAgentSession(
|
||||
void ModulesInitializer::OnClearWindowObjectInMainWorld(
|
||||
Document& document,
|
||||
const Settings& settings) const {
|
||||
- DeviceMotionController::From(document);
|
||||
- DeviceOrientationController::From(document);
|
||||
- DeviceOrientationAbsoluteController::From(document);
|
||||
+ if (RuntimeEnabledFeatures::DeviceMotionEnabled())
|
||||
+ DeviceMotionController::From(document);
|
||||
+ if (RuntimeEnabledFeatures::DeviceOrientationEnabled()) {
|
||||
+ DeviceOrientationController::From(document);
|
||||
+ DeviceOrientationAbsoluteController::From(document);
|
||||
+ }
|
||||
NavigatorGamepad::From(document);
|
||||
NavigatorServiceWorker::From(document);
|
||||
DOMWindowStorageController::From(document);
|
||||
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
@@ -136,6 +136,14 @@ void WebRuntimeFeatures::EnableDatabase(bool enable) {
|
||||
RuntimeEnabledFeatures::SetDatabaseEnabled(enable);
|
||||
}
|
||||
|
||||
+void WebRuntimeFeatures::EnableDeviceMotion(bool enable) {
|
||||
+ RuntimeEnabledFeatures::SetDeviceMotionEnabled(enable);
|
||||
+}
|
||||
+
|
||||
+void WebRuntimeFeatures::EnableDeviceOrientation(bool enable) {
|
||||
+ RuntimeEnabledFeatures::SetDeviceOrientationEnabled(enable);
|
||||
+}
|
||||
+
|
||||
void WebRuntimeFeatures::EnableDecodeToYUV(bool enable) {
|
||||
RuntimeEnabledFeatures::SetDecodeToYUVEnabled(enable);
|
||||
}
|
||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
@@ -357,6 +357,14 @@
|
||||
status: "stable",
|
||||
},
|
||||
{
|
||||
+ name: "DeviceMotion",
|
||||
+ status: "stable",
|
||||
+ },
|
||||
+ {
|
||||
+ name: "DeviceOrientation",
|
||||
+ status: "stable",
|
||||
+ },
|
||||
+ {
|
||||
name: "DecodeToYUV",
|
||||
status: "experimental",
|
||||
},
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -10,7 +10,7 @@ Originally from http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromi
|
|||
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
|
||||
--- a/chrome/common/chrome_content_client.cc
|
||||
+++ b/chrome/common/chrome_content_client.cc
|
||||
@@ -532,7 +532,7 @@ void ChromeContentClient::AddContentDecryptionModules(
|
||||
@@ -538,7 +538,7 @@ void ChromeContentClient::AddContentDecryptionModules(
|
||||
base::FilePath cdm_path;
|
||||
content::CdmCapability capability;
|
||||
if (IsWidevineAvailable(&cdm_path, &capability)) {
|
||||
|
@ -20,5 +20,5 @@ diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_conte
|
|||
|
||||
cdms->push_back(
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -9,7 +9,7 @@ Subject: Disable metrics on all I/O threads
|
|||
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
|
||||
--- a/chrome/browser/profiles/profile_io_data.cc
|
||||
+++ b/chrome/browser/profiles/profile_io_data.cc
|
||||
@@ -922,7 +922,7 @@ void ProfileIOData::InitializeMetricsEnabledStateOnUIThread() {
|
||||
@@ -873,7 +873,7 @@ void ProfileIOData::InitializeMetricsEnabledStateOnUIThread() {
|
||||
|
||||
bool ProfileIOData::GetMetricsEnabledStateOnIOThread() const {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
||||
|
@ -19,5 +19,5 @@ diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profile
|
|||
|
||||
chrome_browser_net::Predictor* ProfileIOData::GetPredictor() {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -6,37 +6,38 @@ 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.
|
||||
|
||||
See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt
|
||||
See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt
|
||||
---
|
||||
chrome/browser/about_flags.cc | 12 +++++++++
|
||||
chrome/browser/about_flags.cc | 13 ++++++++++
|
||||
chrome/browser/flag_descriptions.cc | 3 +++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../browser/net/system_network_context_manager.cc | 12 +++++----
|
||||
.../common/network_features.cc | 5 ++--
|
||||
.../common/network_features.h | 5 ++--
|
||||
.../common/network_switch_list.h | 4 +++
|
||||
.../browser/net/system_network_context_manager.cc | 16 ++++++-------
|
||||
.../common/network_features.cc | 6 +++--
|
||||
.../common/network_features.h | 4 +++-
|
||||
.../common/network_switch_list.h | 4 ++++
|
||||
net/base/load_flags_list.h | 6 +++++
|
||||
net/dns/dns_transaction.cc | 29 +++-------------------
|
||||
net/url_request/url_request_http_job.cc | 26 +++++++++++--------
|
||||
10 files changed, 61 insertions(+), 44 deletions(-)
|
||||
net/dns/dns_transaction.cc | 28 +++-------------------
|
||||
net/url_request/url_request_http_job.cc | 26 ++++++++++++--------
|
||||
10 files changed, 62 insertions(+), 47 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
|
||||
@@ -421,6 +421,12 @@ const FeatureEntry::Choice kChromeHomeSwipeLogicChoices[] = {
|
||||
switches::kChromeHomeSwipeLogicType, "velocity"},
|
||||
@@ -461,6 +461,13 @@ const FeatureEntry::FeatureVariation kCCTModuleCacheVariations[] = {
|
||||
base::size(kCCTModuleCache_ThirtyMinutes), nullptr},
|
||||
};
|
||||
|
||||
+const FeatureEntry::Choice kDnsOverHttpsChoices[] = {
|
||||
+ {features::kDnsOverHttpsChoiceDefault, "", ""},
|
||||
+ {features::kDnsOverHttpsChoiceGoogle, switches::kDnsOverHttpsServer, "https://dns.google.com/experimental"},
|
||||
+ {features::kDnsOverHttpsChoiceCloudflare, switches::kDnsOverHttpsServer, "https://1.1.1.1/dns-query"},
|
||||
+ {features::kDnsOverHttpsChoiceQuad9, switches::kDnsOverHttpsServer, "https://9.9.9.9/dns-query"}
|
||||
+};
|
||||
+
|
||||
#endif // OS_ANDROID
|
||||
|
||||
const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
|
||||
@@ -3517,6 +3523,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3659,6 +3666,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kAsyncDns)},
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
|
@ -52,9 +53,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
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
|
||||
@@ -2112,6 +2112,9 @@ const char kAndroidPaymentAppsDescription[] =
|
||||
const char kAsyncDnsName[] = "Async DNS resolver";
|
||||
const char kAsyncDnsDescription[] = "Enables the built-in DNS resolver.";
|
||||
@@ -2209,6 +2209,9 @@ const char kAutoFetchOnNetErrorPageDescription[] =
|
||||
"When enabled, and navigation fails with an offline error, schedule a "
|
||||
"fetch of the page when online again.";
|
||||
|
||||
+const char kDnsOverHttpsName[] = "DNS over HTTPS";
|
||||
+const char kDnsOverHttpsDescription[] = "Enables DNS-over-HTTPS (experimental).";
|
||||
|
@ -65,9 +66,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1284,6 +1284,9 @@ extern const char kAppNotificationStatusMessagingDescription[];
|
||||
extern const char kAsyncDnsName[];
|
||||
extern const char kAsyncDnsDescription[];
|
||||
@@ -1343,6 +1343,9 @@ extern const char kAsyncDnsDescription[];
|
||||
extern const char kAutoFetchOnNetErrorPageName[];
|
||||
extern const char kAutoFetchOnNetErrorPageDescription[];
|
||||
|
||||
+extern const char kDnsOverHttpsName[];
|
||||
+extern const char kDnsOverHttpsDescription[];
|
||||
|
@ -78,59 +79,64 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
|||
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
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "chrome/common/chrome_features.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
#include "components/network_session_configurator/common/network_features.h"
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "chrome/browser/component_updater/sth_set_component_installer.h"
|
||||
#include "chrome/browser/io_thread.h"
|
||||
#include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h"
|
||||
+#include "components/network_session_configurator/common/network_switches.h"
|
||||
#include "components/policy/core/common/policy_namespace.h"
|
||||
#include "components/policy/core/common/policy_service.h"
|
||||
#include "components/policy/policy_constants.h"
|
||||
@@ -370,11 +371,12 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
std::make_unique<base::ListValue>();
|
||||
std::unique_ptr<base::ListValue> default_doh_server_methods =
|
||||
std::make_unique<base::ListValue>();
|
||||
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
||||
#include "chrome/browser/ssl/ssl_config_service_manager.h"
|
||||
#include "chrome/common/channel_info.h"
|
||||
@@ -389,15 +390,12 @@ SystemNetworkContextManager::SystemNetworkContextManager(
|
||||
base::Value(ShouldEnableAsyncDns()));
|
||||
base::ListValue default_doh_servers;
|
||||
base::ListValue default_doh_server_methods;
|
||||
- if (base::FeatureList::IsEnabled(features::kDnsOverHttps)) {
|
||||
- base::Value server(variations::GetVariationParamValueByFeature(
|
||||
- std::string server(variations::GetVariationParamValueByFeature(
|
||||
- features::kDnsOverHttps, "server"));
|
||||
- base::Value method(variations::GetVariationParamValueByFeature(
|
||||
- std::string method(variations::GetVariationParamValueByFeature(
|
||||
- features::kDnsOverHttps, "method"));
|
||||
+ std::string dnsOverHttpsServer =
|
||||
- if (!server.empty()) {
|
||||
- default_doh_servers.AppendString(server);
|
||||
- default_doh_server_methods.AppendString(method);
|
||||
- }
|
||||
+ std::string server =
|
||||
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
||||
+ switches::kDnsOverHttpsServer);
|
||||
+ if (!dnsOverHttpsServer.empty()) {
|
||||
+ base::Value server(dnsOverHttpsServer);
|
||||
+ base::Value method("POST");
|
||||
if (!server.GetString().empty()) {
|
||||
default_doh_servers->GetList().push_back(std::move(server));
|
||||
default_doh_server_methods->GetList().push_back(std::move(method));
|
||||
+ if (!server.empty()) {
|
||||
+ default_doh_servers.AppendString(server);
|
||||
+ default_doh_server_methods.AppendString("POST");
|
||||
}
|
||||
local_state_->SetDefaultPrefValue(prefs::kDnsOverHttpsServers,
|
||||
std::move(default_doh_servers));
|
||||
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
|
||||
@@ -14,7 +14,8 @@ const base::Feature kTokenBinding{"token-binding",
|
||||
// TODO(nharper): Disable kChannelID on all platforms in M69.
|
||||
const base::Feature kChannelID{"channel-id", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -10,7 +10,9 @@ namespace features {
|
||||
|
||||
const base::Feature kChannelID{"channel-id", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
-const base::Feature kDnsOverHttps{"dns-over-https",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+const char kDnsOverHttpsChoiceDefault[] = "Disabled",
|
||||
+ kDnsOverHttpsChoiceGoogle[] = "Google",
|
||||
+ kDnsOverHttpsChoiceCloudflare[] = "Cloudflare";
|
||||
+ kDnsOverHttpsChoiceCloudflare[] = "Cloudflare",
|
||||
+ kDnsOverHttpsChoiceQuad9[] = "Quad9";
|
||||
|
||||
} // 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
|
||||
@@ -17,9 +17,10 @@ NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kTokenBinding;
|
||||
@@ -13,9 +13,11 @@ namespace features {
|
||||
// Enables Channel ID.
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kChannelID;
|
||||
|
||||
-// Enabled DNS over HTTPS
|
||||
+// DNS over HTTPS server endpoint choices
|
||||
// (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt).
|
||||
-NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kDnsOverHttps;
|
||||
// (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt).
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kDnsOverHttps;
|
||||
+NETWORK_SESSION_CONFIGURATOR_EXPORT extern const char kDnsOverHttpsChoiceDefault[],
|
||||
+ kDnsOverHttpsChoiceGoogle[], kDnsOverHttpsChoiceCloudflare[];
|
||||
+ kDnsOverHttpsChoiceGoogle[], kDnsOverHttpsChoiceCloudflare[], kDnsOverHttpsChoiceQuad9[];
|
||||
|
||||
} // namespace features
|
||||
|
||||
|
@ -167,7 +173,7 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
|
|||
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
|
||||
@@ -389,30 +389,8 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
@@ -358,30 +358,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
|
||||
HttpRequestHeaders extra_request_headers;
|
||||
extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
|
||||
|
@ -195,20 +201,19 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
|||
- "is disabled by default"
|
||||
- }
|
||||
- )"));
|
||||
+ //extra_request_headers.SetHeader(HttpRequestHeaders::kUserAgent, "DoH client");
|
||||
+ request_ = url_request_context->CreateRequest(url, request_priority_, this);
|
||||
net_log_ = request_->net_log();
|
||||
|
||||
if (use_post) {
|
||||
@@ -430,6 +408,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
|
||||
LOAD_BYPASS_PROXY | LOAD_DO_NOT_SEND_COOKIES |
|
||||
LOAD_DO_NOT_SAVE_COOKIES |
|
||||
+ LOAD_IGNORE_LIMITS | LOAD_MINIMAL_HEADERS |
|
||||
LOAD_DO_NOT_SEND_AUTH_DATA);
|
||||
}
|
||||
@@ -397,6 +374,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
|
||||
@@ -849,7 +828,7 @@ class DnsTransactionImpl : public DnsTransaction,
|
||||
request_->SetExtraRequestHeaders(extra_request_headers);
|
||||
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
|
||||
+ LOAD_IGNORE_LIMITS | LOAD_MINIMAL_HEADERS |
|
||||
LOAD_BYPASS_PROXY);
|
||||
request_->set_allow_credentials(false);
|
||||
}
|
||||
@@ -819,7 +797,7 @@ class DnsTransactionImpl : public DnsTransaction,
|
||||
had_tcp_attempt_(false),
|
||||
doh_attempt_(false),
|
||||
first_server_index_(0),
|
||||
|
@ -220,7 +225,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
|||
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
|
||||
@@ -434,21 +434,25 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -434,19 +434,23 @@ void URLRequestHttpJob::Start() {
|
||||
// plugin could set a referrer although sending the referrer is inhibited.
|
||||
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
|
||||
|
||||
|
@ -237,8 +242,6 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
+ }
|
||||
}
|
||||
|
||||
request_info_.token_binding_referrer = request_->token_binding_referrer();
|
||||
|
||||
// This should be kept in sync with the corresponding code in
|
||||
// URLRequest::GetUserAgent.
|
||||
- request_info_.extra_headers.SetHeaderIfMissing(
|
||||
|
@ -251,7 +254,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
|
||||
AddExtraHeaders();
|
||||
AddCookieHeaderAndStart();
|
||||
@@ -666,10 +670,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -664,10 +668,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
HttpRequestHeaders::kAcceptEncoding)) {
|
||||
// Advertise "br" encoding only if transferred data is opaque to proxy.
|
||||
bool advertise_brotli = false;
|
||||
|
@ -268,7 +271,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
}
|
||||
}
|
||||
|
||||
@@ -686,7 +692,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -684,7 +690,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
advertised_encodings);
|
||||
}
|
||||
|
||||
|
@ -278,5 +281,5 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
|||
// specified.
|
||||
std::string accept_language =
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -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
|
||||
@@ -180,7 +180,7 @@ void OnAuthPrefsChanged(const std::string& pref_name) {
|
||||
@@ -216,7 +216,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;
|
||||
|
@ -23,7 +23,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
|
|||
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
|
||||
--- a/components/cronet/url_request_context_config.cc
|
||||
+++ b/components/cronet/url_request_context_config.cc
|
||||
@@ -390,7 +390,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
@@ -476,7 +476,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
effective_experimental_options->Remove(it.key(), nullptr);
|
||||
continue;
|
||||
}
|
||||
|
@ -34,5 +34,5 @@ diff --git a/components/cronet/url_request_context_config.cc b/components/cronet
|
|||
const base::DictionaryValue* stale_dns_args = nullptr;
|
||||
if (!it.value().GetAsDictionary(&stale_dns_args)) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -18,7 +18,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
|
||||
@@ -839,6 +839,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
@@ -963,6 +963,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
net::kEffectiveConnectionType4G},
|
||||
};
|
||||
|
||||
|
@ -30,7 +30,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 ==
|
||||
@@ -2432,6 +2437,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2606,6 +2611,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kMaterialDesignIncognitoNTPName,
|
||||
flag_descriptions::kMaterialDesignIncognitoNTPDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kMaterialDesignIncognitoNTP)},
|
||||
|
@ -43,7 +43,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|||
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
|
||||
@@ -1065,6 +1065,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
|
||||
@@ -1142,6 +1142,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
|
||||
"If enabled, the Incognito New Tab page uses the new material design with "
|
||||
"a better readable text.";
|
||||
|
||||
|
@ -57,7 +57,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
|||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -667,6 +667,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
|
||||
@@ -710,6 +710,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
|
||||
extern const char kMaterialDesignIncognitoNTPName[];
|
||||
extern const char kMaterialDesignIncognitoNTPDescription[];
|
||||
|
||||
|
@ -77,9 +77,9 @@ diff --git a/components/network_session_configurator/common/network_features.cc
|
|||
+const char kMaxConnectionsPerHostChoiceDefault[] = "6",
|
||||
+ kMaxConnectionsPerHostChoice15[] = "15";
|
||||
+
|
||||
const base::Feature kTokenBinding{"token-binding",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
const base::Feature kChannelID{"channel-id", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const char kDnsOverHttpsChoiceDefault[] = "Disabled",
|
||||
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
|
||||
|
@ -91,9 +91,9 @@ diff --git a/components/network_session_configurator/common/network_features.h b
|
|||
+ kMaxConnectionsPerHostChoice6[],
|
||||
+ kMaxConnectionsPerHostChoice15[];
|
||||
+
|
||||
// Enables token binding
|
||||
// (https://www.ietf.org/id/draft-ietf-tokbind-protocol-04.txt).
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kTokenBinding;
|
||||
// Enables Channel ID.
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kChannelID;
|
||||
|
||||
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
|
||||
|
@ -151,5 +151,5 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
|||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
|||
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
|
||||
@@ -52,6 +52,11 @@
|
||||
@@ -55,6 +55,11 @@
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
|
||||
|
@ -35,21 +35,21 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
|||
+ android:title="@string/allow_custom_tab_intents_title"
|
||||
+ android:summary="@string/allow_custom_tab_intents_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<org.chromium.chrome.browser.preferences.TextMessageWithLinkAndIconPreference
|
||||
android:key="sync_and_services_link"
|
||||
android:summary="@string/privacy_sync_and_services_link"/>
|
||||
<Preference
|
||||
android:key="sync_and_services_link_divider"
|
||||
android:layout="@layout/divider_preference"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.metrics.MediaNotificationUma;
|
||||
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
||||
@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
||||
import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
|
||||
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.preferences.privacy.PrivacyPreferences;
|
||||
import org.chromium.chrome.browser.searchwidget.SearchActivity;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tabmodel.DocumentModeAssassin;
|
||||
@@ -274,6 +275,7 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
@@ -272,6 +273,7 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
*/
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
|
@ -60,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -41,6 +41,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
@@ -42,6 +42,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
"safe_browsing_extended_reporting";
|
||||
private static final String PREF_SAFE_BROWSING_SCOUT_REPORTING =
|
||||
"safe_browsing_scout_reporting";
|
||||
|
@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
|||
private static final String PREF_SAFE_BROWSING = "safe_browsing";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
@@ -134,6 +135,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
@@ -135,6 +136,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
? PREF_SAFE_BROWSING_EXTENDED_REPORTING : PREF_SAFE_BROWSING_SCOUT_REPORTING;
|
||||
preferenceScreen.removePreference(findPreference(extended_reporting_pref_to_remove));
|
||||
|
||||
|
@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
|||
ChromeBaseCheckBoxPreference safeBrowsingPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
@@ -153,6 +159,10 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
@@ -154,6 +160,10 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
|| PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled(
|
||||
(boolean) newValue);
|
||||
|
@ -94,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
|||
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
|
||||
@@ -3615,6 +3615,13 @@ However, you aren’t invisible. Going incognito doesn’t hide your browsing fr
|
||||
@@ -3875,6 +3875,13 @@ However, you aren’t invisible. Going private doesn’t hide your browsing from
|
||||
Browse
|
||||
</message>
|
||||
|
||||
|
@ -109,5 +109,5 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
|||
<message name="IDS_UPDATING_CHROME" desc="String that indicates that Chrome is updating">
|
||||
Updating Chrome...
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 28 Aug 2018 23:27:23 +0200
|
||||
Subject: Add privacy option to keep cookies until session exit
|
||||
Subject: Add site settings option for session-only cookies
|
||||
|
||||
---
|
||||
chrome/android/java/res/values/values.xml | 3 +++
|
||||
.../android/java/res/xml/website_preferences.xml | 7 +++++++
|
||||
.../browser/preferences/PrefServiceBridge.java | 10 ++++++++++
|
||||
.../website/SingleCategoryPreferences.java | 23 ++++++++++++++++++++++
|
||||
.../android/java/res/xml/website_preferences.xml | 7 ++++++
|
||||
.../browser/preferences/PrefServiceBridge.java | 10 +++++++++
|
||||
.../website/SingleCategoryPreferences.java | 21 +++++++++++++++++-
|
||||
.../java/strings/android_chrome_strings.grd | 6 ++++++
|
||||
.../android/preferences/pref_service_bridge.cc | 19 ++++++++++++++++++
|
||||
6 files changed, 68 insertions(+)
|
||||
.../android/preferences/pref_service_bridge.cc | 25 ++++++++++++++++++++++
|
||||
6 files changed, 71 insertions(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
|
@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
|||
diff --git a/chrome/android/java/res/xml/website_preferences.xml b/chrome/android/java/res/xml/website_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/website_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/website_preferences.xml
|
||||
@@ -19,6 +19,13 @@
|
||||
@@ -26,6 +26,13 @@
|
||||
android:summary="@string/allow_third_party_cookies_summary"
|
||||
android:defaultValue="true"
|
||||
android:persistent="false" />
|
||||
|
@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
|
|||
/**
|
||||
* @return Whether third-party cookie blocking is configured by policy
|
||||
*/
|
||||
@@ -630,6 +634,10 @@ public class PrefServiceBridge {
|
||||
@@ -638,6 +642,10 @@ public class PrefServiceBridge {
|
||||
nativeSetBlockThirdPartyCookiesEnabled(enabled);
|
||||
}
|
||||
|
||||
|
@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
|
|||
public void setDoNotTrackEnabled(boolean enabled) {
|
||||
nativeSetDoNotTrackEnabled(enabled);
|
||||
}
|
||||
@@ -1026,6 +1034,7 @@ public class PrefServiceBridge {
|
||||
@@ -1086,6 +1094,7 @@ public class PrefServiceBridge {
|
||||
private native boolean nativeGetAutoplayEnabled();
|
||||
private native boolean nativeGetBackgroundSyncEnabled();
|
||||
private native boolean nativeGetBlockThirdPartyCookiesEnabled();
|
||||
|
@ -74,26 +74,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
|
|||
private native boolean nativeGetBlockThirdPartyCookiesManaged();
|
||||
private native boolean nativeGetRememberPasswordsEnabled();
|
||||
private native boolean nativeGetPasswordManagerAutoSigninEnabled();
|
||||
@@ -1073,6 +1082,7 @@ public class PrefServiceBridge {
|
||||
private native void nativeSetAllowCookiesEnabled(boolean allow);
|
||||
private native void nativeSetBackgroundSyncEnabled(boolean allow);
|
||||
private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled);
|
||||
@@ -1132,6 +1141,7 @@ public class PrefServiceBridge {
|
||||
private native void nativeSetAutoplayEnabled(boolean enabled);
|
||||
private native void nativeSetAllowCookiesEnabled(boolean enabled);
|
||||
private native void nativeSetBackgroundSyncEnabled(boolean enabled);
|
||||
+ private native void nativeSetCookiesSessionOnlyEnabled(boolean enabled);
|
||||
private native void nativeSetClipboardEnabled(boolean allow);
|
||||
private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled);
|
||||
private native void nativeSetClipboardEnabled(boolean enabled);
|
||||
private native void nativeSetDoNotTrackEnabled(boolean enabled);
|
||||
private native void nativeSetRememberPasswordsEnabled(boolean allow);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
|
||||
@@ -104,6 +104,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
// Keys for individual preferences.
|
||||
public static final String READ_WRITE_TOGGLE_KEY = "read_write_toggle";
|
||||
@@ -110,6 +110,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
|
||||
// Keys for category-specific preferences (toggle, link, button etc.), dynamically shown.
|
||||
public static final String THIRD_PARTY_COOKIES_TOGGLE_KEY = "third_party_cookies";
|
||||
+ public static final String COOKIES_SESSION_ONLY_TOGGLE_KEY = "cookies_session_only";
|
||||
public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate";
|
||||
public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more";
|
||||
private static final String ADD_EXCEPTION_KEY = "add_exception";
|
||||
@@ -459,6 +460,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -438,6 +439,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
|
||||
if (type == SiteSettingsCategory.Type.COOKIES) {
|
||||
updateThirdPartyCookiesCheckBox();
|
||||
|
@ -101,33 +101,50 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
|||
} else if (type == SiteSettingsCategory.Type.NOTIFICATIONS) {
|
||||
updateNotificationsVibrateCheckBox();
|
||||
}
|
||||
@@ -491,6 +493,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -476,6 +478,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
getInfoForOrigins();
|
||||
} else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
PrefServiceBridge.getInstance().setBlockThirdPartyCookiesEnabled(!((boolean) newValue));
|
||||
prefServiceBridge.setBlockThirdPartyCookiesEnabled(!((boolean) newValue));
|
||||
+ } else if (COOKIES_SESSION_ONLY_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
+ PrefServiceBridge.getInstance().setCookiesSessionOnlyEnabled(!((boolean) newValue));
|
||||
+ prefServiceBridge.setCookiesSessionOnlyEnabled((boolean) newValue);
|
||||
} else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
PrefServiceBridge.getInstance().setNotificationsVibrateEnabled((boolean) newValue);
|
||||
prefServiceBridge.setNotificationsVibrateEnabled((boolean) newValue);
|
||||
}
|
||||
@@ -734,6 +738,16 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
getPreferenceScreen().removePreference(thirdPartyCookies);
|
||||
}
|
||||
|
||||
+ // Configure/hide the keep cookies until session is over toggle, as needed.
|
||||
@@ -738,6 +742,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
TriStateSiteSettingsPreference triStateToggle =
|
||||
(TriStateSiteSettingsPreference) screen.findPreference(TRI_STATE_TOGGLE_KEY);
|
||||
Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY);
|
||||
+ Preference cookiesSessionOnly = getPreferenceScreen().findPreference(
|
||||
+ COOKIES_SESSION_ONLY_TOGGLE_KEY);
|
||||
+ if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
|
||||
Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
|
||||
Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY);
|
||||
PreferenceGroup allowedGroup = (PreferenceGroup) screen.findPreference(ALLOWED_GROUP);
|
||||
@@ -752,6 +758,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
screen.removePreference(binaryToggle);
|
||||
screen.removePreference(triStateToggle);
|
||||
screen.removePreference(thirdPartyCookies);
|
||||
+ screen.removePreference(cookiesSessionOnly);
|
||||
screen.removePreference(notificationsVibrate);
|
||||
screen.removePreference(explainProtectedMediaKey);
|
||||
screen.removePreference(allowedGroup);
|
||||
@@ -787,12 +794,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
configureBinaryToggle(binaryToggle, contentType);
|
||||
}
|
||||
|
||||
- // Configure/hide the third-party cookie toggle, as needed.
|
||||
+ // Configure/hide the third-party cookie toggle and session-only cookie toggle, as needed.
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
|
||||
thirdPartyCookies.setOnPreferenceChangeListener(this);
|
||||
updateThirdPartyCookiesCheckBox();
|
||||
+ cookiesSessionOnly.setOnPreferenceChangeListener(this);
|
||||
+ updateCookiesSessionOnlyCheckBox();
|
||||
+ } else {
|
||||
+ getPreferenceScreen().removePreference(cookiesSessionOnly);
|
||||
+ }
|
||||
+
|
||||
} else {
|
||||
screen.removePreference(thirdPartyCookies);
|
||||
+ screen.removePreference(cookiesSessionOnly);
|
||||
}
|
||||
|
||||
// Configure/hide the notifications vibrate toggle, as needed.
|
||||
Preference notificationsVibrate =
|
||||
getPreferenceScreen().findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
|
||||
@@ -847,6 +861,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -878,6 +888,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged());
|
||||
}
|
||||
|
||||
|
@ -135,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
|||
+ ChromeBaseCheckBoxPreference cookiesSessionOnlyPref = (ChromeBaseCheckBoxPreference)
|
||||
+ getPreferenceScreen().findPreference(COOKIES_SESSION_ONLY_TOGGLE_KEY);
|
||||
+ cookiesSessionOnlyPref.setChecked(
|
||||
+ !PrefServiceBridge.getInstance().isCookiesSessionOnlyEnabled());
|
||||
+ PrefServiceBridge.getInstance().isCookiesSessionOnlyEnabled());
|
||||
+ cookiesSessionOnlyPref.setEnabled(PrefServiceBridge.getInstance().isCategoryEnabled(
|
||||
+ ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES));
|
||||
+ }
|
||||
|
@ -146,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
|||
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
|
||||
@@ -861,6 +861,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -882,6 +882,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_ALLOW_THIRD_PARTY_COOKIES_SUMMARY" desc="Summary text for Allow Third Party Cookies preference">
|
||||
Third-party websites can save and read cookie data
|
||||
</message>
|
||||
|
@ -162,7 +179,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
|||
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
|
||||
--- a/chrome/browser/android/preferences/pref_service_bridge.cc
|
||||
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc
|
||||
@@ -282,6 +282,14 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
|
||||
@@ -310,6 +310,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
|
||||
return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies);
|
||||
}
|
||||
|
||||
|
@ -171,13 +188,16 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/
|
|||
+ const JavaParamRef<jobject>& obj) {
|
||||
+ HostContentSettingsMap* host_content_settings_map =
|
||||
+ HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile());
|
||||
+ return CONTENT_SETTING_SESSION_ONLY == host_content_settings_map->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES, nullptr);
|
||||
+ auto value = host_content_settings_map->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES, nullptr);
|
||||
+ auto enabled = CONTENT_SETTING_SESSION_ONLY == value;
|
||||
+ LOG(INFO) << "GetCookiesSessionOnly := " << enabled << " (raw_value = " << value << ")";
|
||||
+ return enabled;
|
||||
+}
|
||||
+
|
||||
static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj) {
|
||||
@@ -741,6 +749,17 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
|
||||
@@ -774,6 +785,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
|
||||
GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled);
|
||||
}
|
||||
|
||||
|
@ -187,14 +207,17 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/
|
|||
+ jboolean enabled) {
|
||||
+ HostContentSettingsMap* host_content_settings_map =
|
||||
+ HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile());
|
||||
+ LOG(INFO) << "SetCookiesSessionOnly -> " << (enabled ? "true" : "false") <<
|
||||
+ "; false -> setting_allow: " << CONTENT_SETTING_ALLOW <<
|
||||
+ "; true -> session_only: " << CONTENT_SETTING_SESSION_ONLY;
|
||||
+ host_content_settings_map->SetDefaultContentSetting(
|
||||
+ CONTENT_SETTINGS_TYPE_COOKIES,
|
||||
+ enabled ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_SESSION_ONLY);
|
||||
+ enabled ? CONTENT_SETTING_SESSION_ONLY : CONTENT_SETTING_ALLOW);
|
||||
+}
|
||||
+
|
||||
static void JNI_PrefServiceBridge_SetRememberPasswordsEnabled(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -9,9 +9,9 @@ Subject: Always allow partner customisation
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
@@ -243,14 +243,14 @@ public class PartnerBrowserCustomizations {
|
||||
@@ -242,14 +242,14 @@ public class PartnerBrowserCustomizations {
|
||||
@Override
|
||||
protected Void doInBackground(Void... params) {
|
||||
protected Void doInBackground() {
|
||||
try {
|
||||
- boolean systemOrPreStable =
|
||||
- (context.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) == 1
|
||||
|
@ -33,5 +33,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
|
|||
if (isCancelled()) return null;
|
||||
refreshIncognitoModeDisabled();
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -32,5 +32,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
|
|||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -2,24 +2,25 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
|||
Date: Wed, 1 Aug 2018 09:19:40 +0200
|
||||
Subject: Add bookmark import/export actions in bookmarks activity and page
|
||||
|
||||
Thanks to Arnaud for the snippet on how to add toast notifications
|
||||
---
|
||||
.../java/res/menu/bookmark_action_bar_menu.xml | 14 ++
|
||||
.../browser/bookmarks/BookmarkActionBar.java | 12 ++
|
||||
.../chrome/browser/bookmarks/BookmarkActivity.java | 19 ++
|
||||
.../chrome/browser/bookmarks/BookmarkBridge.java | 21 ++
|
||||
.../chrome/browser/bookmarks/BookmarkBridge.java | 56 ++++++
|
||||
.../chrome/browser/bookmarks/BookmarkDelegate.java | 10 +
|
||||
.../chrome/browser/bookmarks/BookmarkManager.java | 20 ++
|
||||
.../chrome/browser/bookmarks/BookmarkPage.java | 1 +
|
||||
.../java/strings/android_chrome_strings.grd | 6 +
|
||||
chrome/browser/BUILD.gn | 8 +-
|
||||
.../browser/android/bookmarks/bookmark_bridge.cc | 219 +++++++++++++++++++++
|
||||
chrome/browser/android/bookmarks/bookmark_bridge.h | 19 +-
|
||||
.../browser/android/bookmarks/bookmark_bridge.cc | 215 +++++++++++++++++++++
|
||||
chrome/browser/android/bookmarks/bookmark_bridge.h | 20 +-
|
||||
chrome/browser/importer/profile_writer.cc | 2 +
|
||||
chrome/common/BUILD.gn | 3 +
|
||||
chrome/utility/BUILD.gn | 7 +-
|
||||
chrome/utility/importer/bookmark_html_reader.cc | 27 ++-
|
||||
chrome/utility/importer/bookmark_html_reader.h | 9 +
|
||||
16 files changed, 387 insertions(+), 10 deletions(-)
|
||||
16 files changed, 419 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
--- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
|
@ -48,7 +49,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
|
||||
@@ -82,6 +82,12 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
@@ -89,6 +89,12 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
} else if (menuItem.getItemId() == R.id.search_menu_id) {
|
||||
mDelegate.openSearchUI();
|
||||
return true;
|
||||
|
@ -61,7 +62,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
}
|
||||
|
||||
SelectionDelegate<BookmarkId> selectionDelegate = mDelegate.getSelectionDelegate();
|
||||
@@ -125,6 +131,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
@@ -132,6 +138,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
void showLoadingUi() {
|
||||
setTitle(null);
|
||||
setNavigationButton(NAVIGATION_BUTTON_NONE);
|
||||
|
@ -70,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
getMenu().findItem(R.id.search_menu_id).setVisible(false);
|
||||
getMenu().findItem(R.id.edit_menu_id).setVisible(false);
|
||||
}
|
||||
@@ -134,6 +142,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
@@ -141,6 +149,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
super.showNormalView();
|
||||
|
||||
if (mDelegate == null) {
|
||||
|
@ -79,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
getMenu().findItem(R.id.search_menu_id).setVisible(false);
|
||||
getMenu().findItem(R.id.edit_menu_id).setVisible(false);
|
||||
}
|
||||
@@ -166,6 +176,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
@@ -173,6 +183,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
public void onFolderStateSet(BookmarkId folder) {
|
||||
mCurrentFolder = mDelegate.getModel().getBookmarkById(folder);
|
||||
|
||||
|
@ -141,15 +142,36 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.profiles.Profile;
|
||||
@@ -4,7 +4,11 @@
|
||||
|
||||
package org.chromium.chrome.browser.bookmarks;
|
||||
|
||||
+import android.content.Intent;
|
||||
+import android.content.Context;
|
||||
+import android.net.Uri;
|
||||
import android.os.SystemClock;
|
||||
+import android.provider.Browser;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
|
||||
@@ -13,11 +17,16 @@ import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
+import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
||||
+import org.chromium.chrome.browser.IntentHandler;
|
||||
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
import org.chromium.components.url_formatter.UrlFormatter;
|
||||
+import org.chromium.ui.base.PageTransition;
|
||||
+import org.chromium.ui.base.WindowAndroid;
|
||||
+import org.chromium.ui.widget.Toast;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -508,6 +509,24 @@ public class BookmarkBridge {
|
||||
@@ -508,6 +517,24 @@ public class BookmarkBridge {
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -174,7 +196,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
* Synchronously gets a list of bookmarks that match the specified search query.
|
||||
* @param query Keyword used for searching bookmarks.
|
||||
* @param maxNumberOfResult Maximum number of result to fetch.
|
||||
@@ -906,6 +925,8 @@ public class BookmarkBridge {
|
||||
@@ -840,6 +867,33 @@ public class BookmarkBridge {
|
||||
depthList.add(depth);
|
||||
}
|
||||
|
||||
+
|
||||
+ @CalledByNative
|
||||
+ public void bookmarksImported() {
|
||||
+ Context context = ContextUtils.getApplicationContext();
|
||||
+
|
||||
+ //TODO: call this after actual import
|
||||
+ //Toast.makeText(ContextUtils.getApplicationContext(), "Bookmarks imported", Toast.LENGTH_LONG).show();
|
||||
+ }
|
||||
+
|
||||
+ @CalledByNative
|
||||
+ public void bookmarksExported(String bookmarksPath) {
|
||||
+ Context context = ContextUtils.getApplicationContext();
|
||||
+
|
||||
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("file://" + bookmarksPath));
|
||||
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID,
|
||||
+ context.getPackageName());
|
||||
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
+ intent.putExtra(IntentHandler.EXTRA_PAGE_TRANSITION_TYPE, PageTransition.AUTO_BOOKMARK);
|
||||
+
|
||||
+ // If the bookmark manager is shown in a tab on a phone (rather than in a separate
|
||||
+ // activity) the component name may be null. Send the intent through
|
||||
+ // ChromeLauncherActivity instead to avoid crashing. See crbug.com/615012.
|
||||
+ intent.setClass(context, ChromeLauncherActivity.class);
|
||||
+
|
||||
+ IntentHandler.startActivityForTrustedIntent(intent);
|
||||
+ }
|
||||
+
|
||||
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
|
||||
List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
|
||||
for (int i = 0; i < left.length; i++) {
|
||||
@@ -906,6 +960,8 @@ public class BookmarkBridge {
|
||||
boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
|
||||
private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
|
||||
int index);
|
||||
|
@ -206,14 +262,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
|
||||
@@ -22,6 +22,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.BasicNativePage;
|
||||
@@ -21,6 +21,7 @@ import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkModelObserver;
|
||||
+import org.chromium.chrome.browser.ChromeActivity;
|
||||
import org.chromium.chrome.browser.favicon.LargeIconBridge;
|
||||
import org.chromium.chrome.browser.native_page.BasicNativePage;
|
||||
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksReader;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
@@ -31,6 +32,7 @@ import org.chromium.chrome.browser.widget.selection.SelectableListLayout;
|
||||
import org.chromium.chrome.browser.widget.selection.SelectableListToolbar.SearchDelegate;
|
||||
import org.chromium.chrome.browser.widget.selection.SelectionDelegate;
|
||||
|
@ -275,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
|||
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
|
||||
@@ -209,6 +209,12 @@ CHAR-LIMIT guidelines:
|
||||
@@ -224,6 +224,12 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_SEARCH" desc="The label for a search button.">
|
||||
Search
|
||||
</message>
|
||||
|
@ -291,7 +347,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
|||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -137,6 +137,10 @@ jumbo_split_static_library("browser") {
|
||||
@@ -149,6 +149,10 @@ jumbo_split_static_library("browser") {
|
||||
"bitmap_fetcher/bitmap_fetcher_service.h",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
|
||||
|
@ -302,7 +358,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||
"bookmarks/bookmark_model_factory.cc",
|
||||
"bookmarks/bookmark_model_factory.h",
|
||||
"bookmarks/bookmark_stats.cc",
|
||||
@@ -2479,8 +2483,6 @@ jumbo_split_static_library("browser") {
|
||||
@@ -2588,8 +2592,6 @@ jumbo_split_static_library("browser") {
|
||||
"banners/app_banner_infobar_delegate_desktop.h",
|
||||
"banners/app_banner_manager_desktop.cc",
|
||||
"banners/app_banner_manager_desktop.h",
|
||||
|
@ -311,7 +367,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
|||
"certificate_viewer.h",
|
||||
"chrome_browser_field_trials_desktop.cc",
|
||||
"chrome_browser_field_trials_desktop.h",
|
||||
@@ -2569,8 +2571,6 @@ jumbo_split_static_library("browser") {
|
||||
@@ -2680,8 +2682,6 @@ jumbo_split_static_library("browser") {
|
||||
"importer/importer_uma.h",
|
||||
"importer/in_process_importer_bridge.cc",
|
||||
"importer/in_process_importer_bridge.h",
|
||||
|
@ -437,7 +493,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
|
||||
@@ -470,6 +539,156 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -470,6 +539,152 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
|
@ -445,6 +501,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+ const JavaParamRef<jobject>& obj,
|
||||
+ const JavaParamRef<jobject>& java_window) {
|
||||
+ DCHECK(IsLoaded());
|
||||
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
+
|
||||
+ ui::WindowAndroid* window =
|
||||
+ ui::WindowAndroid::FromJavaWindowAndroid(java_window);
|
||||
|
@ -462,39 +519,39 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+ file_type_info.allowed_paths =
|
||||
+ ui::SelectFileDialog::FileTypeInfo::NATIVE_OR_DRIVE_PATH;
|
||||
+
|
||||
+ const base::FilePath file_path;
|
||||
+
|
||||
+ select_file_dialog_->SelectFile(
|
||||
+ ui::SelectFileDialog::SELECT_OPEN_FILE,
|
||||
+ base::string16(),
|
||||
+ file_path,
|
||||
+ NULL,
|
||||
+ import_path_,
|
||||
+ &file_type_info,
|
||||
+ 0,
|
||||
+ base::FilePath::StringType(),
|
||||
+ window,
|
||||
+ NULL);
|
||||
+}
|
||||
+
|
||||
+void ExporterCallback(Profile* profile, const base::FilePath& path) {
|
||||
+ bookmark_html_writer::WriteBookmarks(profile, path, NULL);
|
||||
+ //NOTE: nothing will be written if write permission has not been granted before
|
||||
+ LOG(INFO) << "Bookmarks exported successfully in " << path;
|
||||
+ //NOTE: this should be called after the actual import
|
||||
+ Java_BookmarkBridge_bookmarksImported(env, obj);
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::ExportBookmarks(JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& obj) {
|
||||
+ DCHECK(IsLoaded());
|
||||
+ base::FilePath path;
|
||||
+ if (!base::android::GetDownloadsDirectory(&path)) {
|
||||
+ LOG(ERROR) << "Could not retrieve downloads directory for bookmarks export";
|
||||
+ return;
|
||||
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
+
|
||||
+ if (import_path_.empty()) {
|
||||
+ if (!base::android::GetDownloadsDirectory(&import_path_)) {
|
||||
+ LOG(ERROR) << "Could not retrieve downloads directory for bookmarks export";
|
||||
+ return;
|
||||
+ }
|
||||
+ import_path_ = import_path_.Append(FILE_PATH_LITERAL("bookmarks.html"));
|
||||
+ }
|
||||
+
|
||||
+ path = path.Append(FILE_PATH_LITERAL("bookmarks.html"));
|
||||
+ bookmark_html_writer::WriteBookmarks(profile_, import_path_, NULL);
|
||||
+
|
||||
+// base::PostTaskWithTraits(FROM_HERE, {base::MayBlock()},
|
||||
+// base::BindOnce(&ExporterCallback, profile_, path));
|
||||
+ ExporterCallback(profile_, path);
|
||||
+ //NOTE: nothing will be written if write permission has not been granted before
|
||||
+ LOG(INFO) << "Bookmarks exported successfully in " << import_path_;
|
||||
+
|
||||
+ Java_BookmarkBridge_bookmarksExported(env, obj, ConvertUTF8ToJavaString(env, import_path_.MaybeAsASCII()));
|
||||
+}
|
||||
+
|
||||
+// Attempts to create a TemplateURL from the provided data. |title| is optional.
|
||||
|
@ -513,40 +570,6 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+ return std::make_unique<TemplateURL>(data);
|
||||
+}
|
||||
+
|
||||
+void ImporterCallback(Profile* profile, const base::FilePath& path, const std::string& contents) {
|
||||
+ // this import logic comes from BookmarksFileImporter class
|
||||
+ std::vector<ImportedBookmarkEntry> bookmarks;
|
||||
+ std::vector<importer::SearchEngineInfo> search_engines;
|
||||
+
|
||||
+ bookmark_html_reader::ImportBookmarksFile(
|
||||
+ base::Callback<bool(void)>(),
|
||||
+ base::Bind(internal::CanImportURL),
|
||||
+ contents,
|
||||
+ &bookmarks,
|
||||
+ &search_engines,
|
||||
+ nullptr);
|
||||
+
|
||||
+ // writing to profile will begin extensive changes and use the same bookmarks model for persisting changes
|
||||
+ auto *writer = new ProfileWriter(profile);
|
||||
+
|
||||
+ if (!bookmarks.empty()) {
|
||||
+ writer->AddBookmarks(bookmarks, base::ASCIIToUTF16("Imported"));
|
||||
+ }
|
||||
+ if (!search_engines.empty()) {
|
||||
+ TemplateURLService::OwnedTemplateURLVector owned_template_urls;
|
||||
+ for (const auto& search_engine : search_engines) {
|
||||
+ std::unique_ptr<TemplateURL> owned_template_url = CreateTemplateURL(
|
||||
+ search_engine.url, search_engine.keyword, search_engine.display_name);
|
||||
+ if (owned_template_url)
|
||||
+ owned_template_urls.push_back(std::move(owned_template_url));
|
||||
+ }
|
||||
+ writer->AddKeywords(std::move(owned_template_urls), false);
|
||||
+ }
|
||||
+
|
||||
+ LOG(INFO) << "Imported " << bookmarks.size() << " bookmarks and " <<
|
||||
+ search_engines.size() << " search engines from " << path;
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::FileSelected(const base::FilePath& path, int index,
|
||||
+ void* params) {
|
||||
+ base::File file;
|
||||
|
@ -582,10 +605,39 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
|||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ std::string content(buffer.begin(), buffer.end());
|
||||
+// base::PostTaskWithTraits(FROM_HERE, {base::MayBlock()},
|
||||
+// base::BindOnce(&ImporterCallback, profile_, path, content));
|
||||
+ ImporterCallback(profile_, path, content);
|
||||
+ std::string contents(buffer.begin(), buffer.end());
|
||||
+
|
||||
+ // the following import logic comes from BookmarksFileImporter class
|
||||
+ std::vector<ImportedBookmarkEntry> bookmarks;
|
||||
+ std::vector<importer::SearchEngineInfo> search_engines;
|
||||
+
|
||||
+ bookmark_html_reader::ImportBookmarksFile(
|
||||
+ base::Callback<bool(void)>(),
|
||||
+ base::Bind(internal::CanImportURL),
|
||||
+ contents,
|
||||
+ &bookmarks,
|
||||
+ &search_engines,
|
||||
+ nullptr);
|
||||
+
|
||||
+ // writing to profile will begin extensive changes and use the same bookmarks model for persisting changes
|
||||
+ auto *writer = new ProfileWriter(profile_);
|
||||
+
|
||||
+ if (!bookmarks.empty()) {
|
||||
+ writer->AddBookmarks(bookmarks, base::ASCIIToUTF16("Imported"));
|
||||
+ }
|
||||
+ if (!search_engines.empty()) {
|
||||
+ TemplateURLService::OwnedTemplateURLVector owned_template_urls;
|
||||
+ for (const auto& search_engine : search_engines) {
|
||||
+ std::unique_ptr<TemplateURL> owned_template_url = CreateTemplateURL(
|
||||
+ search_engine.url, search_engine.keyword, search_engine.display_name);
|
||||
+ if (owned_template_url)
|
||||
+ owned_template_urls.push_back(std::move(owned_template_url));
|
||||
+ }
|
||||
+ writer->AddKeywords(std::move(owned_template_urls), false);
|
||||
+ }
|
||||
+
|
||||
+ LOG(INFO) << "Imported " << bookmarks.size() << " bookmarks and " <<
|
||||
+ search_engines.size() << " search engines from " << import_path_;
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::FileSelectionCanceled(void* params) {
|
||||
|
@ -643,7 +695,14 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
void SetBookmarkTitle(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
jlong id,
|
||||
@@ -267,6 +283,7 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -261,12 +277,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
void ShimBeingDeleted(PartnerBookmarksShim* shim) override;
|
||||
|
||||
Profile* profile_;
|
||||
+ base::FilePath import_path_;
|
||||
JavaObjectWeakGlobalRef weak_java_ref_;
|
||||
bookmarks::BookmarkModel* bookmark_model_; // weak
|
||||
bookmarks::ManagedBookmarkService* managed_bookmark_service_; // weak
|
||||
std::unique_ptr<bookmarks::ScopedGroupBookmarkActions>
|
||||
grouped_bookmark_actions_;
|
||||
PrefChangeRegistrar pref_change_registrar_;
|
||||
|
@ -654,7 +713,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
|||
diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc
|
||||
--- a/chrome/browser/importer/profile_writer.cc
|
||||
+++ b/chrome/browser/importer/profile_writer.cc
|
||||
@@ -109,12 +109,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
|
||||
@@ -97,12 +97,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
|
||||
HistoryServiceFactory::GetForProfile(profile_,
|
||||
ServiceAccessType::EXPLICIT_ACCESS)
|
||||
->AddPagesWithDetails(page, visit_source);
|
||||
|
@ -662,8 +721,8 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
|
|||
// Measure the size of the history page after Auto Import on first run.
|
||||
if (first_run::IsChromeFirstRun() &&
|
||||
visit_source == history::SOURCE_IE_IMPORTED) {
|
||||
UMA_HISTOGRAM_COUNTS("Import.ImportedHistorySize.AutoImportFromIE",
|
||||
page.size());
|
||||
UMA_HISTOGRAM_COUNTS_1M("Import.ImportedHistorySize.AutoImportFromIE",
|
||||
page.size());
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
@ -672,7 +731,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
|
|||
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
||||
--- a/chrome/common/BUILD.gn
|
||||
+++ b/chrome/common/BUILD.gn
|
||||
@@ -436,6 +436,9 @@ static_library("common") {
|
||||
@@ -442,6 +442,9 @@ static_library("common") {
|
||||
sources += [
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
|
@ -685,7 +744,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
|||
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
||||
--- a/chrome/utility/BUILD.gn
|
||||
+++ b/chrome/utility/BUILD.gn
|
||||
@@ -55,8 +55,6 @@ static_library("utility") {
|
||||
@@ -58,8 +58,6 @@ static_library("utility") {
|
||||
|
||||
if (!is_android) {
|
||||
sources += [
|
||||
|
@ -694,7 +753,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
|||
"importer/bookmarks_file_importer.cc",
|
||||
"importer/bookmarks_file_importer.h",
|
||||
"importer/edge_database_reader_win.cc",
|
||||
@@ -158,6 +156,11 @@ static_library("utility") {
|
||||
@@ -162,6 +160,11 @@ static_library("utility") {
|
||||
]
|
||||
}
|
||||
|
||||
|
@ -813,5 +872,5 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp
|
|||
// has replacement terms. Chrome treats such bookmarks as search engines rather
|
||||
// than true bookmarks.
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 10 Nov 2018 16:09:26 +0100
|
||||
Subject: Reduce permissions needed for bookmarks import/export
|
||||
|
||||
Completely remove contacts picker permission from the file dialog
|
||||
---
|
||||
chrome/android/java/AndroidManifest.xml | 1 -
|
||||
chrome/browser/android/bookmarks/bookmark_bridge.cc | 20 +++++++++++++++++---
|
||||
.../src/org/chromium/ui/base/SelectFileDialog.java | 12 ++++++++----
|
||||
3 files changed, 25 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -35,7 +35,6 @@ by a child template that "extends" this file.
|
||||
{% endif %}
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||
- <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
||||
|
||||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
@@ -552,14 +552,23 @@ void BookmarkBridge::ImportBookmarks(JNIEnv* env,
|
||||
select_file_dialog_ = ui::SelectFileDialog::Create(
|
||||
this, std::make_unique<ChromeSelectFilePolicy>(nullptr));
|
||||
|
||||
- //NOTE: extension and description are not used on Android
|
||||
+ //NOTE: extension and description are not used on Android, thus not set
|
||||
ui::SelectFileDialog::FileTypeInfo file_type_info;
|
||||
+
|
||||
+#if defined(OS_ANDROID)
|
||||
+ static const std::vector<base::string16> v_accept_types = { base::UTF8ToUTF16("text/html") };
|
||||
+
|
||||
+ // Android needs the original MIME types and an additional capture value.
|
||||
+ std::pair<std::vector<base::string16>, bool> accept_types =
|
||||
+ std::make_pair(v_accept_types, /* use_media_capture */ false);
|
||||
+#else
|
||||
file_type_info.extensions.resize(1);
|
||||
file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html"));
|
||||
file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm"));
|
||||
file_type_info.extension_description_overrides.push_back(base::ASCIIToUTF16("Netscape Bookmark"));
|
||||
file_type_info.allowed_paths =
|
||||
- ui::SelectFileDialog::FileTypeInfo::NATIVE_OR_DRIVE_PATH;
|
||||
+ ui::SelectFileDialog::FileTypeInfo::ANY_PATH;
|
||||
+#endif
|
||||
|
||||
select_file_dialog_->SelectFile(
|
||||
ui::SelectFileDialog::SELECT_OPEN_FILE,
|
||||
@@ -569,7 +578,12 @@ void BookmarkBridge::ImportBookmarks(JNIEnv* env,
|
||||
0,
|
||||
base::FilePath::StringType(),
|
||||
window,
|
||||
- NULL);
|
||||
+#if defined(OS_ANDROID)
|
||||
+ &accept_types
|
||||
+#else
|
||||
+ NULL
|
||||
+#endif
|
||||
+);
|
||||
|
||||
//NOTE: this should be called after the actual import
|
||||
Java_BookmarkBridge_bookmarksImported(env, obj);
|
||||
diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
--- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
+++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
@@ -52,6 +52,7 @@ public class SelectFileDialog
|
||||
private static final String IMAGE_TYPE = "image/";
|
||||
private static final String VIDEO_TYPE = "video/";
|
||||
private static final String AUDIO_TYPE = "audio/";
|
||||
+ private static final String HTML_TYPE = "text/html";
|
||||
private static final String ALL_IMAGE_TYPES = IMAGE_TYPE + "*";
|
||||
private static final String ALL_VIDEO_TYPES = VIDEO_TYPE + "*";
|
||||
private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*";
|
||||
@@ -159,7 +160,7 @@ public class SelectFileDialog
|
||||
if (!window.hasPermission(Manifest.permission.READ_CONTACTS)) {
|
||||
missingPermissions.add(Manifest.permission.READ_CONTACTS);
|
||||
}
|
||||
- } else if (shouldUsePhotoPicker()) {
|
||||
+ } else if (shouldUsePhotoPicker() || shouldShowHtmlTypes()) {
|
||||
if (!window.hasPermission(Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
||||
missingPermissions.add(Manifest.permission.READ_EXTERNAL_STORAGE);
|
||||
}
|
||||
@@ -324,9 +325,7 @@ public class SelectFileDialog
|
||||
* 3.) There is a valid Android Activity associated with the file request.
|
||||
*/
|
||||
private boolean shouldUseContactsPicker() {
|
||||
- if (mFileTypes.size() != 1) return false;
|
||||
- if (!mFileTypes.get(0).equals("text/json+contacts")) return false;
|
||||
- return UiUtils.shouldShowContactsPicker() && mWindowAndroid.getActivity().get() != null;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -347,6 +346,7 @@ public class SelectFileDialog
|
||||
}
|
||||
if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
|
||||
}
|
||||
+ if (mimeTypes.size() == 0) return null;
|
||||
return mimeTypes;
|
||||
}
|
||||
|
||||
@@ -649,6 +649,10 @@ public class SelectFileDialog
|
||||
return countAcceptTypesFor(specificType) > 0;
|
||||
}
|
||||
|
||||
+ private boolean shouldShowHtmlTypes() {
|
||||
+ return countAcceptTypesFor(HTML_TYPE) > 0;
|
||||
+ }
|
||||
+
|
||||
private boolean shouldShowImageTypes() {
|
||||
return shouldShowTypes(ALL_IMAGE_TYPES, IMAGE_TYPE);
|
||||
}
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 10 Nov 2018 17:20:21 +0100
|
||||
Subject: Disable promos displayed in bookmarks manager
|
||||
|
||||
Remove personalized signin promo view from
|
||||
bookmarks, never reach signin thresholds.
|
||||
---
|
||||
.../personalized_signin_promo_view_bookmarks.xml | 30 ----------------------
|
||||
.../browser/bookmarks/BookmarkItemsAdapter.java | 23 ++---------------
|
||||
.../browser/signin/SigninPromoController.java | 19 ++------------
|
||||
chrome/android/java_sources.gni | 1 -
|
||||
4 files changed, 4 insertions(+), 69 deletions(-)
|
||||
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
|
||||
diff --git a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml b/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
deleted file mode 100644
|
||||
--- a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
+++ /dev/null
|
||||
@@ -1,30 +0,0 @@
|
||||
-<?xml version="1.0" encoding="utf-8"?>
|
||||
-<!-- Copyright 2017 The Chromium Authors. All rights reserved.
|
||||
- Use of this source code is governed by a BSD-style license that can be
|
||||
- found in the LICENSE file. -->
|
||||
-
|
||||
-<org.chromium.chrome.browser.signin.PersonalizedSigninPromoView
|
||||
- xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
- android:id="@+id/signin_promo_view_container"
|
||||
- android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
- android:layout_margin="16dp"
|
||||
- android:background="@drawable/hairline_border_card_background"
|
||||
- android:gravity="center_horizontal"
|
||||
- android:orientation="vertical"
|
||||
- android:paddingBottom="12dp"
|
||||
- android:paddingTop="14dp">
|
||||
-
|
||||
- <FrameLayout
|
||||
- android:layout_width="match_parent"
|
||||
- android:layout_height="wrap_content"
|
||||
- android:layout_marginBottom="12dp"
|
||||
- android:layout_marginEnd="12dp"
|
||||
- android:layout_marginStart="12dp">
|
||||
-
|
||||
- <include layout="@layout/personalized_signin_promo_view_header"/>
|
||||
- </FrameLayout>
|
||||
-
|
||||
- <include layout="@layout/personalized_signin_promo_view_body"/>
|
||||
-
|
||||
-</org.chromium.chrome.browser.signin.PersonalizedSigninPromoView>
|
||||
\ No newline at end of file
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
|
||||
@@ -57,7 +57,6 @@ class BookmarkItemsAdapter
|
||||
|
||||
private BookmarkDelegate mDelegate;
|
||||
private Context mContext;
|
||||
- private BookmarkPromoHeader mPromoHeaderManager;
|
||||
private String mSearchText;
|
||||
private BookmarkId mCurrentFolder;
|
||||
|
||||
@@ -211,9 +210,9 @@ class BookmarkItemsAdapter
|
||||
|
||||
switch (viewType) {
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
- return mPromoHeaderManager.createPersonalizedSigninPromoHolder(parent);
|
||||
+ return null;
|
||||
case ViewType.SYNC_PROMO:
|
||||
- return mPromoHeaderManager.createSyncPromoHolder(parent);
|
||||
+ return null;
|
||||
case ViewType.FOLDER:
|
||||
BookmarkFolderRow folder = (BookmarkFolderRow) LayoutInflater.from(
|
||||
parent.getContext()).inflate(R.layout.bookmark_folder_row, parent, false);
|
||||
@@ -234,8 +233,6 @@ class BookmarkItemsAdapter
|
||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
||||
switch (holder.getItemViewType()) {
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
|
||||
- mPromoHeaderManager.setupPersonalizedSigninPromo(view);
|
||||
break;
|
||||
case ViewType.SYNC_PROMO:
|
||||
break;
|
||||
@@ -254,7 +251,6 @@ class BookmarkItemsAdapter
|
||||
public void onViewRecycled(ViewHolder holder) {
|
||||
switch (holder.getItemViewType()) {
|
||||
case ViewType.PERSONALIZED_SIGNIN_PROMO:
|
||||
- mPromoHeaderManager.detachPersonalizePromoView();
|
||||
break;
|
||||
default:
|
||||
// Other view holders don't have special recycling code.
|
||||
@@ -289,7 +285,6 @@ class BookmarkItemsAdapter
|
||||
}
|
||||
};
|
||||
|
||||
- mPromoHeaderManager = new BookmarkPromoHeader(mContext, promoHeaderChangeAction);
|
||||
populateTopLevelFoldersList();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
@@ -300,7 +295,6 @@ class BookmarkItemsAdapter
|
||||
mDelegate.removeUIObserver(this);
|
||||
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
|
||||
mDelegate = null;
|
||||
- mPromoHeaderManager.destroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -367,19 +361,6 @@ class BookmarkItemsAdapter
|
||||
if (currentUIState == BookmarkUIState.STATE_SEARCHING) return;
|
||||
|
||||
assert currentUIState == BookmarkUIState.STATE_FOLDER : "Unexpected UI state";
|
||||
-
|
||||
- switch (mPromoHeaderManager.getPromoState()) {
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_NONE:
|
||||
- return;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SIGNIN_PERSONALIZED:
|
||||
- mPromoHeaderSection.add(ViewType.PERSONALIZED_SIGNIN_PROMO);
|
||||
- return;
|
||||
- case BookmarkPromoHeader.PromoState.PROMO_SYNC:
|
||||
- mPromoHeaderSection.add(ViewType.SYNC_PROMO);
|
||||
- return;
|
||||
- default:
|
||||
- assert false : "Unexpected value for promo state!";
|
||||
- }
|
||||
}
|
||||
|
||||
private void populateTopLevelFoldersList() {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
@@ -77,23 +77,8 @@ public class SigninPromoController {
|
||||
*/
|
||||
public static boolean hasNotReachedImpressionLimit(@AccessPoint int accessPoint) {
|
||||
SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
|
||||
- switch (accessPoint) {
|
||||
- case SigninAccessPoint.BOOKMARK_MANAGER:
|
||||
- return sharedPreferences.getInt(SIGNIN_PROMO_IMPRESSIONS_COUNT_BOOKMARKS, 0)
|
||||
- < MAX_IMPRESSIONS_BOOKMARKS;
|
||||
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
|
||||
- // There is no impression limit for NTP content suggestions.
|
||||
- return true;
|
||||
- case SigninAccessPoint.RECENT_TABS:
|
||||
- // There is no impression limit for Recent Tabs.
|
||||
- return true;
|
||||
- case SigninAccessPoint.SETTINGS:
|
||||
- return sharedPreferences.getInt(SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS, 0)
|
||||
- < MAX_IMPRESSIONS_SETTINGS;
|
||||
- default:
|
||||
- assert false : "Unexpected value for access point: " + accessPoint;
|
||||
- return false;
|
||||
- }
|
||||
+ // never show anything
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
--- a/chrome/android/java_sources.gni
|
||||
+++ b/chrome/android/java_sources.gni
|
||||
@@ -140,7 +140,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",
|
||||
- "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkRow.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIObserver.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java",
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
|||
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
|
||||
@@ -15,6 +15,11 @@
|
||||
@@ -18,6 +18,11 @@
|
||||
android:summary="@string/search_suggestions_summary"
|
||||
android:defaultValue="true" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
|
@ -41,7 +41,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
|
||||
@@ -1037,8 +1037,10 @@ public class ChromeTabbedActivity
|
||||
@@ -1030,8 +1030,10 @@ public class ChromeTabbedActivity
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
|
@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
|||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
@@ -46,6 +48,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
@@ -47,6 +49,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
|
||||
|
@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
|||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
@@ -145,6 +148,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
@@ -146,6 +149,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
|
@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
|||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -171,6 +179,12 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
@@ -172,6 +180,12 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
|
@ -108,9 +108,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
|||
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
|
||||
@@ -3655,6 +3655,12 @@ However, you aren’t invisible. Going incognito doesn’t hide your browsing fr
|
||||
<message name="IDS_NEAR_OOM_INTERVENTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can resume what it was doing.">
|
||||
Resume
|
||||
@@ -3765,6 +3765,12 @@ However, you aren’t invisible. Going private doesn’t hide your browsing from
|
||||
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
|
||||
IMAGE
|
||||
</message>
|
||||
+ <message name="IDS_CLOSE_TABS_ON_EXIT_TITLE" desc="Text for 'Close tabs on exit' settings-privacy option.">
|
||||
+ Close all open tabs on exit
|
||||
|
@ -118,9 +118,9 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
|||
+ <message name="IDS_CLOSE_TABS_ON_EXIT_SUMMARY" desc="Summary text for 'Close tabs on exit' settings-privacy option.">
|
||||
+ Don't persist tabs between browsing sessions
|
||||
+ </message>
|
||||
</messages>
|
||||
</release>
|
||||
</grit>
|
||||
<message name="IDS_CONTEXTMENU_LINK_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the link.">
|
||||
LINK
|
||||
</message>
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
From: Ryan Archer <ryan.bradley.archer@gmail.com>
|
||||
Date: Wed, 2 Aug 2017 01:41:28 -0400
|
||||
Subject: Add an always-incognito mode.
|
||||
Subject: Add an always-incognito mode
|
||||
|
||||
More specifically, add a preference that causes all new tabs and all
|
||||
clicked links to launch as incognito.
|
||||
|
@ -9,17 +9,17 @@ clicked links to launch as incognito.
|
|||
.../browser/AlwaysIncognitoLinkInterceptor.java | 72 ++++++++++++++++++++++
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 4 ++
|
||||
.../chrome/browser/appmenu/AppMenuHandler.java | 12 ++++
|
||||
.../contextmenu/ChromeContextMenuPopulator.java | 7 +++
|
||||
.../contextmenu/ChromeContextMenuPopulator.java | 9 ++-
|
||||
.../chrome/browser/tabmodel/ChromeTabCreator.java | 24 +++++++-
|
||||
.../java/strings/android_chrome_strings.grd | 6 ++
|
||||
chrome/android/java_sources.gni | 1 +
|
||||
8 files changed, 130 insertions(+), 1 deletion(-)
|
||||
8 files changed, 131 insertions(+), 2 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
|
||||
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
|
||||
@@ -20,6 +20,11 @@
|
||||
@@ -23,6 +23,11 @@
|
||||
android:summary="@string/close_tabs_on_exit_summary"
|
||||
android:defaultValue="false" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
|
@ -111,7 +111,7 @@ new file mode 100644
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -238,6 +238,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -249,6 +249,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||
|
||||
// Observes when sync becomes ready to create the mContextReporter.
|
||||
|
@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
|||
private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
|
||||
|
||||
private ChromeFullscreenManager mFullscreenManager;
|
||||
@@ -1630,6 +1631,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -1707,6 +1708,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
|
@ -168,34 +168,36 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
|||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
@@ -14,6 +14,7 @@ import android.view.ContextMenu;
|
||||
import android.webkit.MimeTypeMap;
|
||||
@@ -14,6 +14,7 @@ import android.webkit.MimeTypeMap;
|
||||
|
||||
import org.chromium.base.CollectionUtil;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.library_loader.LibraryProcessType;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.R;
|
||||
@@ -45,6 +46,7 @@ import java.util.Set;
|
||||
*/
|
||||
public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
||||
@@ -43,6 +44,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
private static final String TAG = "CCMenuPopulator";
|
||||
private final ContextMenuItemDelegate mDelegate;
|
||||
private final @ContextMenuMode int mMode;
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
private static final ShareContextMenuItem SHARE_IMAGE =
|
||||
new ShareContextMenuItem(R.drawable.ic_share_white_24dp,
|
||||
R.string.contextmenu_share_image, R.id.contextmenu_share_image, false);
|
||||
@@ -479,6 +481,11 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
disabledOptions.add(ChromeContextMenuItem.OPEN_IN_INCOGNITO_TAB);
|
||||
}
|
||||
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)
|
||||
+ && !mDelegate.isIncognito()) {
|
||||
+ disabledOptions.add(ChromeContextMenuItem.OPEN_IN_NEW_TAB);
|
||||
+ }
|
||||
+
|
||||
if (params.getLinkText().trim().isEmpty() || params.isImage()) {
|
||||
disabledOptions.add(ChromeContextMenuItem.COPY_LINK_TEXT);
|
||||
}
|
||||
/**
|
||||
* Defines the Groups of each Context Menu Item
|
||||
@@ -246,7 +248,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && mMode == ContextMenuMode.NORMAL
|
||||
&& !isEmptyUrl(params.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(params.getUrl())) {
|
||||
- linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB));
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)
|
||||
+ && !mDelegate.isIncognito()) {
|
||||
+ // disallow open in new tab
|
||||
+ } else {
|
||||
+ linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB));
|
||||
+ }
|
||||
if (!mDelegate.isIncognito() && mDelegate.isIncognitoSupported()) {
|
||||
linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_INCOGNITO_TAB));
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
|
@ -215,10 +217,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabDelegateFactory;
|
||||
+import org.chromium.chrome.browser.tab.TabObserver;
|
||||
import org.chromium.chrome.browser.tab.TabRedirectHandler;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
|
||||
import org.chromium.chrome.browser.util.IntentUtils;
|
||||
@@ -36,6 +39,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -37,6 +40,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
|
||||
private final ChromeActivity mActivity;
|
||||
private final boolean mIncognito;
|
||||
|
@ -226,7 +228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
|
||||
private WindowAndroid mNativeWindow;
|
||||
private TabModel mTabModel;
|
||||
@@ -47,6 +51,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -48,6 +52,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
mActivity = activity;
|
||||
mNativeWindow = nativeWindow;
|
||||
mIncognito = incognito;
|
||||
|
@ -238,7 +240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -159,6 +168,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -160,6 +169,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
tab.getWebContents());
|
||||
}
|
||||
|
||||
|
@ -249,7 +251,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
mTabModel.addTab(tab, position, type);
|
||||
return tab;
|
||||
} finally {
|
||||
@@ -199,6 +212,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -200,6 +213,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
Tab tab = Tab.createLiveTab(
|
||||
Tab.INVALID_TAB_ID, mIncognito, mNativeWindow, type, parentId, !openInForeground);
|
||||
tab.initialize(webContents, mTabContentManager, delegateFactory, !openInForeground, false);
|
||||
|
@ -261,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
mTabModel.addTab(tab, position, type);
|
||||
return true;
|
||||
}
|
||||
@@ -242,7 +260,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -243,7 +261,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
*/
|
||||
public Tab launchUrlFromExternalApp(String url, String referer, String headers,
|
||||
String appId, boolean forceNewTab, Intent intent, long intentTimestamp) {
|
||||
|
@ -269,7 +271,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
|
||||
|
||||
// If an external app sends an intent for a Weblite URL and the Data Reduction Proxy is
|
||||
@@ -302,6 +319,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -303,6 +320,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
tab.initialize(
|
||||
null, mTabContentManager, createDefaultTabDelegateFactory(), !selectTab, false);
|
||||
assert state.isIncognito() == mIncognito;
|
||||
|
@ -284,7 +286,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
|||
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
|
||||
@@ -676,6 +676,12 @@ CHAR-LIMIT guidelines:
|
||||
@@ -691,6 +691,12 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_SAFE_BROWSING_SCOUT_REPORTING_SUMMARY" desc="Body text for Chrome setting under 'Help Improve Safe Browsing'. This feature sends small amounts of data to Google about potentially-dangerous pages to help Safe Browsing improve Chrome's protection against malware and phishing.">
|
||||
Sends some system information and page content to Google
|
||||
</message>
|
||||
|
@ -306,8 +308,8 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
|||
chrome_java_sources = [
|
||||
+ "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java",
|
||||
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java",
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -4,8 +4,8 @@ Subject: Disable fetching of all field trials
|
|||
|
||||
---
|
||||
.../src/org/chromium/chrome/browser/ChromeFeatureList.java | 12 +++---------
|
||||
components/variations/service/variations_service.cc | 4 ++++
|
||||
2 files changed, 7 insertions(+), 9 deletions(-)
|
||||
components/variations/service/variations_service.cc | 12 +-----------
|
||||
2 files changed, 4 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
|
||||
|
@ -46,24 +46,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureLi
|
|||
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
|
||||
--- a/components/variations/service/variations_service.cc
|
||||
+++ b/components/variations/service/variations_service.cc
|
||||
@@ -225,6 +225,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
@@ -232,17 +232,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
// Variations seed fetching is only enabled in official Chrome builds, if a URL
|
||||
// is specified on the command line, and for testing.
|
||||
bool IsFetchingEnabled() {
|
||||
+#if 0
|
||||
#if !defined(GOOGLE_CHROME_BUILD)
|
||||
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kVariationsServerURL) &&
|
||||
@@ -236,6 +237,9 @@ bool IsFetchingEnabled() {
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
+#else
|
||||
-#if !defined(GOOGLE_CHROME_BUILD)
|
||||
- if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
- switches::kVariationsServerURL) &&
|
||||
- !g_should_fetch_for_testing) {
|
||||
- DVLOG(1)
|
||||
- << "Not performing repeated fetching in unofficial build without --"
|
||||
- << switches::kVariationsServerURL << " specified.";
|
||||
- return false;
|
||||
- }
|
||||
-#endif
|
||||
- return true;
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -27,5 +27,5 @@ diff --git a/ui/gfx/animation/animation.cc b/ui/gfx/animation/animation.cc
|
|||
#endif
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -9,7 +9,7 @@ Subject: Disable plugins enumeration
|
|||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -1262,10 +1262,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
|
||||
@@ -1294,10 +1294,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
|
||||
}
|
||||
|
||||
PluginData* LocalFrame::GetPluginData() const {
|
||||
|
@ -23,5 +23,5 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
|||
|
||||
void LocalFrame::SetAdTrackerForTesting(AdTracker* ad_tracker) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,16 +1,16 @@
|
|||
From: SergeyZhukovsky <serg.zhukovsky@gmail.com>
|
||||
Date: Tue, 15 Aug 2017 15:33:16 -0400
|
||||
Subject: Remove google account access permission on reboot
|
||||
Subject: Remove request for account access permission on reboot
|
||||
|
||||
---
|
||||
chrome/android/BUILD.gn | 3 +--
|
||||
chrome/android/BUILD.gn | 4 +---
|
||||
chrome/android/java/AndroidManifest.xml | 4 ++--
|
||||
2 files changed, 3 insertions(+), 4 deletions(-)
|
||||
2 files changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -869,8 +869,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
@@ -943,8 +943,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
resources = [
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
"java/res_template/xml/launchershortcuts.xml",
|
||||
|
@ -20,10 +20,18 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
|||
]
|
||||
res_dir = "java/res_template"
|
||||
variables = chrome_public_jinja_variables
|
||||
@@ -955,7 +954,6 @@ jinja_template_resources("chrome_sync_shell_apk_template_resources") {
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
"java/res_template/xml/launchershortcuts.xml",
|
||||
"java/res_template/xml/searchable.xml",
|
||||
- "java/res_template/xml/syncadapter.xml",
|
||||
]
|
||||
res_dir = "java/res_template"
|
||||
variables = chrome_sync_shell_jinja_variables
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -837,14 +837,14 @@ by a child template that "extends" this file.
|
||||
@@ -829,14 +829,14 @@ by a child template that "extends" this file.
|
||||
</provider>
|
||||
|
||||
<!-- Sync adapter for browser invalidation. -->
|
||||
|
@ -41,5 +49,5 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
|||
<!-- Broadcast receiver that will be notified of account changes -->
|
||||
<receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -21,5 +21,5 @@ diff --git a/net/cert/x509_util.cc b/net/cert/x509_util.cc
|
|||
// Certificates made by CreateKeyAndSelfSignedCert will be signed using this
|
||||
// digest algorithm.
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Mon, 15 Sep 2014 10:58:42 +0200
|
||||
Subject: dns: send IPv6 connectivity probes to RIPE DNS rather than Google
|
||||
Subject: dns: send IPv6 connectivity probes to RIPE DNS
|
||||
|
||||
Short of disabling the code (we may do that in a subsequent patch
|
||||
anyway), avoid sending to Google.
|
||||
|
@ -11,7 +11,7 @@ anyway), avoid sending to Google.
|
|||
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
|
||||
--- a/net/dns/host_resolver_impl.cc
|
||||
+++ b/net/dns/host_resolver_impl.cc
|
||||
@@ -108,10 +108,10 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
|
||||
@@ -115,10 +115,10 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
|
||||
// cached.
|
||||
const int kIPv6ProbePeriodMs = 1000;
|
||||
|
||||
|
@ -26,5 +26,5 @@ diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
|
|||
// We use a separate histogram name for each platform to facilitate the
|
||||
// display of error codes by their symbolic name (since each platform has
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -26,5 +26,5 @@ diff --git a/chrome/browser/profile_resetter/reset_report_uploader.cc b/chrome/b
|
|||
GURL GetClientReportUrl(const std::string& report_url) {
|
||||
GURL url(report_url);
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -19,5 +19,5 @@ diff --git a/chrome/browser/ui/startup/google_api_keys_infobar_delegate.cc b/chr
|
|||
std::unique_ptr<ConfirmInfoBarDelegate>(
|
||||
new GoogleApiKeysInfoBarDelegate())));
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 24 Jun 2018 01:51:49 +0200
|
||||
Subject: lint: suppress hardcoded text warnings
|
||||
|
||||
---
|
||||
build/android/lint/suppressions.xml | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/build/android/lint/suppressions.xml b/build/android/lint/suppressions.xml
|
||||
--- a/build/android/lint/suppressions.xml
|
||||
+++ b/build/android/lint/suppressions.xml
|
||||
@@ -92,10 +92,8 @@ Still reading?
|
||||
<ignore regexp="chromecast/internal" />
|
||||
<ignore regexp="remoting/android/java/src/org/chromium/chromoting/TapGestureDetector.java" />
|
||||
</issue>
|
||||
- <issue id="HardcodedDebugMode" severity="Fatal">
|
||||
- <ignore path="AndroidManifest.xml"/>
|
||||
- </issue>
|
||||
- <issue id="HardcodedText" severity="Error">
|
||||
+ <issue id="HardcodedDebugMode" severity="Fatal" />
|
||||
+ <issue id="HardcodedText" severity="ignore">
|
||||
<ignore regexp="chromecast/internal"/>
|
||||
<ignore regexp="remoting/android/host/res/layout/main.xml"/>
|
||||
</issue>
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -11,15 +11,15 @@ Disables the autofill download manager (trk:158).
|
|||
diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_download_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_download_manager.cc
|
||||
@@ -41,7 +41,6 @@ namespace autofill {
|
||||
@@ -49,7 +49,6 @@ namespace autofill {
|
||||
|
||||
namespace {
|
||||
|
||||
-const size_t kMaxQueryGetSize = 1400; // 1.25KB
|
||||
const size_t kMaxFormCacheSize = 16;
|
||||
const size_t kAutofillDownloadManagerMaxFormCacheSize = 16;
|
||||
const size_t kMaxFieldsPerQueryRequest = 100;
|
||||
|
||||
@@ -365,6 +364,7 @@ bool AutofillDownloadManager::StartUploadRequest(
|
||||
@@ -491,6 +490,7 @@ void AutofillDownloadManager::ClearUploadHistory(PrefService* pref_service) {
|
||||
|
||||
std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
const FormRequestData& request_data) const {
|
||||
|
@ -27,7 +27,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
|
|||
std::string method("POST");
|
||||
std::string query_str;
|
||||
|
||||
@@ -387,6 +387,10 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
@@ -513,6 +513,10 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
GURL url = autofill_server_url_
|
||||
.Resolve(RequestTypeToString(request_data.request_type))
|
||||
.ReplaceComponents(replacements);
|
||||
|
@ -41,7 +41,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
|
|||
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_manager.cc
|
||||
@@ -1183,9 +1183,11 @@ AutofillManager::AutofillManager(
|
||||
@@ -1166,9 +1166,11 @@ AutofillManager::AutofillManager(
|
||||
weak_ptr_factory_(this) {
|
||||
DCHECK(driver);
|
||||
DCHECK(client_);
|
||||
|
@ -54,5 +54,5 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
|
|||
if (personal_data_ && client_)
|
||||
personal_data_->OnSyncServiceInitialized(client_->GetSyncService());
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,156 +0,0 @@
|
|||
From: thermatk <thermatk@thermatk.com>
|
||||
Date: Fri, 22 Jun 2018 17:04:43 +0200
|
||||
Subject: kill Vision
|
||||
|
||||
---
|
||||
.../org/chromium/shape_detection/BarcodeDetectionImpl.java | 6 +++---
|
||||
.../java/src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
|
||||
.../chromium/shape_detection/FaceDetectionImplGmsCore.java | 6 +++---
|
||||
.../chromium/shape_detection/FaceDetectionProviderImpl.java | 2 +-
|
||||
.../src/org/chromium/shape_detection/InterfaceRegistrar.java | 10 +++++-----
|
||||
.../src/org/chromium/shape_detection/TextDetectionImpl.java | 6 +++---
|
||||
6 files changed, 15 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
@@ -43,11 +43,11 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
|
||||
// on the device; this happens "fast", but it might have not completed,
|
||||
// bail in this case. Also, the API was disabled between and v.9.0 and
|
||||
// v.9.2, see https://developers.google.com/android/guides/releases.
|
||||
- if (!mBarcodeDetector.isOperational()) {
|
||||
+// if (!mBarcodeDetector.isOperational()) {
|
||||
Log.e(TAG, "BarcodeDetector is not operational");
|
||||
callback.call(new BarcodeDetectionResult[0]);
|
||||
return;
|
||||
- }
|
||||
+/* }
|
||||
|
||||
Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
if (frame == null) {
|
||||
@@ -77,7 +77,7 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
|
||||
barcodeArray[i].cornerPoints[j].y = corners[j].y;
|
||||
}
|
||||
}
|
||||
- callback.call(barcodeArray);
|
||||
+ callback.call(barcodeArray);*/
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
|
||||
@@ -6,8 +6,6 @@ package org.chromium.shape_detection;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
|
||||
-import com.google.android.gms.vision.Frame;
|
||||
-
|
||||
import org.chromium.mojo_base.BigBufferUtil;
|
||||
import org.chromium.skia.mojom.ColorType;
|
||||
|
||||
@@ -44,14 +42,4 @@ public class BitmapUtils {
|
||||
|
||||
return bitmap;
|
||||
}
|
||||
-
|
||||
- public static Frame convertToFrame(org.chromium.skia.mojom.Bitmap bitmapData) {
|
||||
- Bitmap bitmap = convertToBitmap(bitmapData);
|
||||
- if (bitmap == null) {
|
||||
- return null;
|
||||
- }
|
||||
-
|
||||
- // This constructor implies a pixel format conversion to YUV.
|
||||
- return new Frame.Builder().setBitmap(bitmap).build();
|
||||
- }
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
@@ -63,7 +63,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
|
||||
// The vision library will be downloaded the first time the API is used
|
||||
// on the device; this happens "fast", but it might have not completed,
|
||||
// bail in this case.
|
||||
- if (!mFaceDetector.isOperational()) {
|
||||
+// if (!mFaceDetector.isOperational()) {
|
||||
Log.e(TAG, "FaceDetector is not operational");
|
||||
|
||||
// Fallback to Android's FaceDetectionImpl.
|
||||
@@ -73,7 +73,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
|
||||
FaceDetectionImpl detector = new FaceDetectionImpl(options);
|
||||
detector.detect(bitmapData, callback);
|
||||
return;
|
||||
- }
|
||||
+/* }
|
||||
|
||||
Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
if (frame == null) {
|
||||
@@ -157,7 +157,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
|
||||
faceArray[i].boundingBox.height = face.getHeight();
|
||||
}
|
||||
}
|
||||
- callback.call(faceArray);
|
||||
+ callback.call(faceArray);*/
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
@@ -30,7 +30,7 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
|
||||
== ConnectionResult.SUCCESS;
|
||||
|
||||
if (isGmsCoreSupported) {
|
||||
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
+ //FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
} else {
|
||||
FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
@@ -20,10 +20,10 @@ class InterfaceRegistrar {
|
||||
// is not necessary to hold on to a reference to it explicitly.
|
||||
InterfaceRegistry registry = InterfaceRegistry.create(
|
||||
CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle());
|
||||
- registry.addInterface(
|
||||
- BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
|
||||
- registry.addInterface(
|
||||
- FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
|
||||
- registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
|
||||
+// registry.addInterface(
|
||||
+// BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
|
||||
+// registry.addInterface(
|
||||
+// FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
|
||||
+// registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
|
||||
}
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
@@ -42,11 +42,11 @@ public class TextDetectionImpl implements TextDetection {
|
||||
// on the device; this happens "fast", but it might have not completed,
|
||||
// bail in this case. Also, the API was disabled between and v.9.0 and
|
||||
// v.9.2, see https://developers.google.com/android/guides/releases.
|
||||
- if (!mTextRecognizer.isOperational()) {
|
||||
+// if (!mTextRecognizer.isOperational()) {
|
||||
Log.e(TAG, "TextDetector is not operational");
|
||||
callback.call(new TextDetectionResult[0]);
|
||||
return;
|
||||
- }
|
||||
+/* }
|
||||
|
||||
Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
if (frame == null) {
|
||||
@@ -76,7 +76,7 @@ public class TextDetectionImpl implements TextDetection {
|
||||
detectedTextArray[i].cornerPoints[j].y = corners[j].y;
|
||||
}
|
||||
}
|
||||
- callback.call(detectedTextArray);
|
||||
+ callback.call(detectedTextArray); */
|
||||
}
|
||||
|
||||
@Override
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -15,7 +15,7 @@ turn it back on.
|
|||
diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc
|
||||
--- a/chrome/browser/extensions/extension_system_impl.cc
|
||||
+++ b/chrome/browser/extensions/extension_system_impl.cc
|
||||
@@ -207,8 +207,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
|
||||
@@ -203,8 +203,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
|
||||
// ExtensionService depends on RuntimeData.
|
||||
runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_)));
|
||||
|
||||
|
@ -26,5 +26,5 @@ diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser
|
|||
if (!extensions_enabled ||
|
||||
chromeos::ProfileHelper::IsLockScreenAppProfile(profile_)) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -46,20 +46,20 @@ diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_
|
|||
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
|
||||
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
|
||||
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
|
||||
@@ -59,8 +59,7 @@ class SafeBrowsingBlockingPageFactoryImpl
|
||||
PrefService* prefs =
|
||||
Profile::FromBrowserContext(web_contents->GetBrowserContext())
|
||||
->GetPrefs();
|
||||
@@ -61,8 +61,7 @@ class SafeBrowsingBlockingPageFactoryImpl
|
||||
Profile* profile =
|
||||
Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
||||
PrefService* prefs = profile->GetPrefs();
|
||||
- bool is_extended_reporting_opt_in_allowed =
|
||||
- IsExtendedReportingOptInAllowed(*prefs);
|
||||
+ bool is_extended_reporting_opt_in_allowed = false;
|
||||
bool is_proceed_anyway_disabled =
|
||||
prefs->GetBoolean(prefs::kSafeBrowsingProceedAnywayDisabled);
|
||||
|
||||
unified_consent::UnifiedConsentService* consent_service =
|
||||
diff --git a/chrome/browser/safe_browsing/safe_browsing_service.cc b/chrome/browser/safe_browsing/safe_browsing_service.cc
|
||||
--- a/chrome/browser/safe_browsing/safe_browsing_service.cc
|
||||
+++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
|
||||
@@ -371,8 +371,10 @@ SafeBrowsingDatabaseManager* SafeBrowsingService::CreateDatabaseManager() {
|
||||
@@ -329,8 +329,10 @@ SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() {
|
||||
|
||||
void SafeBrowsingService::RegisterAllDelayedAnalysis() {
|
||||
#if defined(FULL_SAFE_BROWSING)
|
||||
|
@ -69,7 +69,7 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_service.cc b/chrome/brow
|
|||
+#endif
|
||||
}
|
||||
|
||||
SafeBrowsingProtocolConfig SafeBrowsingService::GetProtocolConfig() const {
|
||||
V4ProtocolConfig SafeBrowsingService::GetV4ProtocolConfig() const {
|
||||
diff --git a/components/security_interstitials/core/safe_browsing_loud_error_ui.cc b/components/security_interstitials/core/safe_browsing_loud_error_ui.cc
|
||||
--- a/components/security_interstitials/core/safe_browsing_loud_error_ui.cc
|
||||
+++ b/components/security_interstitials/core/safe_browsing_loud_error_ui.cc
|
||||
|
@ -82,5 +82,5 @@ diff --git a/components/security_interstitials/core/safe_browsing_loud_error_ui.
|
|||
|
||||
// Constants for the V4 phishing string upgrades.
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -1,323 +0,0 @@
|
|||
From: thermatk <thermatk@thermatk.com>
|
||||
Date: Fri, 22 Jun 2018 17:13:38 +0200
|
||||
Subject: kill remaining Play Services checks
|
||||
|
||||
---
|
||||
.../chromium/chrome/browser/ChromeVersionInfo.java | 10 +-------
|
||||
.../browser/externalauth/ExternalAuthUtils.java | 28 +++++++---------------
|
||||
.../externalauth/UserRecoverableErrorHandler.java | 10 --------
|
||||
.../chrome/browser/omaha/UpdateMenuItemHelper.java | 10 +-------
|
||||
chrome/android/java_sources.gni | 3 ---
|
||||
.../components/signin/AccountIdProvider.java | 10 +-------
|
||||
.../signin/GmsAvailabilityException.java | 4 +---
|
||||
.../signin/SystemAccountManagerDelegate.java | 18 +++-----------
|
||||
.../shape_detection/FaceDetectionProviderImpl.java | 8 +------
|
||||
9 files changed, 16 insertions(+), 85 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
|
||||
@@ -7,8 +7,6 @@ package org.chromium.chrome.browser;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
@@ -88,7 +86,7 @@ public class ChromeVersionInfo {
|
||||
public static String getGmsInfo() {
|
||||
Context context = ContextUtils.getApplicationContext();
|
||||
|
||||
- final long sdkVersion = GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE;
|
||||
+ final long sdkVersion = 0L;
|
||||
final long installedGmsVersion = getPlayServicesApkVersionNumber(context);
|
||||
|
||||
final String accessType;
|
||||
@@ -105,12 +103,6 @@ public class ChromeVersionInfo {
|
||||
}
|
||||
|
||||
private static long getPlayServicesApkVersionNumber(Context context) {
|
||||
- try {
|
||||
- return context.getPackageManager()
|
||||
- .getPackageInfo(GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, 0)
|
||||
- .versionCode;
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
return 0;
|
||||
- }
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
|
||||
@@ -15,9 +15,6 @@ import android.os.SystemClock;
|
||||
import android.support.annotation.WorkerThread;
|
||||
import android.text.TextUtils;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.ThreadUtils;
|
||||
@@ -164,9 +161,10 @@ public class ExternalAuthUtils {
|
||||
* when it is updating.
|
||||
*/
|
||||
public boolean isGooglePlayServicesMissing(final Context context) {
|
||||
- final int resultCode = checkGooglePlayServicesAvailable(context);
|
||||
+/* final int resultCode = checkGooglePlayServicesAvailable(context);
|
||||
return (resultCode == ConnectionResult.SERVICE_MISSING
|
||||
- || resultCode == ConnectionResult.SERVICE_INVALID);
|
||||
+ || resultCode == ConnectionResult.SERVICE_INVALID); */
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -181,7 +179,7 @@ public class ExternalAuthUtils {
|
||||
* @return true if and only if Google Play Services can be used
|
||||
*/
|
||||
public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) {
|
||||
- Context context = ContextUtils.getApplicationContext();
|
||||
+/* Context context = ContextUtils.getApplicationContext();
|
||||
final int resultCode = checkGooglePlayServicesAvailable(context);
|
||||
recordConnectionResult(resultCode);
|
||||
if (resultCode == ConnectionResult.SUCCESS) return true;
|
||||
@@ -195,7 +193,7 @@ public class ExternalAuthUtils {
|
||||
}
|
||||
};
|
||||
ThreadUtils.runOnUiThread(errorHandlerTask);
|
||||
- }
|
||||
+ } */
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -257,17 +255,7 @@ public class ExternalAuthUtils {
|
||||
* @return The code produced by calling the external code
|
||||
*/
|
||||
protected int checkGooglePlayServicesAvailable(final Context context) {
|
||||
- // Temporarily allowing disk access. TODO: Fix. See http://crbug.com/577190
|
||||
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
|
||||
- try {
|
||||
- long time = SystemClock.elapsedRealtime();
|
||||
- int isAvailable =
|
||||
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context);
|
||||
- mRegistrationTimeHistogramSample.record(SystemClock.elapsedRealtime() - time);
|
||||
- return isAvailable;
|
||||
- } finally {
|
||||
- StrictMode.setThreadPolicy(oldPolicy);
|
||||
- }
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -278,7 +266,7 @@ public class ExternalAuthUtils {
|
||||
* @return true If the code represents a user-recoverable error
|
||||
*/
|
||||
protected boolean isUserRecoverableError(final int errorCode) {
|
||||
- return GoogleApiAvailability.getInstance().isUserResolvableError(errorCode);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -288,6 +276,6 @@ public class ExternalAuthUtils {
|
||||
* @return a textual description of the error code
|
||||
*/
|
||||
protected String describeError(final int errorCode) {
|
||||
- return GoogleApiAvailability.getInstance().getErrorString(errorCode);
|
||||
+ return "";
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
|
||||
@@ -10,8 +10,6 @@ import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.support.annotation.IntDef;
|
||||
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ThreadUtils;
|
||||
import org.chromium.base.metrics.CachedMetrics.ActionEvent;
|
||||
import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
|
||||
@@ -120,7 +118,6 @@ public abstract class UserRecoverableErrorHandler {
|
||||
sErrorHandlerActionHistogramSample.record(ErrorHandlerAction.IGNORED_AS_REDUNDANT);
|
||||
return;
|
||||
}
|
||||
- GoogleApiAvailability.getInstance().showErrorNotification(context, errorCode);
|
||||
sErrorHandlerActionHistogramSample.record(ErrorHandlerAction.SYSTEM_NOTIFICATION);
|
||||
}
|
||||
}
|
||||
@@ -213,13 +210,6 @@ public abstract class UserRecoverableErrorHandler {
|
||||
if (mErrorCode != errorCode) {
|
||||
cancelDialog();
|
||||
}
|
||||
- if (mDialog == null) {
|
||||
- mDialog = GoogleApiAvailability.getInstance().getErrorDialog(
|
||||
- mActivity, errorCode, NO_RESPONSE_REQUIRED);
|
||||
- mErrorCode = errorCode;
|
||||
-
|
||||
- DialogUserActionRecorder.createAndAttachToDialog(mDialog);
|
||||
- }
|
||||
// This can happen if |errorCode| is ConnectionResult.SERVICE_INVALID.
|
||||
if (mDialog != null && !mDialog.isShowing()) {
|
||||
mDialog.setCancelable(mCancelable);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
|
||||
@@ -21,8 +21,6 @@ import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.animation.LinearInterpolator;
|
||||
|
||||
-import com.google.android.gms.common.GooglePlayServicesUtil;
|
||||
-
|
||||
import org.chromium.base.AsyncTask;
|
||||
import org.chromium.base.CommandLine;
|
||||
import org.chromium.base.Log;
|
||||
@@ -162,13 +160,7 @@ public class UpdateMenuItemHelper {
|
||||
}
|
||||
|
||||
private static boolean isGooglePlayStoreAvailable(Context context) {
|
||||
- try {
|
||||
- context.getPackageManager().getPackageInfo(
|
||||
- GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE, 0);
|
||||
- } catch (PackageManager.NameNotFoundException e) {
|
||||
- return false;
|
||||
- }
|
||||
- return true;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
--- a/chrome/android/java_sources.gni
|
||||
+++ b/chrome/android/java_sources.gni
|
||||
@@ -586,10 +586,7 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java",
|
||||
"java/src/org/chromium/chrome/browser/fullscreen/FullscreenOptions.java",
|
||||
"java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClient.java",
|
||||
- "java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java",
|
||||
"java/src/org/chromium/chrome/browser/gcore/ConnectedTask.java",
|
||||
- "java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java",
|
||||
- "java/src/org/chromium/chrome/browser/gcore/LifecycleHook.java",
|
||||
"java/src/org/chromium/chrome/browser/gsa/ContextReporter.java",
|
||||
"java/src/org/chromium/chrome/browser/gsa/GSAAccountChangeListener.java",
|
||||
"java/src/org/chromium/chrome/browser/gsa/GSAContextDisplaySelection.java",
|
||||
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
|
||||
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
|
||||
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
|
||||
@@ -4,9 +4,6 @@
|
||||
|
||||
package org.chromium.components.signin;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.StrictModeContext;
|
||||
@@ -47,12 +44,7 @@ public class AccountIdProvider {
|
||||
* Google Play services is available.
|
||||
*/
|
||||
public boolean canBeUsed() {
|
||||
- // TODO(http://crbug.com/577190): Remove StrictMode override.
|
||||
- try (StrictModeContext unused = StrictModeContext.allowDiskWrites()) {
|
||||
- int resultCode = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext());
|
||||
- return resultCode == ConnectionResult.SUCCESS;
|
||||
- }
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
|
||||
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
|
||||
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
|
||||
@@ -4,8 +4,6 @@
|
||||
|
||||
package org.chromium.components.signin;
|
||||
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
/**
|
||||
* This class encapsulates return code if GMSCore package is not available.
|
||||
*/
|
||||
@@ -27,6 +25,6 @@ public class GmsAvailabilityException extends AccountManagerDelegateException {
|
||||
}
|
||||
|
||||
public boolean isUserResolvableError() {
|
||||
- return GoogleApiAvailability.getInstance().isUserResolvableError(mResultCode);
|
||||
+ return false;
|
||||
}
|
||||
}
|
||||
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
@@ -24,9 +24,6 @@ import android.os.PatternMatcher;
|
||||
import android.os.Process;
|
||||
import android.os.SystemClock;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ApiCompatibilityUtils;
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -83,17 +80,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
}
|
||||
|
||||
protected void checkCanUseGooglePlayServices() throws AccountManagerDelegateException {
|
||||
- Context context = ContextUtils.getApplicationContext();
|
||||
- final int resultCode =
|
||||
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context);
|
||||
- if (resultCode == ConnectionResult.SUCCESS) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- throw new GmsAvailabilityException(
|
||||
- String.format("Can't use Google Play Services: %s",
|
||||
- GoogleApiAvailability.getInstance().getErrorString(resultCode)),
|
||||
- resultCode);
|
||||
+ throw new GmsAvailabilityException("Can't use Google Play Services: CFOSS",0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -210,8 +197,9 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
callback.onResult(null);
|
||||
}
|
||||
};
|
||||
- mAccountManager.addAccount(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, null, null, null, null,
|
||||
+ /*mAccountManager.addAccount(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, null, null, null, null,
|
||||
accountManagerCallback, null);
|
||||
+ */
|
||||
}
|
||||
|
||||
// No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
@@ -4,9 +4,6 @@
|
||||
|
||||
package org.chromium.shape_detection;
|
||||
|
||||
-import com.google.android.gms.common.ConnectionResult;
|
||||
-import com.google.android.gms.common.GoogleApiAvailability;
|
||||
-
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.mojo.bindings.InterfaceRequest;
|
||||
import org.chromium.mojo.system.MojoException;
|
||||
@@ -24,10 +21,7 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
|
||||
@Override
|
||||
public void createFaceDetection(
|
||||
InterfaceRequest<FaceDetection> request, FaceDetectorOptions options) {
|
||||
- final boolean isGmsCoreSupported =
|
||||
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext())
|
||||
- == ConnectionResult.SUCCESS;
|
||||
+ final boolean isGmsCoreSupported = false;
|
||||
|
||||
if (isGmsCoreSupported) {
|
||||
//FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
--
|
||||
2.7.4
|
||||
|
|
@ -65,5 +65,5 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
|
|||
|
||||
void ClientSideDetectionService::HandlePhishingVerdict(
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
|
@ -7,12 +7,12 @@ prevents the long-living tracking cookie from being set.
|
|||
|
||||
References: https://github.com/iridium-browser/iridium-browser/issues/37
|
||||
---
|
||||
chrome/browser/safe_browsing/client_side_detection_service.cc | 4 ++--
|
||||
.../download_protection/check_client_download_request.cc | 2 +-
|
||||
.../safe_browsing/download_protection/ppapi_download_request.cc | 2 +-
|
||||
chrome/browser/safe_browsing/protocol_manager.cc | 8 ++++----
|
||||
components/safe_browsing/browser/threat_details_cache.cc | 1 +
|
||||
5 files changed, 9 insertions(+), 8 deletions(-)
|
||||
chrome/browser/safe_browsing/client_side_detection_service.cc | 4 ++--
|
||||
.../download_protection/check_client_download_request.cc | 2 +-
|
||||
.../safe_browsing/download_protection/ppapi_download_request.cc | 2 +-
|
||||
components/safe_browsing/browser/threat_details_cache.cc | 1 +
|
||||
components/safe_browsing/db/v4_update_protocol_manager.cc | 4 ++--
|
||||
5 files changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chrome/browser/safe_browsing/client_side_detection_service.cc
|
||||
--- a/chrome/browser/safe_browsing/client_side_detection_service.cc
|
||||
|
@ -38,7 +38,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
|
|||
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
|
||||
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
|
||||
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
|
||||
@@ -1068,7 +1068,7 @@ void CheckClientDownloadRequest::SendRequest() {
|
||||
@@ -1067,7 +1067,7 @@ void CheckClientDownloadRequest::SendRequest() {
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = PPAPIDownloadRequest::GetDownloadRequestUrl();
|
||||
resource_request->method = "POST";
|
||||
|
@ -50,7 +50,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/check_client_downl
|
|||
diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
|
||||
--- a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
|
||||
+++ b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
|
||||
@@ -248,7 +248,7 @@ void PPAPIDownloadRequest::SendRequest() {
|
||||
@@ -250,7 +250,7 @@ void PPAPIDownloadRequest::SendRequest() {
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = GetDownloadRequestUrl();
|
||||
resource_request->method = "POST";
|
||||
|
@ -59,49 +59,10 @@ diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_req
|
|||
loader_ = network::SimpleURLLoader::Create(std::move(resource_request),
|
||||
traffic_annotation);
|
||||
loader_->AttachStringForUpload(client_download_request_data_,
|
||||
diff --git a/chrome/browser/safe_browsing/protocol_manager.cc b/chrome/browser/safe_browsing/protocol_manager.cc
|
||||
--- a/chrome/browser/safe_browsing/protocol_manager.cc
|
||||
+++ b/chrome/browser/safe_browsing/protocol_manager.cc
|
||||
@@ -282,7 +282,7 @@ void SafeBrowsingProtocolManager::GetFullHash(
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = gethash_url;
|
||||
resource_request->method = "POST";
|
||||
- resource_request->load_flags = net::LOAD_DISABLE_CACHE;
|
||||
+ resource_request->load_flags = net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DO_NOT_SEND_COOKIES;
|
||||
auto loader_ptr = network::SimpleURLLoader::Create(
|
||||
std::move(resource_request), traffic_annotation);
|
||||
loader_ptr->AttachStringForUpload(FormatGetHash(prefixes), "text/plain");
|
||||
@@ -688,7 +688,7 @@ bool SafeBrowsingProtocolManager::IssueBackupUpdateRequest(
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = backup_update_url;
|
||||
resource_request->method = "POST";
|
||||
- resource_request->load_flags = net::LOAD_DISABLE_CACHE;
|
||||
+ resource_request->load_flags = net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DO_NOT_SEND_COOKIES;
|
||||
request_ = network::SimpleURLLoader::Create(std::move(resource_request),
|
||||
traffic_annotation);
|
||||
request_->AttachStringForUpload(update_list_data_, "text/plain");
|
||||
@@ -719,7 +719,7 @@ void SafeBrowsingProtocolManager::IssueChunkRequest() {
|
||||
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = chunk_url;
|
||||
- resource_request->load_flags = net::LOAD_DISABLE_CACHE;
|
||||
+ resource_request->load_flags = net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES;
|
||||
request_ = network::SimpleURLLoader::Create(
|
||||
std::move(resource_request), kChunkBackupRequestTrafficAnnotation);
|
||||
request_->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
|
||||
@@ -777,7 +777,7 @@ void SafeBrowsingProtocolManager::OnGetChunksComplete(
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = update_url;
|
||||
resource_request->method = "POST";
|
||||
- resource_request->load_flags = net::LOAD_DISABLE_CACHE;
|
||||
+ resource_request->load_flags = net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DO_NOT_SEND_COOKIES;
|
||||
request_ = network::SimpleURLLoader::Create(
|
||||
std::move(resource_request), kChunkBackupRequestTrafficAnnotation);
|
||||
request_->AttachStringForUpload(update_list_data_, "text/plain");
|
||||
diff --git a/components/safe_browsing/browser/threat_details_cache.cc b/components/safe_browsing/browser/threat_details_cache.cc
|
||||
--- a/components/safe_browsing/browser/threat_details_cache.cc
|
||||
+++ b/components/safe_browsing/browser/threat_details_cache.cc
|
||||
@@ -113,6 +113,7 @@ void ThreatDetailsCacheCollector::OpenEntry() {
|
||||
@@ -115,6 +115,7 @@ void ThreatDetailsCacheCollector::OpenEntry() {
|
||||
// Only from cache, and don't save cookies.
|
||||
resource_request->load_flags = net::LOAD_ONLY_FROM_CACHE |
|
||||
net::LOAD_SKIP_CACHE_VALIDATION |
|
||||
|
@ -109,6 +70,20 @@ diff --git a/components/safe_browsing/browser/threat_details_cache.cc b/componen
|
|||
net::LOAD_DO_NOT_SAVE_COOKIES;
|
||||
current_load_ = network::SimpleURLLoader::Create(std::move(resource_request),
|
||||
traffic_annotation);
|
||||
diff --git a/components/safe_browsing/db/v4_update_protocol_manager.cc b/components/safe_browsing/db/v4_update_protocol_manager.cc
|
||||
--- a/components/safe_browsing/db/v4_update_protocol_manager.cc
|
||||
+++ b/components/safe_browsing/db/v4_update_protocol_manager.cc
|
||||
@@ -343,8 +343,8 @@ void V4UpdateProtocolManager::IssueUpdateRequest() {
|
||||
std::string req_base64 = GetBase64SerializedUpdateRequestProto();
|
||||
GetUpdateUrlAndHeaders(req_base64, &resource_request->url,
|
||||
&resource_request->headers);
|
||||
- resource_request->load_flags = net::LOAD_DISABLE_CACHE;
|
||||
- std::unique_ptr<network::SimpleURLLoader> loader =
|
||||
+ resource_request->load_flags = net::LOAD_DISABLE_CACHE | net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DO_NOT_SEND_COOKIES;
|
||||
+ std::unique_ptr<network::SimpleURLLoader> loader =
|
||||
network::SimpleURLLoader::Create(std::move(resource_request),
|
||||
traffic_annotation);
|
||||
loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie(
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
1117
patches/BRM086_ungoogled-chromium-disable-safe-browsing.patch
Normal file
1117
patches/BRM086_ungoogled-chromium-disable-safe-browsing.patch
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,236 @@
|
|||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 18 Sep 2018 08:06:14 +0200
|
||||
Subject: Allow building without safebrowsing for Android
|
||||
|
||||
---
|
||||
.../android/java/res/xml/privacy_preferences.xml | 12 -----
|
||||
.../preferences/privacy/PrivacyPreferences.java | 58 ----------------------
|
||||
.../chrome_browsing_data_remover_delegate.cc | 10 ----
|
||||
chrome/browser/chrome_content_browser_client.cc | 14 +-----
|
||||
.../chrome_resource_dispatcher_host_delegate.cc | 4 ++
|
||||
chrome/browser/net/chrome_network_delegate.cc | 13 -----
|
||||
6 files changed, 5 insertions(+), 106 deletions(-)
|
||||
|
||||
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
|
||||
@@ -28,18 +28,6 @@
|
||||
android:summary="@string/always_incognito_summary"
|
||||
android:defaultValue="false" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing_extended_reporting"
|
||||
- android:title="@string/safe_browsing_extended_reporting_title"
|
||||
- android:summary="@string/safe_browsing_extended_reporting_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing_scout_reporting"
|
||||
- android:title="@string/safe_browsing_scout_reporting_title"
|
||||
- android:summary="@string/safe_browsing_scout_reporting_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing"
|
||||
- android:title="@string/safe_browsing_title"
|
||||
- android:summary="@string/safe_browsing_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
android:key="network_predictions"
|
||||
android:title="@string/network_predictions_title"
|
||||
android:summary="@string/network_predictions_summary"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -40,12 +40,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
implements OnPreferenceChangeListener {
|
||||
private static final String PREF_NAVIGATION_ERROR = "navigation_error";
|
||||
private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
|
||||
- private static final String PREF_SAFE_BROWSING_EXTENDED_REPORTING =
|
||||
- "safe_browsing_extended_reporting";
|
||||
- private static final String PREF_SAFE_BROWSING_SCOUT_REPORTING =
|
||||
- "safe_browsing_scout_reporting";
|
||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
- private static final String PREF_SAFE_BROWSING = "safe_browsing";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
|
||||
@@ -80,10 +75,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
// Remove preferences that were migrated to SyncAndServicesPreferences.
|
||||
preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
|
||||
preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
|
||||
- preferenceScreen.removePreference(
|
||||
- findPreference(PREF_SAFE_BROWSING_EXTENDED_REPORTING));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
|
||||
preferenceScreen.removePreference(findPreference(PREF_NETWORK_PREDICTIONS));
|
||||
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
|
||||
@@ -123,32 +114,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
}
|
||||
|
||||
- // Listen to changes to both Extended Reporting prefs.
|
||||
- ChromeBaseCheckBoxPreference legacyExtendedReportingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(
|
||||
- PREF_SAFE_BROWSING_EXTENDED_REPORTING);
|
||||
- legacyExtendedReportingPref.setOnPreferenceChangeListener(this);
|
||||
- legacyExtendedReportingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
- ChromeBaseCheckBoxPreference scoutReportingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING);
|
||||
- scoutReportingPref.setOnPreferenceChangeListener(this);
|
||||
- scoutReportingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
- // Remove the extended reporting preference that is NOT active.
|
||||
- String extended_reporting_pref_to_remove =
|
||||
- prefServiceBridge.isSafeBrowsingScoutReportingActive()
|
||||
- ? PREF_SAFE_BROWSING_EXTENDED_REPORTING : PREF_SAFE_BROWSING_SCOUT_REPORTING;
|
||||
- preferenceScreen.removePreference(findPreference(extended_reporting_pref_to_remove));
|
||||
-
|
||||
ChromeBaseCheckBoxPreference allowCustomTabIntentsPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_ALLOW_CUSTOM_TAB_INTENTS);
|
||||
allowCustomTabIntentsPref.setOnPreferenceChangeListener(this);
|
||||
allowCustomTabIntentsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
- ChromeBaseCheckBoxPreference safeBrowsingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
- safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
- safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
-
|
||||
ChromeBaseCheckBoxPreference closeTabsOnExitPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
|
||||
@@ -162,12 +132,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
String key = preference.getKey();
|
||||
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
|
||||
- } else if (PREF_SAFE_BROWSING.equals(key)) {
|
||||
- PrefServiceBridge.getInstance().setSafeBrowsingEnabled((boolean) newValue);
|
||||
- } else if (PREF_SAFE_BROWSING_EXTENDED_REPORTING.equals(key)
|
||||
- || PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
- PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled(
|
||||
- (boolean) newValue);
|
||||
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
@@ -226,21 +190,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
searchSuggestionsPref.setChecked(prefServiceBridge.isSearchSuggestEnabled());
|
||||
}
|
||||
|
||||
- String extended_reporting_pref = prefServiceBridge.isSafeBrowsingScoutReportingActive()
|
||||
- ? PREF_SAFE_BROWSING_SCOUT_REPORTING : PREF_SAFE_BROWSING_EXTENDED_REPORTING;
|
||||
- CheckBoxPreference extendedReportingPref =
|
||||
- (CheckBoxPreference) findPreference(extended_reporting_pref);
|
||||
- if (extendedReportingPref != null) {
|
||||
- extendedReportingPref.setChecked(
|
||||
- prefServiceBridge.isSafeBrowsingExtendedReportingEnabled());
|
||||
- }
|
||||
-
|
||||
- CheckBoxPreference safeBrowsingPref =
|
||||
- (CheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
- if (safeBrowsingPref != null) {
|
||||
- safeBrowsingPref.setChecked(prefServiceBridge.isSafeBrowsingEnabled());
|
||||
- }
|
||||
-
|
||||
CheckBoxPreference canMakePaymentPref =
|
||||
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
if (canMakePaymentPref != null) {
|
||||
@@ -277,13 +226,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
return prefs.isSearchSuggestManaged();
|
||||
}
|
||||
- if (PREF_SAFE_BROWSING_EXTENDED_REPORTING.equals(key)
|
||||
- || PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
- return prefs.isSafeBrowsingExtendedReportingManaged();
|
||||
- }
|
||||
- if (PREF_SAFE_BROWSING.equals(key)) {
|
||||
- return prefs.isSafeBrowsingManaged();
|
||||
- }
|
||||
if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
return prefs.isNetworkPredictionManaged();
|
||||
}
|
||||
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
@@ -254,16 +254,6 @@ bool DoesOriginMatchEmbedderMask(int origin_type_mask,
|
||||
return false;
|
||||
}
|
||||
|
||||
-// Callback for when cookies have been deleted. Invokes NotifyIfDone.
|
||||
-// Receiving |cookie_manager| as a parameter so that the receive pipe is
|
||||
-// not deleted before the response is received.
|
||||
-void OnClearedCookies(base::OnceClosure done,
|
||||
- network::mojom::CookieManagerPtr cookie_manager,
|
||||
- uint32_t num_deleted) {
|
||||
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
- std::move(done).Run();
|
||||
-}
|
||||
-
|
||||
} // namespace
|
||||
|
||||
ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate(
|
||||
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
||||
--- a/chrome/browser/chrome_content_browser_client.cc
|
||||
+++ b/chrome/browser/chrome_content_browser_client.cc
|
||||
@@ -4853,19 +4853,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
|
||||
content::ResourceContext* resource_context) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
||||
|
||||
- ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
|
||||
- if (!io_data->safe_browsing_enabled()->GetValue())
|
||||
- return nullptr;
|
||||
-
|
||||
- // |safe_browsing_service_| may be unavailable in tests.
|
||||
- if (safe_browsing_service_ && !safe_browsing_url_checker_delegate_) {
|
||||
- safe_browsing_url_checker_delegate_ =
|
||||
- base::MakeRefCounted<safe_browsing::UrlCheckerDelegateImpl>(
|
||||
- safe_browsing_service_->database_manager(),
|
||||
- safe_browsing_service_->ui_manager());
|
||||
- }
|
||||
-
|
||||
- return safe_browsing_url_checker_delegate_.get();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
base::Optional<std::string>
|
||||
diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
||||
--- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
||||
+++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
||||
@@ -451,14 +451,18 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
|
||||
content::ResourceContext* resource_context,
|
||||
ResourceType resource_type,
|
||||
std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
|
||||
+#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
|
||||
ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
|
||||
+#endif // defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
|
||||
|
||||
// Insert either safe browsing or data reduction proxy throttle at the front
|
||||
// of the list, so one of them gets to decide if the resource is safe.
|
||||
content::ResourceThrottle* first_throttle = NULL;
|
||||
#if defined(OS_ANDROID)
|
||||
+#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
|
||||
first_throttle = DataReductionProxyResourceThrottle::MaybeCreate(
|
||||
request, resource_context, resource_type, nullptr);
|
||||
+#endif
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
|
||||
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
|
||||
--- a/chrome/browser/net/chrome_network_delegate.cc
|
||||
+++ b/chrome/browser/net/chrome_network_delegate.cc
|
||||
@@ -81,19 +81,6 @@ namespace {
|
||||
|
||||
bool g_access_to_all_files_enabled = false;
|
||||
|
||||
-// Gets called when the extensions finish work on the URL. If the extensions
|
||||
-// did not do a redirect (so |new_url| is empty) then we enforce the
|
||||
-// SafeSearch parameters. Otherwise we will get called again after the
|
||||
-// redirect and we enforce SafeSearch then.
|
||||
-void ForceGoogleSafeSearchCallbackWrapper(net::CompletionOnceCallback callback,
|
||||
- net::URLRequest* request,
|
||||
- GURL* new_url,
|
||||
- int rv) {
|
||||
- if (rv == net::OK && new_url->is_empty())
|
||||
- safe_search_util::ForceGoogleSafeSearch(request->url(), new_url);
|
||||
- std::move(callback).Run(rv);
|
||||
-}
|
||||
-
|
||||
bool IsAccessAllowedInternal(const base::FilePath& path,
|
||||
const base::FilePath& profile_path) {
|
||||
if (g_access_to_all_files_enabled)
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -18,7 +18,7 @@ References: https://github.com/iridium-browser/iridium-browser/issues/28
|
|||
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
||||
--- a/extensions/common/extension.cc
|
||||
+++ b/extensions/common/extension.cc
|
||||
@@ -378,9 +378,12 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
@@ -379,9 +379,12 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
}
|
||||
|
||||
bool Extension::ShouldExposeViaManagementAPI() const {
|
||||
|
@ -32,5 +32,5 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
|||
|
||||
Extension::ManifestData* Extension::GetManifestData(const std::string& key)
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue