Compare commits
42
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5dede3dfa | ||
|
|
a75b452332 | ||
|
|
d22dbd7b38 | ||
|
|
79eae0ab09 | ||
|
|
532c9c5c8b | ||
|
|
f5278822bb | ||
|
|
a8d215db86 | ||
|
|
2e921bffd8 | ||
|
|
fb225cf638 | ||
|
|
9c88a30ac3 | ||
|
|
0c9047e26d | ||
|
|
0d37a542ff | ||
|
|
34b616ba9f | ||
|
|
2e6d2a5c75 | ||
|
|
f963a09239 | ||
|
|
fcbca7eb8c | ||
|
|
65c50e3ec9 | ||
|
|
6cf627f9d4 | ||
|
|
0f2a48662d | ||
|
|
ac44ac738f | ||
|
|
02fad5a01f | ||
|
|
b1c0e45b66 | ||
|
|
1397b5e86a | ||
|
|
171c2f224a | ||
|
|
628ddf9b60 | ||
|
|
8c3fcd08de | ||
|
|
375ac9bf8b | ||
|
|
e1b9f9d68a | ||
|
|
7f7fc80c7a | ||
|
|
aa96e7ce43 | ||
|
|
5c9d69ebcc | ||
|
|
7469dbed21 | ||
|
|
bc1f0b79f5 | ||
|
|
4c2225259f | ||
|
|
2ba0013cc6 | ||
|
|
b92ce6a3a2 | ||
|
|
de80f36496 | ||
|
|
ae8dce366b | ||
|
|
750cafb50c | ||
|
|
5cd90e8326 | ||
|
|
664cd20825 | ||
|
|
aeb31bb4c5 |
@@ -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`)
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,3 +1,102 @@
|
||||
# 71.0.3578.132
|
||||
* add patches from AndroidHardening project (fixes https://github.com/bromite/bromite/issues/226)
|
||||
|
||||
# 71.0.3578.123
|
||||
* disable jumbo builds (fixes https://github.com/bromite/bromite/issues/216 and https://github.com/bromite/bromite/issues/219)
|
||||
* disable preview fetching
|
||||
* do not consider Android Jelly Bean unsupported
|
||||
|
||||
# 71.0.3578.120
|
||||
* fix breakage of translate quick answers by anti-AMP (fixes https://github.com/bromite/bromite/issues/210)
|
||||
|
||||
# 71.0.3578.115
|
||||
* add AdGuard DNS-over-HTTPS option
|
||||
* use green icon for SystemWebView
|
||||
|
||||
# 71.0.3578.110
|
||||
|
||||
# 71.0.3578.104
|
||||
* fix AMP links sanitisation; have it working for news as well (fixes https://github.com/bromite/bromite/issues/202)
|
||||
* revert upstream patch responsible for the broken save dialog prompt (upstream: https://bugs.chromium.org/p/chromium/issues/detail?id=916606)
|
||||
|
||||
# 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)
|
||||
|
||||
|
||||
@@ -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,26 +33,37 @@ 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.
|
||||
|
||||
See also [the wiki page](https://github.com/bromite/bromite/wiki/Installing-SystemWebView) for community-contributed installation instructions.
|
||||
|
||||
## How to enable DNS-over-HTTPS?
|
||||
|
||||
See [this wiki page](https://github.com/bromite/bromite/wiki/Enabling-DNS-over-HTTPS).
|
||||
|
||||
## 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,31 +77,34 @@ 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, Quad9 and AdGuard 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
|
||||
|
||||
You can inspect all functionality/privacy changes by reading the patches: https://github.com/bromite/bromite/tree/master/patches
|
||||
You can inspect all functionality/privacy changes by reading the patches: https://github.com/bromite/bromite/tree/master/build/patches
|
||||
|
||||
# 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 +114,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).
|
||||
@@ -125,6 +136,9 @@ The [Bromite main repository](https://github.com/bromite/bromite) contains tags
|
||||
|
||||
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.
|
||||
|
||||
The GN args used to build Bromite are available here: [GN_ARGS](./GN_ARGS).
|
||||
The patches are to be applied second the order specified in the `patches_list.txt` file (you can use `git am`); the big file `adblock_entries.h` (containing all the AdBlock filters) needs to be copied under `src/net/url_request/`.
|
||||
|
||||
# Credits
|
||||
|
||||
* [Chromium project](https://www.chromium.org/Home) and developers
|
||||
@@ -134,6 +148,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
|
||||
|
||||
|
||||
@@ -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_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_jumbo_build=false
|
||||
use_official_google_api_keys=false
|
||||
use_openh264=true chrome_pgo_phase=0 full_wpo_on_official=true
|
||||
use_sysroot=false
|
||||
File diff suppressed because one or more lines are too long
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+69
-62
@@ -5,38 +5,41 @@ Subject: Add a flag for DNS-over-HTTPS
|
||||
Allow selection between Google and Cloudflare endpoints.
|
||||
Serve DoH requests with maximum priority, remove traffic annotation.
|
||||
Reduce HTTP headers in DoH requests to bare minimum.
|
||||
Add AdGuard (default) endpoint
|
||||
|
||||
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-14.txt
|
||||
---
|
||||
chrome/browser/about_flags.cc | 12 +++++++++
|
||||
chrome/browser/about_flags.cc | 14 +++++++++++
|
||||
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 | 7 ++++--
|
||||
.../common/network_features.h | 5 +++-
|
||||
.../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, 65 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,14 @@ 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"},
|
||||
+ {features::kDnsOverHttpsChoiceAdGuard, switches::kDnsOverHttpsServer, "https://dns.adguard.com/dns-query"}
|
||||
+};
|
||||
+
|
||||
#endif // OS_ANDROID
|
||||
|
||||
const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
|
||||
@@ -3517,6 +3523,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3659,6 +3667,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kAsyncDns)},
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
@@ -52,9 +55,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 +68,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 +81,66 @@ 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,10 @@ 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",
|
||||
+ kDnsOverHttpsChoiceAdGuard[] = "AdGuard";
|
||||
|
||||
} // namespace features
|
||||
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
|
||||
--- a/components/network_session_configurator/common/network_features.h
|
||||
+++ b/components/network_session_configurator/common/network_features.h
|
||||
@@ -17,9 +17,10 @@ NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kTokenBinding;
|
||||
@@ -13,9 +13,12 @@ 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[],
|
||||
+ kDnsOverHttpsChoiceAdGuard[];
|
||||
|
||||
} // namespace features
|
||||
|
||||
@@ -167,7 +177,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 +205,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 +229,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 +246,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 +258,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 +275,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 +285,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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+46
-44
@@ -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,28 +9,28 @@ 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 @@
|
||||
android:summary="@string/close_tabs_on_exit_summary"
|
||||
android:defaultValue="false" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
@@ -35,6 +35,11 @@
|
||||
android:key="usage_and_crash_reports"
|
||||
android:title="@string/usage_and_crash_reports_title_legacy"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.UsageAndCrashReportsPreferenceFragment" />
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="always_incognito"
|
||||
+ android:title="@string/always_incognito_title"
|
||||
+ 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" />
|
||||
<Preference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.DoNotTrackPreference"
|
||||
android:key="do_not_track"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -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
|
||||
|
||||
+141
-82
@@ -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") {
|
||||
@@ -2678,8 +2680,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
|
||||
|
||||
+27
-27
@@ -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 @@
|
||||
@@ -43,6 +43,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,41 +60,41 @@ 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
|
||||
"safe_browsing_extended_reporting";
|
||||
private static final String PREF_SAFE_BROWSING_SCOUT_REPORTING =
|
||||
"safe_browsing_scout_reporting";
|
||||
@@ -38,6 +38,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";
|
||||
+ 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";
|
||||
@@ -134,6 +135,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
? PREF_SAFE_BROWSING_EXTENDED_REPORTING : PREF_SAFE_BROWSING_SCOUT_REPORTING;
|
||||
preferenceScreen.removePreference(findPreference(extended_reporting_pref_to_remove));
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
|
||||
@@ -101,6 +102,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
navigationErrorPref.setOnPreferenceChangeListener(this);
|
||||
navigationErrorPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
+ 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);
|
||||
@@ -153,6 +159,10 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
|| PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled(
|
||||
(boolean) newValue);
|
||||
ChromeBaseCheckBoxPreference searchSuggestionsPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
|
||||
searchSuggestionsPref.setOnPreferenceChangeListener(this);
|
||||
@@ -123,6 +129,10 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
recordNetworkPredictionEnablingUMA((boolean) newValue);
|
||||
} else if (PREF_NAVIGATION_ERROR.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((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);
|
||||
+ sharedPreferencesEditor.apply();
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
recordNetworkPredictionEnablingUMA((boolean) newValue);
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
+10
-10
@@ -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[] = {
|
||||
@@ -964,6 +964,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[] = {
|
||||
@@ -2607,6 +2612,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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 18 Nov 2018 13:06:49 +0100
|
||||
Subject: Add flag to disable IPv6 probes
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
net/dns/host_resolver_impl.cc | 10 ++++++++--
|
||||
services/network/public/cpp/features.cc | 3 +++
|
||||
services/network/public/cpp/features.h | 2 ++
|
||||
6 files changed, 25 insertions(+), 2 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
|
||||
@@ -3499,6 +3499,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kEnableVirtualKeyboardUkm)},
|
||||
#endif // OS_CHROMEOS
|
||||
|
||||
+ {"ipv6-probing",
|
||||
+ flag_descriptions::kIPv6ProbingName,
|
||||
+ flag_descriptions::kIPv6ProbingDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(network::features::kIPv6Probing)},
|
||||
+
|
||||
#if !defined(OS_ANDROID)
|
||||
{"enable-picture-in-picture",
|
||||
flag_descriptions::kEnablePictureInPictureName,
|
||||
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
|
||||
@@ -763,6 +763,10 @@ const char kOOPHPStackModeNative[] = "Native";
|
||||
const char kOOPHPStackModeNativeWithThreadNames[] = "Native with thread names";
|
||||
const char kOOPHPStackModePseudo[] = "Trace events";
|
||||
|
||||
+const char kIPv6ProbingName[] = "Enable IPv6 probing.";
|
||||
+const char kIPv6ProbingDescription[] =
|
||||
+ "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.";
|
||||
+
|
||||
const char kEnablePictureInPictureName[] = "Enable Picture-in-Picture.";
|
||||
const char kEnablePictureInPictureDescription[] =
|
||||
"Enable the Picture-in-Picture feature for videos.";
|
||||
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
|
||||
@@ -473,6 +473,9 @@ extern const char kOOPHPStackModeNative[];
|
||||
extern const char kOOPHPStackModeNativeWithThreadNames[];
|
||||
extern const char kOOPHPStackModePseudo[];
|
||||
|
||||
+extern const char kIPv6ProbingName[];
|
||||
+extern const char kIPv6ProbingDescription[];
|
||||
+
|
||||
extern const char kEnablePictureInPictureName[];
|
||||
extern const char kEnablePictureInPictureDescription[];
|
||||
|
||||
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
|
||||
@@ -76,6 +76,7 @@
|
||||
#include "net/log/net_log_with_source.h"
|
||||
#include "net/socket/client_socket_factory.h"
|
||||
#include "net/socket/datagram_client_socket.h"
|
||||
+#include "services/network/public/cpp/features.h"
|
||||
#include "url/url_canon_ip.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_MDNS)
|
||||
@@ -2719,8 +2720,13 @@ bool HostResolverImpl::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
bool cached = true;
|
||||
if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
|
||||
kIPv6ProbePeriodMs) {
|
||||
- last_ipv6_probe_result_ =
|
||||
- IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log);
|
||||
+ if (!base::FeatureList::IsEnabled(network::features::kIPv6Probing)) {
|
||||
+ // pretend IPv6 connectivy probe is successful when probing is disabled
|
||||
+ last_ipv6_probe_result_ = true;
|
||||
+ } else {
|
||||
+ last_ipv6_probe_result_ =
|
||||
+ IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log);
|
||||
+ }
|
||||
last_ipv6_probe_time_ = tick_clock_->NowTicks();
|
||||
cached = false;
|
||||
}
|
||||
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
||||
--- a/services/network/public/cpp/features.cc
|
||||
+++ b/services/network/public/cpp/features.cc
|
||||
@@ -14,6 +14,9 @@ const base::Feature kExpectCTReporting{"ExpectCTReporting",
|
||||
|
||||
const base::Feature kNetworkErrorLogging{"NetworkErrorLogging",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+
|
||||
+const base::Feature kIPv6Probing{"IPv6Probing",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
// Enables the network service.
|
||||
const base::Feature kNetworkService{"NetworkService",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
||||
--- a/services/network/public/cpp/features.h
|
||||
+++ b/services/network/public/cpp/features.h
|
||||
@@ -18,6 +18,8 @@ extern const base::Feature kNetworkErrorLogging;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kNetworkService;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
+extern const base::Feature kIPv6Probing;
|
||||
+COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kOutOfBlinkCORS;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kReporting;
|
||||
--
|
||||
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
|
||||
|
||||
+11
-11
@@ -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
|
||||
|
||||
+21
-21
@@ -26,8 +26,8 @@ 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 @@
|
||||
android:summary="@string/search_suggestions_summary"
|
||||
@@ -13,6 +13,11 @@
|
||||
android:summary="@string/navigation_error_summary"
|
||||
android:defaultValue="true" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="close_tabs_on_exit"
|
||||
@@ -35,13 +35,13 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
+ android:summary="@string/close_tabs_on_exit_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" />
|
||||
android:key="search_suggestions"
|
||||
android:title="@string/search_suggestions_title"
|
||||
android:summary="@string/search_suggestions_summary"
|
||||
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
|
||||
@@ -42,6 +44,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,19 +80,19 @@ 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
|
||||
safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
@@ -91,6 +94,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
|
||||
+ ChromeBaseCheckBoxPreference closeTabsOnExitPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
+ closeTabsOnExitPref.setOnPreferenceChangeListener(this);
|
||||
+ closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -171,6 +179,12 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
ChromeBaseCheckBoxPreference networkPredictionPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_NETWORK_PREDICTIONS);
|
||||
networkPredictionPref.setChecked(prefServiceBridge.getNetworkPredictionEnabled());
|
||||
@@ -136,6 +144,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
|
||||
|
||||
+66
-43
@@ -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
|
||||
|
||||
@@ -0,0 +1,767 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 18 Sep 2018 08:06:14 +0200
|
||||
Subject: Allow building without safebrowsing for Android
|
||||
|
||||
Fix build from scratch (issue found by nikolowry)
|
||||
---
|
||||
.../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 +-----
|
||||
.../file_type_policies_component_installer.cc | 2 +
|
||||
.../download/chrome_download_manager_delegate.cc | 14 +++++-
|
||||
.../download/chrome_download_manager_delegate.h | 6 +++
|
||||
chrome/browser/download/download_item_model.cc | 10 ++++
|
||||
chrome/browser/download/download_item_model.h | 4 ++
|
||||
chrome/browser/download/download_prefs.cc | 4 ++
|
||||
.../browser/download/download_target_determiner.cc | 18 +++++++
|
||||
.../browser/download/download_target_determiner.h | 6 +++
|
||||
chrome/browser/download/download_target_info.cc | 4 ++
|
||||
chrome/browser/download/download_target_info.h | 4 ++
|
||||
chrome/browser/download/download_ui_model.cc | 4 ++
|
||||
chrome/browser/download/download_ui_model.h | 4 ++
|
||||
.../chrome_resource_dispatcher_host_delegate.cc | 4 ++
|
||||
chrome/browser/net/chrome_network_delegate.cc | 35 +------------
|
||||
18 files changed, 85 insertions(+), 128 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
|
||||
@@ -18,18 +18,6 @@
|
||||
android:summary="@string/search_suggestions_summary"
|
||||
android:defaultValue="true" />
|
||||
<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
|
||||
@@ -38,11 +38,6 @@ 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";
|
||||
- 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";
|
||||
@@ -76,10 +71,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));
|
||||
@@ -119,27 +110,6 @@ 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 safeBrowsingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
- safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
- safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
-
|
||||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -148,12 +118,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_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
recordNetworkPredictionEnablingUMA((boolean) newValue);
|
||||
@@ -202,21 +166,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) {
|
||||
@@ -253,13 +202,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/component_updater/file_type_policies_component_installer.cc b/chrome/browser/component_updater/file_type_policies_component_installer.cc
|
||||
--- a/chrome/browser/component_updater/file_type_policies_component_installer.cc
|
||||
+++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc
|
||||
@@ -18,7 +18,9 @@
|
||||
#include "base/path_service.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/version.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "components/component_updater/component_updater_paths.h"
|
||||
|
||||
using component_updater::ComponentUpdateService;
|
||||
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
|
||||
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
|
||||
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
|
||||
@@ -38,8 +38,10 @@
|
||||
#include "chrome/browser/download/save_package_file_picker.h"
|
||||
#include "chrome/browser/platform_util.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_protection_util.h"
|
||||
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
||||
+#endif
|
||||
#include "chrome/browser/ui/browser.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
#include "chrome/browser/ui/chrome_pages.h"
|
||||
@@ -49,7 +51,9 @@
|
||||
#include "chrome/common/chrome_features.h"
|
||||
#include "chrome/common/pdf_util.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "chrome/grit/generated_resources.h"
|
||||
#include "components/download/database/in_progress/in_progress_cache_impl.h"
|
||||
#include "components/download/public/common/download_interrupt_reasons.h"
|
||||
@@ -95,8 +99,10 @@
|
||||
using content::BrowserThread;
|
||||
using download::DownloadItem;
|
||||
using content::DownloadManager;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
using safe_browsing::DownloadProtectionService;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -746,19 +752,19 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() const {
|
||||
return std::string(chrome::kApplicationClientIDStringForAVScanning);
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadProtectionService*
|
||||
ChromeDownloadManagerDelegate::GetDownloadProtectionService() {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
-#if defined(FULL_SAFE_BROWSING)
|
||||
safe_browsing::SafeBrowsingService* sb_service =
|
||||
g_browser_process->safe_browsing_service();
|
||||
if (sb_service && sb_service->download_protection_service() &&
|
||||
profile_->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled)) {
|
||||
return sb_service->download_protection_service();
|
||||
}
|
||||
-#endif
|
||||
return NULL;
|
||||
}
|
||||
+#endif
|
||||
|
||||
void ChromeDownloadManagerDelegate::NotifyExtensions(
|
||||
DownloadItem* download,
|
||||
@@ -1201,13 +1207,17 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
|
||||
DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
|
||||
#endif
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadItemModel(item).SetDangerLevel(target_info->danger_level);
|
||||
+#endif
|
||||
}
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
if (ShouldBlockFile(target_info->danger_type, item)) {
|
||||
target_info->result = download::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED;
|
||||
// A dangerous type would take precendence over the blocking of the file.
|
||||
target_info->danger_type = download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS;
|
||||
}
|
||||
+#endif
|
||||
|
||||
callback.Run(target_info->target_path, target_info->target_disposition,
|
||||
target_info->danger_type, target_info->intermediate_path,
|
||||
diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
|
||||
--- a/chrome/browser/download/chrome_download_manager_delegate.h
|
||||
+++ b/chrome/browser/download/chrome_download_manager_delegate.h
|
||||
@@ -22,8 +22,10 @@
|
||||
#include "chrome/browser/download/download_path_reservation_tracker.h"
|
||||
#include "chrome/browser/download/download_target_determiner_delegate.h"
|
||||
#include "chrome/browser/download/download_target_info.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_protection_util.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "content/public/browser/download_manager_delegate.h"
|
||||
@@ -131,8 +133,10 @@ class ChromeDownloadManagerDelegate
|
||||
DownloadPrefs* download_prefs() { return download_prefs_.get(); }
|
||||
|
||||
protected:
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
virtual safe_browsing::DownloadProtectionService*
|
||||
GetDownloadProtectionService();
|
||||
+#endif
|
||||
|
||||
// Show file picker for |download|.
|
||||
virtual void ShowFilePickerForDownload(
|
||||
@@ -197,9 +201,11 @@ class ChromeDownloadManagerDelegate
|
||||
const content::NotificationSource& source,
|
||||
const content::NotificationDetails& details) override;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Callback function after the DownloadProtectionService completes.
|
||||
void CheckClientDownloadDone(uint32_t download_id,
|
||||
safe_browsing::DownloadCheckResult result);
|
||||
+#endif
|
||||
|
||||
// Internal gateways for ShouldCompleteDownload().
|
||||
bool IsDownloadReadyForCompletion(
|
||||
diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc
|
||||
--- a/chrome/browser/download/download_item_model.cc
|
||||
+++ b/chrome/browser/download/download_item_model.cc
|
||||
@@ -22,9 +22,11 @@
|
||||
#include "chrome/browser/download/download_stats.h"
|
||||
#include "chrome/browser/download/offline_item_utils.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_feedback_service.h"
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "chrome/grit/chromium_strings.h"
|
||||
#include "chrome/grit/generated_resources.h"
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
@@ -37,7 +39,9 @@
|
||||
|
||||
using base::TimeDelta;
|
||||
using download::DownloadItem;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -67,9 +71,11 @@ class DownloadItemModelData : public base::SupportsUserData::Data {
|
||||
// for the file type.
|
||||
bool should_prefer_opening_in_browser_;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Danger level of the file determined based on the file type and whether
|
||||
// there was a user action associated with the download.
|
||||
DownloadFileType::DangerLevel danger_level_;
|
||||
+#endif
|
||||
|
||||
// Whether the download is currently being revived.
|
||||
bool is_being_revived_;
|
||||
@@ -106,7 +112,9 @@ DownloadItemModelData::DownloadItemModelData()
|
||||
: should_show_in_shelf_(true),
|
||||
was_ui_notified_(false),
|
||||
should_prefer_opening_in_browser_(false),
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level_(DownloadFileType::NOT_DANGEROUS),
|
||||
+#endif
|
||||
is_being_revived_(false) {}
|
||||
|
||||
} // namespace
|
||||
@@ -376,6 +384,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) {
|
||||
data->should_prefer_opening_in_browser_ = preference;
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const {
|
||||
const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
|
||||
return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS;
|
||||
@@ -386,6 +395,7 @@ void DownloadItemModel::SetDangerLevel(
|
||||
DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
|
||||
data->danger_level_ = danger_level;
|
||||
}
|
||||
+#endif
|
||||
|
||||
bool DownloadItemModel::IsBeingRevived() const {
|
||||
const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
|
||||
diff --git a/chrome/browser/download/download_item_model.h b/chrome/browser/download/download_item_model.h
|
||||
--- a/chrome/browser/download/download_item_model.h
|
||||
+++ b/chrome/browser/download/download_item_model.h
|
||||
@@ -11,7 +11,9 @@
|
||||
#include "base/macros.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "chrome/browser/download/download_ui_model.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_item.h"
|
||||
|
||||
// Implementation of DownloadUIModel that wrappers around a |DownloadItem*|. As
|
||||
@@ -48,9 +50,11 @@ class DownloadItemModel : public DownloadUIModel,
|
||||
void SetWasUINotified(bool should_notify) override;
|
||||
bool ShouldPreferOpeningInBrowser() const override;
|
||||
void SetShouldPreferOpeningInBrowser(bool preference) override;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
safe_browsing::DownloadFileType::DangerLevel GetDangerLevel() const override;
|
||||
void SetDangerLevel(
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level) override;
|
||||
+#endif
|
||||
void OpenUsingPlatformHandler() override;
|
||||
bool IsBeingRevived() const override;
|
||||
void SetIsBeingRevived(bool is_being_revived) override;
|
||||
diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc
|
||||
--- a/chrome/browser/download/download_prefs.cc
|
||||
+++ b/chrome/browser/download/download_prefs.cc
|
||||
@@ -33,7 +33,9 @@
|
||||
#include "chrome/common/chrome_features.h"
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "components/pref_registry/pref_registry_syncable.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
@@ -55,7 +57,9 @@
|
||||
using content::BrowserContext;
|
||||
using content::BrowserThread;
|
||||
using content::DownloadManager;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::FileTypePolicies;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
|
||||
--- a/chrome/browser/download/download_target_determiner.cc
|
||||
+++ b/chrome/browser/download/download_target_determiner.cc
|
||||
@@ -22,7 +22,9 @@
|
||||
#include "chrome/browser/history/history_service_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "chrome/grit/generated_resources.h"
|
||||
#include "components/download/public/common/download_interrupt_reasons.h"
|
||||
#include "components/history/core/browser/history_service.h"
|
||||
@@ -56,13 +58,16 @@
|
||||
|
||||
using content::BrowserThread;
|
||||
using download::DownloadItem;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
const base::FilePath::CharType kCrdownloadSuffix[] =
|
||||
FILE_PATH_LITERAL(".crdownload");
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Condenses the results from HistoryService::GetVisibleVisitCountToHost() to a
|
||||
// single bool. A host is considered visited before if prior visible visits were
|
||||
// found in history and the first such visit was earlier than the most recent
|
||||
@@ -76,6 +81,7 @@ void VisitCountsToVisitedBefore(
|
||||
found_visits && count > 0 &&
|
||||
(first_visit.LocalMidnight() < base::Time::Now().LocalMidnight()));
|
||||
}
|
||||
+#endif
|
||||
|
||||
#if defined(OS_WIN)
|
||||
// Keeps track of whether Adobe Reader is up to date.
|
||||
@@ -100,7 +106,9 @@ DownloadTargetDeterminer::DownloadTargetDeterminer(
|
||||
create_target_directory_(false),
|
||||
conflict_action_(conflict_action),
|
||||
danger_type_(download->GetDangerType()),
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level_(DownloadFileType::NOT_DANGEROUS),
|
||||
+#endif
|
||||
virtual_path_(initial_virtual_path),
|
||||
is_filetype_handled_safely_(false),
|
||||
#if defined(OS_ANDROID)
|
||||
@@ -719,6 +727,7 @@ DownloadTargetDeterminer::Result
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// First determine the danger level assuming that the user doesn't have any
|
||||
// prior visits to the referrer recoreded in history. The resulting danger
|
||||
// level would be ALLOW_ON_USER_GESTURE if the level depends on the visit
|
||||
@@ -755,6 +764,7 @@ DownloadTargetDeterminer::Result
|
||||
// invalid, then assume the referrer has not been visited before.
|
||||
if (danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS)
|
||||
danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
|
||||
+#endif
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
@@ -762,11 +772,13 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone(
|
||||
bool visited_referrer_before) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
DCHECK_EQ(STATE_DETERMINE_INTERMEDIATE_PATH, next_state_);
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level_ = GetDangerLevel(
|
||||
visited_referrer_before ? VISITED_REFERRER : NO_VISITS_TO_REFERRER);
|
||||
if (danger_level_ != DownloadFileType::NOT_DANGEROUS &&
|
||||
danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS)
|
||||
danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
|
||||
+#endif
|
||||
DoLoop();
|
||||
}
|
||||
|
||||
@@ -861,7 +873,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
|
||||
<< " Intermediate:" << intermediate_path_.AsUTF8Unsafe()
|
||||
<< " Confirmation reason:" << static_cast<int>(confirmation_reason_)
|
||||
<< " Danger type:" << danger_type_
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
<< " Danger level:" << danger_level_
|
||||
+#endif
|
||||
<< " Result:" << static_cast<int>(result);
|
||||
std::unique_ptr<DownloadTargetInfo> target_info(new DownloadTargetInfo);
|
||||
|
||||
@@ -873,7 +887,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
|
||||
? DownloadItem::TARGET_DISPOSITION_PROMPT
|
||||
: DownloadItem::TARGET_DISPOSITION_OVERWRITE);
|
||||
target_info->danger_type = danger_type_;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
target_info->danger_level = danger_level_;
|
||||
+#endif
|
||||
target_info->intermediate_path = intermediate_path_;
|
||||
target_info->mime_type = mime_type_;
|
||||
target_info->is_filetype_handled_safely = is_filetype_handled_safely_;
|
||||
@@ -959,6 +975,7 @@ bool DownloadTargetDeterminer::HasPromptedForPath() const {
|
||||
DownloadItem::TARGET_DISPOSITION_PROMPT);
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
|
||||
PriorVisitsToReferrer visits) const {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
@@ -990,6 +1007,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
|
||||
|
||||
return DownloadFileType::NOT_DANGEROUS;
|
||||
}
|
||||
+#endif
|
||||
|
||||
void DownloadTargetDeterminer::OnDownloadDestroyed(
|
||||
DownloadItem* download) {
|
||||
diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/browser/download/download_target_determiner.h
|
||||
--- a/chrome/browser/download/download_target_determiner.h
|
||||
+++ b/chrome/browser/download/download_target_determiner.h
|
||||
@@ -17,7 +17,9 @@
|
||||
#include "chrome/browser/download/download_path_reservation_tracker.h"
|
||||
#include "chrome/browser/download/download_target_determiner_delegate.h"
|
||||
#include "chrome/browser/download/download_target_info.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "content/public/browser/download_manager_delegate.h"
|
||||
@@ -297,6 +299,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
|
||||
// operation.
|
||||
bool HasPromptedForPath() const;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Returns true if this download should show the "dangerous file" warning.
|
||||
// Various factors are considered, such as the type of the file, whether a
|
||||
// user action initiated the download, and whether the user has explicitly
|
||||
@@ -306,6 +309,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
|
||||
// to true if the download requires explicit user consent.
|
||||
safe_browsing::DownloadFileType::DangerLevel GetDangerLevel(
|
||||
PriorVisitsToReferrer visits) const;
|
||||
+#endif
|
||||
|
||||
// download::DownloadItem::Observer
|
||||
void OnDownloadDestroyed(download::DownloadItem* download) override;
|
||||
@@ -317,7 +321,9 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
|
||||
bool create_target_directory_;
|
||||
DownloadPathReservationTracker::FilenameConflictAction conflict_action_;
|
||||
download::DownloadDangerType danger_type_;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level_;
|
||||
+#endif
|
||||
base::FilePath virtual_path_;
|
||||
base::FilePath local_path_;
|
||||
base::FilePath intermediate_path_;
|
||||
diff --git a/chrome/browser/download/download_target_info.cc b/chrome/browser/download/download_target_info.cc
|
||||
--- a/chrome/browser/download/download_target_info.cc
|
||||
+++ b/chrome/browser/download/download_target_info.cc
|
||||
@@ -4,12 +4,16 @@
|
||||
|
||||
#include "chrome/browser/download/download_target_info.h"
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
|
||||
DownloadTargetInfo::DownloadTargetInfo()
|
||||
: target_disposition(download::DownloadItem::TARGET_DISPOSITION_OVERWRITE),
|
||||
danger_type(download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS),
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level(safe_browsing::DownloadFileType::NOT_DANGEROUS),
|
||||
+#endif
|
||||
is_filetype_handled_safely(false),
|
||||
result(download::DOWNLOAD_INTERRUPT_REASON_NONE) {}
|
||||
|
||||
diff --git a/chrome/browser/download/download_target_info.h b/chrome/browser/download/download_target_info.h
|
||||
--- a/chrome/browser/download/download_target_info.h
|
||||
+++ b/chrome/browser/download/download_target_info.h
|
||||
@@ -8,7 +8,9 @@
|
||||
#include <string>
|
||||
|
||||
#include "base/files/file_path.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
#include "components/download/public/common/download_interrupt_reasons.h"
|
||||
#include "components/download/public/common/download_item.h"
|
||||
@@ -32,6 +34,7 @@ struct DownloadTargetInfo {
|
||||
// Danger type of the download.
|
||||
download::DownloadDangerType danger_type;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// The danger type of the download could be set to MAYBE_DANGEROUS_CONTENT if
|
||||
// the file type is handled by SafeBrowsing. However, if the SafeBrowsing
|
||||
// service is unable to verify whether the file is safe or not, we are on our
|
||||
@@ -57,6 +60,7 @@ struct DownloadTargetInfo {
|
||||
// SafeBrowsing may flag the file as being malicious, in which case the
|
||||
// malicious classification should take precedence.
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level;
|
||||
+#endif
|
||||
|
||||
// Suggested intermediate path. The downloaded bytes should be written to this
|
||||
// path until all the bytes are available and the user has accepted a
|
||||
diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/download/download_ui_model.cc
|
||||
--- a/chrome/browser/download/download_ui_model.cc
|
||||
+++ b/chrome/browser/download/download_ui_model.cc
|
||||
@@ -23,7 +23,9 @@
|
||||
|
||||
using base::TimeDelta;
|
||||
using download::DownloadItem;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
+#endif
|
||||
using offline_items_collection::FailState;
|
||||
|
||||
namespace {
|
||||
@@ -368,12 +370,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() const {
|
||||
|
||||
void DownloadUIModel::SetShouldPreferOpeningInBrowser(bool preference) {}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadFileType::DangerLevel DownloadUIModel::GetDangerLevel() const {
|
||||
return DownloadFileType::NOT_DANGEROUS;
|
||||
}
|
||||
|
||||
void DownloadUIModel::SetDangerLevel(
|
||||
DownloadFileType::DangerLevel danger_level) {}
|
||||
+#endif
|
||||
|
||||
void DownloadUIModel::OpenUsingPlatformHandler() {}
|
||||
|
||||
diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/download/download_ui_model.h
|
||||
--- a/chrome/browser/download/download_ui_model.h
|
||||
+++ b/chrome/browser/download/download_ui_model.h
|
||||
@@ -14,7 +14,9 @@
|
||||
#include "base/strings/string16.h"
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/profiles/profile_manager.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "components/offline_items_collection/core/offline_item.h"
|
||||
|
||||
@@ -172,6 +174,7 @@ class DownloadUIModel {
|
||||
// Change what's returned by ShouldPreferOpeningInBrowser to |preference|.
|
||||
virtual void SetShouldPreferOpeningInBrowser(bool preference);
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Return the danger level determined during download target determination.
|
||||
// The value returned here is independent of the danger level as determined by
|
||||
// the Safe Browsing.
|
||||
@@ -180,6 +183,7 @@ class DownloadUIModel {
|
||||
// Change what's returned by GetDangerLevel().
|
||||
virtual void SetDangerLevel(
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level);
|
||||
+#endif
|
||||
|
||||
// Open the download using the platform handler for the download. The behavior
|
||||
// of this method will be different from DownloadItem::OpenDownload() if
|
||||
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
|
||||
@@ -79,19 +79,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)
|
||||
@@ -213,26 +200,8 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
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);
|
||||
-
|
||||
- return rv;
|
||||
+ return extensions_delegate_->NotifyBeforeURLRequest(
|
||||
+ request, std::move(callback), new_url);
|
||||
}
|
||||
|
||||
int ChromeNetworkDelegate::OnBeforeStartTransaction(
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+5
-5
@@ -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,24 @@
|
||||
From: xsmile <xsmile@users.noreply.github.com>
|
||||
Date: Thu, 11 Oct 2018 21:29:35 +0200
|
||||
Subject: Allow website sign-in without account sign-in
|
||||
|
||||
Disable prefs::kSigninAllowedOnNextStartup by default. The setting can be found in chrome://settings
|
||||
---
|
||||
chrome/browser/signin/account_consistency_mode_manager.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
@@ -175,7 +175,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
registry->RegisterBooleanPref(prefs::kAccountConsistencyMirrorRequired,
|
||||
false);
|
||||
#endif
|
||||
- registry->RegisterBooleanPref(prefs::kSigninAllowedOnNextStartup, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kSigninAllowedOnNextStartup, false);
|
||||
}
|
||||
|
||||
// static
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+7
-20
@@ -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
|
||||
|
||||
+63
-27
@@ -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 | 62 ++++
|
||||
.../subresource_filter_content_settings_manager.cc | 1 +
|
||||
net/BUILD.gn | 7 +
|
||||
net/url_request/adblock_intercept.cc | 325 +++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 24 ++
|
||||
12 files changed, 505 insertions(+)
|
||||
net/url_request/adblock_intercept.cc | 341 +++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 41 +++
|
||||
12 files changed, 542 insertions(+)
|
||||
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(
|
||||
}
|
||||
@@ -194,16 +196,76 @@ void ChromeNetworkDelegate::set_cookie_settings(
|
||||
cookie_settings_ = cookie_settings;
|
||||
}
|
||||
|
||||
+#define TRANSPARENT1PXGIF "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
||||
@@ -244,14 +244,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());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
@@ -277,9 +281,8 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
||||
+
|
||||
extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
|
||||
bool force_safe_search =
|
||||
@@ -248,6 +304,8 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
return rv;
|
||||
return extensions_delegate_->NotifyBeforeURLRequest(
|
||||
request, std::move(callback), new_url);
|
||||
}
|
||||
|
||||
+#undef TRANSPARENT1PXGIF
|
||||
@@ -301,7 +304,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,7 +322,23 @@ 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,325 @@
|
||||
@@ -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"
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
@@ -649,7 +668,24 @@ 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,24 @@
|
||||
@@ -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_
|
||||
+
|
||||
@@ -675,5 +711,5 @@ new file mode 100644
|
||||
+
|
||||
+#endif // NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+51
-12
@@ -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
-1
@@ -32,5 +32,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 26 Nov 2017 23:11:56 +0100
|
||||
Subject: Disable Omaha update checks
|
||||
|
||||
Do not consider Jelly Bean unsupported
|
||||
---
|
||||
.../android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java | 2 +-
|
||||
.../java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java | 2 +-
|
||||
chrome/browser/android/chrome_feature_list.cc | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
@@ -134,7 +134,7 @@ public class OmahaBase {
|
||||
|
||||
/** See {@link #sIsDisabled}. */
|
||||
static boolean isDisabled() {
|
||||
- return sIsDisabled;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
|
||||
@@ -42,7 +42,7 @@ public class VersionNumberGetter {
|
||||
private static VersionNumberGetter sInstanceForTests;
|
||||
|
||||
/** If false, OmahaClient will never report that a newer version is available. */
|
||||
- private static boolean sEnableUpdateDetection = true;
|
||||
+ private static boolean sEnableUpdateDetection = false;
|
||||
|
||||
protected VersionNumberGetter() { }
|
||||
|
||||
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/android/chrome_feature_list.cc
|
||||
@@ -334,7 +334,7 @@ const base::Feature kInflateToolbarOnBackgroundThread{
|
||||
"BackgroundToolbarInflation", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kJellyBeanSupported{"JellyBeanSupported",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kLanguagesPreference{"LanguagesPreference",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 23 Nov 2016 09:26:51 -0500
|
||||
Subject: Disable contextual search by default
|
||||
|
||||
---
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -143,7 +143,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterStringPref(
|
||||
prefs::kContextualSearchEnabled,
|
||||
- std::string(),
|
||||
+ "false",
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
#endif // defined(OS_ANDROID)
|
||||
registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true);
|
||||
--
|
||||
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
|
||||
|
||||
+15
-14
@@ -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
|
||||
|
||||
@@ -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,23 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sat, 26 Nov 2016 14:57:22 -0500
|
||||
Subject: Disable hyperlink auditing by default
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1505,7 +1505,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
SINGLE_VALUE_TYPE(switches::kDisablePushStateThrottle)},
|
||||
{"disable-hyperlink-auditing", flag_descriptions::kHyperlinkAuditingName,
|
||||
flag_descriptions::kHyperlinkAuditingDescription, kOsAll,
|
||||
- SINGLE_DISABLE_VALUE_TYPE(switches::kNoPings)},
|
||||
+ SINGLE_VALUE_TYPE(switches::kNoPings)},
|
||||
#if defined(OS_ANDROID)
|
||||
{"contextual-search", flag_descriptions::kContextualSearchName,
|
||||
flag_descriptions::kContextualSearchDescription, kOsAndroid,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 8 Jan 2019 08:54:50 +0100
|
||||
Subject: Disable previews by default
|
||||
|
||||
---
|
||||
components/previews/core/previews_features.cc | 7 +------
|
||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/components/previews/core/previews_features.cc b/components/previews/core/previews_features.cc
|
||||
--- a/components/previews/core/previews_features.cc
|
||||
+++ b/components/previews/core/previews_features.cc
|
||||
@@ -14,12 +14,7 @@ namespace features {
|
||||
// are enabled are controlled by other features.
|
||||
const base::Feature kPreviews {
|
||||
"Previews",
|
||||
-#if defined(OS_ANDROID) || defined(OS_LINUX)
|
||||
- // Previews allowed for Android (but also allow on Linux for dev/debug).
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#else // !defined(OS_ANDROID) || defined(OS_LINUX)
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#endif // defined(OS_ANDROID) || defined(OS_LINUX)
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT
|
||||
};
|
||||
|
||||
// Enables the Offline previews on android slow connections.
|
||||
--
|
||||
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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+33
-41
@@ -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
|
||||
|
||||
+4
-4
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 10 Nov 2018 19:47:39 +0100
|
||||
Subject: Do not grant notifications to default search engine
|
||||
|
||||
---
|
||||
chrome/common/chrome_features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
--- a/chrome/common/chrome_features.cc
|
||||
+++ b/chrome/common/chrome_features.cc
|
||||
@@ -296,7 +296,7 @@ const base::Feature kGeoLanguage{"GeoLanguage",
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
const base::Feature kGrantNotificationsToDSE{"GrantNotificationsToDSE",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
#if defined (OS_CHROMEOS)
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 5 Nov 2018 09:39:50 +0100
|
||||
Subject: Enable TLS 1.3 (final) by default
|
||||
|
||||
---
|
||||
chrome/browser/ssl/ssl_config_service_manager_pref.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/ssl/ssl_config_service_manager_pref.cc b/chrome/browser/ssl/ssl_config_service_manager_pref.cc
|
||||
--- a/chrome/browser/ssl/ssl_config_service_manager_pref.cc
|
||||
+++ b/chrome/browser/ssl/ssl_config_service_manager_pref.cc
|
||||
@@ -180,7 +180,7 @@ SSLConfigServiceManagerPref::SSLConfigServiceManagerPref(
|
||||
} else if (tls13_variant == "draft23") {
|
||||
tls13_value = switches::kTLS13VariantDraft23;
|
||||
version_value = switches::kSSLVersionTLSv13;
|
||||
- } else if (tls13_variant == "final") {
|
||||
+ } else if (tls13_variant == "final" || tls13_variant.empty()) {
|
||||
tls13_value = switches::kTLS13VariantFinal;
|
||||
version_value = switches::kSSLVersionTLSv13;
|
||||
}
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Thu, 22 Dec 2016 07:15:34 -0500
|
||||
Subject: Enable -fwrapv in Clang for non-UBSan builds
|
||||
|
||||
---
|
||||
build/config/compiler/BUILD.gn | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -267,6 +267,10 @@ config("compiler") {
|
||||
}
|
||||
}
|
||||
|
||||
+ if (is_clang && !is_ubsan && !is_ubsan_security) {
|
||||
+ cflags += [ "-fwrapv" ]
|
||||
+ }
|
||||
+
|
||||
# Linker warnings.
|
||||
if (fatal_linker_warnings && !(is_chromeos && current_cpu == "arm") &&
|
||||
!(is_android && use_order_profiling) && !is_mac && !is_ios &&
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 2 Nov 2018 14:06:17 +0100
|
||||
Subject: Enable history requirement of user gesture
|
||||
|
||||
Set #enable-history-entry-requires-user-gesture to enabled by default
|
||||
---
|
||||
chrome/browser/about_flags.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1511,7 +1511,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-history-entry-requires-user-gesture",
|
||||
flag_descriptions::kHistoryRequiresUserGestureName,
|
||||
flag_descriptions::kHistoryRequiresUserGestureDescription, kOsAll,
|
||||
- SINGLE_VALUE_TYPE(switches::kHistoryEntryRequiresUserGesture)},
|
||||
+ SINGLE_DISABLE_VALUE_TYPE(switches::kHistoryEntryRequiresUserGesture)},
|
||||
{"disable-pushstate-throttle",
|
||||
flag_descriptions::kDisablePushStateThrottleName,
|
||||
flag_descriptions::kDisablePushStateThrottleDescription, kOsAll,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sun, 13 Aug 2017 19:33:04 -0400
|
||||
Subject: Hide passwords manager link
|
||||
|
||||
---
|
||||
.../chrome/browser/preferences/password/SavePasswordsPreferences.java | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java
|
||||
@@ -252,7 +252,7 @@ public class SavePasswordsPreferences
|
||||
return;
|
||||
}
|
||||
|
||||
- displayManageAccountLink();
|
||||
+ //displayManageAccountLink();
|
||||
|
||||
PreferenceGroup passwordParent;
|
||||
if (mSearchQuery == null) {
|
||||
@@ -327,7 +327,7 @@ public class SavePasswordsPreferences
|
||||
return;
|
||||
}
|
||||
|
||||
- displayManageAccountLink();
|
||||
+ //displayManageAccountLink();
|
||||
|
||||
PreferenceCategory profileCategory = new PreferenceCategory(getActivity());
|
||||
profileCategory.setKey(PREF_KEY_CATEGORY_EXCEPTIONS);
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+28
-23
File diff suppressed because one or more lines are too long
+45
-16
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 28 Oct 2018 14:11:50 +0100
|
||||
Subject: Offer builtin autocomplete for chrome://flags
|
||||
|
||||
---
|
||||
chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
@@ -242,6 +242,8 @@ std::vector<base::string16>
|
||||
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
builtins_to_provide.push_back(
|
||||
+ base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
|
||||
+ builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL));
|
||||
#if !defined(OS_ANDROID)
|
||||
builtins_to_provide.push_back(
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -0,0 +1,226 @@
|
||||
From: Serg <serg.zhukovsky@gmail.com>
|
||||
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
|
||||
.../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
|
||||
delete mode 100644 chrome/android/java/res/drawable-xxhdpi/settings_translate.png
|
||||
delete mode 100644 chrome/android/java/res/drawable-xxxhdpi/settings_translate.png
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-hdpi/settings_translate.png b/chrome/android/java/res/drawable-hdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 8067680e81c6ffa1a003c579411173827a3a9f96..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 399
|
||||
zcmV;A0dW3_P)<h;3K|Lk000e1NJLTq001Na001Ni1ONa4O9@aD00042Nkl<ZcwWuc
|
||||
zJxjwt0LJme7er{c_yr2Oml}2V3s~G9aP6!}z(tU5et?4AT-<~%x+sFhO}e^tsU(Y=
|
||||
z0hgddd^pNsLc+Z{l>hP^9KR_C@$!FaVIla45F@WCMg$)o)DW3mQKSdON+{NY%D^rw
|
||||
zQ6|u}ti|NX7$R7iF@)z*9c+qa0?AUm<7d7%a4MD+^aKw>u^zc5))3o43mLu<Vh_0s
|
||||
z^onI1i*NbG31VmP*$I~u^o9@~3%Mjy{|2j}Ph4OPO<b`i*Ms^ERzc?^JnUm8&>5G;
|
||||
z8!SRo0o`C5w_HXQp+hq2?!?{u8c0%8C3Jue>()aulqxVESiz93aydblXyA)AxSXIZ
|
||||
z^u+3MIY49igeSZ=wug@XJ`tWQp%m)~(480Xl-fZ9?!ILEyg9Ig+E_v&p@gTlA*4tf
|
||||
tij`2N2SrL~qywpbE;5V|EcpMCd%u4DGPZTzo=E@z002ovPDHLkV1m$asKNjM
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-mdpi/settings_translate.png b/chrome/android/java/res/drawable-mdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 3b9b4cd482d36a60d4ff0a110b0bcefabe4c1060..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 284
|
||||
zcmV+%0ptFOP)<h;3K|Lk000e1NJLTq000;O000;W1ONa4N`Cco0002vNkl<ZcwV*C
|
||||
zy$-=p90hPI21^H{kVr7~0h$;*gq(zkcms==tbG8pC$M2)sTe$f#Kz1feE^(W(wipt
|
||||
z>YqeTIHw=KscAEhFY_CKhZ7#j@Qh~#`t~HT1AWt&iOFYBic(;rl@5Y9UG&&#fH`9r
|
||||
zbqhPT0Nhc-8hg~aB!JnVj0zT9La;<0Ijq#SJr@m*036I22Uj!E;6TtuAD4*o-y97Z
|
||||
ziWuYbs-FagXn-mvsLH_>O?Hzl1RVtIfGq+yWZ%bGZULC0h?xp|DgiD=uf=xl!2Uvo
|
||||
icHkLEh=B&e`~;qlBW{m=6s{@&0000<MNUMnLSTX)y>C|l
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xhdpi/settings_translate.png b/chrome/android/java/res/drawable-xhdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 131a57394ca30dcff4bebcb2471bbbf0e1ac134e..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 547
|
||||
zcmV+;0^I$HP)<h;3K|Lk000e1NJLTq001xm001xu1ONa4{R=S+0005%Nkl<ZcwX(-
|
||||
zziU%b9ER~X&>vK2=pT?4!CJ8B5V|`lSO?MdsRak2|3E2<Ew~ov3nC6K4yBGdHyIT=
|
||||
z*iKQTa&gEaRP2_R<9E1(_FiJ{F<-%<Je=X3K5*}FI12x`^1wNOsFIKphLn;}MY&1<
|
||||
zRa%6SwW!7e2_d2+9!QG-C&)S}0;KUkhyudj0~b#<hpahU{YD2gq>+I}uBO%C0%8~2
|
||||
zqX2{ZjJTXFC*U;?c-ddi5s!R<4~S{LXX_djTCRX~3-JV7yh7Y2cms!wTkrY83}bwB
|
||||
z2dpi`B^D8n3HSqaSVYzpI`{+pWDRAl*>VMX>`+5Y@YI?>wsz=YK)L(kPe6xV>d0E+
|
||||
zF#Fw0h$>%W?u)^|9b`@O%&0zU>qXpsF&Oy9RW@l8a&@DCv<Q46cvb|~;{k3U>t;Ei
|
||||
z!kb9ohzhbQ9F+l#U_I(XZ6fPFVyg@=tm03vA!hhtr^YXT;4QKq66}a~{=i*iH3)XZ
|
||||
zJ#V1R7-E(l!Okq>w0(hXWNl<?1F`K3EFkM3TL*{*PoRnN1<~{aRuPk2Kh<Oqt6sn{
|
||||
zQ;3x_<Vp}z9QyzXvi8mZd)X7f1*jwDbN5@1`5@{JK-uDfGz#d(14$IH9}C1i5_>Gi
|
||||
l0_C5%UG`c2pI-Xsz;EN&!BMZ3jZy#r002ovPDHLkV1l>+@2da+
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xxhdpi/settings_translate.png b/chrome/android/java/res/drawable-xxhdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 55878e697b1afed1b4f039a561dc6212e24fc024..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 793
|
||||
zcmV+!1LpjRP)<h;3K|Lk000e1NJLTq002k;002k`1ONa4|Kxkj0008uNkl<ZcwX(=
|
||||
z%}Z2a6vy!qU&7QD6$CjgbzuaFrMYX-gy1F-TYN#>*(&T0P^f5;ixxw==!FDzQOmLj
|
||||
zW)TU|$~Iz9Aez>~5MeSGNzOdU;V@i=JI&0U$NLB~{9rb}%fp9z&%hk!M$92gIe;pl
|
||||
z3Wyj9l9(csBteWw5h(;j9dXi_fJqal&Mqj9DKT-2AY!CT2BnGF10^sPlCTEKJIX71
|
||||
z)JmT5wgxg*K&DJUmwnQupf11mfI$K*D&+>^c2@3W<t}H1aS^@Zph5Z5CZJigaScjR
|
||||
zMTBa$!Uuig{eHe=HE-q67$$tsm>kf|A8$jyfS$PkZE!?L6P{+3Y9btC#|6l6Q$SJA
|
||||
zJsJ|?2*wTQCyfHQr_G#j>iOXcWOyKi8a`n7&M5)i$G8LSaX}DgSmV5K&hghJ$naGk
|
||||
zn|yMVCHFr+W;};YV_bu_81R4w*m4VcMRV41&CGcb!S=Xdpk;b9jBZ}iok8`oEP#^s
|
||||
zxZ*(HxIwJ~nwTJkA;knuN_trO9#=T%BSV6b(8Ic?TcZbSdt70l>n4JR)6DpO>*nq3
|
||||
zafN}FIj#?Cl$~5NU<H)S4chdQct;y?eqjzexj|EYm%9W-*|Z3FLPYa42uQ+JQr19S
|
||||
z8PKI*ASGG4OG`vN`5X|W4{pi=YD6F%bO`8HV30TDOK#3CCj|0{M*=#@u3OM^=^OdI
|
||||
zpGG0Qa0|L3{jfB{0*bi=tx_fZf;0;Ps$$h0XjBJU8y)O1SD-zjI?&qaU`I*00lm%)
|
||||
zv^JT+e&Yso%`?y%9qc|Apbcs~1Fg})u4N;9(71N~84n-S`d?6M*r0iB`k2m2pEmR1
|
||||
zf(Er&%x+lJW-v@pl6q-6F+S;(uAXFgph;~W`+^>8I~g9RU77~AeL>qaNZ%d;C_u^s
|
||||
zlss&pgcZ=5Jy6WbGCgY#WaDr39a`*x^u>dcIQ=590n!A0HN&vZEG?C{V=ABuDD3<L
|
||||
X<=DewY$H`b00000NkvXXu0mjfrJ!K8
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png b/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 058b50b84dd216d983e9dea2ea264b39773ac318..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 1038
|
||||
zcmV+p1o8WcP)<h;3K|Lk000e1NJLTq003YB003YJ1ONa4NRhv@000BkNkl<ZcwX(>
|
||||
zK}Zx)90u@NR77ZDqzI8+I%LtIBq1>CB9(`rB#V~#N{sTXQQ#UFR4mj+L_yL)FVdw5
|
||||
zWziyt2t7o(5K@$fpoFMU*4D8)xU9Pq43Ec~9k(6b`LAza_%8CfJov%x+j;ZfQFNEb
|
||||
z12`KG-~l{<2LKCHgb{}Zy~t>YBMcRaBe4w#ApzaNBoHbkpa(iZdP)TdK_^P66aW<o
|
||||
zGC%?<Js=F7FkyN?+%{m2FFR)&5T^%dqyUW`ppydhRRcUgbKdOZfPML2wf+F5xOe~$
|
||||
za5X2_a&lcrfC1Ws*OwkpL^d<PXBoFq``hX^=<WnOVSo$r0_HGoWCB?$0G$l*T3*0U
|
||||
zRIr6&7Qk=#4L}fCncqTZ7+{YDaF5Y0%Y7~MjxY7x)Mrs=v_5>56u{HU0Q*gCKWkg%
|
||||
zzZ!iHpXGBfgAJ^klo-HsmH{^5htXtkfHkMxaUPh*CPp}jjBvX|#jNB2o*};A4dL$x
|
||||
zZaR^jWPl1(GQd%H9Vr*E#k6n`zua~vj+y|s+;yl=;Uat{fDf0DatmMzyH{Mi0aNk=
|
||||
z7SV+=VZjqPArQ*Yg+(*KsriBvfHVeB1BIss!$v=x(+(m{a9cQ39AFtk*a}5R2a=qY
|
||||
zM2G2rH)-YzYX!{XHtL`Vsl}LuIEGp%Af7L*1<;Mkoc-n;k}EEs#5wq==L@R`yh6DE
|
||||
zXe@BOIf?tU^9B0=>sf0D9wH09K(eHO_}X@%^EiwcGSJsOT46u}y38pI7<D_Kr9^-i
|
||||
zP=vg64xr$P1wcPDKIJ5!8q?%}`J8W;O8jyTpdd(2xC138cbx<%s3v|R?c{)Z)Ej_Z
|
||||
zjsbXDFiNzkzJbCM<!8IM&H##xEx>u<B=-&9*y*m*Er37RzyZxh(`*3z`0Eb9fWRFv
|
||||
zHG}Q|Gzy#Ng3&CnO?9su03QYHao!$h%_sQ*-2z~Qw<D~%AUhz1jU1q2iT6uT*&Xkc
|
||||
z+<->{wR6Q0;bXZ0hXla52{6vu7MTGve7a+uW@Zs&Q??m-0eu3rC-3h{ugD5mMnC|3
|
||||
zumC<VKmZvz0Z(nO@k~y@G24JP83D5>w+*PktbBkdCkD`$Cjm}~$_Loa0g=4O2nTGJ
|
||||
z4KN`LLB8h&d>4i%6LJCCIpB!UT62U0+GPT0sN#Uwe*rNLsDdUBpr7+<3XGr9!nmqm
|
||||
z9zX*J^g=I?UJhtjCjd!2fc<E02gFGMDSAMd6fjK>P)UbW5mEs8p!*B_)Bwsy8PjNj
|
||||
zLJc5zn3UxUnxN1F9DJOYCxvN5;D?e6@Sf=Q03N^tcmNOZ5BbKcjE%x^TL1t607*qo
|
||||
IM6N<$g2Gw1A^-pY
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
@@ -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 -->
|
||||
- <Preference
|
||||
+ <!-- Preference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.website.TranslatePreferences"
|
||||
android:key="translate"
|
||||
android:title="@string/google_translate"
|
||||
- android:icon="@drawable/settings_translate" />
|
||||
+ android:icon="@drawable/settings_translate" /-->
|
||||
<!-- Storage -->
|
||||
<!-- 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
|
||||
--- 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
|
||||
@@ -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));
|
||||
}
|
||||
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.GENERIC_SENSOR_EXTRA_CLASSES)) {
|
||||
getPreferenceScreen().removePreference(findPreference(Type.SENSORS));
|
||||
}
|
||||
@@ -123,10 +116,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
private void updatePreferenceStates() {
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
|
||||
- // Translate preference.
|
||||
- Preference translatePref = findPreference(TRANSLATE_KEY);
|
||||
- if (translatePref != null) setTranslateStateSummary(translatePref);
|
||||
-
|
||||
// Preferences that navigate to Website Settings.
|
||||
List<Integer> websitePrefs = new ArrayList<Integer>();
|
||||
if (mMediaSubMenu) {
|
||||
@@ -143,7 +132,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (!mProtectedContentMenuAvailable) {
|
||||
websitePrefs.add(Type.AUTOPLAY);
|
||||
}
|
||||
- websitePrefs.add(Type.BACKGROUND_SYNC);
|
||||
+// websitePrefs.add(Type.BACKGROUND_SYNC);
|
||||
websitePrefs.add(Type.CAMERA);
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
|
||||
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.11.0
|
||||
|
||||
+5
-5
@@ -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
|
||||
|
||||
+14
-6
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 20 Dec 2018 18:23:32 +0100
|
||||
Subject: Revert "Download location android: Check SD card before showing
|
||||
location dialog."
|
||||
|
||||
This reverts commit 9ade596cc0b315f1f9c3292e1fd8d6182e32fde2.
|
||||
---
|
||||
.../download/DownloadLocationDialogBridge.java | 50 +++-------------------
|
||||
1 file changed, 6 insertions(+), 44 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
|
||||
@@ -4,9 +4,6 @@
|
||||
|
||||
package org.chromium.chrome.browser.download;
|
||||
|
||||
-import android.content.Context;
|
||||
-import android.text.TextUtils;
|
||||
-
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.chrome.browser.ChromeActivity;
|
||||
@@ -17,7 +14,6 @@ import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
|
||||
import java.io.File;
|
||||
-import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Helper class to handle communication between download location dialog and native.
|
||||
@@ -26,10 +22,6 @@ public class DownloadLocationDialogBridge implements ModalDialogView.Controller
|
||||
private long mNativeDownloadLocationDialogBridge;
|
||||
private DownloadLocationDialog mLocationDialog;
|
||||
private ModalDialogManager mModalDialogManager;
|
||||
- private long mTotalBytes;
|
||||
- private @DownloadLocationDialogType int mDialogType;
|
||||
- private String mSuggestedPath;
|
||||
- private Context mContext;
|
||||
|
||||
private DownloadLocationDialogBridge(long nativeDownloadLocationDialogBridge) {
|
||||
mNativeDownloadLocationDialogBridge = nativeDownloadLocationDialogBridge;
|
||||
@@ -60,13 +52,12 @@ public class DownloadLocationDialogBridge implements ModalDialogView.Controller
|
||||
}
|
||||
|
||||
mModalDialogManager = activity.getModalDialogManager();
|
||||
- mContext = activity;
|
||||
- mTotalBytes = totalBytes;
|
||||
- mDialogType = dialogType;
|
||||
- mSuggestedPath = suggestedPath;
|
||||
|
||||
- DownloadDirectoryProvider.getInstance().getAllDirectoriesOptions(
|
||||
- (ArrayList<DirectoryOption> dirs) -> { onDirectoryOptionsRetrieved(dirs); });
|
||||
+ if (mLocationDialog != null) return;
|
||||
+ mLocationDialog = DownloadLocationDialog.create(
|
||||
+ this, activity, totalBytes, dialogType, new File(suggestedPath));
|
||||
+
|
||||
+ mModalDialogManager.showDialog(mLocationDialog, ModalDialogManager.ModalDialogType.APP);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -101,34 +92,6 @@ public class DownloadLocationDialogBridge implements ModalDialogView.Controller
|
||||
}
|
||||
|
||||
/**
|
||||
- * Called after retrieved the download directory options.
|
||||
- * @param dirs An list of available download directories.
|
||||
- */
|
||||
- private void onDirectoryOptionsRetrieved(ArrayList<DirectoryOption> dirs) {
|
||||
- // If there is only one directory available, don't show the default dialog, and set the
|
||||
- // download directory to default. Dialog will still show for other types of dialogs, like
|
||||
- // name conflict or disk error.
|
||||
- if (dirs.size() == 1 && mDialogType == DownloadLocationDialogType.DEFAULT) {
|
||||
- final DirectoryOption dir = dirs.get(0);
|
||||
- if (dir.type == DirectoryOption.DownloadLocationDirectoryType.DEFAULT) {
|
||||
- assert(!TextUtils.isEmpty(dir.location));
|
||||
- PrefServiceBridge.getInstance().setDownloadAndSaveFileDefaultDirectory(
|
||||
- dir.location);
|
||||
- nativeOnComplete(mNativeDownloadLocationDialogBridge, mSuggestedPath);
|
||||
- }
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- // Already showing the dialog.
|
||||
- if (mLocationDialog != null) return;
|
||||
-
|
||||
- // Actually show the dialog.
|
||||
- mLocationDialog = DownloadLocationDialog.create(
|
||||
- this, mContext, mTotalBytes, mDialogType, new File(mSuggestedPath));
|
||||
- mModalDialogManager.showDialog(mLocationDialog, ModalDialogManager.ModalDialogType.APP);
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
* Pass along information from location dialog to native.
|
||||
*
|
||||
* @param fileName Name the user gave the file.
|
||||
@@ -156,8 +119,7 @@ public class DownloadLocationDialogBridge implements ModalDialogView.Controller
|
||||
nativeOnComplete(mNativeDownloadLocationDialogBridge, file.getAbsolutePath());
|
||||
}
|
||||
|
||||
- // Update preference to show prompt based on whether checkbox is checked only when the user
|
||||
- // click the positive button.
|
||||
+ // Update preference to show prompt based on whether checkbox is checked.
|
||||
if (dontShowAgain) {
|
||||
PrefServiceBridge.getInstance().setPromptForDownloadAndroid(
|
||||
DownloadPromptStatus.DONT_SHOW);
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 26 Dec 2018 10:20:24 -0500
|
||||
Subject: Switch to -fstack-protector-strong
|
||||
|
||||
---
|
||||
build/config/compiler/BUILD.gn | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -258,16 +258,12 @@ config("compiler") {
|
||||
cflags += [ "-fstack-protector" ]
|
||||
}
|
||||
} else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) {
|
||||
- # TODO(phajdan.jr): Use -fstack-protector-strong when our gcc supports it.
|
||||
- # See also https://crbug.com/533294
|
||||
- cflags += [ "--param=ssp-buffer-size=4" ]
|
||||
-
|
||||
# The x86 toolchain currently has problems with stack-protector.
|
||||
if (is_android && current_cpu == "x86") {
|
||||
cflags += [ "-fno-stack-protector" ]
|
||||
} else if (current_os != "aix") {
|
||||
# Not available on aix.
|
||||
- cflags += [ "-fstack-protector" ]
|
||||
+ cflags += [ "-fstack-protector-strong" ]
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -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
|
||||
|
||||
+6
-6
@@ -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
-1
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+85
-41
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -3,10 +3,10 @@ Date: Fri, 22 Jun 2018 17:06:15 +0200
|
||||
Subject: kill Auth
|
||||
|
||||
---
|
||||
.../org/chromium/chrome/browser/signin/SigninHelper.java | 6 ++----
|
||||
.../org/chromium/components/signin/AccountIdProvider.java | 9 +--------
|
||||
.../components/signin/SystemAccountManagerDelegate.java | 15 +++++++++------
|
||||
3 files changed, 12 insertions(+), 18 deletions(-)
|
||||
.../chrome/browser/signin/SigninHelper.java | 22 +---------
|
||||
.../components/signin/AccountIdProvider.java | 9 +---
|
||||
.../signin/SystemAccountManagerDelegate.java | 50 ++--------------------
|
||||
3 files changed, 5 insertions(+), 76 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
|
||||
@@ -19,22 +19,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHe
|
||||
-import com.google.android.gms.auth.GoogleAuthException;
|
||||
-import com.google.android.gms.auth.GoogleAuthUtil;
|
||||
-
|
||||
import org.chromium.base.AsyncTask;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
@@ -71,6 +67,7 @@ public class SigninHelper {
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
@@ -71,23 +67,7 @@ public class SigninHelper {
|
||||
@Override
|
||||
public List<String> getAccountChangeEvents(
|
||||
Context context, int index, String accountName) {
|
||||
+ /*
|
||||
try {
|
||||
List<AccountChangeEvent> list = GoogleAuthUtil.getAccountChangeEvents(
|
||||
context, index, accountName);
|
||||
@@ -88,6 +85,7 @@ public class SigninHelper {
|
||||
} catch (GoogleAuthException e) {
|
||||
Log.w(TAG, "Failed to get change events", e);
|
||||
}
|
||||
+ */
|
||||
- try {
|
||||
- List<AccountChangeEvent> list = GoogleAuthUtil.getAccountChangeEvents(
|
||||
- context, index, accountName);
|
||||
- List<String> result = new ArrayList<>(list.size());
|
||||
- for (AccountChangeEvent e : list) {
|
||||
- if (e.getChangeType() == GoogleAuthUtil.CHANGE_TYPE_ACCOUNT_RENAMED_TO) {
|
||||
- result.add(e.getChangeData());
|
||||
- } else {
|
||||
- result.add(null);
|
||||
- }
|
||||
- }
|
||||
- return result;
|
||||
- } catch (IOException e) {
|
||||
- Log.w(TAG, "Failed to get change events", e);
|
||||
- } catch (GoogleAuthException e) {
|
||||
- Log.w(TAG, "Failed to get change events", e);
|
||||
- }
|
||||
+
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
}
|
||||
@@ -77,56 +86,76 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
|
||||
import com.google.android.gms.common.ConnectionResult;
|
||||
import com.google.android.gms.common.GoogleApiAvailability;
|
||||
|
||||
@@ -117,9 +114,9 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
@@ -117,48 +114,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
// so don't report any accounts if Google Play Services are out of date.
|
||||
checkCanUseGooglePlayServices();
|
||||
|
||||
- if (!hasGetAccountsPermission()) {
|
||||
- return new Account[] {};
|
||||
- }
|
||||
- long now = SystemClock.elapsedRealtime();
|
||||
- Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
|
||||
- long elapsed = SystemClock.elapsedRealtime() - now;
|
||||
- recordElapsedTimeHistogram("Signin.AndroidGetAccountsTime_AccountManager", elapsed);
|
||||
- if (ThreadUtils.runningOnUiThread()) {
|
||||
- recordElapsedTimeHistogram(
|
||||
- "Signin.AndroidGetAccountsTimeUiThread_AccountManager", elapsed);
|
||||
- }
|
||||
- return accounts;
|
||||
+ return new Account[] {};
|
||||
+
|
||||
+ /*
|
||||
long now = SystemClock.elapsedRealtime();
|
||||
Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
|
||||
long elapsed = SystemClock.elapsedRealtime() - now;
|
||||
@@ -129,12 +126,15 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
"Signin.AndroidGetAccountsTimeUiThread_AccountManager", elapsed);
|
||||
}
|
||||
return accounts;
|
||||
+ */
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAuthToken(Account account, String authTokenScope) throws AuthException {
|
||||
assert !ThreadUtils.runningOnUiThread();
|
||||
assert AccountManagerFacade.GOOGLE_ACCOUNT_TYPE.equals(account.type);
|
||||
- try {
|
||||
- return GoogleAuthUtil.getTokenWithNotification(
|
||||
- ContextUtils.getApplicationContext(), account, authTokenScope, null);
|
||||
- } catch (GoogleAuthException ex) {
|
||||
- // This case includes a UserRecoverableNotifiedException, but most clients will have
|
||||
- // their own retry mechanism anyway.
|
||||
- throw new AuthException(AuthException.NONTRANSIENT,
|
||||
- "Error while getting token for scope '" + authTokenScope + "'", ex);
|
||||
- } catch (IOException ex) {
|
||||
- throw new AuthException(AuthException.TRANSIENT, ex);
|
||||
- }
|
||||
+ return null;
|
||||
+ /*
|
||||
try {
|
||||
return GoogleAuthUtil.getTokenWithNotification(
|
||||
ContextUtils.getApplicationContext(), account, authTokenScope, null);
|
||||
@@ -146,10 +146,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
} catch (IOException ex) {
|
||||
throw new AuthException(AuthException.TRANSIENT, ex);
|
||||
}
|
||||
+ */
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidateAuthToken(String authToken) throws AuthException {
|
||||
+ /*
|
||||
try {
|
||||
GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken);
|
||||
} catch (GooglePlayServicesAvailabilityException ex) {
|
||||
@@ -159,6 +161,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
} catch (IOException ex) {
|
||||
throw new AuthException(AuthException.TRANSIENT, ex);
|
||||
}
|
||||
+ */
|
||||
- public void invalidateAuthToken(String authToken) throws AuthException {
|
||||
- try {
|
||||
- GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken);
|
||||
- } catch (GooglePlayServicesAvailabilityException ex) {
|
||||
- throw new AuthException(AuthException.NONTRANSIENT, ex);
|
||||
- } catch (GoogleAuthException ex) {
|
||||
- throw new AuthException(AuthException.NONTRANSIENT, ex);
|
||||
- } catch (IOException ex) {
|
||||
- throw new AuthException(AuthException.TRANSIENT, ex);
|
||||
- }
|
||||
+ public void invalidateAuthToken(String authToken) {
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -198,17 +165,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
@SuppressLint("MissingPermission")
|
||||
@Override
|
||||
public void createAddAccountIntent(Callback<Intent> callback) {
|
||||
- AccountManagerCallback<Bundle> accountManagerCallback = accountManagerFuture -> {
|
||||
- try {
|
||||
- Bundle bundle = accountManagerFuture.getResult();
|
||||
- callback.onResult(bundle.getParcelable(AccountManager.KEY_INTENT));
|
||||
- } catch (OperationCanceledException | IOException | AuthenticatorException e) {
|
||||
- Log.e(TAG, "Error while creating an intent to add an account: ", e);
|
||||
- callback.onResult(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
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
@@ -3,65 +3,51 @@ Date: Fri, 22 Jun 2018 17:11:38 +0200
|
||||
Subject: kill GCM
|
||||
|
||||
---
|
||||
build/secondary/third_party/android_tools/BUILD.gn | 2 -
|
||||
.../third_party/android_tools/support/BUILD.gn | 5 --
|
||||
chrome/android/BUILD.gn | 1 -
|
||||
chrome/android/java/AndroidManifest.xml | 62 ----------------------
|
||||
.../chrome/browser/BackgroundSyncLauncher.java | 16 +++---
|
||||
.../invalidation/InvalidationController.java | 13 +----
|
||||
.../browser/ntp/snippets/SnippetsLauncher.java | 44 ---------------
|
||||
.../browser/services/gcm/GCMBackgroundTask.java | 2 -
|
||||
.../gcm/InvalidationGcmUpstreamSender.java | 3 +-
|
||||
chrome/android/java_sources.gni | 2 -
|
||||
components/background_task_scheduler/BUILD.gn | 1 -
|
||||
.../BackgroundTaskSchedulerGcmNetworkManager.java | 30 ++++-------
|
||||
components/gcm_driver/android/BUILD.gn | 1 -
|
||||
components/gcm_driver/instance_id/android/BUILD.gn | 1 -
|
||||
.../gcm_driver/instance_id/InstanceIDBridge.java | 29 +++-------
|
||||
components/sync/android/BUILD.gn | 1 -
|
||||
third_party/cacheinvalidation/BUILD.gn | 6 ---
|
||||
.../client/contrib/MultiplexingGcmListener.java | 49 ++---------------
|
||||
.../android2/channel/AndroidNetworkChannel.java | 18 +++----
|
||||
19 files changed, 36 insertions(+), 250 deletions(-)
|
||||
build/secondary/third_party/android_tools/BUILD.gn | 3 -
|
||||
chrome/android/BUILD.gn | 1 -
|
||||
chrome/android/java/AndroidManifest.xml | 62 ---------
|
||||
.../chrome/browser/BackgroundSyncLauncher.java | 97 --------------
|
||||
.../chrome/browser/ChromeBackgroundService.java | 1 -
|
||||
.../invalidation/InvalidationController.java | 13 --
|
||||
.../browser/ntp/snippets/SnippetsLauncher.java | 44 -------
|
||||
.../browser/services/gcm/GCMBackgroundTask.java | 2 -
|
||||
.../gcm/InvalidationGcmUpstreamSender.java | 15 ---
|
||||
chrome/android/java_sources.gni | 2 -
|
||||
components/background_task_scheduler/BUILD.gn | 1 -
|
||||
.../BackgroundTaskSchedulerGcmNetworkManager.java | 146 +--------------------
|
||||
components/gcm_driver/android/BUILD.gn | 1 -
|
||||
components/gcm_driver/instance_id/android/BUILD.gn | 1 -
|
||||
.../gcm_driver/instance_id/InstanceIDBridge.java | 31 +----
|
||||
components/sync/android/BUILD.gn | 1 -
|
||||
third_party/cacheinvalidation/BUILD.gn | 6 -
|
||||
.../client/contrib/MultiplexingGcmListener.java | 92 +------------
|
||||
.../android2/channel/AndroidNetworkChannel.java | 18 +--
|
||||
19 files changed, 14 insertions(+), 523 deletions(-)
|
||||
|
||||
diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn
|
||||
--- a/build/secondary/third_party/android_tools/BUILD.gn
|
||||
+++ b/build/secondary/third_party/android_tools/BUILD.gn
|
||||
@@ -64,8 +64,6 @@ if (enable_java_templates) {
|
||||
support_lib_alias("android_support_chromium_java") {
|
||||
@@ -53,9 +53,6 @@ if (enable_java_templates) {
|
||||
testonly = true
|
||||
java_files = [ "//third_party/android_tools/sdk/extras/chromium/support/src/org/chromium/android/support/PackageManagerWrapper.java" ]
|
||||
}
|
||||
- support_lib_alias("android_gcm_java") {
|
||||
- android_java_prebuilt("android_gcm_java") {
|
||||
- jar_path = "//third_party/android_tools/sdk/extras/google/gcm/gcm-client/dist/gcm.jar"
|
||||
- }
|
||||
support_lib_alias("emma_device_java") {
|
||||
}
|
||||
prebuilt_wrapper("android_arch_lifecycle_common_java") {
|
||||
diff --git a/build/secondary/third_party/android_tools/support/BUILD.gn b/build/secondary/third_party/android_tools/support/BUILD.gn
|
||||
--- a/build/secondary/third_party/android_tools/support/BUILD.gn
|
||||
+++ b/build/secondary/third_party/android_tools/support/BUILD.gn
|
||||
@@ -21,11 +21,6 @@ android_library("android_support_chromium_java") {
|
||||
visibility += [ "//third_party/android_tools:*" ]
|
||||
}
|
||||
|
||||
-android_java_prebuilt("android_gcm_java") {
|
||||
- jar_path = "//third_party/android_tools/sdk/extras/google/gcm/gcm-client/dist/gcm.jar"
|
||||
- visibility += [ "//third_party/android_tools:*" ]
|
||||
-}
|
||||
-
|
||||
android_java_prebuilt("emma_device_java") {
|
||||
jar_path = "//third_party/android_tools/sdk/tools/lib/emma_device.jar"
|
||||
include_java_resources = true
|
||||
android_java_prebuilt("emma_device_java") {
|
||||
jar_path = "//third_party/android_tools/sdk/tools/lib/emma_device.jar"
|
||||
include_java_resources = true
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -269,7 +269,6 @@ android_library("chrome_java") {
|
||||
@@ -308,7 +308,6 @@ android_library("chrome_java") {
|
||||
"//third_party/android_deps:javax_inject_javax_inject_java",
|
||||
"//third_party/android_media:android_media_java",
|
||||
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
|
||||
"//third_party/android_tools:android_arch_lifecycle_common_java",
|
||||
"//third_party/android_tools:android_arch_lifecycle_runtime_java",
|
||||
- "//third_party/android_tools:android_gcm_java",
|
||||
"//third_party/android_tools:android_support_annotations_java",
|
||||
"//third_party/android_tools:android_support_compat_java",
|
||||
"//third_party/android_tools:android_support_design_java",
|
||||
"//third_party/blink/public:android_mojo_bindings_java",
|
||||
"//third_party/blink/public:blink_headers_java",
|
||||
"//third_party/blink/public/mojom:android_mojo_bindings_java",
|
||||
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
|
||||
@@ -88,7 +74,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
|
||||
|
||||
<uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
|
||||
@@ -919,43 +914,6 @@ by a child template that "extends" this file.
|
||||
@@ -911,43 +906,6 @@ by a child template that "extends" this file.
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
|
||||
android:hardwareAccelerated="false" />
|
||||
|
||||
@@ -132,7 +118,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
||||
<!-- Notification service for sync. -->
|
||||
<meta-data android:name="ipc.invalidation.ticl.listener_service_class"
|
||||
android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
|
||||
@@ -967,8 +925,6 @@ by a child template that "extends" this file.
|
||||
@@ -959,8 +917,6 @@ by a child template that "extends" this file.
|
||||
</service>
|
||||
<service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
|
||||
android:exported="false"/>
|
||||
@@ -141,7 +127,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
||||
<receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
|
||||
android:exported="false"/>
|
||||
<receiver android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"
|
||||
@@ -995,24 +951,6 @@ by a child template that "extends" this file.
|
||||
@@ -987,24 +943,6 @@ by a child template that "extends" this file.
|
||||
android:exported="false"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"/>
|
||||
|
||||
@@ -177,9 +163,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
-import com.google.android.gms.gcm.OneoffTask;
|
||||
-import com.google.android.gms.gcm.Task;
|
||||
-
|
||||
import org.chromium.base.AsyncTask;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
@@ -37,8 +33,6 @@ public class BackgroundSyncLauncher {
|
||||
// BackgroundSyncLauncherAndroid, if any. If it is non-null then the browser is running.
|
||||
private static BackgroundSyncLauncher sInstance;
|
||||
@@ -189,23 +175,38 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
/**
|
||||
* Disables the automatic use of the GCMNetworkManager. When disabled, the methods which
|
||||
* interact with GCM can still be used, but will not be called automatically on creation, or by
|
||||
@@ -123,6 +117,7 @@ public class BackgroundSyncLauncher {
|
||||
@@ -124,30 +118,6 @@ public class BackgroundSyncLauncher {
|
||||
@VisibleForTesting
|
||||
@CalledByNative
|
||||
protected void launchBrowserIfStopped(final boolean shouldLaunch, final long minDelayMs) {
|
||||
+ /*
|
||||
mLaunchBrowserIfStoppedTask = new AsyncTask<Void, Void, Void>() {
|
||||
@Override
|
||||
protected Void doInBackground(Void... params) {
|
||||
@@ -147,6 +142,7 @@ public class BackgroundSyncLauncher {
|
||||
}
|
||||
}
|
||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
+ */
|
||||
- mLaunchBrowserIfStoppedTask = new AsyncTask<Void>() {
|
||||
- @Override
|
||||
- protected Void doInBackground() {
|
||||
- SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
|
||||
- prefs.edit()
|
||||
- .putBoolean(PREF_BACKGROUND_SYNC_LAUNCH_NEXT_ONLINE, shouldLaunch)
|
||||
- .apply();
|
||||
- return null;
|
||||
- }
|
||||
- @Override
|
||||
- protected void onPostExecute(Void params) {
|
||||
- if (sGCMEnabled) {
|
||||
- if (shouldLaunch) {
|
||||
- RecordHistogram.recordBooleanHistogram(
|
||||
- "BackgroundSync.LaunchTask.ScheduleSuccess",
|
||||
- scheduleLaunchTask(mScheduler, minDelayMs));
|
||||
- } else {
|
||||
- RecordHistogram.recordBooleanHistogram(
|
||||
- "BackgroundSync.LaunchTask.CancelSuccess",
|
||||
- removeScheduledTasks(mScheduler));
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -158,7 +154,6 @@ public class BackgroundSyncLauncher {
|
||||
@@ -159,7 +129,6 @@ public class BackgroundSyncLauncher {
|
||||
}
|
||||
|
||||
protected BackgroundSyncLauncher() {
|
||||
@@ -213,45 +214,94 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
launchBrowserIfStopped(false, 0);
|
||||
}
|
||||
|
||||
@@ -186,7 +181,7 @@ public class BackgroundSyncLauncher {
|
||||
}
|
||||
@@ -188,72 +157,6 @@ public class BackgroundSyncLauncher {
|
||||
return !sGCMEnabled;
|
||||
}
|
||||
|
||||
- private static boolean scheduleLaunchTask(GcmNetworkManager scheduler, long minDelayMs) {
|
||||
- // Google Play Services may not be up to date, if the application was not installed through
|
||||
- // the Play Store. In this case, scheduling the task will fail silently.
|
||||
- final long minDelaySecs = minDelayMs / 1000;
|
||||
- OneoffTask oneoff = new OneoffTask.Builder()
|
||||
- .setService(ChromeBackgroundService.class)
|
||||
- .setTag(TASK_TAG)
|
||||
- // We have to set a non-zero execution window here
|
||||
- .setExecutionWindow(minDelaySecs, minDelaySecs + 1)
|
||||
- .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
|
||||
- .setPersisted(true)
|
||||
- .setUpdateCurrent(true)
|
||||
- .build();
|
||||
- try {
|
||||
- scheduler.schedule(oneoff);
|
||||
- } catch (IllegalArgumentException e) {
|
||||
- // Disable GCM for the remainder of this session.
|
||||
- setGCMEnabled(false);
|
||||
- // Return false so that the failure will be logged.
|
||||
- return false;
|
||||
- }
|
||||
- return true;
|
||||
- }
|
||||
-
|
||||
+ /*
|
||||
private static boolean scheduleLaunchTask(GcmNetworkManager scheduler, long minDelayMs) {
|
||||
// Google Play Services may not be up to date, if the application was not installed through
|
||||
// the Play Store. In this case, scheduling the task will fail silently.
|
||||
@@ -229,7 +224,7 @@ public class BackgroundSyncLauncher {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
- private static boolean removeScheduledTasks(GcmNetworkManager scheduler) {
|
||||
- // Third-party code causes broadcast to touch disk. http://crbug.com/614679
|
||||
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
|
||||
- try {
|
||||
- scheduler.cancelTask(TASK_TAG, ChromeBackgroundService.class);
|
||||
- } catch (IllegalArgumentException e) {
|
||||
- // This occurs when BackgroundSyncLauncherService is not found in the application
|
||||
- // manifest. This should not happen in code that reaches here, but has been seen in
|
||||
- // the past. See https://crbug.com/548314
|
||||
- // Disable GCM for the remainder of this session.
|
||||
- setGCMEnabled(false);
|
||||
- // Return false so that the failure will be logged.
|
||||
- return false;
|
||||
- } finally {
|
||||
- StrictMode.setThreadPolicy(oldPolicy);
|
||||
- }
|
||||
- return true;
|
||||
- }
|
||||
-
|
||||
+ */
|
||||
/**
|
||||
* Reschedule any required background sync tasks, if they have been removed due to an
|
||||
* application upgrade.
|
||||
@@ -239,6 +234,7 @@ public class BackgroundSyncLauncher {
|
||||
* This method is static so that it can be run without actually instantiating a
|
||||
* BackgroundSyncLauncher.
|
||||
*/
|
||||
+ /*
|
||||
protected static void rescheduleTasksOnUpgrade(final Context context) {
|
||||
final GcmNetworkManager scheduler = GcmNetworkManager.getInstance(context);
|
||||
BackgroundSyncLauncher.ShouldLaunchCallback callback = shouldLaunch -> {
|
||||
@@ -252,7 +248,7 @@ public class BackgroundSyncLauncher {
|
||||
};
|
||||
BackgroundSyncLauncher.shouldLaunchBrowserIfStopped(callback);
|
||||
}
|
||||
- /**
|
||||
- * Reschedule any required background sync tasks, if they have been removed due to an
|
||||
- * application upgrade.
|
||||
- *
|
||||
- * This method checks the saved preferences, and reschedules the sync tasks as appropriate
|
||||
- * to match the preferences.
|
||||
- * This method is static so that it can be run without actually instantiating a
|
||||
- * BackgroundSyncLauncher.
|
||||
- */
|
||||
- protected static void rescheduleTasksOnUpgrade(final Context context) {
|
||||
- final GcmNetworkManager scheduler = GcmNetworkManager.getInstance(context);
|
||||
- BackgroundSyncLauncher.ShouldLaunchCallback callback = shouldLaunch -> {
|
||||
- if (shouldLaunch) {
|
||||
- // It's unclear what time the sync event was supposed to fire, so fire
|
||||
- // without delay and let the browser reschedule if necessary.
|
||||
- // TODO(iclelland): If this fails, report the failure via UMA (not now,
|
||||
- // since the browser is not running, but on next startup.)
|
||||
- scheduleLaunchTask(scheduler, 0);
|
||||
- }
|
||||
- };
|
||||
- BackgroundSyncLauncher.shouldLaunchBrowserIfStopped(callback);
|
||||
- }
|
||||
-
|
||||
+ */
|
||||
@VisibleForTesting
|
||||
static void setGCMEnabled(boolean enabled) {
|
||||
sGCMEnabled = enabled;
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
|
||||
@@ -106,7 +106,6 @@ public class ChromeBackgroundService extends GcmTaskService {
|
||||
|
||||
@VisibleForTesting
|
||||
protected void rescheduleBackgroundSyncTasksOnUpgrade() {
|
||||
- BackgroundSyncLauncher.rescheduleTasksOnUpgrade(this);
|
||||
}
|
||||
|
||||
private void handleSnippetsOnBrowserUpgraded() {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
|
||||
@@ -11,8 +11,6 @@ import android.os.Build;
|
||||
@@ -10,8 +10,6 @@ import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.SystemClock;
|
||||
|
||||
@@ -259,22 +309,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/In
|
||||
-
|
||||
import org.chromium.base.ApplicationState;
|
||||
import org.chromium.base.ApplicationStatus;
|
||||
import org.chromium.base.AsyncTask;
|
||||
@@ -200,16 +198,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -198,18 +196,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
|
||||
* Registers for Google Cloud Messaging (GCM) for Invalidations.
|
||||
*/
|
||||
private void ensureGcmIsInitialized() {
|
||||
- if (mGcmInitialized) return;
|
||||
- mGcmInitialized = true;
|
||||
- new AsyncTask<Void, Void, Void>() {
|
||||
mGcmInitialized = true;
|
||||
- new AsyncTask<Void>() {
|
||||
- @Override
|
||||
- protected Void doInBackground(Void... arg0) {
|
||||
- protected Void doInBackground() {
|
||||
- boolean useGcmUpstream = true;
|
||||
- AndroidGcmController.get(mContext).initializeGcm(useGcmUpstream);
|
||||
- AndroidGcmController.get(ContextUtils.getApplicationContext())
|
||||
- .initializeGcm(useGcmUpstream);
|
||||
- return null;
|
||||
- }
|
||||
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
+ mGcmInitialized = false;
|
||||
- }
|
||||
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -393,20 +444,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/In
|
||||
-import com.google.android.gms.gcm.GoogleCloudMessaging;
|
||||
import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService;
|
||||
|
||||
import org.chromium.base.AsyncTask;
|
||||
@@ -95,6 +94,7 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -96,20 +95,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
* This function runs on a thread from the AsyncTask.THREAD_POOL_EXECUTOR.
|
||||
*/
|
||||
private void sendUpstreamMessage(String to, Bundle data, String token, Context context) {
|
||||
+ /*
|
||||
// Add the OAuth2 token to the bundle. The token should have the prefix Bearer added to it.
|
||||
data.putString("Authorization", "Bearer " + token);
|
||||
if (!isMessageWithinLimit(data)) {
|
||||
@@ -109,6 +109,7 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
Log.w(TAG, "Send message failed");
|
||||
GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SEND_FAILED);
|
||||
}
|
||||
+ */
|
||||
- // Add the OAuth2 token to the bundle. The token should have the prefix Bearer added to it.
|
||||
- data.putString("Authorization", "Bearer " + token);
|
||||
- if (!isMessageWithinLimit(data)) {
|
||||
- GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SIZE_LIMIT_EXCEEDED);
|
||||
- return;
|
||||
- }
|
||||
- String msgId = UUID.randomUUID().toString();
|
||||
- try {
|
||||
- GoogleCloudMessaging.getInstance(ContextUtils.getApplicationContext())
|
||||
- .send(to, msgId, 1, data);
|
||||
- } catch (IOException | IllegalArgumentException exception) {
|
||||
- Log.w(TAG, "Send message failed");
|
||||
- GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SEND_FAILED);
|
||||
- }
|
||||
}
|
||||
|
||||
private boolean isMessageWithinLimit(Bundle data) {
|
||||
@@ -421,7 +477,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeFeatureList.java",
|
||||
@@ -1217,7 +1216,6 @@ chrome_java_sources = [
|
||||
@@ -1344,7 +1343,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
|
||||
"java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
|
||||
"java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
|
||||
@@ -432,7 +488,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
|
||||
--- a/components/background_task_scheduler/BUILD.gn
|
||||
+++ b/components/background_task_scheduler/BUILD.gn
|
||||
@@ -23,7 +23,6 @@ if (is_android) {
|
||||
@@ -30,7 +30,6 @@ if (is_android) {
|
||||
android_library("background_task_scheduler_java") {
|
||||
java_files = [
|
||||
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTask.java",
|
||||
@@ -458,71 +514,152 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.ThreadUtils;
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
@@ -33,7 +25,7 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
static final String BACKGROUND_TASK_CLASS_KEY = "_background_task_class";
|
||||
@@ -34,104 +26,6 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
@VisibleForTesting
|
||||
static final String BACKGROUND_TASK_EXTRAS_KEY = "_background_task_extras";
|
||||
-
|
||||
+ /*
|
||||
static BackgroundTask getBackgroundTaskFromTaskParams(@NonNull TaskParams taskParams) {
|
||||
String backgroundTaskClassName = getBackgroundTaskClassFromTaskParams(taskParams);
|
||||
return BackgroundTaskReflection.getBackgroundTaskFromClassName(backgroundTaskClassName);
|
||||
@@ -44,7 +36,7 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
if (extras == null) return null;
|
||||
return extras.getString(BACKGROUND_TASK_CLASS_KEY);
|
||||
}
|
||||
-
|
||||
+ */
|
||||
/**
|
||||
* Retrieves the {@link TaskParameters} from the {@link TaskParams}, which are passed as
|
||||
* one of the keys. Only values valid for {@link android.os.BaseBundle} are supported, and other
|
||||
@@ -53,6 +45,8 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
* @param taskParams the {@link TaskParams} to extract the {@link TaskParameters} from.
|
||||
* @return the {@link TaskParameters} for the current job.
|
||||
*/
|
||||
+
|
||||
+ /*
|
||||
static TaskParameters getTaskParametersFromTaskParams(@NonNull TaskParams taskParams) {
|
||||
int taskId;
|
||||
try {
|
||||
@@ -132,6 +126,7 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
return Task.NETWORK_STATE_ANY;
|
||||
}
|
||||
|
||||
+ */
|
||||
- static BackgroundTask getBackgroundTaskFromTaskParams(@NonNull TaskParams taskParams) {
|
||||
- String backgroundTaskClassName = getBackgroundTaskClassFromTaskParams(taskParams);
|
||||
- return BackgroundTaskReflection.getBackgroundTaskFromClassName(backgroundTaskClassName);
|
||||
- }
|
||||
-
|
||||
- private static String getBackgroundTaskClassFromTaskParams(@NonNull TaskParams taskParams) {
|
||||
- Bundle extras = taskParams.getExtras();
|
||||
- if (extras == null) return null;
|
||||
- return extras.getString(BACKGROUND_TASK_CLASS_KEY);
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Retrieves the {@link TaskParameters} from the {@link TaskParams}, which are passed as
|
||||
- * one of the keys. Only values valid for {@link android.os.BaseBundle} are supported, and other
|
||||
- * values are stripped at the time when the task is scheduled.
|
||||
- *
|
||||
- * @param taskParams the {@link TaskParams} to extract the {@link TaskParameters} from.
|
||||
- * @return the {@link TaskParameters} for the current job.
|
||||
- */
|
||||
- static TaskParameters getTaskParametersFromTaskParams(@NonNull TaskParams taskParams) {
|
||||
- int taskId;
|
||||
- try {
|
||||
- taskId = Integer.parseInt(taskParams.getTag());
|
||||
- } catch (NumberFormatException e) {
|
||||
- Log.e(TAG, "Cound not parse task ID from task tag: " + taskParams.getTag());
|
||||
- return null;
|
||||
- }
|
||||
-
|
||||
- TaskParameters.Builder builder = TaskParameters.create(taskId);
|
||||
-
|
||||
- Bundle extras = taskParams.getExtras();
|
||||
- Bundle taskExtras = extras.getBundle(BACKGROUND_TASK_EXTRAS_KEY);
|
||||
- builder.addExtras(taskExtras);
|
||||
-
|
||||
- return builder.build();
|
||||
- }
|
||||
-
|
||||
- @VisibleForTesting
|
||||
- static Task createTaskFromTaskInfo(@NonNull TaskInfo taskInfo) {
|
||||
- Bundle taskExtras = new Bundle();
|
||||
- taskExtras.putString(
|
||||
- BACKGROUND_TASK_CLASS_KEY, taskInfo.getBackgroundTaskClass().getName());
|
||||
- taskExtras.putBundle(BACKGROUND_TASK_EXTRAS_KEY, taskInfo.getExtras());
|
||||
-
|
||||
- Task.Builder builder;
|
||||
- if (taskInfo.isPeriodic()) {
|
||||
- builder = getPeriodicTaskBuilder(taskInfo.getPeriodicInfo());
|
||||
- } else {
|
||||
- builder = getOneOffTaskBuilder(taskInfo.getOneOffInfo());
|
||||
- }
|
||||
-
|
||||
- builder.setExtras(taskExtras)
|
||||
- .setPersisted(taskInfo.isPersisted())
|
||||
- .setRequiredNetwork(getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
|
||||
- taskInfo.getRequiredNetworkType()))
|
||||
- .setRequiresCharging(taskInfo.requiresCharging())
|
||||
- .setService(BackgroundTaskGcmTaskService.class)
|
||||
- .setTag(taskIdToTaskTag(taskInfo.getTaskId()))
|
||||
- .setUpdateCurrent(taskInfo.shouldUpdateCurrent());
|
||||
-
|
||||
- return builder.build();
|
||||
- }
|
||||
-
|
||||
- private static Task.Builder getPeriodicTaskBuilder(TaskInfo.PeriodicInfo periodicInfo) {
|
||||
- PeriodicTask.Builder builder = new PeriodicTask.Builder();
|
||||
- builder.setPeriod(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getIntervalMs()));
|
||||
- if (periodicInfo.hasFlex()) {
|
||||
- builder.setFlex(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getFlexMs()));
|
||||
- }
|
||||
- return builder;
|
||||
- }
|
||||
-
|
||||
- private static Task.Builder getOneOffTaskBuilder(TaskInfo.OneOffInfo oneOffInfo) {
|
||||
- OneoffTask.Builder builder = new OneoffTask.Builder();
|
||||
- long windowStartSeconds = oneOffInfo.hasWindowStartTimeConstraint()
|
||||
- ? TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowStartTimeMs())
|
||||
- : 0;
|
||||
- builder.setExecutionWindow(windowStartSeconds,
|
||||
- TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowEndTimeMs()));
|
||||
- return builder;
|
||||
- }
|
||||
-
|
||||
- private static int getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
|
||||
- @TaskInfo.NetworkType int networkType) {
|
||||
- switch (networkType) {
|
||||
- // This is correct: GcmNM ANY means no network is guaranteed.
|
||||
- case TaskInfo.NETWORK_TYPE_NONE:
|
||||
- return Task.NETWORK_STATE_ANY;
|
||||
- case TaskInfo.NETWORK_TYPE_ANY:
|
||||
- return Task.NETWORK_STATE_CONNECTED;
|
||||
- case TaskInfo.NETWORK_TYPE_UNMETERED:
|
||||
- return Task.NETWORK_STATE_UNMETERED;
|
||||
- default:
|
||||
- assert false;
|
||||
- }
|
||||
- return Task.NETWORK_STATE_ANY;
|
||||
- }
|
||||
-
|
||||
@Override
|
||||
public boolean schedule(Context context, @NonNull TaskInfo taskInfo) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
@@ -142,6 +137,7 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
@@ -142,50 +36,12 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
+ " has no parameterless public constructor.");
|
||||
return false;
|
||||
}
|
||||
+ /*
|
||||
|
||||
GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
|
||||
if (gcmNetworkManager == null) {
|
||||
@@ -158,14 +154,15 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
"GcmNetworkManager failed to schedule task, gcm message: " + gcmErrorMessage);
|
||||
return false;
|
||||
}
|
||||
-
|
||||
- GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
|
||||
- if (gcmNetworkManager == null) {
|
||||
- Log.e(TAG, "GcmNetworkManager is not available.");
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- try {
|
||||
- Task task = createTaskFromTaskInfo(taskInfo);
|
||||
- gcmNetworkManager.schedule(task);
|
||||
- } catch (IllegalArgumentException e) {
|
||||
- String gcmErrorMessage = e.getMessage() == null ? "null." : e.getMessage();
|
||||
- Log.e(TAG,
|
||||
- "GcmNetworkManager failed to schedule task, gcm message: " + gcmErrorMessage);
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- return true;
|
||||
+ */
|
||||
+ return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(Context context, int taskId) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
|
||||
+ /*
|
||||
GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
|
||||
if (gcmNetworkManager == null) {
|
||||
Log.e(TAG, "GcmNetworkManager is not available.");
|
||||
@@ -178,14 +175,7 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
|
||||
} catch (IllegalArgumentException e) {
|
||||
Log.e(TAG, "GcmNetworkManager failed to cancel task.");
|
||||
}
|
||||
-
|
||||
- GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
|
||||
- if (gcmNetworkManager == null) {
|
||||
- Log.e(TAG, "GcmNetworkManager is not available.");
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- try {
|
||||
- gcmNetworkManager.cancelTask(
|
||||
- taskIdToTaskTag(taskId), BackgroundTaskGcmTaskService.class);
|
||||
- } catch (IllegalArgumentException e) {
|
||||
- Log.e(TAG, "GcmNetworkManager failed to cancel task.");
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private GcmNetworkManager getGcmNetworkManager(Context context) {
|
||||
@@ -531,7 +668,6 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/
|
||||
- return GcmNetworkManager.getInstance(context);
|
||||
- }
|
||||
- return null;
|
||||
+ */
|
||||
}
|
||||
|
||||
private static String taskIdToTaskTag(int taskId) {
|
||||
@@ -560,7 +696,7 @@ diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm
|
||||
diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
|
||||
--- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
|
||||
+++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
|
||||
@@ -25,7 +25,6 @@ public class InstanceIDBridge {
|
||||
@@ -32,7 +32,6 @@ public class InstanceIDBridge {
|
||||
* Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be
|
||||
* initialized on a background thread.
|
||||
*/
|
||||
@@ -568,7 +704,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
|
||||
private static boolean sBlockOnAsyncTasksForTesting;
|
||||
|
||||
@@ -70,7 +69,7 @@ public class InstanceIDBridge {
|
||||
@@ -108,7 +107,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<String>() {
|
||||
@Override
|
||||
protected String doBackgroundWork() {
|
||||
@@ -577,7 +713,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(String id) {
|
||||
@@ -85,7 +84,7 @@ public class InstanceIDBridge {
|
||||
@@ -123,7 +122,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Long>() {
|
||||
@Override
|
||||
protected Long doBackgroundWork() {
|
||||
@@ -586,11 +722,12 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Long creationTime) {
|
||||
@@ -106,11 +105,7 @@ public class InstanceIDBridge {
|
||||
@@ -148,12 +147,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<String>() {
|
||||
@Override
|
||||
protected String doBackgroundWork() {
|
||||
- try {
|
||||
- storeLazinessInformation(authorizedEntity, isLazy);
|
||||
- return mInstanceID.getToken(authorizedEntity, scope, extras);
|
||||
- } catch (IOException ex) {
|
||||
- return "";
|
||||
@@ -599,7 +736,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(String token) {
|
||||
@@ -126,12 +121,7 @@ public class InstanceIDBridge {
|
||||
@@ -169,12 +163,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Boolean>() {
|
||||
@Override
|
||||
protected Boolean doBackgroundWork() {
|
||||
@@ -613,7 +750,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Boolean success) {
|
||||
@@ -146,12 +136,7 @@ public class InstanceIDBridge {
|
||||
@@ -189,12 +178,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Boolean>() {
|
||||
@Override
|
||||
protected Boolean doBackgroundWork() {
|
||||
@@ -627,31 +764,29 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Boolean success) {
|
||||
@@ -190,11 +175,11 @@ public class InstanceIDBridge {
|
||||
@@ -233,11 +217,6 @@ public class InstanceIDBridge {
|
||||
@Override
|
||||
@SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native.
|
||||
protected Result doInBackground(Void... params) {
|
||||
protected Result doInBackground() {
|
||||
- synchronized (InstanceIDBridge.this) {
|
||||
+/* synchronized (InstanceIDBridge.this) {
|
||||
if (mInstanceID == null) {
|
||||
mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype);
|
||||
}
|
||||
- if (mInstanceID == null) {
|
||||
- mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype);
|
||||
- }
|
||||
- }
|
||||
+ }*/
|
||||
return doBackgroundWork();
|
||||
}
|
||||
@Override
|
||||
diff --git a/components/sync/android/BUILD.gn b/components/sync/android/BUILD.gn
|
||||
--- a/components/sync/android/BUILD.gn
|
||||
+++ b/components/sync/android/BUILD.gn
|
||||
@@ -10,7 +10,6 @@ android_library("sync_java") {
|
||||
"//base:base_java",
|
||||
@@ -11,7 +11,6 @@ android_library("sync_java") {
|
||||
"//components/signin/core/browser/android:java",
|
||||
"//net/android:net_java",
|
||||
"//third_party/android_deps:android_support_annotations_java",
|
||||
- "//third_party/android_tools:android_gcm_java",
|
||||
"//third_party/android_tools:android_support_annotations_java",
|
||||
"//third_party/cacheinvalidation:cacheinvalidation_javalib",
|
||||
"//third_party/cacheinvalidation:cacheinvalidation_proto_java",
|
||||
"//third_party/jsr-305:jsr_305_javalib",
|
||||
diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn
|
||||
--- a/third_party/cacheinvalidation/BUILD.gn
|
||||
+++ b/third_party/cacheinvalidation/BUILD.gn
|
||||
@@ -718,19 +853,54 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/
|
||||
* Convenience base class for client implementations. It provides base classes for a broadcast
|
||||
* receiver and an intent service that work together to handle events from the
|
||||
* {@code MultiplexingGcmListener} while holding a wake lock.
|
||||
@@ -261,7 +246,7 @@ public class MultiplexingGcmListener extends GCMBaseIntentService {
|
||||
@@ -260,85 +245,10 @@ public class MultiplexingGcmListener extends GCMBaseIntentService {
|
||||
/** Logger. */
|
||||
private static final Logger logger = AndroidLogger.forTag("MplexGcmListener");
|
||||
|
||||
// All onYYY methods work by constructing an appropriate Intent and broadcasting it.
|
||||
- // All onYYY methods work by constructing an appropriate Intent and broadcasting it.
|
||||
-
|
||||
+ /*
|
||||
@Override
|
||||
protected void onMessage(Context context, Intent intent) {
|
||||
Intent newIntent = new Intent();
|
||||
@@ -304,35 +289,7 @@ public class MultiplexingGcmListener extends GCMBaseIntentService {
|
||||
protected String[] getSenderIds(Context context) {
|
||||
return readSenderIdsFromManifestOrDie(this);
|
||||
}
|
||||
- @Override
|
||||
- protected void onMessage(Context context, Intent intent) {
|
||||
- Intent newIntent = new Intent();
|
||||
- newIntent.putExtra(Intents.EXTRA_OP_MESSAGE, true);
|
||||
- newIntent.putExtras(intent);
|
||||
- rebroadcast(newIntent);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected void onRegistered(Context context, String registrationId) {
|
||||
- Intent intent = new Intent();
|
||||
- intent.putExtra(Intents.EXTRA_OP_REGISTERED, true);
|
||||
- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId);
|
||||
- rebroadcast(intent);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected void onUnregistered(Context context, String registrationId) {
|
||||
- Intent intent = new Intent();
|
||||
- intent.putExtra(Intents.EXTRA_OP_UNREGISTERED, true);
|
||||
- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId);
|
||||
- rebroadcast(intent);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected void onDeletedMessages(Context context, int total) {
|
||||
- Intent intent = new Intent();
|
||||
- intent.putExtra(Intents.EXTRA_OP_DELETED_MESSAGES, true);
|
||||
- intent.putExtra(Intents.EXTRA_DATA_NUM_DELETED_MSGS, total);
|
||||
- rebroadcast(intent);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected void onError(Context context, String errorId) {
|
||||
- // This is called for unrecoverable errors, so just log a warning.
|
||||
- logger.warning("GCM error: %s", errorId);
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- protected String[] getSenderIds(Context context) {
|
||||
- return readSenderIdsFromManifestOrDie(this);
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Broadcasts {@code intent} with the action set to {@link Intents#ACTION} and the package name
|
||||
@@ -760,10 +930,15 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/
|
||||
- }
|
||||
- return regId;
|
||||
- }
|
||||
+ */
|
||||
|
||||
-
|
||||
/**
|
||||
* Returns the GCM sender ids from {@link #GCM_SENDER_IDS_METADATA_KEY} or throws a
|
||||
* {@code RuntimeException} if they are not defined.
|
||||
*/
|
||||
-
|
||||
static String[] readSenderIdsFromManifestOrDie(Context context) {
|
||||
try {
|
||||
ServiceInfo serviceInfo = context.getPackageManager().getServiceInfo(
|
||||
diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
|
||||
--- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
|
||||
+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
|
||||
@@ -799,5 +974,5 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/
|
||||
}
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
From: thermatk <thermatk@thermatk.com>
|
||||
Date: Fri, 22 Jun 2018 17:05:17 +0200
|
||||
Subject: kill Location, fall back to system
|
||||
|
||||
---
|
||||
services/device/geolocation/BUILD.gn | 1 -
|
||||
.../chromium/device/geolocation/LocationProviderFactory.java | 10 ++--------
|
||||
2 files changed, 2 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
|
||||
--- a/services/device/geolocation/BUILD.gn
|
||||
+++ b/services/device/geolocation/BUILD.gn
|
||||
@@ -131,7 +131,6 @@ if (is_android) {
|
||||
"android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
|
||||
"android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java",
|
||||
"android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",
|
||||
- "android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java",
|
||||
]
|
||||
|
||||
deps = [
|
||||
diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
|
||||
--- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
|
||||
+++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
|
||||
@@ -26,19 +26,13 @@ public class LocationProviderFactory {
|
||||
|
||||
@CalledByNative
|
||||
public static void useGmsCoreLocationProvider() {
|
||||
- sUseGmsCoreLocationProvider = true;
|
||||
+ sUseGmsCoreLocationProvider = false;
|
||||
}
|
||||
|
||||
public static LocationProvider create() {
|
||||
if (sProviderImpl != null) return sProviderImpl;
|
||||
|
||||
- if (sUseGmsCoreLocationProvider
|
||||
- && LocationProviderGmsCore.isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext())) {
|
||||
- sProviderImpl = new LocationProviderGmsCore(ContextUtils.getApplicationContext());
|
||||
- } else {
|
||||
- sProviderImpl = new LocationProviderAndroid();
|
||||
- }
|
||||
+ sProviderImpl = new LocationProviderAndroid();
|
||||
return sProviderImpl;
|
||||
}
|
||||
}
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
|
||||
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
|
||||
--- a/chrome/android/java/res/values/dimens.xml
|
||||
+++ b/chrome/android/java/res/values/dimens.xml
|
||||
@@ -179,7 +179,6 @@
|
||||
@@ -181,7 +181,6 @@
|
||||
<dimen name="fre_stacked_button_margin">8dp</dimen>
|
||||
<dimen name="fre_margin">24dp</dimen>
|
||||
<dimen name="fre_image_height">120dp</dimen>
|
||||
@@ -45,5 +45,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
private boolean mNativeInitialized;
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+12
-11
@@ -1,11 +1,11 @@
|
||||
From: thermatk <thermatk@thermatk.com>
|
||||
Date: Fri, 22 Jun 2018 17:16:43 +0200
|
||||
Subject: kill Translate(doesn't work)
|
||||
Subject: kill Translate
|
||||
|
||||
---
|
||||
chrome/android/java/res/xml/languages_preferences.xml | 3 ++-
|
||||
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 2 ++
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 3 +++
|
||||
2 files changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/languages_preferences.xml b/chrome/android/java/res/xml/languages_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/languages_preferences.xml
|
||||
@@ -30,14 +30,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
||||
import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
|
||||
import org.chromium.ui.base.LocalizationUtils;
|
||||
@@ -143,6 +144,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
|
||||
mFreProgressStates.add(FRE_PROGRESS_DATA_SAVER_SHOWN);
|
||||
notifyAdapter = true;
|
||||
+ PrefServiceBridge.getInstance().setTranslateEnabled(false);
|
||||
}
|
||||
@@ -138,6 +139,8 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
if (mPostNativePageSequenceCreated) return;
|
||||
mFirstRunFlowSequencer.onNativeInitialized(mFreProperties);
|
||||
|
||||
// An optional page to select a default search engine.
|
||||
+ PrefServiceBridge.getInstance().setTranslateEnabled(false);
|
||||
+
|
||||
boolean notifyAdapter = false;
|
||||
// An optional Data Saver page.
|
||||
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
From: thermatk <thermatk@thermatk.com>
|
||||
Date: Fri, 22 Jun 2018 17:04:43 +0200
|
||||
Subject: kill Vision
|
||||
|
||||
Barcode, face and text detection APIs
|
||||
---
|
||||
services/shape_detection/BUILD.gn | 4 ----
|
||||
.../src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
|
||||
.../shape_detection/FaceDetectionProviderImpl.java | 15 ++-------------
|
||||
.../org/chromium/shape_detection/InterfaceRegistrar.java | 5 -----
|
||||
4 files changed, 2 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
|
||||
--- a/services/shape_detection/BUILD.gn
|
||||
+++ b/services/shape_detection/BUILD.gn
|
||||
@@ -86,14 +86,10 @@ if (is_android) {
|
||||
|
||||
android_library("shape_detection_java") {
|
||||
java_files = [
|
||||
- "android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java",
|
||||
- "android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java",
|
||||
"android/java/src/org/chromium/shape_detection/FaceDetectionImpl.java",
|
||||
- "android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java",
|
||||
"android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java",
|
||||
"android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java",
|
||||
"android/java/src/org/chromium/shape_detection/BitmapUtils.java",
|
||||
- "android/java/src/org/chromium/shape_detection/TextDetectionImpl.java",
|
||||
]
|
||||
|
||||
deps = [
|
||||
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/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,16 +21,8 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
|
||||
@Override
|
||||
public void createFaceDetection(
|
||||
InterfaceRequest<FaceDetection> request, FaceDetectorOptions options) {
|
||||
- final boolean isGmsCoreSupported =
|
||||
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
|
||||
- ContextUtils.getApplicationContext())
|
||||
- == ConnectionResult.SUCCESS;
|
||||
-
|
||||
- if (isGmsCoreSupported) {
|
||||
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
- } else {
|
||||
- FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
|
||||
- }
|
||||
+
|
||||
+ FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
|
||||
}
|
||||
|
||||
@Override
|
||||
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
|
||||
@@ -8,9 +8,7 @@ import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.base.annotations.JNINamespace;
|
||||
import org.chromium.mojo.system.impl.CoreImpl;
|
||||
import org.chromium.services.service_manager.InterfaceRegistry;
|
||||
-import org.chromium.shape_detection.mojom.BarcodeDetectionProvider;
|
||||
import org.chromium.shape_detection.mojom.FaceDetectionProvider;
|
||||
-import org.chromium.shape_detection.mojom.TextDetection;
|
||||
|
||||
@JNINamespace("shape_detection")
|
||||
class InterfaceRegistrar {
|
||||
@@ -21,9 +19,6 @@ class InterfaceRegistrar {
|
||||
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());
|
||||
}
|
||||
}
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -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
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+24
-49
@@ -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
|
||||
|
||||
+8
-8
@@ -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
-1
@@ -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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user