Compare commits
22
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
750cafb50c | ||
|
|
5cd90e8326 | ||
|
|
664cd20825 | ||
|
|
aeb31bb4c5 | ||
|
|
87eb08c088 | ||
|
|
e64cbbd005 | ||
|
|
4829eef707 | ||
|
|
32978e4658 | ||
|
|
f109246e47 | ||
|
|
b1bc96bbd9 | ||
|
|
e3176b1868 | ||
|
|
22dae5bff8 | ||
|
|
f21bb8a1d4 | ||
|
|
3624b67e98 | ||
|
|
eb4cbebe2a | ||
|
|
3de200030f | ||
|
|
b35c5b2f0d | ||
|
|
3cf1a58964 | ||
|
|
ef1fa37452 | ||
|
|
7cb31f2c7a | ||
|
|
252be1a850 | ||
|
|
4cef551b01 |
@@ -4,16 +4,18 @@ about: Create a Bromite bug report
|
||||
|
||||
---
|
||||
|
||||
**Version**
|
||||
**Bromite version**
|
||||
|
||||
Version: `v67...`
|
||||
Version: `69.0...`
|
||||
Arch: `arm` or `arm64` or `x86`
|
||||
Android version: ... (example: `lollipop`)
|
||||
|
||||
**Is the bug reproducible with latest version?**
|
||||
`Bug must be reproducible with latest version`
|
||||
|
||||
**Can the bug be reproduced with corresponding [Chromium](https://github.com/bromite/chromium/releases) version?**
|
||||
`Bug must NOT be reproducible with Chromium to be qualified as a Bromite bug`
|
||||
If yes then report it upstream on [Chromium issue tracker](https://bugs.chromium.org/p/chromium/issues/list) and do not forget to read [Chromium project bug reporting guidelines](https://www.chromium.org/for-testers/bug-reporting-guidelines) first; all Chromium issues reported here will be closed as `invalid`.
|
||||
|
||||
**Is the bug a crash?**
|
||||
If yes then individuate and post the logcat dump (remove privacy sensitive information, if any), otherwise remove this section.
|
||||
|
||||
+41
-34
@@ -1,6 +1,46 @@
|
||||
# 69.0.3497.109
|
||||
|
||||
# 69.0.3497.102
|
||||
* ungoogled-chromium: disable network time tracker
|
||||
* ungoogled-chromium: remove third-party/analytics
|
||||
* ungoogled-chromium: always use local Devtools instead of remote files
|
||||
* build without safebrowsing
|
||||
* drop "Hide NTP tiles" flag
|
||||
|
||||
# 69.0.3497.91
|
||||
* fixed crash when accessing site settings media preferences (fixes https://github.com/bromite/bromite/issues/122)
|
||||
|
||||
# 69.0.3497.73
|
||||
* enabled WebRTC
|
||||
* drop clear HTTP cache patch
|
||||
|
||||
# 68.0.3440.126
|
||||
* add option to disallow custom tab intents (fixes https://github.com/bromite/bromite/issues/117)
|
||||
* add option to keep local data until browser exit (fixes https://github.com/bromite/bromite/issues/56)
|
||||
* remember preference for tabs persistence option
|
||||
* extend anti-AMP to all search results
|
||||
|
||||
# 68.0.3440.121
|
||||
* add option to not persist tabs across sessions (fixes https://github.com/bromite/bromite/issues/106)
|
||||
* always incognito mode (fixes https://github.com/bromite/bromite/issues/18)
|
||||
* disable domain reliability (ungoogled-chromium)
|
||||
* more efficient adblock interception by using proper handler
|
||||
* fix log message about default maximum connections
|
||||
* improvement for exit menu patch
|
||||
|
||||
# 68.0.3440.110
|
||||
* add import action to Bookmarks activity page
|
||||
* use different user-agent version based on Android OS version
|
||||
|
||||
# 68.0.3440.90
|
||||
* reduce rects randomisation by factor of 100
|
||||
* use a fixed user-agent (fixes https://github.com/bromite/bromite/issues/103)
|
||||
|
||||
# 68.0.3440.87
|
||||
* add export action to Bookmarks activity page
|
||||
|
||||
# 68.0.3440.81
|
||||
* fix issue with filters with an excluded domain option
|
||||
* updated AdBlock filters
|
||||
|
||||
# 68.0.3440.72
|
||||
* fix crash during some canvas rendering (fixes https://github.com/bromite/bromite/issues/95)
|
||||
@@ -12,11 +52,9 @@
|
||||
* disable ads metrics by default
|
||||
* disable all field trials (fixes https://github.com/bromite/bromite/issues/83)
|
||||
* re-introduced own battery API patch (fixes https://github.com/bromite/bromite/issues/80)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.107
|
||||
* removed patch to use Android Media Player for URLs (fixes https://github.com/bromite/bromite/issues/71)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.101
|
||||
* set home page to new tab page
|
||||
@@ -33,7 +71,6 @@
|
||||
* safe_browsing: disable cookie transmission
|
||||
* extensions: always show component extensions in the ext list
|
||||
* translate: disable fetching of translate languages from server
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.95
|
||||
* reduce headers sent in DoH requests (fixes https://github.com/bromite/bromite/issues/70)
|
||||
@@ -41,11 +78,9 @@
|
||||
* `CloudFlare` -> `Cloudflare` (fixes https://github.com/bromite/bromite/issues/73)
|
||||
* fingerprint mitigations: cover also `ConvertToArrayBufferContents`
|
||||
* removed redundant own patch for battery API
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.92
|
||||
* improve randomization for each retrieved Canvas data (fixes https://github.com/bromite/bromite/issues/69)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.88
|
||||
* add flag for DNS-over-HTTPS (Google experimental DNS) (fixes https://github.com/bromite/bromite/issues/68)
|
||||
@@ -56,90 +91,70 @@
|
||||
* use Android Media Player for URLs
|
||||
* add exit menu item
|
||||
* hide "send reports to Google" menu item
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.82
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.76
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.72
|
||||
* add global toggle for adblock engine (https://github.com/bromite/bromite/issues/53)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 67.0.3396.67
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.202
|
||||
* fix DevTools integration (https://github.com/bromite/bromite/issues/23)
|
||||
* allow toggling of Javascript from New Tab Page (fixes https://github.com/bromite/bromite/issues/60)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.200
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.196
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.188
|
||||
* updated AdBlock filters
|
||||
* increase max (persistent) connections per server from 6 to 15
|
||||
* preliminary work for better canvas fingerprinting mitigations
|
||||
|
||||
# 66.0.3359.161
|
||||
* updated AdBlock filters
|
||||
|
||||
# 66.0.3359.148
|
||||
* disable permanently all custom tab intents (https://github.com/bromite/bromite/issues/17)
|
||||
* updated AdBlock filters
|
||||
* reduce randomization for client rects from 5% to 3%
|
||||
|
||||
# 65.0.3325.230
|
||||
* fixed permission to access Google account issue (https://github.com/bromite/bromite/issues/11)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.218
|
||||
* always set WideVine version
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.204
|
||||
* add menu option to toggle global Javascript preferences setting (https://github.com/bromite/bromite/issues/37)
|
||||
* add fingeprinting mitigation for getClientRects, getBoundingClientRect
|
||||
* set audio latency to fixed number
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.198
|
||||
* re-landed support for third-party AdBlock filters
|
||||
* completed patches cleanup
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.190
|
||||
* block some Canvas and AudioBuffer APIs mostly used for fingerprinting (https://github.com/bromite/bromite/issues/15)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 65.0.3325.176
|
||||
* block plugins enumeration API
|
||||
* block battery API
|
||||
* remove device name and build id from User Agent
|
||||
* added Qwant search engine
|
||||
* updated AdBlock filters
|
||||
* disable non-working 3rd-party filters support
|
||||
|
||||
# 64.0.3282.204
|
||||
* use H264 NEON optimizations also for arm64
|
||||
* fix build of Stable channel
|
||||
* updated AdBlock filters
|
||||
* started building vanilla Chromium releases as well
|
||||
|
||||
# 64.0.3282.193
|
||||
* updated AdBlock filters
|
||||
* disable reporting
|
||||
|
||||
# 64.0.3282.182
|
||||
* add support for domain-based adblock filters
|
||||
* optimized memory allocation for filters
|
||||
* updated AdBlock filters
|
||||
|
||||
# 64.0.3282.168
|
||||
* extension: allow playing youtube/vimeo videos in background (https://github.com/bromite/bromite/issues/16)
|
||||
@@ -156,20 +171,16 @@
|
||||
* disabled plugin untraceable URLs (ungoogled-chromium)
|
||||
|
||||
# 64.0.3282.149
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.150
|
||||
* fixed crash when clicking on address bar lock (page info) or opening site settings (https://github.com/bromite/bromite/issues/28)
|
||||
* build H264 with NEON optimizations for ARMv7
|
||||
* updated AdBlock filters
|
||||
* more builds for arm64 architecture
|
||||
|
||||
# 63.0.3239.144
|
||||
* fixed invalid AdBlock filter rule blocking all connections (https://github.com/bromite/bromite/issues/26)
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.129
|
||||
* updated AdBlock filters
|
||||
|
||||
# 63.0.3239.122
|
||||
* disable webRTC completely (https://github.com/bromite/bromite/issues/9)
|
||||
@@ -182,23 +193,19 @@
|
||||
* revert /deep/ and ::shadow feature drop to attempt fixing DevTools support (https://github.com/bromite/bromite/issues/23)
|
||||
* remove also ads from search results
|
||||
* add Google search engine with English-only results, no RLZ and field trials
|
||||
* updated adBlock filters
|
||||
* fix build of x86 version (was broken in previous version)
|
||||
|
||||
# 63.0.3239.85
|
||||
* no suggest URL for DuckDuckGo (https://github.com/bromite/bromite/issues/19)
|
||||
* fixed 4chan blocking rule
|
||||
* limit AMP links cleanup to search results only (fixes broken images/news result tabs)
|
||||
* updated adBlock filters
|
||||
|
||||
# 63.0.3239.78
|
||||
* correctly set version and build numbers
|
||||
* updated adBlock filters
|
||||
|
||||
# 63.0.3239.73
|
||||
|
||||
# 63.0.3239.64
|
||||
* updated adblock filters
|
||||
* fixed an issue with incognito new tab
|
||||
* permanent disable for ToS/metrics and unused auto-updates check
|
||||
|
||||
|
||||
@@ -8,9 +8,7 @@ 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" /> <img src="https://www.bromite.org/bromite_bromite_xda_downloads.svg" alt="downloads on XDA Labs" title="downloads on XDA Labs" />
|
||||
<img src="https://www.bromite.org/bromite_bromite_gh_downloads.svg" alt="downloads on Github" title="downloads on Github" />
|
||||
|
||||
# Goals
|
||||
|
||||
@@ -35,6 +33,8 @@ 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.
|
||||
|
||||
@@ -47,14 +47,16 @@ See [this wiki page](https://github.com/bromite/bromite/wiki/Enabling-DNS-over-H
|
||||
|
||||
## Can you add dark mode/some cool themes?
|
||||
No.
|
||||
Bromite is about adblocking and privacy.
|
||||
Bromite is about privacy and adblocking.
|
||||
|
||||
## Can you add HTTPS everywhere?
|
||||
No.
|
||||
We cannot add add-ons to Bromite (merely some features) and anyway HTTPS everywhere in particular is too invasive to be easily maintained across new releases.
|
||||
We cannot add add-ons to Bromite (merely some features).
|
||||
|
||||
## Is Bromite on Play Store?
|
||||
No, and this is unlikely to change. The Play Store would not allow total freedom on the adblocking choice, amongst other limitations.
|
||||
No, and this is unlikely to change. Many limitations apply for submissions there, including which ads are allowed to be blocked.
|
||||
|
||||
Bromite favors user freedom in software choice: the device is yours so you get to choose which software to run on it, end of the story.
|
||||
|
||||
## Is Bromite on F-Droid?
|
||||
It is not on the official F-Droid repository and there are no (more) plans to submit it.
|
||||
@@ -62,7 +64,7 @@ It is not on the official F-Droid repository and there are no (more) plans to su
|
||||
You can use F-Droid client to install and receive updates via [the official Bromite F-Droid repository](https://www.bromite.org/fdroid).
|
||||
|
||||
## Does Bromite support WebRTC?
|
||||
No, it is not built-in.
|
||||
Yes, since version 69. While the desktop version of Chromium has an option to disable it (video/audio site settings), the Android version cannot.
|
||||
|
||||
# Features
|
||||
|
||||
@@ -70,10 +72,14 @@ No, it is not built-in.
|
||||
* remove click-tracking and AMP from search results
|
||||
* DNS-over-HTTPS support via Google/CloudFlare servers
|
||||
* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines
|
||||
* chrome flags to disable custom intents and clear session on exit
|
||||
* always-incognito mode
|
||||
* completely removed safe browsing and other privacy-unfriendly features
|
||||
* 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
|
||||
* webRTC, canvas, audio and other anti-fingerprinting mitigations
|
||||
* canvas, audio and other anti-fingerprinting mitigations
|
||||
|
||||
## Features not related to privacy
|
||||
* import/export bookmarks
|
||||
* allow playing videos in background
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* built with official speed optimizations
|
||||
@@ -82,12 +88,14 @@ You can inspect all functionality/privacy changes by reading the patches: https:
|
||||
|
||||
# Releases
|
||||
|
||||
All built versions are available as [releases](https://github.com/bromite/bromite/releases); the [official website](https://www.bromite.org/) points to those releases and - when browsing via Android - it will automatically select the one apt for your device.
|
||||
All built versions are available as [releases](https://github.com/bromite/bromite/releases); the [official website](https://www.bromite.org/) points to those releases and - when browsing via Android - it will automatically select the one apt for your device (or none otherwise).
|
||||
|
||||
Each tag corresponds to a Chromium Stable release tag.
|
||||
|
||||
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDKs versions 16 and 21
|
||||
Additionally, [SystemWebView](https://www.bromite.org/system_web_view), Monochrome 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.
|
||||
|
||||
All official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
|
||||
|
||||
## Integrity and authenticity
|
||||
|
||||
@@ -97,7 +105,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).
|
||||
|
||||
+2458
-548
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ author: Chad Miller <chad.miller@canonical.com>
|
||||
diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc
|
||||
--- a/components/content_settings/core/browser/cookie_settings.cc
|
||||
+++ b/components/content_settings/core/browser/cookie_settings.cc
|
||||
@@ -111,7 +111,7 @@ void CookieSettings::GetCookieSettings(
|
||||
@@ -50,7 +50,7 @@ void CookieSettings::GetCookieSettings(
|
||||
void CookieSettings::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -22,5 +22,5 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
||||
|
||||
bool ShouldDelayRemoteNTP(const GURL& search_provider_url, Profile* profile) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -41,5 +41,5 @@ diff --git a/services/device/battery/battery_status_service.cc b/services/device
|
||||
return callback_list_.Add(callback);
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -73,5 +73,5 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
|
||||
|
||||
void BatteryManager::RegisterWithDispatcher() {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ This avoids trk:263 from triggering.
|
||||
diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gcm_driver/gcm_channel_status_request.cc
|
||||
--- a/components/gcm_driver/gcm_channel_status_request.cc
|
||||
+++ b/components/gcm_driver/gcm_channel_status_request.cc
|
||||
@@ -23,8 +23,10 @@ namespace gcm {
|
||||
@@ -24,8 +24,10 @@ namespace gcm {
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -21,24 +21,24 @@ diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gc
|
||||
const int kDefaultPollIntervalSeconds = 60 * 60; // 60 minutes.
|
||||
const int kMinPollIntervalSeconds = 30 * 60; // 30 minutes.
|
||||
|
||||
@@ -57,6 +59,7 @@ int GCMChannelStatusRequest::min_poll_interval_seconds() {
|
||||
}
|
||||
@@ -58,6 +60,7 @@ int GCMChannelStatusRequest::min_poll_interval_seconds() {
|
||||
|
||||
void GCMChannelStatusRequest::Start() {
|
||||
// url_loader_factory_ can be null for tests.
|
||||
+#if 0
|
||||
DCHECK(!url_fetcher_);
|
||||
if (!url_loader_factory_)
|
||||
return;
|
||||
|
||||
GURL request_url(channel_status_request_url_);
|
||||
@@ -112,6 +115,9 @@ void GCMChannelStatusRequest::Start() {
|
||||
url_fetcher_->SetLoadFlags(net::LOAD_DO_NOT_SEND_COOKIES |
|
||||
net::LOAD_DO_NOT_SAVE_COOKIES);
|
||||
url_fetcher_->Start();
|
||||
@@ -113,6 +116,9 @@ void GCMChannelStatusRequest::Start() {
|
||||
net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES;
|
||||
resource_request->method = "POST";
|
||||
resource_request->headers.SetHeader(net::HttpRequestHeaders::kUserAgent,
|
||||
+#endif
|
||||
+ // Simulate an empty response and disable GCM.
|
||||
+ callback_.Run(false, false, 0);
|
||||
}
|
||||
|
||||
void GCMChannelStatusRequest::OnURLFetchComplete(
|
||||
user_agent_);
|
||||
// TODO(https://crbug.com/808498): Re-add data use measurement once
|
||||
// SimpleURLLoader supports it.
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -36,10 +36,10 @@ diff --git a/components/component_updater/configurator_impl.cc b/components/comp
|
||||
- pings_enabled_(config_policy.PingsEnabled()),
|
||||
- require_encryption_(require_encryption),
|
||||
+ pings_enabled_(false),
|
||||
url_source_override_(config_policy.UrlSourceOverride()) {
|
||||
url_source_override_(config_policy.UrlSourceOverride()),
|
||||
initial_delay_(config_policy.InitialDelay()) {
|
||||
if (config_policy.TestRequest())
|
||||
extra_info_ += "testrequest=\"1\"";
|
||||
@@ -70,8 +69,6 @@ std::vector<GURL> ConfiguratorImpl::UpdateUrl() const {
|
||||
@@ -73,8 +72,6 @@ std::vector<GURL> ConfiguratorImpl::UpdateUrl() const {
|
||||
}
|
||||
|
||||
std::vector<GURL> urls{GURL(kUpdaterDefaultUrl), GURL(kUpdaterFallbackUrl)};
|
||||
@@ -51,14 +51,14 @@ diff --git a/components/component_updater/configurator_impl.cc b/components/comp
|
||||
diff --git a/components/component_updater/configurator_impl.h b/components/component_updater/configurator_impl.h
|
||||
--- a/components/component_updater/configurator_impl.h
|
||||
+++ b/components/component_updater/configurator_impl.h
|
||||
@@ -91,7 +91,6 @@ class ConfiguratorImpl {
|
||||
bool deltas_enabled_;
|
||||
bool fast_update_;
|
||||
bool pings_enabled_;
|
||||
- bool require_encryption_;
|
||||
GURL url_source_override_;
|
||||
@@ -95,7 +95,6 @@ class ConfiguratorImpl {
|
||||
const bool deltas_enabled_;
|
||||
const bool fast_update_;
|
||||
const bool pings_enabled_;
|
||||
- const bool require_encryption_;
|
||||
const GURL url_source_override_;
|
||||
const int initial_delay_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(ConfiguratorImpl);
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Out with all those tracking cookies!
|
||||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
@@ -117,7 +117,7 @@ void ContentSettingsRegistry::Init() {
|
||||
@@ -119,7 +119,7 @@ void ContentSettingsRegistry::Init() {
|
||||
// WARNING: The string names of the permissions passed in below are used to
|
||||
// generate preference names and should never be changed!
|
||||
|
||||
@@ -20,5 +20,5 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
|
||||
WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
|
||||
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -42,5 +42,5 @@ diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc
|
||||
#endif // defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
} // namespace
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ References: https://github.com/iridium-browser/iridium-browser/issues/33
|
||||
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
|
||||
--- a/chrome/browser/signin/signin_promo.cc
|
||||
+++ b/chrome/browser/signin/signin_promo.cc
|
||||
@@ -130,6 +130,7 @@ namespace signin {
|
||||
@@ -140,6 +140,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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ Subject: Modify default preferences
|
||||
---
|
||||
chrome/browser/background/background_mode_manager.cc | 2 +-
|
||||
chrome/browser/chrome_content_browser_client.cc | 2 +-
|
||||
chrome/browser/io_thread.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.h | 2 +-
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
@@ -19,12 +18,12 @@ Subject: Modify default preferences
|
||||
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
|
||||
components/safe_browsing/common/safe_browsing_prefs.cc | 4 ++--
|
||||
extensions/common/extension.cc | 8 --------
|
||||
16 files changed, 18 insertions(+), 30 deletions(-)
|
||||
15 files changed, 17 insertions(+), 29 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
|
||||
+++ b/chrome/browser/background/background_mode_manager.cc
|
||||
@@ -362,7 +362,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -351,7 +351,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
|
||||
registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
|
||||
#endif
|
||||
@@ -36,7 +35,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows
|
||||
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
|
||||
@@ -1015,7 +1015,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
@@ -1053,7 +1053,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
|
||||
@@ -45,18 +44,6 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
||||
registry->RegisterListPref(prefs::kEnableDeprecatedWebPlatformFeatures);
|
||||
// Register user prefs for mapping SitePerProcess and IsolateOrigins in
|
||||
// user policy in addition to the same named ones in Local State (which are
|
||||
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
|
||||
--- a/chrome/browser/io_thread.cc
|
||||
+++ b/chrome/browser/io_thread.cc
|
||||
@@ -569,7 +569,7 @@ void IOThread::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
std::string());
|
||||
registry->RegisterBooleanPref(prefs::kEnableReferrers, true);
|
||||
data_reduction_proxy::RegisterPrefs(registry);
|
||||
- registry->RegisterBooleanPref(prefs::kBuiltInDnsClientEnabled, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kBuiltInDnsClientEnabled, false);
|
||||
registry->RegisterListPref(prefs::kDnsOverHttpsServers);
|
||||
registry->RegisterListPref(prefs::kDnsOverHttpsServerMethods);
|
||||
#if defined(OS_POSIX)
|
||||
diff --git a/chrome/browser/net/prediction_options.cc b/chrome/browser/net/prediction_options.cc
|
||||
--- a/chrome/browser/net/prediction_options.cc
|
||||
+++ b/chrome/browser/net/prediction_options.cc
|
||||
@@ -84,7 +71,7 @@ diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/predic
|
||||
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
|
||||
@@ -137,7 +137,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
@@ -138,7 +138,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSearchSuggestEnabled,
|
||||
@@ -108,7 +95,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
|
||||
@@ -384,8 +384,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
|
||||
@@ -385,8 +385,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
|
||||
void RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterIntegerPref(prefs::kSignInPromoStartupCount, 0);
|
||||
@@ -177,19 +164,19 @@ 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
|
||||
@@ -210,7 +210,7 @@ void AutofillManager::RegisterProfilePrefs(
|
||||
@@ -189,7 +189,7 @@ void AutofillManager::RegisterProfilePrefs(
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kAutofillCreditCardSigninPromoImpressionCount, 0);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kAutofillEnabled, true,
|
||||
+ prefs::kAutofillEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kAutofillLastVersionDeduped, 0,
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kAutofillProfileEnabled, true,
|
||||
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
|
||||
@@ -442,12 +442,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
|
||||
@@ -443,12 +443,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
|
||||
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowBookmarkBar,
|
||||
@@ -207,7 +194,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
|
||||
@@ -370,9 +370,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
@@ -278,9 +278,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -222,7 +209,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
|
||||
@@ -365,14 +365,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
@@ -366,14 +366,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
if (is_theme())
|
||||
return false;
|
||||
|
||||
@@ -238,5 +225,5 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
||||
// show packaged apps and platform apps because there are some pieces of
|
||||
// functionality that are only available in chrome://extensions/ but which
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -19,5 +19,5 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
#if defined(OS_ANDROID)
|
||||
const base::Feature kAllowAutoplayUnmutedInWebappManifestScope{
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Subject: Do not store passwords by default
|
||||
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
|
||||
--- a/components/password_manager/core/browser/password_manager.cc
|
||||
+++ b/components/password_manager/core/browser/password_manager.cc
|
||||
@@ -228,10 +228,10 @@ PasswordFormManager* FindMatchedManager(
|
||||
@@ -278,10 +278,10 @@ bool ShouldPromptUserToSavePassword(const PasswordFormManager& manager) {
|
||||
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
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu
|
||||
--- a/components/ntp_snippets/features.cc
|
||||
+++ b/components/ntp_snippets/features.cc
|
||||
@@ -38,13 +38,13 @@ const base::Feature kArticleSuggestionsExpandableHeader{
|
||||
"NTPArticleSuggestionsExpandableHeader", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
"NTPArticleSuggestionsExpandableHeader", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kArticleSuggestionsFeature{
|
||||
- "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -27,5 +27,5 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu
|
||||
const base::Feature kForeignSessionsSuggestionsFeature{
|
||||
"NTPForeignSessionsSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -59,5 +59,5 @@ diff --git a/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css b/th
|
||||
body,
|
||||
table,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -24,5 +24,5 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
|
||||
|
||||
// Dictionaries to keep track of default tasks in the file browser.
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -51,5 +51,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -3,10 +3,10 @@ Date: Sun, 26 Nov 2017 22:51:43 +0100
|
||||
Subject: Skip the first run and metrics
|
||||
|
||||
---
|
||||
.../chrome/browser/firstrun/FirstRunStatus.java | 8 ++++----
|
||||
.../chrome/browser/firstrun/FirstRunUtils.java | 16 ++++++----------
|
||||
.../browser/firstrun/ToSAndUMAFirstRunFragment.java | 18 ++++++------------
|
||||
3 files changed, 16 insertions(+), 26 deletions(-)
|
||||
.../chromium/chrome/browser/firstrun/FirstRunStatus.java | 8 ++++----
|
||||
.../chromium/chrome/browser/firstrun/FirstRunUtils.java | 16 ++++++----------
|
||||
.../browser/firstrun/ToSAndUMAFirstRunFragment.java | 6 ++++--
|
||||
3 files changed, 14 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
|
||||
@@ -56,33 +56,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
@@ -74,20 +74,14 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
@@ -74,7 +74,7 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
}
|
||||
});
|
||||
|
||||
- if (ChromeVersionInfo.isOfficialBuild()) {
|
||||
- int paddingStart = getResources().getDimensionPixelSize(
|
||||
- R.dimen.fre_tos_checkbox_padding);
|
||||
- ApiCompatibilityUtils.setPaddingRelative(mSendReportCheckBox,
|
||||
- ApiCompatibilityUtils.getPaddingStart(mSendReportCheckBox) + paddingStart,
|
||||
- mSendReportCheckBox.getPaddingTop(),
|
||||
- ApiCompatibilityUtils.getPaddingEnd(mSendReportCheckBox),
|
||||
- mSendReportCheckBox.getPaddingBottom());
|
||||
-
|
||||
- mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING);
|
||||
- } else {
|
||||
- mSendReportCheckBox.setVisibility(View.GONE);
|
||||
+ int paddingStart = getResources().getDimensionPixelSize(R.dimen.fre_tos_checkbox_padding);
|
||||
+ if (paddingStart != 0) {
|
||||
+ mSendReportCheckBox.setChecked(false);
|
||||
}
|
||||
+/* if (ChromeVersionInfo.isOfficialBuild()) {
|
||||
int paddingStart = getResources().getDimensionPixelSize(
|
||||
R.dimen.fre_tos_checkbox_padding);
|
||||
ViewCompat.setPaddingRelative(mSendReportCheckBox,
|
||||
@@ -86,8 +86,10 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING);
|
||||
} else {
|
||||
mSendReportCheckBox.setVisibility(View.GONE);
|
||||
- }
|
||||
+ }*/
|
||||
|
||||
+ mSendReportCheckBox.setChecked(false);
|
||||
+ mSendReportCheckBox.setVisibility(View.GONE);
|
||||
+
|
||||
mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
NoUnderlineClickableSpan clickableTermsSpan = new NoUnderlineClickableSpan((view1) -> {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -4,36 +4,36 @@ 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 | 8 ++---
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 6 ++--
|
||||
.../browser/preferences/MainPreferences.java | 32 ++++++++++++----------
|
||||
3 files changed, 26 insertions(+), 20 deletions(-)
|
||||
.../browser/preferences/MainPreferences.java | 42 ++++++++++++----------
|
||||
3 files changed, 31 insertions(+), 25 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
|
||||
@@ -6,10 +6,10 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orderingFromXml="false">
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
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="0"
|
||||
android:order="1"
|
||||
- android:title="@string/sign_in_to_chrome"/>
|
||||
+ android:title="@string/sign_in_to_chrome"/-->
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="basics_section"
|
||||
@@ -70,11 +70,11 @@
|
||||
<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="12"
|
||||
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"
|
||||
android:order="13"
|
||||
android:order="15"
|
||||
- android:title="@string/data_reduction_title"/>
|
||||
+ android:title="@string/data_reduction_title"/-->
|
||||
<org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
@@ -42,33 +42,33 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
||||
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
|
||||
@@ -115,7 +115,7 @@ import org.chromium.chrome.browser.printing.TabPrinter;
|
||||
@@ -114,7 +114,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;
|
||||
-import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController;
|
||||
+//import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController;
|
||||
import org.chromium.chrome.browser.snackbar.DataUseSnackbarController;
|
||||
import org.chromium.chrome.browser.snackbar.SnackbarManager;
|
||||
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
|
||||
@@ -258,7 +258,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
@@ -252,7 +252,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
protected ReaderModeManager mReaderModeManager;
|
||||
private SnackbarManager mSnackbarManager;
|
||||
private ModalDialogManager mModalDialogManager;
|
||||
private DataUseSnackbarController mDataUseSnackbarController;
|
||||
- private DataReductionPromoSnackbarController mDataReductionPromoSnackbarController;
|
||||
+ //private DataReductionPromoSnackbarController mDataReductionPromoSnackbarController;
|
||||
private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
|
||||
private AppMenuHandler mAppMenuHandler;
|
||||
private ToolbarManager mToolbarManager;
|
||||
@@ -577,6 +577,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
mDataUseSnackbarController.showDataUseTrackingEndedBar();
|
||||
}
|
||||
|
||||
@@ -600,6 +600,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(mTabModelSelector) {
|
||||
@Override
|
||||
public void didFirstVisuallyNonEmptyPaint(Tab tab) {
|
||||
+/*
|
||||
// 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.
|
||||
if (DataReductionProxySettings.getInstance().isSnackbarPromoAllowed(tab.getUrl())) {
|
||||
@@ -589,6 +590,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
// 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
|
||||
DataReductionProxySettings.getInstance()
|
||||
.getTotalHttpContentLengthSaved());
|
||||
}
|
||||
@@ -91,19 +91,20 @@ 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,20 +35,20 @@ import java.util.Map;
|
||||
*/
|
||||
@@ -35,21 +35,21 @@ 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_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_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";
|
||||
@@ -111,11 +112,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
||||
private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private final Map<String, Preference> mAllPreferences = new HashMap<>();
|
||||
- private SignInPreference mSignInPreference;
|
||||
+ //private SignInPreference mSignInPreference;
|
||||
+// private SignInPreference mSignInPreference;
|
||||
|
||||
public MainPreferences() {
|
||||
setHasOptionsMenu(true);
|
||||
@@ -64,25 +64,29 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -65,25 +65,29 @@ public class MainPreferences extends PreferenceFragment
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
@@ -146,7 +147,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,7 +102,7 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -96,9 +100,9 @@ public class MainPreferences extends PreferenceFragment
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.main_preferences);
|
||||
cachePreferences();
|
||||
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
+/* if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
mSignInPreference.setOnStateChangedCallback(this::onSignInPreferenceStateChanged);
|
||||
- } else {
|
||||
+ } else */{
|
||||
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);
|
||||
@@ -155,7 +168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// If we are on Android O+ the Notifications preference should lead to the Android
|
||||
@@ -154,7 +158,7 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -162,7 +166,7 @@ public class MainPreferences extends PreferenceFragment
|
||||
Preference preference = getPreferenceScreen().getPreference(index);
|
||||
mAllPreferences.put(preference.getKey(), preference);
|
||||
}
|
||||
@@ -164,7 +177,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
||||
}
|
||||
|
||||
private void setManagedPreferenceDelegateForPreference(String key) {
|
||||
@@ -163,12 +167,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -171,12 +175,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
}
|
||||
|
||||
private void updatePreferences() {
|
||||
@@ -177,7 +190,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
||||
updateSearchEnginePreference();
|
||||
|
||||
if (HomepageManager.shouldShowHomepageSetting()) {
|
||||
@@ -190,9 +188,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -197,9 +195,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
removePreferenceIfPresent(PREF_CONTEXTUAL_SUGGESTIONS);
|
||||
}
|
||||
|
||||
@@ -189,7 +202,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
||||
}
|
||||
|
||||
private Preference addPreferenceIfAbsent(String key) {
|
||||
@@ -263,9 +263,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -250,11 +250,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
|
||||
private void onSignInPreferenceStateChanged() {
|
||||
// Remove "Account" section header if the personalized sign-in promo is shown.
|
||||
- if (mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO) {
|
||||
+// if (mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO) {
|
||||
removePreferenceIfPresent(PREF_ACCOUNT_SECTION);
|
||||
- } else {
|
||||
+/* } else {
|
||||
addPreferenceIfAbsent(PREF_ACCOUNT_SECTION);
|
||||
- }
|
||||
+ }*/
|
||||
}
|
||||
|
||||
// TemplateUrlService.LoadListener implementation.
|
||||
@@ -279,9 +279,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
if (PREF_SAVED_PASSWORDS.equals(preference.getKey())) {
|
||||
return PrefServiceBridge.getInstance().isRememberPasswordsManaged();
|
||||
}
|
||||
@@ -201,7 +229,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();
|
||||
}
|
||||
@@ -283,11 +285,13 @@ public class MainPreferences extends PreferenceFragment
|
||||
@@ -299,11 +301,13 @@ public class MainPreferences extends PreferenceFragment
|
||||
return prefs.isRememberPasswordsManaged()
|
||||
&& !prefs.isRememberPasswordsEnabled();
|
||||
}
|
||||
@@ -216,5 +244,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
|
||||
return TemplateUrlService.getInstance().isDefaultSearchManaged();
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Subject: Disable signin/data reduction promos
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -554,7 +554,7 @@ public class ChromeTabbedActivity
|
||||
@@ -575,7 +575,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,7 +18,7 @@ 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()
|
||||
@@ -574,7 +574,7 @@ public class ChromeTabbedActivity
|
||||
@@ -595,7 +595,7 @@ public class ChromeTabbedActivity
|
||||
preferenceManager.setPromosSkippedOnFirstStart(true);
|
||||
}
|
||||
|
||||
@@ -28,5 +28,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
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
|
||||
.../java/res/drawable-xxhdpi/settings_translate.png | Bin 793 -> 0 bytes
|
||||
.../java/res/drawable-xxxhdpi/settings_translate.png | Bin 1038 -> 0 bytes
|
||||
.../android/java/res/xml/site_settings_preferences.xml | 4 ++--
|
||||
.../preferences/website/SiteSettingsPreferences.java | 14 +++++++-------
|
||||
7 files changed, 9 insertions(+), 9 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
index 81658269058c..346cdce944c6 100644
|
||||
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
@@ -73,11 +73,11 @@
|
||||
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
|
||||
index bf12a5cab122..e3cc3d118294 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
@@ -89,7 +89,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
getPreferenceScreen().removePreference(findPreference(i));
|
||||
}
|
||||
getPreferenceScreen().removePreference(findPreference(MEDIA_KEY));
|
||||
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_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.
|
||||
@@ -118,9 +118,9 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
}
|
||||
// The new Languages Preference *feature* is an advanced version of this translate
|
||||
// preference. Once Languages Preference is enabled, remove this setting.
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
|
||||
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
- }
|
||||
+// if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
|
||||
+// getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
+// }
|
||||
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.GENERIC_SENSOR_EXTRA_CLASSES)) {
|
||||
getPreferenceScreen().removePreference(
|
||||
findPreference(SiteSettingsCategory.Type.SENSORS));
|
||||
@@ -132,8 +132,8 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
|
||||
// Translate preference.
|
||||
- Preference translatePref = findPreference(TRANSLATE_KEY);
|
||||
- if (translatePref != null) setTranslateStateSummary(translatePref);
|
||||
+// Preference translatePref = findPreference(TRANSLATE_KEY);
|
||||
+// if (translatePref != null) setTranslateStateSummary(translatePref);
|
||||
|
||||
// Preferences that navigate to Website Settings.
|
||||
List<Integer> websitePrefs = new ArrayList<Integer>();
|
||||
@@ -149,7 +149,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (!mProtectedContentMenuAvailable) {
|
||||
websitePrefs.add(SiteSettingsCategory.Type.AUTOPLAY);
|
||||
}
|
||||
- websitePrefs.add(SiteSettingsCategory.Type.BACKGROUND_SYNC);
|
||||
+ //websitePrefs.add(SiteSettingsCategory.Type.BACKGROUND_SYNC);
|
||||
websitePrefs.add(SiteSettingsCategory.Type.CAMERA);
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
|
||||
websitePrefs.add(SiteSettingsCategory.Type.CLIPBOARD);
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,177 +0,0 @@
|
||||
From: Serg <serg.zhukovsky@gmail.com>
|
||||
Date: Wed, 22 Mar 2017 19:10:30 -0400
|
||||
Subject: Removed 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 | 26 ++++++++++-----------
|
||||
headless/lib/browser/protocol/browser_handler.cc | 2 +-
|
||||
8 files changed, 18 insertions(+), 18 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
index 1159fd1..4a13a36 100644
|
||||
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
@@ -44,9 +44,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" />-->
|
||||
<!-- Protected content -->
|
||||
<org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
|
||||
@@ -66,11 +66,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
|
||||
index 2da84aa9..f3ee0d2 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
@@ -39,7 +39,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
static final String ALL_SITES_KEY = "all_sites";
|
||||
static final String ADS_KEY = "ads";
|
||||
static final String AUTOPLAY_KEY = "autoplay";
|
||||
- static final String BACKGROUND_SYNC_KEY = "background_sync";
|
||||
+ //static final String BACKGROUND_SYNC_KEY = "background_sync";
|
||||
static final String CAMERA_KEY = "camera";
|
||||
static final String CLIPBOARD_KEY = "clipboard";
|
||||
static final String COOKIES_KEY = "cookies";
|
||||
@@ -52,7 +52,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
static final String PROTECTED_CONTENT_KEY = "protected_content";
|
||||
static final String SOUND_KEY = "sound";
|
||||
static final String STORAGE_KEY = "use_storage";
|
||||
- static final String TRANSLATE_KEY = "translate";
|
||||
+ //static final String TRANSLATE_KEY = "translate";
|
||||
static final String USB_KEY = "usb";
|
||||
|
||||
// Whether the Protected Content menu is available for display.
|
||||
@@ -87,8 +87,8 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
return ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS;
|
||||
} else if (AUTOPLAY_KEY.equals(key)) {
|
||||
return ContentSettingsType.CONTENT_SETTINGS_TYPE_AUTOPLAY;
|
||||
- } else if (BACKGROUND_SYNC_KEY.equals(key)) {
|
||||
- return ContentSettingsType.CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC;
|
||||
+ /*} else if (BACKGROUND_SYNC_KEY.equals(key)) {
|
||||
+ return ContentSettingsType.CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC;*/
|
||||
} else if (CAMERA_KEY.equals(key)) {
|
||||
return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA;
|
||||
} else if (CLIPBOARD_KEY.equals(key)) {
|
||||
@@ -127,7 +127,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
// menus.
|
||||
getPreferenceScreen().removePreference(findPreference(ALL_SITES_KEY));
|
||||
getPreferenceScreen().removePreference(findPreference(ADS_KEY));
|
||||
- getPreferenceScreen().removePreference(findPreference(BACKGROUND_SYNC_KEY));
|
||||
+ //getPreferenceScreen().removePreference(findPreference(BACKGROUND_SYNC_KEY));
|
||||
getPreferenceScreen().removePreference(findPreference(CAMERA_KEY));
|
||||
getPreferenceScreen().removePreference(findPreference(CLIPBOARD_KEY));
|
||||
getPreferenceScreen().removePreference(findPreference(COOKIES_KEY));
|
||||
@@ -139,7 +139,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
getPreferenceScreen().removePreference(findPreference(POPUPS_KEY));
|
||||
getPreferenceScreen().removePreference(findPreference(SOUND_KEY));
|
||||
getPreferenceScreen().removePreference(findPreference(STORAGE_KEY));
|
||||
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
+ //getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
getPreferenceScreen().removePreference(findPreference(USB_KEY));
|
||||
} else {
|
||||
// If both Autoplay and Protected Content menus are available, they'll be tucked under
|
||||
@@ -165,9 +165,9 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
}
|
||||
// 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)) {
|
||||
+ /*if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
|
||||
getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
- }
|
||||
+ }*/
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,10 +175,10 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
|
||||
// Translate preference.
|
||||
- Preference translatePref = findPreference(TRANSLATE_KEY);
|
||||
+ /*Preference translatePref = findPreference(TRANSLATE_KEY);
|
||||
if (translatePref != null) {
|
||||
setTranslateStateSummary(translatePref);
|
||||
- }
|
||||
+ }*/
|
||||
|
||||
// Preferences that navigate to Website Settings.
|
||||
List<String> websitePrefs = new ArrayList<String>();
|
||||
@@ -192,7 +192,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
// When showing the main menu, if Protected Content is not available, only Autoplay
|
||||
// will be visible.
|
||||
if (!mProtectedContentMenuAvailable) websitePrefs.add(AUTOPLAY_KEY);
|
||||
- websitePrefs.add(BACKGROUND_SYNC_KEY);
|
||||
+ //websitePrefs.add(BACKGROUND_SYNC_KEY);
|
||||
websitePrefs.add(CAMERA_KEY);
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
|
||||
websitePrefs.add(CLIPBOARD_KEY);
|
||||
@@ -218,8 +218,8 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
checked = PrefServiceBridge.getInstance().adsEnabled();
|
||||
} else if (AUTOPLAY_KEY.equals(prefName)) {
|
||||
checked = PrefServiceBridge.getInstance().isAutoplayEnabled();
|
||||
- } else if (BACKGROUND_SYNC_KEY.equals(prefName)) {
|
||||
- checked = PrefServiceBridge.getInstance().isBackgroundSyncAllowed();
|
||||
+ /*} else if (BACKGROUND_SYNC_KEY.equals(prefName)) {
|
||||
+ checked = PrefServiceBridge.getInstance().isBackgroundSyncAllowed();*/
|
||||
} else if (CAMERA_KEY.equals(prefName)) {
|
||||
checked = PrefServiceBridge.getInstance().isCameraEnabled();
|
||||
} else if (CLIPBOARD_KEY.equals(prefName)) {
|
||||
diff --git a/headless/lib/browser/protocol/browser_handler.cc b/headless/lib/browser/protocol/browser_handler.cc
|
||||
index 97ec5f5..955b233 100644
|
||||
--- a/headless/lib/browser/protocol/browser_handler.cc
|
||||
+++ b/headless/lib/browser/protocol/browser_handler.cc
|
||||
@@ -71,7 +71,7 @@ Response BrowserHandler::Close() {
|
||||
Response BrowserHandler::SetWindowBounds(
|
||||
int window_id,
|
||||
std::unique_ptr<Browser::Bounds> window_bounds) {
|
||||
- HeadlessWebContentsImpl* web_contents = web_contents =
|
||||
+ HeadlessWebContentsImpl* web_contents =
|
||||
browser()->GetWebContentsForWindowId(window_id);
|
||||
if (!web_contents)
|
||||
return Response::Error("Browser window not found");
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Subject: Hide "Send reports to Google"
|
||||
diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
--- a/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
+++ b/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
@@ -70,7 +70,7 @@
|
||||
@@ -71,7 +71,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:lineSpacingMultiplier="1.4"
|
||||
android:text="@string/fre_send_report_check"
|
||||
@@ -19,5 +19,5 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -23,5 +23,5 @@ diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/p
|
||||
prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref));
|
||||
const base::TimeDelta time_since_last_download =
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Subject: ungoogled-chromium: Disable signin
|
||||
diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc
|
||||
--- a/chrome/browser/ui/chrome_pages.cc
|
||||
+++ b/chrome/browser/ui/chrome_pages.cc
|
||||
@@ -76,12 +76,6 @@ void OpenBookmarkManagerForNode(Browser* browser, int64_t node_id) {
|
||||
@@ -72,12 +72,6 @@ void OpenBookmarkManagerForNode(Browser* browser, int64_t node_id) {
|
||||
ShowSingletonTabOverwritingNTP(browser, std::move(params));
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.
|
||||
// Shows either the help app or the appropriate help page for |source|. If
|
||||
// |browser| is NULL and the help page is used (vs the app), the help page is
|
||||
// shown in the last active browser. If there is no such browser, a new browser
|
||||
@@ -396,6 +390,7 @@ void ShowSearchEngineSettings(Browser* browser) {
|
||||
@@ -384,6 +378,7 @@ void ShowSearchEngineSettings(Browser* browser) {
|
||||
#if !defined(OS_ANDROID)
|
||||
void ShowBrowserSignin(Browser* browser,
|
||||
signin_metrics::AccessPoint access_point) {
|
||||
@@ -31,8 +31,8 @@ diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.
|
||||
Profile* original_profile = browser->profile()->GetOriginalProfile();
|
||||
SigninManagerBase* manager =
|
||||
SigninManagerFactory::GetForProfile(original_profile);
|
||||
@@ -444,6 +439,7 @@ void ShowBrowserSignin(Browser* browser,
|
||||
profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN, browser, access_point);
|
||||
@@ -435,6 +430,7 @@ void ShowBrowserSignin(Browser* browser,
|
||||
access_point);
|
||||
#endif
|
||||
}
|
||||
+#endif
|
||||
@@ -52,5 +52,5 @@ diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/
|
||||
|
||||
AccountInfo SigninManagerBase::GetAuthenticatedAccountInfo() const {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ Subject: ungoogled-chromium: Disable webRTC log uploader
|
||||
diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
--- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
+++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
|
||||
@@ -114,30 +114,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
|
||||
@@ -117,30 +117,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
|
||||
DCHECK(meta_data.get());
|
||||
DCHECK(!upload_done_data.log_path.empty());
|
||||
|
||||
@@ -41,7 +41,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
|
||||
}
|
||||
|
||||
void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
@@ -148,6 +125,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
@@ -151,6 +128,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
DCHECK(!compressed_log.empty());
|
||||
DCHECK(meta_data.get());
|
||||
|
||||
@@ -52,5 +52,5 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
|
||||
SetupMultipart(post_data.get(), compressed_log,
|
||||
upload_done_data.incoming_rtp_dump,
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Disable additional URLs that are not caught by the "trk" scheme
|
||||
diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/android/rlz/rlz_ping_handler.cc
|
||||
--- a/chrome/browser/android/rlz/rlz_ping_handler.cc
|
||||
+++ b/chrome/browser/android/rlz/rlz_ping_handler.cc
|
||||
@@ -73,7 +73,7 @@ void RlzPingHandler::Ping(
|
||||
@@ -75,7 +75,7 @@ void RlzPingHandler::Ping(
|
||||
DCHECK_EQ(id.length(), 50u);
|
||||
|
||||
GURL request_url(base::StringPrintf(
|
||||
@@ -28,7 +28,7 @@ diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/and
|
||||
diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser/plugins/plugins_resource_service.cc
|
||||
--- a/chrome/browser/plugins/plugins_resource_service.cc
|
||||
+++ b/chrome/browser/plugins/plugins_resource_service.cc
|
||||
@@ -51,9 +51,6 @@ const int kStartResourceFetchDelayMs = 60 * 1000;
|
||||
@@ -53,9 +53,6 @@ const int kStartResourceFetchDelayMs = 60 * 1000;
|
||||
// Delay between calls to update the cache 1 day and 2 minutes in testing mode.
|
||||
const int kCacheUpdateDelayMs = 24 * 60 * 60 * 1000;
|
||||
|
||||
@@ -38,7 +38,7 @@ diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser
|
||||
GURL GetPluginsServerURL() {
|
||||
std::string filename;
|
||||
#if defined(OS_WIN)
|
||||
@@ -68,7 +65,7 @@ GURL GetPluginsServerURL() {
|
||||
@@ -70,7 +67,7 @@ GURL GetPluginsServerURL() {
|
||||
#error Unknown platform
|
||||
#endif
|
||||
|
||||
@@ -132,5 +132,5 @@ diff --git a/rlz/lib/lib_values.h b/rlz/lib/lib_values.h
|
||||
extern const int kFinancialPort;
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -4,9 +4,9 @@ Subject: ungoogled-chromium: Disable translate integration
|
||||
|
||||
---
|
||||
components/translate/content/renderer/translate_helper.cc | 4 +++-
|
||||
components/translate/core/browser/translate_manager.cc | 2 +-
|
||||
components/translate/core/browser/translate_manager.cc | 5 +++--
|
||||
components/translate/core/browser/translate_script.cc | 3 +--
|
||||
3 files changed, 5 insertions(+), 4 deletions(-)
|
||||
3 files changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/components/translate/content/renderer/translate_helper.cc b/components/translate/content/renderer/translate_helper.cc
|
||||
--- a/components/translate/content/renderer/translate_helper.cc
|
||||
@@ -25,19 +25,22 @@ diff --git a/components/translate/content/renderer/translate_helper.cc b/compone
|
||||
diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
|
||||
--- a/components/translate/core/browser/translate_manager.cc
|
||||
+++ b/components/translate/core/browser/translate_manager.cc
|
||||
@@ -131,7 +131,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
|
||||
@@ -133,8 +133,9 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
|
||||
if (net::NetworkChangeNotifier::IsOffline())
|
||||
return;
|
||||
|
||||
- if (!ignore_missing_key_for_testing_ && !::google_apis::HasKeysConfigured()) {
|
||||
+ if (true) {
|
||||
- if (!ignore_missing_key_for_testing_ &&
|
||||
- !::google_apis::HasAPIKeyConfigured()) {
|
||||
+// if (!ignore_missing_key_for_testing_ &&
|
||||
+// !::google_apis::HasAPIKeyConfigured()) {
|
||||
+ if (true) {
|
||||
// Without an API key, translate won't work, so don't offer to translate in
|
||||
// the first place. Leave prefs::kOfferTranslateEnabled on, though, because
|
||||
// that settings syncs and we don't want to turn off translate everywhere
|
||||
diff --git a/components/translate/core/browser/translate_script.cc b/components/translate/core/browser/translate_script.cc
|
||||
--- a/components/translate/core/browser/translate_script.cc
|
||||
+++ b/components/translate/core/browser/translate_script.cc
|
||||
@@ -149,9 +149,8 @@ void TranslateScript::OnScriptFetchComplete(
|
||||
@@ -152,9 +152,8 @@ void TranslateScript::OnScriptFetchComplete(bool success,
|
||||
base::StringAppendF(&data_, "var serverParams = '%s';\n",
|
||||
server_params.c_str());
|
||||
|
||||
@@ -49,5 +52,5 @@ diff --git a/components/translate/core/browser/translate_script.cc b/components/
|
||||
// Append embedded translate.js and a remote element library.
|
||||
base::StringPiece str =
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -31,5 +31,5 @@ diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/brows
|
||||
net::DefineNetworkTrafficAnnotation("profile_avatar", R"(
|
||||
semantics {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ See this page for more information: https://mikewest.org/2012/02/chrome-connects
|
||||
diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intranet_redirect_detector.cc
|
||||
--- a/chrome/browser/intranet_redirect_detector.cc
|
||||
+++ b/chrome/browser/intranet_redirect_detector.cc
|
||||
@@ -75,9 +75,7 @@ void IntranetRedirectDetector::FinishSleep() {
|
||||
@@ -77,9 +77,7 @@ void IntranetRedirectDetector::FinishSleep() {
|
||||
simple_loaders_.clear();
|
||||
resulting_origins_.clear();
|
||||
|
||||
@@ -24,5 +24,5 @@ diff --git a/chrome/browser/intranet_redirect_detector.cc b/chrome/browser/intra
|
||||
DCHECK(simple_loaders_.empty() && resulting_origins_.empty());
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -309,7 +309,7 @@ diff --git a/components/google/core/browser/google_util.cc b/components/google/c
|
||||
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
|
||||
--- a/components/search_engines/template_url.cc
|
||||
+++ b/components/search_engines/template_url.cc
|
||||
@@ -498,11 +498,7 @@ base::string16 TemplateURLRef::SearchTermToString16(
|
||||
@@ -499,11 +499,7 @@ base::string16 TemplateURLRef::SearchTermToString16(
|
||||
bool TemplateURLRef::HasGoogleBaseURLs(
|
||||
const SearchTermsData& search_terms_data) const {
|
||||
ParseIfNecessary(search_terms_data);
|
||||
@@ -355,5 +355,5 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Disable Google Cloud Messaging (GCM) client
|
||||
diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc
|
||||
--- a/components/gcm_driver/gcm_client_impl.cc
|
||||
+++ b/components/gcm_driver/gcm_client_impl.cc
|
||||
@@ -502,6 +502,7 @@ void GCMClientImpl::StartGCM() {
|
||||
@@ -491,6 +491,7 @@ void GCMClientImpl::StartGCM() {
|
||||
}
|
||||
|
||||
void GCMClientImpl::InitializeMCSClient() {
|
||||
@@ -18,7 +18,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
|
||||
std::vector<GURL> endpoints;
|
||||
endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
|
||||
GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
|
||||
@@ -699,6 +700,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
|
||||
@@ -684,6 +685,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
|
||||
}
|
||||
|
||||
void GCMClientImpl::StartCheckin() {
|
||||
@@ -26,7 +26,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
|
||||
// Make sure no checkin is in progress.
|
||||
if (checkin_request_)
|
||||
return;
|
||||
@@ -777,6 +779,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
|
||||
@@ -759,6 +761,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
|
||||
}
|
||||
|
||||
void GCMClientImpl::SchedulePeriodicCheckin() {
|
||||
@@ -35,5 +35,5 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
|
||||
if (checkin_request_.get() || !device_checkin_info_.accounts_set)
|
||||
return;
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -7,18 +7,18 @@ Somehow it is still being activated even without being signed-in.
|
||||
|
||||
See also: https://github.com/Eloston/ungoogled-chromium/issues/104
|
||||
---
|
||||
chrome/browser/browser_resources.grd | 2 --
|
||||
.../component_extensions_whitelist/whitelist.cc | 1 -
|
||||
.../signin/gaia_auth_extension_loader.cc | 7 ------
|
||||
.../resources/component_extension_resources.grd | 2 --
|
||||
chrome/browser/ui/webui/signin/inline_login_ui.cc | 1 -
|
||||
google_apis/gaia/gaia_auth_fetcher.cc | 29 ----------------------
|
||||
6 files changed, 42 deletions(-)
|
||||
chrome/browser/browser_resources.grd | 2 --
|
||||
chrome/browser/extensions/component_extensions_whitelist/whitelist.cc | 1 -
|
||||
chrome/browser/extensions/signin/gaia_auth_extension_loader.cc | 3 ++-
|
||||
chrome/browser/resources/component_extension_resources.grd | 2 --
|
||||
chrome/browser/ui/webui/signin/inline_login_ui.cc | 1 -
|
||||
google_apis/gaia/gaia_auth_fetcher.cc | 4 +++-
|
||||
6 files changed, 5 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
+++ b/chrome/browser/browser_resources.grd
|
||||
@@ -296,7 +296,6 @@
|
||||
@@ -303,7 +303,6 @@
|
||||
<include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
|
||||
<include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" flattenhtml="true" type="BINDATA" />
|
||||
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
|
||||
<include name="IDR_INSPECT_CSS" file="resources\inspect\inspect.css" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
|
||||
<include name="IDR_INSPECT_JS" file="resources\inspect\inspect.js" flattenhtml="true" type="BINDATA" />
|
||||
@@ -431,7 +430,6 @@
|
||||
@@ -444,7 +443,6 @@
|
||||
<include name="IDR_WEBRTC_LOGS_JS" file="resources\media\webrtc_logs.js" type="BINDATA" />
|
||||
<include name="IDR_WEBSTORE_MANIFEST" file="resources\webstore_app\manifest.json" type="BINDATA" />
|
||||
<include name="IDR_CRYPTOTOKEN_MANIFEST" file="resources\cryptotoken\manifest.json" type="BINDATA" />
|
||||
@@ -48,22 +48,20 @@ diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.
|
||||
diff --git a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
|
||||
--- a/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
|
||||
+++ b/chrome/browser/extensions/signin/gaia_auth_extension_loader.cc
|
||||
@@ -42,18 +42,11 @@ extensions::ComponentLoader* GetComponentLoader(BrowserContext* context) {
|
||||
@@ -42,7 +42,7 @@ ComponentLoader* GetComponentLoader(BrowserContext* context) {
|
||||
|
||||
void LoadGaiaAuthExtension(BrowserContext* context) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
|
||||
- extensions::ComponentLoader* component_loader = GetComponentLoader(context);
|
||||
-
|
||||
+/*
|
||||
ComponentLoader* component_loader = GetComponentLoader(context);
|
||||
const base::CommandLine* command_line =
|
||||
base::CommandLine::ForCurrentProcess();
|
||||
if (command_line->HasSwitch(switches::kAuthExtensionPath)) {
|
||||
- base::FilePath auth_extension_path =
|
||||
- command_line->GetSwitchValuePath(switches::kAuthExtensionPath);
|
||||
- component_loader->Add(IDR_GAIA_AUTH_MANIFEST, auth_extension_path);
|
||||
return;
|
||||
}
|
||||
-
|
||||
- component_loader->Add(IDR_GAIA_AUTH_MANIFEST,
|
||||
- base::FilePath(FILE_PATH_LITERAL("gaia_auth")));
|
||||
@@ -55,6 +55,7 @@ void LoadGaiaAuthExtension(BrowserContext* context) {
|
||||
|
||||
component_loader->Add(IDR_GAIA_AUTH_MANIFEST,
|
||||
base::FilePath(FILE_PATH_LITERAL("gaia_auth")));
|
||||
+*/
|
||||
}
|
||||
|
||||
void UnloadGaiaAuthExtension(BrowserContext* context) {
|
||||
@@ -82,7 +80,7 @@ diff --git a/chrome/browser/resources/component_extension_resources.grd b/chrome
|
||||
diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/ui/webui/signin/inline_login_ui.cc
|
||||
--- a/chrome/browser/ui/webui/signin/inline_login_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/signin/inline_login_ui.cc
|
||||
@@ -44,7 +44,6 @@ content::WebUIDataSource* CreateWebUIDataSource() {
|
||||
@@ -49,7 +49,6 @@ content::WebUIDataSource* CreateWebUIDataSource() {
|
||||
|
||||
source->AddResourcePath("inline_login.css", IDR_INLINE_LOGIN_CSS);
|
||||
source->AddResourcePath("inline_login.js", IDR_INLINE_LOGIN_JS);
|
||||
@@ -93,42 +91,31 @@ diff --git a/chrome/browser/ui/webui/signin/inline_login_ui.cc b/chrome/browser/
|
||||
diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
--- a/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
+++ b/google_apis/gaia/gaia_auth_fetcher.cc
|
||||
@@ -248,35 +248,6 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
int load_flags,
|
||||
@@ -39,7 +39,7 @@ namespace {
|
||||
const int kLoadFlagsIgnoreCookies = net::LOAD_DO_NOT_SEND_COOKIES |
|
||||
net::LOAD_DO_NOT_SAVE_COOKIES;
|
||||
|
||||
-const size_t kMaxMessageSize = 1024 * 1024; // 1MB
|
||||
+//const size_t kMaxMessageSize = 1024 * 1024; // 1MB
|
||||
|
||||
static bool CookiePartsContains(const std::vector<std::string>& parts,
|
||||
const char* part) {
|
||||
@@ -251,6 +251,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
const net::NetworkTrafficAnnotationTag& traffic_annotation) {
|
||||
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
|
||||
- fetcher_ = net::URLFetcher::Create(
|
||||
- 0, gaia_gurl, body.empty() ? net::URLFetcher::GET : net::URLFetcher::POST,
|
||||
- this, traffic_annotation);
|
||||
- fetcher_->SetRequestContext(getter_);
|
||||
- fetcher_->SetUploadData("application/x-www-form-urlencoded", body);
|
||||
- gaia::MarkURLFetcherAsGaia(fetcher_.get());
|
||||
-
|
||||
- VLOG(2) << "Gaia fetcher URL: " << gaia_gurl.spec();
|
||||
- VLOG(2) << "Gaia fetcher headers: " << headers;
|
||||
- VLOG(2) << "Gaia fetcher body: " << body;
|
||||
-
|
||||
- // The Gaia token exchange requests do not require any cookie-based
|
||||
- // identification as part of requests. We suppress sending any cookies to
|
||||
- // maintain a separation between the user's browsing and Chrome's internal
|
||||
- // services. Where such mixing is desired (MergeSession or OAuthLogin), it
|
||||
- // will be done explicitly.
|
||||
- fetcher_->SetLoadFlags(load_flags);
|
||||
-
|
||||
- // Fetchers are sometimes cancelled because a network change was detected,
|
||||
- // especially at startup and after sign-in on ChromeOS. Retrying once should
|
||||
- // be enough in those cases; let the fetcher retry up to 3 times just in case.
|
||||
- // http://crbug.com/163710
|
||||
- fetcher_->SetAutomaticallyRetryOnNetworkChanges(3);
|
||||
-
|
||||
- if (!headers.empty())
|
||||
- fetcher_->SetExtraRequestHeaders(headers);
|
||||
-
|
||||
- fetch_pending_ = true;
|
||||
- fetcher_->Start();
|
||||
|
||||
+/*
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = gaia_gurl;
|
||||
original_url_ = gaia_gurl;
|
||||
@@ -299,6 +300,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete,
|
||||
base::Unretained(this)),
|
||||
kMaxMessageSize);
|
||||
+*/
|
||||
}
|
||||
|
||||
// static
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
|
||||
@@ -1,165 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:45:21 +0100
|
||||
Subject: ungoogled-chromium: Clear HTTP cache menu item
|
||||
|
||||
Adds a menu item under "More tools" to clear the HTTP authentication cache on demand
|
||||
---
|
||||
chrome/app/chrome_command_ids.h | 1 +
|
||||
chrome/app/generated_resources.grd | 6 ++++++
|
||||
chrome/browser/ui/browser_command_controller.cc | 7 +++++++
|
||||
chrome/browser/ui/toolbar/app_menu_model.cc | 8 ++++++++
|
||||
chrome/browser/ui/toolbar/app_menu_model.h | 1 +
|
||||
chrome/browser/ui/views/frame/global_menu_bar_x11.cc | 1 +
|
||||
net/http/http_auth_cache.cc | 1 +
|
||||
tools/metrics/histograms/enums.xml | 1 +
|
||||
tools/metrics/histograms/histograms.xml | 1 +
|
||||
9 files changed, 27 insertions(+)
|
||||
|
||||
diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h
|
||||
--- a/chrome/app/chrome_command_ids.h
|
||||
+++ b/chrome/app/chrome_command_ids.h
|
||||
@@ -152,6 +152,7 @@
|
||||
#define IDC_DEV_TOOLS_INSPECT 40023
|
||||
#define IDC_UPGRADE_DIALOG 40024
|
||||
#define IDC_VIEW_INCOMPATIBILITIES 40025
|
||||
+#define IDC_CLEAR_HTTP_AUTH_CACHE 40026
|
||||
#define IDC_SHOW_KEYBOARD_OVERLAY 40027
|
||||
#define IDC_PROFILING_ENABLED 40028
|
||||
#define IDC_BOOKMARKS_MENU 40029
|
||||
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
|
||||
--- a/chrome/app/generated_resources.grd
|
||||
+++ b/chrome/app/generated_resources.grd
|
||||
@@ -1058,6 +1058,9 @@ are declared in build/common.gypi.
|
||||
<message name="IDS_CLEAR_BROWSING_DATA" desc="The text label for the menu item for clearing of browsing data">
|
||||
&Clear browsing data...
|
||||
</message>
|
||||
+ <message name="IDS_CLEAR_HTTP_AUTH_CACHE" desc="The text label for the menu item for clearing the HTTP authentication cache">
|
||||
+ Clear &HTTP auth cache
|
||||
+ </message>
|
||||
<message name="IDS_SHOW_DOWNLOADS" desc="The show downloads menu in the app menu">
|
||||
&Downloads
|
||||
</message>
|
||||
@@ -1096,6 +1099,9 @@ are declared in build/common.gypi.
|
||||
<message name="IDS_CLEAR_BROWSING_DATA" desc="In Title Case: The text label for the menu item for clearing of browsing data">
|
||||
&Clear Browsing Data...
|
||||
</message>
|
||||
+ <message name="IDS_CLEAR_HTTP_AUTH_CACHE" desc="In Title Case: The text label for the menu item for clearing the HTTP authentication cache">
|
||||
+ Clear &HTTP Auth Cache
|
||||
+ </message>
|
||||
<message name="IDS_SHOW_DOWNLOADS" desc="In Title Case: The show downloads menu in the app menu">
|
||||
&Downloads
|
||||
</message>
|
||||
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc
|
||||
--- a/chrome/browser/ui/browser_command_controller.cc
|
||||
+++ b/chrome/browser/ui/browser_command_controller.cc
|
||||
@@ -61,6 +61,9 @@
|
||||
#include "extensions/browser/extension_system.h"
|
||||
#include "printing/buildflags/buildflags.h"
|
||||
#include "ui/events/keycodes/keyboard_codes.h"
|
||||
+#include "net/url_request/url_request_context.h"
|
||||
+#include "net/url_request/url_request_context_getter.h"
|
||||
+#include "net/http/http_transaction_factory.h"
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
#include "chrome/browser/ui/browser_commands_mac.h"
|
||||
@@ -630,6 +633,9 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
|
||||
case IDC_CLEAR_BROWSING_DATA:
|
||||
ShowClearBrowsingDataDialog(browser_);
|
||||
break;
|
||||
+ case IDC_CLEAR_HTTP_AUTH_CACHE:
|
||||
+ profile()->GetRequestContext()->GetURLRequestContext()->http_transaction_factory()->GetSession()->http_auth_cache()->ClearAllEntries();
|
||||
+ break;
|
||||
case IDC_IMPORT_SETTINGS:
|
||||
ShowImportDialog(browser_);
|
||||
break;
|
||||
@@ -874,6 +880,7 @@ void BrowserCommandController::InitCommandState() {
|
||||
!profile()->IsOffTheRecord());
|
||||
command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA,
|
||||
!guest_session);
|
||||
+ command_updater_.UpdateCommandEnabled(IDC_CLEAR_HTTP_AUTH_CACHE, true);
|
||||
#if defined(OS_CHROMEOS)
|
||||
command_updater_.UpdateCommandEnabled(IDC_TAKE_SCREENSHOT, true);
|
||||
#else
|
||||
diff --git a/chrome/browser/ui/toolbar/app_menu_model.cc b/chrome/browser/ui/toolbar/app_menu_model.cc
|
||||
--- a/chrome/browser/ui/toolbar/app_menu_model.cc
|
||||
+++ b/chrome/browser/ui/toolbar/app_menu_model.cc
|
||||
@@ -215,6 +215,7 @@ void ToolsMenuModel::Build(Browser* browser) {
|
||||
|
||||
AddSeparator(ui::NORMAL_SEPARATOR);
|
||||
AddItemWithStringId(IDC_CLEAR_BROWSING_DATA, IDS_CLEAR_BROWSING_DATA);
|
||||
+ AddItemWithStringId(IDC_CLEAR_HTTP_AUTH_CACHE, IDS_CLEAR_HTTP_AUTH_CACHE);
|
||||
AddItemWithStringId(IDC_MANAGE_EXTENSIONS, IDS_SHOW_EXTENSIONS);
|
||||
if (chrome::CanOpenTaskManager())
|
||||
AddItemWithStringId(IDC_TASK_MANAGER, IDS_TASK_MANAGER);
|
||||
@@ -475,6 +476,13 @@ void AppMenuModel::LogMenuMetrics(int command_id) {
|
||||
}
|
||||
LogMenuAction(MENU_ACTION_CLEAR_BROWSING_DATA);
|
||||
break;
|
||||
+ case IDC_CLEAR_HTTP_AUTH_CACHE:
|
||||
+ if (!uma_action_recorded_) {
|
||||
+ UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ClearHttpAuthCache",
|
||||
+ delta);
|
||||
+ }
|
||||
+ LogMenuAction(MENU_ACTION_CLEAR_HTTP_AUTH_CACHE);
|
||||
+ break;
|
||||
case IDC_VIEW_SOURCE:
|
||||
if (!uma_action_recorded_)
|
||||
UMA_HISTOGRAM_MEDIUM_TIMES("WrenchMenu.TimeToAction.ViewSource", delta);
|
||||
diff --git a/chrome/browser/ui/toolbar/app_menu_model.h b/chrome/browser/ui/toolbar/app_menu_model.h
|
||||
--- a/chrome/browser/ui/toolbar/app_menu_model.h
|
||||
+++ b/chrome/browser/ui/toolbar/app_menu_model.h
|
||||
@@ -76,6 +76,7 @@ enum AppMenuAction {
|
||||
MENU_ACTION_OPEN_IN_CHROME = 48,
|
||||
MENU_ACTION_SITE_SETTINGS = 49,
|
||||
MENU_ACTION_APP_INFO = 50,
|
||||
+ MENU_ACTION_CLEAR_HTTP_AUTH_CACHE = 51,
|
||||
LIMIT_MENU_ACTION
|
||||
};
|
||||
|
||||
diff --git a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
|
||||
--- a/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
|
||||
+++ b/chrome/browser/ui/views/frame/global_menu_bar_x11.cc
|
||||
@@ -225,6 +225,7 @@ GlobalMenuBarCommand tools_menu[] = {
|
||||
|
||||
{IDS_TASK_MANAGER, IDC_TASK_MANAGER},
|
||||
{IDS_CLEAR_BROWSING_DATA, IDC_CLEAR_BROWSING_DATA},
|
||||
+ {IDS_CLEAR_HTTP_AUTH_CACHE, IDC_CLEAR_HTTP_AUTH_CACHE},
|
||||
|
||||
{MENU_SEPARATOR, MENU_SEPARATOR},
|
||||
|
||||
diff --git a/net/http/http_auth_cache.cc b/net/http/http_auth_cache.cc
|
||||
--- a/net/http/http_auth_cache.cc
|
||||
+++ b/net/http/http_auth_cache.cc
|
||||
@@ -250,6 +250,7 @@ bool HttpAuthCache::Remove(const GURL& origin,
|
||||
return false;
|
||||
}
|
||||
}
|
||||
+
|
||||
return false;
|
||||
}
|
||||
|
||||
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
|
||||
--- a/tools/metrics/histograms/enums.xml
|
||||
+++ b/tools/metrics/histograms/enums.xml
|
||||
@@ -49525,6 +49525,7 @@ Full version information for the fingerprint enum values:
|
||||
<int value="48" label="Open in Chrome"/>
|
||||
<int value="49" label="Site Settings"/>
|
||||
<int value="50" label="App Info"/>
|
||||
+ <int value="51" label="Clear HTTP auth cache"/>
|
||||
</enum>
|
||||
|
||||
<enum name="XFrameOptions">
|
||||
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
|
||||
--- a/tools/metrics/histograms/histograms.xml
|
||||
+++ b/tools/metrics/histograms/histograms.xml
|
||||
@@ -111339,6 +111339,7 @@ uploading your change for review.
|
||||
<suffix name="Overestimate"
|
||||
label="Tracks when the compositor's estimates were too high and by how
|
||||
much."/>
|
||||
+ <suffix name="ClearHttpAuthCache" label="Clear HTTP authentication cache"/>
|
||||
<suffix name="Underestimate"
|
||||
label="Tracks when the compositor's estimates were too low and by how
|
||||
much."/>
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,676 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 25 Aug 2018 22:58:52 +0200
|
||||
Subject: ungoogled-chromium: Disable domain reliability
|
||||
|
||||
---
|
||||
components/domain_reliability/BUILD.gn | 42 +-
|
||||
components/domain_reliability/bake_in_configs.py | 2 +-
|
||||
components/domain_reliability/google_configs.cc | 565 -----------------------
|
||||
components/domain_reliability/uploader.cc | 2 +-
|
||||
4 files changed, 17 insertions(+), 594 deletions(-)
|
||||
|
||||
diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn
|
||||
--- a/components/domain_reliability/BUILD.gn
|
||||
+++ b/components/domain_reliability/BUILD.gn
|
||||
@@ -7,26 +7,6 @@ action("bake_in_configs") {
|
||||
script = "bake_in_configs.py"
|
||||
|
||||
inputs = [
|
||||
- "baked_in_configs/c_android_clients_google_com.json",
|
||||
- "baked_in_configs/c_bigcache_googleapis_com.json",
|
||||
- "baked_in_configs/c_doc-0-0-sj_sj_googleusercontent_com.json",
|
||||
- "baked_in_configs/c_docs_google_com.json",
|
||||
- "baked_in_configs/c_drive_google_com.json",
|
||||
- "baked_in_configs/c_googlesyndication_com.json",
|
||||
- "baked_in_configs/c_pack_google_com.json",
|
||||
- "baked_in_configs/c_play_google_com.json",
|
||||
- "baked_in_configs/c_youtube_com.json",
|
||||
- "baked_in_configs/clients2_google_com.json",
|
||||
- "baked_in_configs/docs_google_com.json",
|
||||
- "baked_in_configs/gcp_gvt2_com.json",
|
||||
- "baked_in_configs/gcp_gvt6_com.json",
|
||||
- "baked_in_configs/google-analytics_com.json",
|
||||
- "baked_in_configs/googlevideo_com.json",
|
||||
- "baked_in_configs/gvt1_com.json",
|
||||
- "baked_in_configs/gvt2_com.json",
|
||||
- "baked_in_configs/gvt6_com.json",
|
||||
- "baked_in_configs/ssl_gstatic_com.json",
|
||||
- "baked_in_configs/www_google_com.json",
|
||||
]
|
||||
|
||||
output_file = "$target_gen_dir/baked_in_configs.cc"
|
||||
@@ -36,13 +16,21 @@ action("bake_in_configs") {
|
||||
|
||||
# The JSON file list is too long for the command line on Windows, so put
|
||||
# them in a response file.
|
||||
- response_file_contents = rebase_path(inputs, root_build_dir)
|
||||
- args = [
|
||||
- "--file-list",
|
||||
- "{{response_file_name}}",
|
||||
- "--output",
|
||||
- rebase_path(output_file, root_build_dir),
|
||||
- ]
|
||||
+ if (is_win) {
|
||||
+ args = [
|
||||
+ "--file-list",
|
||||
+ "nul",
|
||||
+ "--output",
|
||||
+ rebase_path(output_file, root_build_dir),
|
||||
+ ]
|
||||
+ } else {
|
||||
+ args = [
|
||||
+ "--file-list",
|
||||
+ "/dev/null",
|
||||
+ "--output",
|
||||
+ rebase_path(output_file, root_build_dir),
|
||||
+ ]
|
||||
+ }
|
||||
}
|
||||
|
||||
component("domain_reliability") {
|
||||
diff --git a/components/domain_reliability/bake_in_configs.py b/components/domain_reliability/bake_in_configs.py
|
||||
--- a/components/domain_reliability/bake_in_configs.py
|
||||
+++ b/components/domain_reliability/bake_in_configs.py
|
||||
@@ -489,7 +489,7 @@ def origin_is_whitelisted(origin):
|
||||
domain = origin[8:-1]
|
||||
else:
|
||||
return False
|
||||
- return any(domain == e or domain.endswith('.' + e) for e in DOMAIN_WHITELIST)
|
||||
+ return False
|
||||
|
||||
|
||||
def quote_and_wrap_text(text, width=79, prefix=' "', suffix='"'):
|
||||
diff --git a/components/domain_reliability/google_configs.cc b/components/domain_reliability/google_configs.cc
|
||||
--- a/components/domain_reliability/google_configs.cc
|
||||
+++ b/components/domain_reliability/google_configs.cc
|
||||
@@ -13,575 +13,10 @@
|
||||
|
||||
namespace domain_reliability {
|
||||
|
||||
-namespace {
|
||||
-
|
||||
-struct GoogleConfigParams {
|
||||
- const char* hostname;
|
||||
- bool include_subdomains;
|
||||
-
|
||||
- // If true, prepend a collector URL within https://|hostname|/.
|
||||
- bool include_origin_specific_collector;
|
||||
-
|
||||
- // If true, also add a config for www.|hostname|.
|
||||
- //
|
||||
- // |include_subdomains| will be false in the extra config, but
|
||||
- // |include_origin_specific_collector| will be respected, and will use the
|
||||
- // www subdomain as the origin for the collector so it matches the config.
|
||||
- bool duplicate_for_www;
|
||||
-};
|
||||
-
|
||||
-const GoogleConfigParams kGoogleConfigs[] = {
|
||||
- // Origins with subdomains and same-origin collectors. Currently, all
|
||||
- // origins with same-origin collectors also run collectors on their www
|
||||
- // subdomain. (e.g., both foo.com and www.foo.com.)
|
||||
- {"google.ac", true, true, true},
|
||||
- {"google.ad", true, true, true},
|
||||
- {"google.ae", true, true, true},
|
||||
- {"google.af", true, true, true},
|
||||
- {"google.ag", true, true, true},
|
||||
- {"google.al", true, true, true},
|
||||
- {"google.am", true, true, true},
|
||||
- {"google.as", true, true, true},
|
||||
- {"google.at", true, true, true},
|
||||
- {"google.az", true, true, true},
|
||||
- {"google.ba", true, true, true},
|
||||
- {"google.be", true, true, true},
|
||||
- {"google.bf", true, true, true},
|
||||
- {"google.bg", true, true, true},
|
||||
- {"google.bi", true, true, true},
|
||||
- {"google.bj", true, true, true},
|
||||
- {"google.bs", true, true, true},
|
||||
- {"google.bt", true, true, true},
|
||||
- {"google.by", true, true, true},
|
||||
- {"google.ca", true, true, true},
|
||||
- {"google.cc", true, true, true},
|
||||
- {"google.cd", true, true, true},
|
||||
- {"google.cf", true, true, true},
|
||||
- {"google.cg", true, true, true},
|
||||
- {"google.ch", true, true, true},
|
||||
- {"google.ci", true, true, true},
|
||||
- {"google.cl", true, true, true},
|
||||
- {"google.cm", true, true, true},
|
||||
- {"google.cn", true, true, true},
|
||||
- {"google.co.ao", true, true, true},
|
||||
- {"google.co.bw", true, true, true},
|
||||
- {"google.co.ck", true, true, true},
|
||||
- {"google.co.cr", true, true, true},
|
||||
- {"google.co.hu", true, true, true},
|
||||
- {"google.co.id", true, true, true},
|
||||
- {"google.co.il", true, true, true},
|
||||
- {"google.co.im", true, true, true},
|
||||
- {"google.co.in", true, true, true},
|
||||
- {"google.co.je", true, true, true},
|
||||
- {"google.co.jp", true, true, true},
|
||||
- {"google.co.ke", true, true, true},
|
||||
- {"google.co.kr", true, true, true},
|
||||
- {"google.co.ls", true, true, true},
|
||||
- {"google.co.ma", true, true, true},
|
||||
- {"google.co.mz", true, true, true},
|
||||
- {"google.co.nz", true, true, true},
|
||||
- {"google.co.th", true, true, true},
|
||||
- {"google.co.tz", true, true, true},
|
||||
- {"google.co.ug", true, true, true},
|
||||
- {"google.co.uk", true, true, true},
|
||||
- {"google.co.uz", true, true, true},
|
||||
- {"google.co.ve", true, true, true},
|
||||
- {"google.co.vi", true, true, true},
|
||||
- {"google.co.za", true, true, true},
|
||||
- {"google.co.zm", true, true, true},
|
||||
- {"google.co.zw", true, true, true},
|
||||
- {"google.com.af", true, true, true},
|
||||
- {"google.com.ag", true, true, true},
|
||||
- {"google.com.ai", true, true, true},
|
||||
- {"google.com.ar", true, true, true},
|
||||
- {"google.com.au", true, true, true},
|
||||
- {"google.com.bd", true, true, true},
|
||||
- {"google.com.bh", true, true, true},
|
||||
- {"google.com.bn", true, true, true},
|
||||
- {"google.com.bo", true, true, true},
|
||||
- {"google.com.br", true, true, true},
|
||||
- {"google.com.by", true, true, true},
|
||||
- {"google.com.bz", true, true, true},
|
||||
- {"google.com.cn", true, true, true},
|
||||
- {"google.com.co", true, true, true},
|
||||
- {"google.com.cu", true, true, true},
|
||||
- {"google.com.cy", true, true, true},
|
||||
- {"google.com.do", true, true, true},
|
||||
- {"google.com.ec", true, true, true},
|
||||
- {"google.com.eg", true, true, true},
|
||||
- {"google.com.et", true, true, true},
|
||||
- {"google.com.fj", true, true, true},
|
||||
- {"google.com.ge", true, true, true},
|
||||
- {"google.com.gh", true, true, true},
|
||||
- {"google.com.gi", true, true, true},
|
||||
- {"google.com.gr", true, true, true},
|
||||
- {"google.com.gt", true, true, true},
|
||||
- {"google.com.hk", true, true, true},
|
||||
- {"google.com.iq", true, true, true},
|
||||
- {"google.com.jm", true, true, true},
|
||||
- {"google.com.jo", true, true, true},
|
||||
- {"google.com.kh", true, true, true},
|
||||
- {"google.com.kw", true, true, true},
|
||||
- {"google.com.lb", true, true, true},
|
||||
- {"google.com.ly", true, true, true},
|
||||
- {"google.com.mm", true, true, true},
|
||||
- {"google.com.mt", true, true, true},
|
||||
- {"google.com.mx", true, true, true},
|
||||
- {"google.com.my", true, true, true},
|
||||
- {"google.com.na", true, true, true},
|
||||
- {"google.com.nf", true, true, true},
|
||||
- {"google.com.ng", true, true, true},
|
||||
- {"google.com.ni", true, true, true},
|
||||
- {"google.com.np", true, true, true},
|
||||
- {"google.com.nr", true, true, true},
|
||||
- {"google.com.om", true, true, true},
|
||||
- {"google.com.pa", true, true, true},
|
||||
- {"google.com.pe", true, true, true},
|
||||
- {"google.com.pg", true, true, true},
|
||||
- {"google.com.ph", true, true, true},
|
||||
- {"google.com.pk", true, true, true},
|
||||
- {"google.com.pl", true, true, true},
|
||||
- {"google.com.pr", true, true, true},
|
||||
- {"google.com.py", true, true, true},
|
||||
- {"google.com.qa", true, true, true},
|
||||
- {"google.com.ru", true, true, true},
|
||||
- {"google.com.sa", true, true, true},
|
||||
- {"google.com.sb", true, true, true},
|
||||
- {"google.com.sg", true, true, true},
|
||||
- {"google.com.sl", true, true, true},
|
||||
- {"google.com.sv", true, true, true},
|
||||
- {"google.com.tj", true, true, true},
|
||||
- {"google.com.tn", true, true, true},
|
||||
- {"google.com.tr", true, true, true},
|
||||
- {"google.com.tw", true, true, true},
|
||||
- {"google.com.ua", true, true, true},
|
||||
- {"google.com.uy", true, true, true},
|
||||
- {"google.com.vc", true, true, true},
|
||||
- {"google.com.ve", true, true, true},
|
||||
- {"google.com.vn", true, true, true},
|
||||
- {"google.cv", true, true, true},
|
||||
- {"google.cz", true, true, true},
|
||||
- {"google.de", true, true, true},
|
||||
- {"google.dj", true, true, true},
|
||||
- {"google.dk", true, true, true},
|
||||
- {"google.dm", true, true, true},
|
||||
- {"google.dz", true, true, true},
|
||||
- {"google.ee", true, true, true},
|
||||
- {"google.es", true, true, true},
|
||||
- {"google.fi", true, true, true},
|
||||
- {"google.fm", true, true, true},
|
||||
- {"google.fr", true, true, true},
|
||||
- {"google.ga", true, true, true},
|
||||
- {"google.ge", true, true, true},
|
||||
- {"google.gg", true, true, true},
|
||||
- {"google.gl", true, true, true},
|
||||
- {"google.gm", true, true, true},
|
||||
- {"google.gp", true, true, true},
|
||||
- {"google.gr", true, true, true},
|
||||
- {"google.gy", true, true, true},
|
||||
- {"google.hk", true, true, true},
|
||||
- {"google.hn", true, true, true},
|
||||
- {"google.hr", true, true, true},
|
||||
- {"google.ht", true, true, true},
|
||||
- {"google.hu", true, true, true},
|
||||
- {"google.ie", true, true, true},
|
||||
- {"google.im", true, true, true},
|
||||
- {"google.iq", true, true, true},
|
||||
- {"google.ir", true, true, true},
|
||||
- {"google.is", true, true, true},
|
||||
- {"google.it", true, true, true},
|
||||
- {"google.it.ao", true, true, true},
|
||||
- {"google.je", true, true, true},
|
||||
- {"google.jo", true, true, true},
|
||||
- {"google.jp", true, true, true},
|
||||
- {"google.kg", true, true, true},
|
||||
- {"google.ki", true, true, true},
|
||||
- {"google.kz", true, true, true},
|
||||
- {"google.la", true, true, true},
|
||||
- {"google.li", true, true, true},
|
||||
- {"google.lk", true, true, true},
|
||||
- {"google.lt", true, true, true},
|
||||
- {"google.lu", true, true, true},
|
||||
- {"google.lv", true, true, true},
|
||||
- {"google.md", true, true, true},
|
||||
- {"google.me", true, true, true},
|
||||
- {"google.mg", true, true, true},
|
||||
- {"google.mk", true, true, true},
|
||||
- {"google.ml", true, true, true},
|
||||
- {"google.mn", true, true, true},
|
||||
- {"google.ms", true, true, true},
|
||||
- {"google.mu", true, true, true},
|
||||
- {"google.mv", true, true, true},
|
||||
- {"google.mw", true, true, true},
|
||||
- {"google.ne", true, true, true},
|
||||
- {"google.ne.jp", true, true, true},
|
||||
- {"google.ng", true, true, true},
|
||||
- {"google.nl", true, true, true},
|
||||
- {"google.no", true, true, true},
|
||||
- {"google.nr", true, true, true},
|
||||
- {"google.nu", true, true, true},
|
||||
- {"google.off.ai", true, true, true},
|
||||
- {"google.pk", true, true, true},
|
||||
- {"google.pl", true, true, true},
|
||||
- {"google.pn", true, true, true},
|
||||
- {"google.ps", true, true, true},
|
||||
- {"google.pt", true, true, true},
|
||||
- {"google.ro", true, true, true},
|
||||
- {"google.rs", true, true, true},
|
||||
- {"google.ru", true, true, true},
|
||||
- {"google.rw", true, true, true},
|
||||
- {"google.sc", true, true, true},
|
||||
- {"google.se", true, true, true},
|
||||
- {"google.sh", true, true, true},
|
||||
- {"google.si", true, true, true},
|
||||
- {"google.sk", true, true, true},
|
||||
- {"google.sm", true, true, true},
|
||||
- {"google.sn", true, true, true},
|
||||
- {"google.so", true, true, true},
|
||||
- {"google.sr", true, true, true},
|
||||
- {"google.st", true, true, true},
|
||||
- {"google.td", true, true, true},
|
||||
- {"google.tg", true, true, true},
|
||||
- {"google.tk", true, true, true},
|
||||
- {"google.tl", true, true, true},
|
||||
- {"google.tm", true, true, true},
|
||||
- {"google.tn", true, true, true},
|
||||
- {"google.to", true, true, true},
|
||||
- {"google.tt", true, true, true},
|
||||
- {"google.us", true, true, true},
|
||||
- {"google.uz", true, true, true},
|
||||
- {"google.vg", true, true, true},
|
||||
- {"google.vu", true, true, true},
|
||||
- {"google.ws", true, true, true},
|
||||
- {"l.google.com", true, true, true},
|
||||
-
|
||||
- // google.com is a special case. We have a custom config for www.google.com,
|
||||
- // so set generate_config_for_www_subdomain = false.
|
||||
- {"google.com", true, true, false},
|
||||
-
|
||||
- // Origins with subdomains and without same-origin collectors.
|
||||
- {"2mdn.net", true, false, false},
|
||||
- {"adgoogle.net", true, false, false},
|
||||
- {"admeld.com", true, false, false},
|
||||
- {"admob.biz", true, false, false},
|
||||
- {"admob.co.in", true, false, false},
|
||||
- {"admob.co.kr", true, false, false},
|
||||
- {"admob.co.nz", true, false, false},
|
||||
- {"admob.co.uk", true, false, false},
|
||||
- {"admob.co.za", true, false, false},
|
||||
- {"admob.com", true, false, false},
|
||||
- {"admob.com.br", true, false, false},
|
||||
- {"admob.com.es", true, false, false},
|
||||
- {"admob.com.fr", true, false, false},
|
||||
- {"admob.com.mx", true, false, false},
|
||||
- {"admob.com.pt", true, false, false},
|
||||
- {"admob.de", true, false, false},
|
||||
- {"admob.dk", true, false, false},
|
||||
- {"admob.es", true, false, false},
|
||||
- {"admob.fi", true, false, false},
|
||||
- {"admob.fr", true, false, false},
|
||||
- {"admob.gr", true, false, false},
|
||||
- {"admob.hk", true, false, false},
|
||||
- {"admob.ie", true, false, false},
|
||||
- {"admob.in", true, false, false},
|
||||
- {"admob.it", true, false, false},
|
||||
- {"admob.jp", true, false, false},
|
||||
- {"admob.kr", true, false, false},
|
||||
- {"admob.mobi", true, false, false},
|
||||
- {"admob.no", true, false, false},
|
||||
- {"admob.ph", true, false, false},
|
||||
- {"admob.pt", true, false, false},
|
||||
- {"admob.sg", true, false, false},
|
||||
- {"admob.tw", true, false, false},
|
||||
- {"admob.us", true, false, false},
|
||||
- {"admob.vn", true, false, false},
|
||||
- {"adwhirl.com", true, false, false},
|
||||
- {"ampproject.com", true, false, false},
|
||||
- {"ampproject.net", true, false, false},
|
||||
- {"ampproject.org", true, false, false},
|
||||
- {"android.com", true, false, false},
|
||||
- {"anycast-edge.metric.gstatic.com", true, false, false},
|
||||
- {"anycast-stb.metric.gstatic.com", true, false, false},
|
||||
- {"anycast.metric.gstatic.com", true, false, false},
|
||||
- {"cdn.ampproject.org", true, false, false},
|
||||
- {"chromecast.com", true, false, false},
|
||||
- {"chromeexperiments.com", true, false, false},
|
||||
- {"chromestatus.com", true, false, false},
|
||||
- {"chromium.org", true, false, false},
|
||||
- {"clients6.google.com", true, false, false},
|
||||
- {"cloudendpointsapis.com", true, false, false},
|
||||
- {"dartmotif.com", true, false, false},
|
||||
- {"dartsearch.net", true, false, false},
|
||||
- {"doubleclick.com", true, false, false},
|
||||
- {"doubleclick.ne.jp", true, false, false},
|
||||
- {"doubleclick.net", true, false, false},
|
||||
- {"doubleclickusercontent.com", true, false, false},
|
||||
- {"fls.doubleclick.net", true, false, false},
|
||||
- {"g.co", true, false, false},
|
||||
- {"g.doubleclick.net", true, false, false},
|
||||
- {"ggpht.com", true, false, false},
|
||||
- {"gmodules.com", true, false, false},
|
||||
- {"goo.gl", true, false, false},
|
||||
- {"google-syndication.com", true, false, false},
|
||||
- {"google.cat", true, false, false},
|
||||
- {"google.info", true, false, false},
|
||||
- {"google.jobs", true, false, false},
|
||||
- {"google.net", true, false, false},
|
||||
- {"google.org", true, false, false},
|
||||
- {"google.stackdriver.com", true, false, false},
|
||||
- {"googleadapis.com", true, false, false},
|
||||
- {"googleadservices.com", true, false, false},
|
||||
- {"googleadsserving.cn", true, false, false},
|
||||
- {"googlealumni.com", true, false, false},
|
||||
- {"googleapis.cn", true, false, false},
|
||||
- {"googleapis.com", true, false, false},
|
||||
- {"googleapps.com", true, false, false},
|
||||
- {"googlecbs.com", true, false, false},
|
||||
- {"googlecode.com", true, false, false},
|
||||
- {"googlecommerce.com", true, false, false},
|
||||
- {"googledrive.com", true, false, false},
|
||||
- {"googleenterprise.com", true, false, false},
|
||||
- {"googlefiber.com", true, false, false},
|
||||
- {"googlefiber.net", true, false, false},
|
||||
- {"googlegoro.com", true, false, false},
|
||||
- {"googlehosted.com", true, false, false},
|
||||
- {"googlepayments.com", true, false, false},
|
||||
- {"googlesource.com", true, false, false},
|
||||
- {"googlesyndication.com", true, false, false},
|
||||
- {"googletagmanager.com", true, false, false},
|
||||
- {"googletagservices.com", true, false, false},
|
||||
- {"googleusercontent.com", true, false, false},
|
||||
- {"googlezip.net", true, false, false},
|
||||
- {"gstatic.cn", true, false, false},
|
||||
- {"gstatic.com", true, false, false},
|
||||
- {"gvt3.com", true, false, false},
|
||||
- {"gvt9.com", true, false, false},
|
||||
- {"picasa.com", true, false, false},
|
||||
- {"recaptcha.net", true, false, false},
|
||||
- {"stackdriver.com", true, false, false},
|
||||
- {"stbcast-stb.metric.gstatic.com", true, false, false},
|
||||
- {"stbcast.metric.gstatic.com", true, false, false},
|
||||
- {"stbcast2-stb.metric.gstatic.com", true, false, false},
|
||||
- {"stbcast2.metric.gstatic.com", true, false, false},
|
||||
- {"stbcast3-stb.metric.gstatic.com", true, false, false},
|
||||
- {"stbcast3.metric.gstatic.com", true, false, false},
|
||||
- {"stbcast4-stb.metric.gstatic.com", true, false, false},
|
||||
- {"stbcast4.metric.gstatic.com", true, false, false},
|
||||
- {"unicast-edge.metric.gstatic.com", true, false, false},
|
||||
- {"unicast-stb.metric.gstatic.com", true, false, false},
|
||||
- {"unicast.metric.gstatic.com", true, false, false},
|
||||
- {"unicast2-stb.metric.gstatic.com", true, false, false},
|
||||
- {"unicast2.metric.gstatic.com", true, false, false},
|
||||
- {"waze.com", true, false, false},
|
||||
- {"withgoogle.com", true, false, false},
|
||||
- {"youtu.be", true, false, false},
|
||||
- {"youtube-3rd-party.com", true, false, false},
|
||||
- {"youtube-nocookie.com", true, false, false},
|
||||
- {"youtube.ae", true, false, false},
|
||||
- {"youtube.al", true, false, false},
|
||||
- {"youtube.am", true, false, false},
|
||||
- {"youtube.at", true, false, false},
|
||||
- {"youtube.az", true, false, false},
|
||||
- {"youtube.ba", true, false, false},
|
||||
- {"youtube.be", true, false, false},
|
||||
- {"youtube.bg", true, false, false},
|
||||
- {"youtube.bh", true, false, false},
|
||||
- {"youtube.bo", true, false, false},
|
||||
- {"youtube.ca", true, false, false},
|
||||
- {"youtube.cat", true, false, false},
|
||||
- {"youtube.ch", true, false, false},
|
||||
- {"youtube.cl", true, false, false},
|
||||
- {"youtube.co", true, false, false},
|
||||
- {"youtube.co.ae", true, false, false},
|
||||
- {"youtube.co.at", true, false, false},
|
||||
- {"youtube.co.hu", true, false, false},
|
||||
- {"youtube.co.id", true, false, false},
|
||||
- {"youtube.co.il", true, false, false},
|
||||
- {"youtube.co.in", true, false, false},
|
||||
- {"youtube.co.jp", true, false, false},
|
||||
- {"youtube.co.ke", true, false, false},
|
||||
- {"youtube.co.kr", true, false, false},
|
||||
- {"youtube.co.ma", true, false, false},
|
||||
- {"youtube.co.nz", true, false, false},
|
||||
- {"youtube.co.th", true, false, false},
|
||||
- {"youtube.co.ug", true, false, false},
|
||||
- {"youtube.co.uk", true, false, false},
|
||||
- {"youtube.co.ve", true, false, false},
|
||||
- {"youtube.co.za", true, false, false},
|
||||
- {"youtube.com", true, false, false},
|
||||
- {"youtube.com.ar", true, false, false},
|
||||
- {"youtube.com.au", true, false, false},
|
||||
- {"youtube.com.az", true, false, false},
|
||||
- {"youtube.com.bh", true, false, false},
|
||||
- {"youtube.com.bo", true, false, false},
|
||||
- {"youtube.com.br", true, false, false},
|
||||
- {"youtube.com.by", true, false, false},
|
||||
- {"youtube.com.co", true, false, false},
|
||||
- {"youtube.com.do", true, false, false},
|
||||
- {"youtube.com.ee", true, false, false},
|
||||
- {"youtube.com.eg", true, false, false},
|
||||
- {"youtube.com.es", true, false, false},
|
||||
- {"youtube.com.gh", true, false, false},
|
||||
- {"youtube.com.gr", true, false, false},
|
||||
- {"youtube.com.gt", true, false, false},
|
||||
- {"youtube.com.hk", true, false, false},
|
||||
- {"youtube.com.hr", true, false, false},
|
||||
- {"youtube.com.jm", true, false, false},
|
||||
- {"youtube.com.jo", true, false, false},
|
||||
- {"youtube.com.kw", true, false, false},
|
||||
- {"youtube.com.lb", true, false, false},
|
||||
- {"youtube.com.lv", true, false, false},
|
||||
- {"youtube.com.mk", true, false, false},
|
||||
- {"youtube.com.mt", true, false, false},
|
||||
- {"youtube.com.mx", true, false, false},
|
||||
- {"youtube.com.my", true, false, false},
|
||||
- {"youtube.com.ng", true, false, false},
|
||||
- {"youtube.com.om", true, false, false},
|
||||
- {"youtube.com.pe", true, false, false},
|
||||
- {"youtube.com.ph", true, false, false},
|
||||
- {"youtube.com.pk", true, false, false},
|
||||
- {"youtube.com.pt", true, false, false},
|
||||
- {"youtube.com.qa", true, false, false},
|
||||
- {"youtube.com.ro", true, false, false},
|
||||
- {"youtube.com.sa", true, false, false},
|
||||
- {"youtube.com.sg", true, false, false},
|
||||
- {"youtube.com.tn", true, false, false},
|
||||
- {"youtube.com.tr", true, false, false},
|
||||
- {"youtube.com.tw", true, false, false},
|
||||
- {"youtube.com.ua", true, false, false},
|
||||
- {"youtube.com.uy", true, false, false},
|
||||
- {"youtube.com.ve", true, false, false},
|
||||
- {"youtube.cz", true, false, false},
|
||||
- {"youtube.de", true, false, false},
|
||||
- {"youtube.dk", true, false, false},
|
||||
- {"youtube.ee", true, false, false},
|
||||
- {"youtube.es", true, false, false},
|
||||
- {"youtube.fi", true, false, false},
|
||||
- {"youtube.fr", true, false, false},
|
||||
- {"youtube.ge", true, false, false},
|
||||
- {"youtube.gr", true, false, false},
|
||||
- {"youtube.gt", true, false, false},
|
||||
- {"youtube.hk", true, false, false},
|
||||
- {"youtube.hr", true, false, false},
|
||||
- {"youtube.hu", true, false, false},
|
||||
- {"youtube.ie", true, false, false},
|
||||
- {"youtube.in", true, false, false},
|
||||
- {"youtube.is", true, false, false},
|
||||
- {"youtube.it", true, false, false},
|
||||
- {"youtube.jo", true, false, false},
|
||||
- {"youtube.jp", true, false, false},
|
||||
- {"youtube.kr", true, false, false},
|
||||
- {"youtube.lk", true, false, false},
|
||||
- {"youtube.lt", true, false, false},
|
||||
- {"youtube.lv", true, false, false},
|
||||
- {"youtube.ma", true, false, false},
|
||||
- {"youtube.md", true, false, false},
|
||||
- {"youtube.me", true, false, false},
|
||||
- {"youtube.mk", true, false, false},
|
||||
- {"youtube.mx", true, false, false},
|
||||
- {"youtube.my", true, false, false},
|
||||
- {"youtube.ng", true, false, false},
|
||||
- {"youtube.nl", true, false, false},
|
||||
- {"youtube.no", true, false, false},
|
||||
- {"youtube.pe", true, false, false},
|
||||
- {"youtube.ph", true, false, false},
|
||||
- {"youtube.pk", true, false, false},
|
||||
- {"youtube.pl", true, false, false},
|
||||
- {"youtube.pr", true, false, false},
|
||||
- {"youtube.pt", true, false, false},
|
||||
- {"youtube.qa", true, false, false},
|
||||
- {"youtube.ro", true, false, false},
|
||||
- {"youtube.rs", true, false, false},
|
||||
- {"youtube.ru", true, false, false},
|
||||
- {"youtube.sa", true, false, false},
|
||||
- {"youtube.se", true, false, false},
|
||||
- {"youtube.sg", true, false, false},
|
||||
- {"youtube.si", true, false, false},
|
||||
- {"youtube.sk", true, false, false},
|
||||
- {"youtube.sn", true, false, false},
|
||||
- {"youtube.tn", true, false, false},
|
||||
- {"youtube.ua", true, false, false},
|
||||
- {"youtube.ug", true, false, false},
|
||||
- {"youtube.uy", true, false, false},
|
||||
- {"youtube.vn", true, false, false},
|
||||
- {"youtubeeducation.com", true, false, false},
|
||||
- {"youtubemobilesupport.com", true, false, false},
|
||||
- {"ytimg.com", true, false, false},
|
||||
-
|
||||
- // Origins without subdomains and with same-origin collectors.
|
||||
- {"accounts.google.com", false, true, false},
|
||||
- {"apis.google.com", false, true, false},
|
||||
- {"app.google.stackdriver.com", false, true, false},
|
||||
- {"b.mail.google.com", false, true, false},
|
||||
- {"chatenabled.mail.google.com", false, true, false},
|
||||
- {"ddm.google.com", false, true, false},
|
||||
- {"gmail.com", false, true, false},
|
||||
- {"gmail.google.com", false, true, false},
|
||||
- {"mail-attachment.googleusercontent.com", false, true, false},
|
||||
- {"mail.google.com", false, true, false},
|
||||
- {"www.gmail.com", false, true, false},
|
||||
-
|
||||
- // Origins without subdomains or same-origin collectors.
|
||||
- {"ad.doubleclick.net", false, false, false},
|
||||
- {"drive.google.com", false, false, false},
|
||||
- {"redirector.googlevideo.com", false, false, false},
|
||||
-};
|
||||
-
|
||||
-const char* const kGoogleStandardCollectors[] = {
|
||||
- "https://beacons.gcp.gvt2.com/domainreliability/upload",
|
||||
- "https://beacons.gvt2.com/domainreliability/upload",
|
||||
- "https://beacons2.gvt2.com/domainreliability/upload",
|
||||
- "https://beacons3.gvt2.com/domainreliability/upload",
|
||||
- "https://beacons4.gvt2.com/domainreliability/upload",
|
||||
- "https://beacons5.gvt2.com/domainreliability/upload",
|
||||
- "https://beacons5.gvt3.com/domainreliability/upload",
|
||||
- "https://clients2.google.com/domainreliability/upload",
|
||||
-};
|
||||
-
|
||||
-const char* const kGoogleOriginSpecificCollectorPathString =
|
||||
- "/domainreliability/upload";
|
||||
-
|
||||
-static std::unique_ptr<DomainReliabilityConfig> CreateGoogleConfig(
|
||||
- const GoogleConfigParams& params,
|
||||
- bool is_www) {
|
||||
- if (is_www)
|
||||
- DCHECK(params.duplicate_for_www);
|
||||
-
|
||||
- std::string hostname = (is_www ? "www." : "") + std::string(params.hostname);
|
||||
- bool include_subdomains = params.include_subdomains && !is_www;
|
||||
-
|
||||
- std::unique_ptr<DomainReliabilityConfig> config(
|
||||
- new DomainReliabilityConfig());
|
||||
- config->origin = GURL("https://" + hostname + "/");
|
||||
- config->include_subdomains = include_subdomains;
|
||||
- config->collectors.clear();
|
||||
- if (params.include_origin_specific_collector) {
|
||||
- GURL::Replacements replacements;
|
||||
- replacements.SetPathStr(kGoogleOriginSpecificCollectorPathString);
|
||||
- config->collectors.push_back(
|
||||
- std::make_unique<GURL>(config->origin.ReplaceComponents(replacements)));
|
||||
- }
|
||||
- for (size_t i = 0; i < arraysize(kGoogleStandardCollectors); i++)
|
||||
- config->collectors.push_back(
|
||||
- std::make_unique<GURL>(kGoogleStandardCollectors[i]));
|
||||
- config->success_sample_rate = 0.05;
|
||||
- config->failure_sample_rate = 1.00;
|
||||
- config->path_prefixes.clear();
|
||||
- return config;
|
||||
-}
|
||||
-
|
||||
-} // namespace
|
||||
-
|
||||
// static
|
||||
void GetAllGoogleConfigs(
|
||||
std::vector<std::unique_ptr<DomainReliabilityConfig>>* configs_out) {
|
||||
configs_out->clear();
|
||||
-
|
||||
- for (auto& params : kGoogleConfigs) {
|
||||
- configs_out->push_back(CreateGoogleConfig(params, false));
|
||||
- if (params.duplicate_for_www)
|
||||
- configs_out->push_back(CreateGoogleConfig(params, true));
|
||||
- }
|
||||
}
|
||||
|
||||
} // namespace domain_reliability
|
||||
diff --git a/components/domain_reliability/uploader.cc b/components/domain_reliability/uploader.cc
|
||||
--- a/components/domain_reliability/uploader.cc
|
||||
+++ b/components/domain_reliability/uploader.cc
|
||||
@@ -82,7 +82,7 @@ class DomainReliabilityUploaderImpl
|
||||
if (discard_uploads_)
|
||||
discarded_upload_count_++;
|
||||
|
||||
- if (discard_uploads_ || shutdown_) {
|
||||
+ if (true) {
|
||||
VLOG(1) << "Discarding report instead of uploading.";
|
||||
UploadResult result;
|
||||
result.status = UploadResult::SUCCESS;
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 17 Sep 2018 21:50:15 +0200
|
||||
Subject: ungoogled-chromium: Disable Network Time Tracker
|
||||
|
||||
This connects to Google to check if the system time is correct when a website certificate
|
||||
date seems incorrect, according to https://bugs.chromium.org/p/chromium/issues/detail?id=725232
|
||||
|
||||
Fixes https://github.com/Eloston/ungoogled-chromium/issues/302
|
||||
---
|
||||
components/network_time/network_time_tracker.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/network_time/network_time_tracker.cc b/components/network_time/network_time_tracker.cc
|
||||
--- a/components/network_time/network_time_tracker.cc
|
||||
+++ b/components/network_time/network_time_tracker.cc
|
||||
@@ -277,7 +277,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time,
|
||||
}
|
||||
|
||||
bool NetworkTimeTracker::AreTimeFetchesEnabled() const {
|
||||
- return base::FeatureList::IsEnabled(kNetworkTimeServiceQuerying);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
NetworkTimeTracker::FetchBehavior NetworkTimeTracker::GetFetchBehavior() const {
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 17 Sep 2018 21:55:33 +0200
|
||||
Subject: ungoogled-chromium: Remove third_party/analytics
|
||||
|
||||
---
|
||||
ui/webui/resources/webui_resources.grd | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/ui/webui/resources/webui_resources.grd b/ui/webui/resources/webui_resources.grd
|
||||
--- a/ui/webui/resources/webui_resources.grd
|
||||
+++ b/ui/webui/resources/webui_resources.grd
|
||||
@@ -15,7 +15,6 @@ without changes to the corresponding grd file. -->
|
||||
<includes>
|
||||
<include name="IDR_WEBUI_I18N_TEMPLATE_JS" file="js/i18n_template.js" flattenhtml="true" type="BINDATA" />
|
||||
<include name="IDR_WEBUI_JSTEMPLATE_JS" file="js/jstemplate_compiled.js" flattenhtml="true" type="BINDATA" />
|
||||
- <include name="IDR_WEBUI_ANALYTICS_JS" file="js/analytics.js" flattenhtml="true" type="BINDATA" compress="gzip" />
|
||||
<!-- Roboto Font. Roboto-Regular and Roboto-Light is already available on
|
||||
Android, and Roboto-Medium is not used on Android. All 6 weights of
|
||||
Roboto are available on Chrome OS.-->
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 17 Sep 2018 21:57:19 +0200
|
||||
Subject: ungoogled-chromium: Always use local DevTools files instead of remote
|
||||
files from Google
|
||||
|
||||
NOTE: This can break Remote Debugging
|
||||
This also fixes local debugging with domain substitution
|
||||
Related comment: https://bugs.chromium.org/p/chromium/issues/detail?id=710701#c14
|
||||
---
|
||||
third_party/blink/renderer/devtools/BUILD.gn | 6 ++----
|
||||
third_party/blink/renderer/devtools/front_end/audits2_worker.json | 2 +-
|
||||
third_party/blink/renderer/devtools/front_end/devtools_app.json | 6 +++---
|
||||
third_party/blink/renderer/devtools/front_end/shell.json | 4 ++--
|
||||
third_party/blink/renderer/devtools/front_end/worker_app.json | 2 +-
|
||||
5 files changed, 9 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/devtools/BUILD.gn b/third_party/blink/renderer/devtools/BUILD.gn
|
||||
--- a/third_party/blink/renderer/devtools/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/devtools/BUILD.gn
|
||||
@@ -1147,10 +1147,8 @@ action("generate_devtools_grd") {
|
||||
devtools_embedder_scripts +
|
||||
[ "$resources_out_dir/devtools_extension_api.js" ]
|
||||
|
||||
- # Bundle remote modules in ChromeOS.
|
||||
- if (is_chromeos) {
|
||||
- grd_files += generated_remote_modules + devtools_emulated_devices_images
|
||||
- }
|
||||
+ # Always bundle remote modules.
|
||||
+ grd_files += generated_remote_modules + devtools_emulated_devices_images
|
||||
|
||||
inputs = grd_files + devtools_image_files
|
||||
outfile = "$root_gen_dir/devtools/devtools_resources.grd"
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/audits2_worker.json b/third_party/blink/renderer/devtools/front_end/audits2_worker.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/audits2_worker.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/audits2_worker.json
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"modules": [
|
||||
{ "name": "worker_service", "type": "autostart" },
|
||||
- { "name": "audits2_worker", "type": "remote" }
|
||||
+ { "name": "audits2_worker" }
|
||||
]
|
||||
}
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/devtools_app.json b/third_party/blink/renderer/devtools/front_end/devtools_app.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/devtools_app.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/devtools_app.json
|
||||
@@ -5,7 +5,7 @@
|
||||
{ "name": "mobile_throttling", "type": "autostart" },
|
||||
{ "name": "browser_components", "type": "autostart" },
|
||||
|
||||
- { "name": "accessibility", "type": "remote" },
|
||||
+ { "name": "accessibility" },
|
||||
{ "name": "animation" },
|
||||
{ "name": "audits2" },
|
||||
{ "name": "browser_console" },
|
||||
@@ -13,14 +13,14 @@
|
||||
{ "name": "cookie_table" },
|
||||
{ "name": "devices" },
|
||||
{ "name": "elements" },
|
||||
- { "name": "emulated_devices" , "type": "remote" },
|
||||
+ { "name": "emulated_devices" },
|
||||
{ "name": "har_importer" },
|
||||
{ "name": "help" },
|
||||
{ "name": "layers" },
|
||||
{ "name": "layer_viewer" },
|
||||
{ "name": "network" },
|
||||
{ "name": "performance_monitor" },
|
||||
- { "name": "product_registry_impl", "type": "remote" },
|
||||
+ { "name": "product_registry_impl" },
|
||||
{ "name": "resources" },
|
||||
{ "name": "security" },
|
||||
{ "name": "timeline" },
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/shell.json b/third_party/blink/renderer/devtools/front_end/shell.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/shell.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/shell.json
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
{ "name": "changes" },
|
||||
{ "name": "cm" },
|
||||
- { "name": "cm_modes", "type": "remote" },
|
||||
+ { "name": "cm_modes" },
|
||||
{ "name": "color_picker" },
|
||||
{ "name": "console" },
|
||||
{ "name": "coverage" },
|
||||
@@ -41,7 +41,7 @@
|
||||
{ "name": "snippets" },
|
||||
{ "name": "source_frame" },
|
||||
{ "name": "sources" },
|
||||
- { "name": "terminal", "type": "remote" },
|
||||
+ { "name": "terminal" },
|
||||
{ "name": "text_editor" },
|
||||
{ "name": "workspace_diff" },
|
||||
{ "name": "protocol_monitor"}
|
||||
diff --git a/third_party/blink/renderer/devtools/front_end/worker_app.json b/third_party/blink/renderer/devtools/front_end/worker_app.json
|
||||
--- a/third_party/blink/renderer/devtools/front_end/worker_app.json
|
||||
+++ b/third_party/blink/renderer/devtools/front_end/worker_app.json
|
||||
@@ -12,7 +12,7 @@
|
||||
{ "name": "help" },
|
||||
{ "name": "layer_viewer" },
|
||||
{ "name": "network" },
|
||||
- { "name": "product_registry_impl", "type": "remote" },
|
||||
+ { "name": "product_registry_impl" },
|
||||
{ "name": "resources" },
|
||||
{ "name": "timeline" },
|
||||
{ "name": "timeline_model" }
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ Subject: Disable Omaha update checks
|
||||
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
|
||||
@@ -132,7 +132,7 @@ public class OmahaBase {
|
||||
@@ -134,7 +134,7 @@ public class OmahaBase {
|
||||
|
||||
/** See {@link #sIsDisabled}. */
|
||||
static boolean isDisabled() {
|
||||
@@ -19,5 +19,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+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
|
||||
|
||||
+4
-4
@@ -15,12 +15,12 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 102
|
||||
+ "kCurrentDataVersion": 103
|
||||
- "kCurrentDataVersion": 103
|
||||
+ "kCurrentDataVersion": 104
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -232,6 +232,16 @@
|
||||
@@ -247,6 +247,16 @@
|
||||
"id": 56
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
+4
-4
@@ -17,12 +17,12 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 103
|
||||
+ "kCurrentDataVersion": 104
|
||||
- "kCurrentDataVersion": 104
|
||||
+ "kCurrentDataVersion": 105
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -154,6 +154,27 @@
|
||||
@@ -159,6 +159,27 @@
|
||||
"id": 1
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
+17
-6
@@ -3,10 +3,10 @@ Date: Mon, 12 Mar 2018 20:31:44 +0100
|
||||
Subject: Add Qwant search engine
|
||||
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 13 +-
|
||||
.../search_engines/prepopulated_engines.json | 24 ++-
|
||||
components/search_engines/search_engine_type.h | 1 +
|
||||
.../template_url_prepopulate_data.cc | 218 ++++++++++-----------
|
||||
3 files changed, 122 insertions(+), 110 deletions(-)
|
||||
3 files changed, 133 insertions(+), 110 deletions(-)
|
||||
|
||||
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
|
||||
--- a/components/search_engines/prepopulated_engines.json
|
||||
@@ -15,15 +15,26 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 104
|
||||
+ "kCurrentDataVersion": 105
|
||||
- "kCurrentDataVersion": 105
|
||||
+ "kCurrentDataVersion": 106
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -939,6 +939,17 @@
|
||||
@@ -954,6 +954,28 @@
|
||||
"id": 6
|
||||
},
|
||||
|
||||
+ "qwant": {
|
||||
+ "name": "Qwant",
|
||||
+ "keyword": "qwant.com",
|
||||
+ "favicon_url": "https://www.qwant.com/favicon.ico",
|
||||
+ "search_url": "https://www.qwant.com/?client=opensearch&q={searchTerms}",
|
||||
+ "suggest_url": "https://api.qwant.com/api/suggest/?client=opensearch&q={searchTerms}",
|
||||
+ "image_url": "https://www.qwant.com/?t=images&q={searchTerms}",
|
||||
+ "type": "SEARCH_ENGINE_QWANT",
|
||||
+ "id": 14
|
||||
+ },
|
||||
+
|
||||
+ "qwant": {
|
||||
+ "name": "Qwant",
|
||||
+ "keyword": "qwant.com",
|
||||
@@ -711,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,61 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 28 Oct 2017 10:09:41 +0200
|
||||
Subject: Cure AMP and tracking from search results
|
||||
|
||||
---
|
||||
third_party/blink/renderer/core/dom/BUILD.gn | 1 +
|
||||
third_party/blink/renderer/core/dom/document.cc | 20 +++++++++++++++++++-
|
||||
2 files changed, 20 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
--- a/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
@@ -147,6 +147,7 @@ blink_core_sources("dom") {
|
||||
"events/tree_scope_event_context.h",
|
||||
"events/window_event_context.cc",
|
||||
"events/window_event_context.h",
|
||||
+ "extensions/dont-track-me.h",
|
||||
"exception_code.h",
|
||||
"first_letter_pseudo_element.cc",
|
||||
"first_letter_pseudo_element.h",
|
||||
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
|
||||
@@ -277,6 +277,8 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/time.h"
|
||||
|
||||
+#include "extensions/anti_amp_cure.h"
|
||||
+
|
||||
#ifndef NDEBUG
|
||||
using WeakDocumentSet =
|
||||
blink::PersistentHeapHashSet<blink::WeakMember<blink::Document>>;
|
||||
@@ -5882,8 +5884,24 @@ void Document::FinishedParsing() {
|
||||
fetcher_->ClearResourcesFromPreviousFetcher();
|
||||
}
|
||||
|
||||
- if (IsPrefetchOnly())
|
||||
+ if (IsPrefetchOnly()) {
|
||||
WebPrerenderingSupport::Current()->PrefetchFinished();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // determine whether this is a Google search results page
|
||||
+ const SecurityOrigin *origin = GetSecurityOrigin();
|
||||
+ if (origin) {
|
||||
+ WTF::String domain = origin->Domain();
|
||||
+ size_t pos = domain.Find(".google.");
|
||||
+ auto* bodyElement = body();
|
||||
+ if (bodyElement && (pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) {
|
||||
+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload";
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(ANTI_AMP_CURE_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+ }
|
||||
|
||||
FirstMeaningfulPaintDetector::From(*this).CheckNetworkStable();
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+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
|
||||
@@ -632,6 +632,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
@@ -633,6 +633,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
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 18 Feb 2018 22:15:25 +0100
|
||||
Subject: Play videos in background
|
||||
|
||||
Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com
|
||||
Original Javascript code by timdream
|
||||
---
|
||||
third_party/blink/renderer/core/dom/BUILD.gn | 1 +
|
||||
third_party/blink/renderer/core/dom/document.cc | 17 +++++++++++++----
|
||||
2 files changed, 14 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
--- a/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
@@ -148,6 +148,7 @@ blink_core_sources("dom") {
|
||||
"events/window_event_context.cc",
|
||||
"events/window_event_context.h",
|
||||
"extensions/dont-track-me.h",
|
||||
+ "extensions/video-bg-play.h",
|
||||
"exception_code.h",
|
||||
"first_letter_pseudo_element.cc",
|
||||
"first_letter_pseudo_element.h",
|
||||
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
|
||||
@@ -222,6 +222,7 @@
|
||||
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
|
||||
+#include "extensions/video_bg_play.h"
|
||||
#include "third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h"
|
||||
#include "third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h"
|
||||
#include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
|
||||
@@ -5891,17 +5892,25 @@ void Document::FinishedParsing() {
|
||||
|
||||
// determine whether this is a Google search results page
|
||||
const SecurityOrigin *origin = GetSecurityOrigin();
|
||||
- if (origin) {
|
||||
+ auto* bodyElement = body();
|
||||
+ if (origin && bodyElement) {
|
||||
WTF::String domain = origin->Domain();
|
||||
size_t pos = domain.Find(".google.");
|
||||
- auto* bodyElement = body();
|
||||
- if (bodyElement && (pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) {
|
||||
+ if ((pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) {
|
||||
LOG(INFO) << "injecting anti-AMP-cure Javascript payload";
|
||||
HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
e->setText(ANTI_AMP_CURE_JS);
|
||||
bodyElement->AppendChild(e);
|
||||
}
|
||||
- }
|
||||
+
|
||||
+ // check for eligibility of the video bg fix
|
||||
+ if ((WTF::kNotFound != domain.Find("youtube.com")) || (WTF::kNotFound != domain.Find("vimeo.com"))) {
|
||||
+ LOG(INFO) << "injecting video-bg-play Javascript payload";
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(VIDEO_BG_PLAY_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+ } // has origin and body element
|
||||
|
||||
FirstMeaningfulPaintDetector::From(*this).CheckNetworkStable();
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+4
-4
@@ -59,7 +59,7 @@ diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
||||
# GCC and clang flags. MSVS (is_win && !is_clang) does not use cflags.
|
||||
if (!is_win || is_clang) {
|
||||
cflags += [
|
||||
@@ -128,6 +143,14 @@ source_set("common") {
|
||||
@@ -129,6 +144,14 @@ source_set("common") {
|
||||
}
|
||||
include_dirs = openh264_common_include_dirs
|
||||
|
||||
@@ -74,7 +74,7 @@ diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":config" ]
|
||||
@@ -154,6 +177,14 @@ source_set("processing") {
|
||||
@@ -155,6 +178,14 @@ source_set("processing") {
|
||||
}
|
||||
include_dirs = openh264_processing_include_dirs
|
||||
|
||||
@@ -89,7 +89,7 @@ diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":config" ]
|
||||
@@ -173,6 +204,14 @@ source_set("encoder") {
|
||||
@@ -174,6 +205,14 @@ source_set("encoder") {
|
||||
}
|
||||
include_dirs = openh264_encoder_include_dirs
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 28 Oct 2017 10:09:41 +0200
|
||||
Subject: Inject scripts for AMP, tracking, ads and video functionality
|
||||
|
||||
Remove AMP, tracking and ads from search results
|
||||
Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com to
|
||||
allow playing videos in background (original Javascript code by timdream)
|
||||
---
|
||||
third_party/blink/renderer/core/dom/BUILD.gn | 2 ++
|
||||
third_party/blink/renderer/core/dom/document.cc | 28 +++++++++++++++++++++-
|
||||
.../renderer/core/dom/extensions/anti_amp_cure.h | 6 +++++
|
||||
.../renderer/core/dom/extensions/video_bg_play.h | 6 +++++
|
||||
4 files changed, 41 insertions(+), 1 deletion(-)
|
||||
create mode 100644 third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h
|
||||
create mode 100644 third_party/blink/renderer/core/dom/extensions/video_bg_play.h
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
--- a/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/core/dom/BUILD.gn
|
||||
@@ -147,6 +147,8 @@ blink_core_sources("dom") {
|
||||
"global_event_handlers.h",
|
||||
"icon_url.cc",
|
||||
"icon_url.h",
|
||||
+ "extensions/dont-track-me.h",
|
||||
+ "extensions/video-bg-play.h",
|
||||
"id_target_observer.cc",
|
||||
"id_target_observer.h",
|
||||
"id_target_observer_registry.cc",
|
||||
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
||||
--- a/third_party/blink/renderer/core/dom/document.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/document.cc
|
||||
@@ -223,6 +223,7 @@
|
||||
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
|
||||
#include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
|
||||
+#include "extensions/video_bg_play.h"
|
||||
#include "third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h"
|
||||
#include "third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h"
|
||||
#include "third_party/blink/renderer/core/paint/paint_layer.h"
|
||||
@@ -282,6 +283,8 @@
|
||||
#include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
|
||||
#include "third_party/blink/renderer/platform/wtf/time.h"
|
||||
|
||||
+#include "extensions/anti_amp_cure.h"
|
||||
+
|
||||
#ifndef NDEBUG
|
||||
using WeakDocumentSet =
|
||||
blink::PersistentHeapHashSet<blink::WeakMember<blink::Document>>;
|
||||
@@ -5926,8 +5929,31 @@ void Document::FinishedParsing() {
|
||||
fetcher_->ClearResourcesFromPreviousFetcher();
|
||||
}
|
||||
|
||||
- if (IsPrefetchOnly())
|
||||
+ if (IsPrefetchOnly()) {
|
||||
WebPrerenderingSupport::Current()->PrefetchFinished();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ // determine whether this is a Google search results page
|
||||
+ const WTF::String& host = url_.Host();
|
||||
+ auto* bodyElement = body();
|
||||
+ if (bodyElement) {
|
||||
+ size_t pos = host.Find(".google.");
|
||||
+ if ((pos != WTF::kNotFound) && (host.length() - pos - 8 < 4)) {
|
||||
+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload";
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(ANTI_AMP_CURE_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+
|
||||
+ // check for eligibility of the video bg fix
|
||||
+ if ((WTF::kNotFound != host.Find("youtube.com")) || (WTF::kNotFound != host.Find("vimeo.com"))) {
|
||||
+ LOG(INFO) << "injecting video-bg-play Javascript payload";
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(VIDEO_BG_PLAY_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+ } // has origin and body element
|
||||
|
||||
FirstMeaningfulPaintDetector::From(*this).CheckNetworkStable();
|
||||
}
|
||||
diff --git a/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h b/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h
|
||||
@@ -0,0 +1,6 @@
|
||||
+#ifndef anti_amp_cure_h
|
||||
+#define anti_amp_cure_h
|
||||
+
|
||||
+#define ANTI_AMP_CURE_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=<url>)\n // Mobile (/url?q=<url>)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks(document));\n}\n\nfunction hookMoreResults() {\n var extrares = document.getElementById('extrares');\n if (!extrares) {\n console.log(\"could not hook more results\");\n return;\n }\n // mutation observers are great but they don't work\n extrares.addEventListener(\"DOMNodeInserted\", function(e) {\n var node = e.target;\n if (node.id && node.id.startsWith(\"arc-srp\"))\n console.log(\"hyperlinks sanitized on new result node: \", sanitizeAllHyperlinks(node));\n });\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('qslc');\n if (mlogo && mlogo.children[0]) {\n mlogo = mlogo.children[0];\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks(rootNode) {\n var saned = 0, total = 0;\n rootNode.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && (document.location.host.indexOf(\"news.google.\") == -1)) {\n sanitizeAll();\n}\nsetMlogoClick();\n\nhookMoreResults();\n"
|
||||
+
|
||||
+#endif // anti_amp_cure_h
|
||||
diff --git a/third_party/blink/renderer/core/dom/extensions/video_bg_play.h b/third_party/blink/renderer/core/dom/extensions/video_bg_play.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/third_party/blink/renderer/core/dom/extensions/video_bg_play.h
|
||||
@@ -0,0 +1,6 @@
|
||||
+#ifndef video_bg_play_h
|
||||
+#define video_bg_play_h
|
||||
+
|
||||
+#define VIDEO_BG_PLAY_JS "'use strict';\n\n/* video background play fix - original version by timdream */\ndocument.videoBGFix = {};\n\n// Page Visibility API\nObject.defineProperties(document.videoBGFix,\n { 'hidden': {value: false}, 'visibilityState': {value: 'visible'} });\n\nwindow.addEventListener(\n 'visibilitychange', evt => evt.stopImmediatePropagation(), true);\nwindow.addEventListener(\n 'blur', evt => evt.stopImmediatePropagation(), true);\n\n// Fullscreen API\nwindow.addEventListener('fullscreenchange', evt => {\n Object.defineProperties(document.videoBGFix,\n { 'fullscreenEnabled': {value: true},\n 'fullscreen': {value: true},\n 'fullscreenElement': {value: document.fullscreenElement.videoBGFix}});\n window.addEventListener(\n 'fullscreenchange', evt => evt.stopImmediatePropagation(), true);\n}, { capture: true, once: true });\n"
|
||||
+
|
||||
+#endif // video_bg_play_h
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -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
|
||||
@@ -871,6 +871,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
@@ -862,6 +862,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
return pipeline_metadata_.has_audio;
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ 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());
|
||||
@@ -2940,7 +2946,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
|
||||
@@ -2953,7 +2959,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()) {
|
||||
@@ -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
|
||||
|
||||
+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
|
||||
@@ -363,6 +363,13 @@ public class ExternalNavigationHandler {
|
||||
@@ -384,6 +384,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,11 +2,13 @@ From: Serg <serg.zhukovsky@gmail.com>
|
||||
Date: Tue, 31 Jan 2017 22:12:27 -0500
|
||||
Subject: Add exit menu item
|
||||
|
||||
Corrected Exit functionality
|
||||
---
|
||||
chrome/android/java/res/menu/main_menu.xml | 2 ++
|
||||
.../android/java/src/org/chromium/chrome/browser/ChromeActivity.java | 2 ++
|
||||
chrome/android/java/strings/android_chrome_strings.grd | 3 +++
|
||||
3 files changed, 7 insertions(+)
|
||||
chrome/android/java/res/menu/main_menu.xml | 2 ++
|
||||
.../java/src/org/chromium/chrome/browser/ChromeActivity.java | 2 ++
|
||||
.../org/chromium/chrome/browser/init/ChromeLifetimeController.java | 6 +++++-
|
||||
chrome/android/java/strings/android_chrome_strings.grd | 3 +++
|
||||
4 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -23,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
|
||||
@@ -1986,6 +1986,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2022,6 +2022,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
RecordUserAction.record("MobileMenuSettings");
|
||||
} else if (id == R.id.show_menu) {
|
||||
showAppMenuForKeyboardEvent();
|
||||
@@ -32,10 +34,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
||||
} else if (id == R.id.find_in_page_id) {
|
||||
if (mFindToolbarManager == null) return false;
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
@@ -87,7 +87,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
|
||||
|
||||
// Kick off a timer to kill the process after a delay, which fires only if the Activities
|
||||
// take too long to be finished.
|
||||
- mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
|
||||
+ if (restart) {
|
||||
+ mHandler.postDelayed(mRestartRunnable, WATCHDOG_DELAY_MS);
|
||||
+ } else {
|
||||
+ fireBrowserRestartActivityIntent();
|
||||
+ }
|
||||
}
|
||||
|
||||
@Override
|
||||
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
|
||||
@@ -2678,6 +2678,9 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
@@ -2837,6 +2837,9 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
<message name="IDS_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR-LIMIT=27]">
|
||||
Settings
|
||||
</message>
|
||||
@@ -46,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
|
||||
|
||||
+3
-3
@@ -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
|
||||
@@ -2010,15 +2010,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2046,15 +2046,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
|
||||
final Tab currentTab = getActivityTab();
|
||||
|
||||
@@ -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
|
||||
@@ -1038,7 +1038,7 @@ public class CustomTabActivity extends ChromeActivity {
|
||||
@@ -1219,7 +1219,7 @@ public class CustomTabActivity extends ChromeActivity {
|
||||
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
|
||||
|
||||
@@ -1,189 +0,0 @@
|
||||
From: NoChromo <nochromo@nochromo.com>
|
||||
Date: Sun, 3 Apr 2016 12:44:50 +0800
|
||||
Subject: url_request: hooks and ad url data
|
||||
|
||||
---
|
||||
net/BUILD.gn | 2 +
|
||||
net/url_request/nochromo_intercept.cc | 116 ++++++++++++++++++++++++++++++++++
|
||||
net/url_request/nochromo_intercept.h | 13 ++++
|
||||
net/url_request/url_request.cc | 4 ++
|
||||
4 files changed, 135 insertions(+)
|
||||
create mode 100644 net/url_request/nochromo_intercept.cc
|
||||
create mode 100644 net/url_request/nochromo_intercept.h
|
||||
|
||||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1734,6 +1734,8 @@ component("net") {
|
||||
"url_request/url_fetcher_response_writer.h",
|
||||
"url_request/url_range_request_job.cc",
|
||||
"url_request/url_range_request_job.h",
|
||||
+ "url_request/nochromo_intercept.cc",
|
||||
+ "url_request/nochromo_intercept.h",
|
||||
"url_request/url_request.cc",
|
||||
"url_request/url_request.h",
|
||||
"url_request/url_request_context.cc",
|
||||
diff --git a/net/url_request/nochromo_intercept.cc b/net/url_request/nochromo_intercept.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/nochromo_intercept.cc
|
||||
@@ -0,0 +1,116 @@
|
||||
+#include "url/gurl.h"
|
||||
+#include "net/url_request/nochromo_entries.h"
|
||||
+
|
||||
+#include <android/log.h>
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
+#define NOCHROMO_LOG 0
|
||||
+#define NOCHROMO_LOG_MORE 0
|
||||
+
|
||||
+static char* strtolower(const char* str) {
|
||||
+ int len = strlen(str);
|
||||
+ char* ret = (char*)malloc(len + 1);
|
||||
+ ret[len] = '\0';
|
||||
+ for (int i = 0; i < len; i++) {
|
||||
+ if ((65 <= str[i]) && (str[i] <= 90)) {
|
||||
+ ret[i] = str[i] + 32;
|
||||
+ } else {
|
||||
+ ret[i] = str[i];
|
||||
+ }
|
||||
+ }
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static char* strtosep(const char* str) {
|
||||
+ int len = strlen(str);
|
||||
+ char* ret = (char*)malloc(len + 3);
|
||||
+ ret[0] = '^';
|
||||
+ ret[len + 1] = '^';
|
||||
+ ret[len + 2] = '\0';
|
||||
+ for (int i = 0; i < len; i++) {
|
||||
+ if ((str[i] == ':') || (str[i] == '/') || (str[i] == '?') || (str[i] == '&') || (str[i] == '=')) {
|
||||
+ ret[i + 1] = '^';
|
||||
+ } else {
|
||||
+ ret[i + 1] = str[i];
|
||||
+ }
|
||||
+ }
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+int nochromo_intercept(const GURL& url) {
|
||||
+ if (url.is_valid() && url.SchemeIsHTTPOrHTTPS()) {
|
||||
+ const char* c_url = url.spec().c_str();
|
||||
+ char* c_url_lower = strtolower(c_url);
|
||||
+ char* c_url_sep = strtosep(c_url);
|
||||
+ char* c_url_lower_sep = strtosep(c_url_lower);
|
||||
+
|
||||
+ if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s]", c_url);
|
||||
+
|
||||
+ bool intercept = false;
|
||||
+ for (int i = 0; i < NOCHROMO_ENTRY_COUNT; i++) {
|
||||
+ nochromo_entry* entry = &NOCHROMO_ENTRIES[i];
|
||||
+
|
||||
+ // no use checking rules when we're intercepting, or exceptions when not
|
||||
+ bool check =
|
||||
+ (!intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) == 0)) ||
|
||||
+ (intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) != 0));
|
||||
+
|
||||
+ if (check) {
|
||||
+ bool match = false;
|
||||
+
|
||||
+ // select comparison string based on case and separator presence (separator takes some shortcuts)
|
||||
+ bool match_case = ((entry->flags & NOCHROMO_FLAG_MATCH_CASE) != 0);
|
||||
+ bool match_separator = ((entry->flags & NOCHROMO_FLAG_HAS_SEPARATOR) != 0);
|
||||
+ const char* match_url = match_case ? (match_separator ? c_url_sep : c_url) : (match_separator ? c_url_lower_sep : c_url_lower);
|
||||
+
|
||||
+ if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[case:%d][sep:%d][%s]", match_case, match_separator, match_url);
|
||||
+
|
||||
+ // check for all match parts at >= position of last match
|
||||
+ const char* last = match_url;
|
||||
+ for (int m = 0; m < entry->matchcount; m++) {
|
||||
+ const char* pos = strstr(last, entry->matches[m]);
|
||||
+ match = (pos != NULL);
|
||||
+
|
||||
+ if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s][found:%d][match:%d]", entry->matches[m], pos == NULL ? 0 : 1, match ? 1 : 0);
|
||||
+
|
||||
+ // check if the url starts with the first match part
|
||||
+ if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_BEGIN) != 0) && (pos != match_url)) match = false;
|
||||
+
|
||||
+ // check if the url ends with the last match part
|
||||
+ if (match && (m == entry->matchcount - 1) && ((entry->flags & NOCHROMO_FLAG_MATCH_END) != 0) && (pos != &match_url[strlen(match_url) - strlen(entry->matches[m])])) match = false;
|
||||
+
|
||||
+ // check domain match
|
||||
+ if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_DOMAIN) != 0) && (pos != match_url) && (pos[-1] != '^') && (pos[-1] != '.') && (pos[-1] != '/')) match = false;
|
||||
+
|
||||
+ // short circuit
|
||||
+ if (!match) break;
|
||||
+ }
|
||||
+
|
||||
+ if (match) {
|
||||
+ if (NOCHROMO_LOG) {
|
||||
+ if (!intercept) {
|
||||
+ __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> intercept (%d) (%d)", i, entry->flags);
|
||||
+ } else {
|
||||
+ __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> pass (%d) (%d)", i, entry->flags);
|
||||
+ }
|
||||
+ }
|
||||
+ intercept = !intercept;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ free(c_url_sep);
|
||||
+ free(c_url_lower);
|
||||
+ free(c_url_lower_sep);
|
||||
+
|
||||
+ if (intercept) {
|
||||
+ if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "intercepted!");
|
||||
+ return 1;
|
||||
+ }
|
||||
+ if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "pass!");
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+} // namespace net
|
||||
\ No newline at end of file
|
||||
diff --git a/net/url_request/nochromo_intercept.h b/net/url_request/nochromo_intercept.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/nochromo_intercept.h
|
||||
@@ -0,0 +1,13 @@
|
||||
+#ifndef NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_
|
||||
+#define NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_
|
||||
+
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
+GURL nochromo_intercepted = GURL("http://127.0.0.1/");
|
||||
+int nochromo_intercept(const GURL& url);
|
||||
+
|
||||
+} // namespace net
|
||||
+
|
||||
+#endif // NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_
|
||||
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
||||
--- a/net/url_request/url_request.cc
|
||||
+++ b/net/url_request/url_request.cc
|
||||
@@ -44,6 +44,8 @@
|
||||
#include "url/gurl.h"
|
||||
#include "url/origin.h"
|
||||
|
||||
+#include "net/url_request/nochromo_intercept.h"
|
||||
+
|
||||
#if BUILDFLAG(ENABLE_REPORTING)
|
||||
#include "net/network_error_logging/network_error_logging_service.h"
|
||||
#include "net/reporting/reporting_service.h"
|
||||
@@ -583,6 +585,8 @@ URLRequest::URLRequest(const GURL& url,
|
||||
// Sanity check out environment.
|
||||
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
|
||||
|
||||
+ if (nochromo_intercept(url)) url_chain_.push_back(nochromo_intercepted);
|
||||
+
|
||||
context->url_requests()->insert(this);
|
||||
net_log_.BeginEvent(
|
||||
NetLogEventType::REQUEST_ALIVE,
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+33
-23
@@ -7,10 +7,10 @@ Subject: Add menu option to toggle global Javascript preference
|
||||
chrome/android/java/res/menu/main_menu.xml | 13 ++++++++
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 8 +++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 8 +++++
|
||||
.../browser/appmenu/AppMenuPropertiesDelegate.java | 37 ++++++++++++++++++++++
|
||||
.../browser/appmenu/AppMenuPropertiesDelegate.java | 38 ++++++++++++++++++++++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
|
||||
.../java/strings/android_chrome_strings.grd | 11 +++++++
|
||||
7 files changed, 91 insertions(+)
|
||||
7 files changed, 92 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
@@ -75,17 +75,17 @@ 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
|
||||
@@ -2079,6 +2079,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2114,6 +2114,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();
|
||||
currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
|
||||
RecordUserAction.record("MobileMenuRequestDesktopSite");
|
||||
+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean jsEnabled = PrefServiceBridge.getInstance().javaScriptEnabled();
|
||||
+ PrefServiceBridge.getInstance().setJavaScriptEnabled(!jsEnabled);
|
||||
+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
@@ -93,17 +93,17 @@ 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
|
||||
@@ -1644,6 +1644,14 @@ public class ChromeTabbedActivity
|
||||
@@ -1707,6 +1707,14 @@ public class ChromeTabbedActivity
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean jsEnabled = PrefServiceBridge.getInstance().javaScriptEnabled();
|
||||
+ PrefServiceBridge.getInstance().setJavaScriptEnabled(!jsEnabled);
|
||||
+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.open_recently_closed_tab) {
|
||||
TabModel currentModel = mTabModelSelectorImpl.getCurrentModel();
|
||||
@@ -111,7 +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
|
||||
@@ -192,6 +192,8 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -24,6 +24,7 @@ import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeActivity;
|
||||
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 {
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
@@ -120,12 +128,10 @@ 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()));
|
||||
@@ -412,4 +414,39 @@ public class AppMenuPropertiesDelegate {
|
||||
? mActivity.getString(R.string.menu_request_desktop_site_on)
|
||||
: mActivity.getString(R.string.menu_request_desktop_site_off));
|
||||
@@ -418,6 +421,41 @@ public class AppMenuPropertiesDelegate {
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
|
||||
/**
|
||||
+ * Updates the enable JavaScript item's state.
|
||||
+ *
|
||||
+ * @param menu {@link Menu} for enable javascript
|
||||
@@ -148,7 +154,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
+ enableMenuRow.setVisible(itemVisible);
|
||||
+ if (!itemVisible) return;
|
||||
+
|
||||
+ boolean jsEnabled = PrefServiceBridge.getInstance().javaScriptEnabled();
|
||||
+ boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
||||
+
|
||||
+ // Mark the checkbox if Javascript is activated on this tab.
|
||||
+ enableMenuCheck.setChecked(jsEnabled);
|
||||
@@ -159,11 +165,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
+ ? mActivity.getString(R.string.menu_enable_javascript_on)
|
||||
+ : mActivity.getString(R.string.menu_enable_javascript_off));
|
||||
+ }
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
* A notification that the header view has finished inflating.
|
||||
* @param view The view that was inflated.
|
||||
* @param appMenu The menu the view is inside of.
|
||||
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
|
||||
@@ -171,6 +171,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -165,6 +165,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
}
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
||||
@@ -174,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
|
||||
@@ -2663,6 +2663,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
@@ -2822,6 +2822,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
<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>
|
||||
@@ -193,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
|
||||
|
||||
+189
-319
@@ -1,17 +1,15 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 28 Mar 2018 15:55:11 +0200
|
||||
Date: Thu, 23 Aug 2018 19:30:15 +0200
|
||||
Subject: Bromite adblock engine
|
||||
|
||||
Ported from NoChromo patch
|
||||
Original adblock engine ported from NoChromo patch
|
||||
Make interception testable
|
||||
Add domain support
|
||||
Re-land: third-party filters support
|
||||
|
||||
Add menu option to toggle global Adblock preference
|
||||
|
||||
Allow toggling Chromium's "ads enabled" content settings option together with Bromite adblock engine.
|
||||
|
||||
Perform adblock interception in StartJob to address lagging issues
|
||||
New mechanism for adblocking based on Brave's adblocking hook
|
||||
---
|
||||
chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +
|
||||
chrome/android/java/res/menu/main_menu.xml | 11 +
|
||||
@@ -20,18 +18,14 @@ Perform adblock interception in StartJob to address lagging issues
|
||||
.../browser/appmenu/AppMenuPropertiesDelegate.java | 38 +++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 2 +
|
||||
.../java/strings/android_chrome_strings.grd | 11 +
|
||||
.../subresource_filter_content_settings_manager.cc | 3 +
|
||||
net/BUILD.gn | 9 +-
|
||||
net/url_request/adblock_intercept.cc | 329 +++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 18 ++
|
||||
net/url_request/nochromo_intercept.cc | 116 --------
|
||||
net/url_request/nochromo_intercept.h | 13 -
|
||||
net/url_request/url_request.cc | 36 ++-
|
||||
14 files changed, 480 insertions(+), 134 deletions(-)
|
||||
chrome/browser/net/chrome_network_delegate.cc | 58 ++++
|
||||
.../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(+)
|
||||
create mode 100644 net/url_request/adblock_intercept.cc
|
||||
create mode 100644 net/url_request/adblock_intercept.h
|
||||
delete mode 100644 net/url_request/nochromo_intercept.cc
|
||||
delete mode 100644 net/url_request/nochromo_intercept.h
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
@@ -79,14 +73,14 @@ 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
|
||||
@@ -2089,6 +2089,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
@@ -2124,6 +2124,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean adBlockEnabled = !PrefServiceBridge.getInstance().adsEnabled();
|
||||
+ PrefServiceBridge.getInstance().setAllowAdsEnabled(adBlockEnabled);
|
||||
+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
@@ -97,25 +91,25 @@ 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
|
||||
@@ -1658,6 +1658,14 @@ public class ChromeTabbedActivity
|
||||
RecordUserAction.record("MobileTabClosedUndoShortCut");
|
||||
} else if (id == R.id.enter_vr_id) {
|
||||
VrShellDelegate.enterVrIfNecessary();
|
||||
@@ -1665,6 +1665,14 @@ public class ChromeTabbedActivity
|
||||
reportNewTabShortcutUsed(true);
|
||||
getTabCreator(true).launchNTP();
|
||||
}
|
||||
+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean adBlockEnabled = !PrefServiceBridge.getInstance().adsEnabled();
|
||||
+ PrefServiceBridge.getInstance().setAllowAdsEnabled(adBlockEnabled);
|
||||
+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableAdBlock");
|
||||
} else {
|
||||
return super.onMenuOrKeyboardAction(id, fromMenu);
|
||||
}
|
||||
} else if (id == R.id.all_bookmarks_menu_id) {
|
||||
if (currentTab != null) {
|
||||
getCompositorViewHolder().hideKeyboard(() -> {
|
||||
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
|
||||
@@ -190,6 +190,8 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -195,6 +195,8 @@ public class AppMenuPropertiesDelegate {
|
||||
&& !TextUtils.isEmpty(url);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem);
|
||||
|
||||
@@ -124,12 +118,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
@@ -449,4 +451,40 @@ public class AppMenuPropertiesDelegate {
|
||||
? mActivity.getString(R.string.menu_enable_javascript_on)
|
||||
: mActivity.getString(R.string.menu_enable_javascript_off));
|
||||
@@ -456,6 +458,42 @@ public class AppMenuPropertiesDelegate {
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
|
||||
/**
|
||||
+ * Updates the enable AdBlock item's state.
|
||||
+ *
|
||||
+ * @param menu {@link Menu} for enable adblock
|
||||
@@ -153,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
+ enableMenuRow.setVisible(itemVisible);
|
||||
+ if (!itemVisible) return;
|
||||
+
|
||||
+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().adsEnabled();
|
||||
+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS);
|
||||
+
|
||||
+ // Mark the checkbox if adblock is globally activate.
|
||||
+ enableMenuCheck.setChecked(adBlockEnabled);
|
||||
@@ -164,11 +156,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
+ ? mActivity.getString(R.string.menu_enable_adblock_on)
|
||||
+ : mActivity.getString(R.string.menu_enable_adblock_off));
|
||||
+ }
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
* A notification that the header view has finished inflating.
|
||||
* @param view The view that was inflated.
|
||||
* @param appMenu The menu the view is inside of.
|
||||
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
|
||||
@@ -170,6 +170,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -164,6 +164,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
}
|
||||
}
|
||||
|
||||
@@ -180,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
|
||||
@@ -2683,6 +2683,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
@@ -2842,6 +2842,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
|
||||
<message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
|
||||
Turn on Request desktop site
|
||||
</message>
|
||||
@@ -198,43 +194,115 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
||||
<message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR-LIMIT=27]">
|
||||
Appearance
|
||||
</message>
|
||||
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 @@
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
#include "chrome/browser/content_settings/cookie_settings_factory.h"
|
||||
+#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
|
||||
#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 @@
|
||||
#if defined(OS_ANDROID)
|
||||
#include "base/android/path_utils.h"
|
||||
#include "chrome/browser/io_thread.h"
|
||||
+#include "net/url_request/adblock_intercept.h"
|
||||
#endif
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
@@ -215,10 +217,64 @@ void ChromeNetworkDelegate::InitializePrefsOnUIThread(
|
||||
}
|
||||
}
|
||||
|
||||
+#define TRANSPARENT1PXGIF "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
||||
+
|
||||
int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
net::URLRequest* request,
|
||||
net::CompletionOnceCallback callback,
|
||||
GURL* new_url) {
|
||||
+
|
||||
+#if defined(OS_ANDROID)
|
||||
+ if (request) {
|
||||
+ bool block = false, isValidUrl;
|
||||
+
|
||||
+ isValidUrl = request->url().is_valid();
|
||||
+ std::string scheme = request->url().scheme();
|
||||
+ if (isValidUrl && scheme.length()) {
|
||||
+ std::transform(scheme.begin(), scheme.end(), scheme.begin(), ::tolower);
|
||||
+ if ("http" != scheme && "https" != scheme) {
|
||||
+ isValidUrl = false;
|
||||
+ }
|
||||
+ }
|
||||
+ const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
|
||||
+
|
||||
+ bool adblock_enabled = false;
|
||||
+ if (isValidUrl && info) {
|
||||
+ const content::ResourceRequestInfo::WebContentsGetter& web_contents_getter = info->GetWebContentsGetterForRequest();
|
||||
+ content::WebContents* web_contents = web_contents_getter.Run();
|
||||
+ if (web_contents) {
|
||||
+ Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
||||
+ 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 (!adblock_enabled) {
|
||||
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetContentSetting(request->url(), GURL(), ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS,
|
||||
+ std::string());
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (adblock_enabled
|
||||
+ && content::RESOURCE_TYPE_MAIN_FRAME != info->GetResourceType()
|
||||
+ && net::adblock_intercept(request->url(),
|
||||
+ request->initiator()->host(),
|
||||
+ info->GetResourceType())) {
|
||||
+ block = true;
|
||||
+ }
|
||||
+
|
||||
+ if (block) {
|
||||
+ if (content::RESOURCE_TYPE_IMAGE == info->GetResourceType()) {
|
||||
+ *new_url = GURL(TRANSPARENT1PXGIF);
|
||||
+ } else {
|
||||
+ *new_url = GURL("");
|
||||
+ }
|
||||
+ return net::ERR_BLOCKED_BY_ADMINISTRATOR;
|
||||
+ }
|
||||
+ } // valid URL and info
|
||||
+ } // request
|
||||
+#endif // OS_ANDROID
|
||||
+
|
||||
extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
|
||||
bool force_safe_search =
|
||||
@@ -248,6 +304,8 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
return rv;
|
||||
}
|
||||
|
||||
+#undef TRANSPARENT1PXGIF
|
||||
+
|
||||
int ChromeNetworkDelegate::OnBeforeStartTransaction(
|
||||
net::URLRequest* request,
|
||||
net::CompletionOnceCallback callback,
|
||||
diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc b/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc
|
||||
--- a/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc
|
||||
+++ b/chrome/browser/subresource_filter/subresource_filter_content_settings_manager.cc
|
||||
@@ -22,6 +22,7 @@
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "components/history/core/browser/history_service.h"
|
||||
#include "components/keyed_service/core/service_access_type.h"
|
||||
#include "components/subresource_filter/core/browser/subresource_filter_features.h"
|
||||
#include "url/gurl.h"
|
||||
+#include "net/url_request/adblock_intercept.h"
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -160,9 +161,11 @@ void SubresourceFilterContentSettingsManager::OnContentSettingChanged(
|
||||
if (global_setting == CONTENT_SETTING_ALLOW) {
|
||||
ChromeSubresourceFilterClient::LogAction(
|
||||
kActionContentSettingsAllowedGlobal);
|
||||
+ net::adblock_enabled = false;
|
||||
} else if (global_setting == CONTENT_SETTING_BLOCK) {
|
||||
ChromeSubresourceFilterClient::LogAction(
|
||||
kActionContentSettingsBlockedGlobal);
|
||||
+ net::adblock_enabled = true;
|
||||
} else {
|
||||
NOTREACHED();
|
||||
}
|
||||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1734,8 +1734,6 @@ component("net") {
|
||||
"url_request/url_fetcher_response_writer.h",
|
||||
"url_request/url_range_request_job.cc",
|
||||
"url_request/url_range_request_job.h",
|
||||
- "url_request/nochromo_intercept.cc",
|
||||
- "url_request/nochromo_intercept.h",
|
||||
"url_request/url_request.cc",
|
||||
"url_request/url_request.h",
|
||||
"url_request/url_request_context.cc",
|
||||
@@ -1793,6 +1791,13 @@ component("net") {
|
||||
"//third_party/zlib",
|
||||
@@ -1715,6 +1715,13 @@ component("net") {
|
||||
"url_request/websocket_handshake_userdata_key.h",
|
||||
]
|
||||
|
||||
+ if (is_android) {
|
||||
@@ -251,7 +319,7 @@ 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,329 @@
|
||||
@@ -0,0 +1,325 @@
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
@@ -264,6 +332,7 @@ new file mode 100644
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+#include "content/public/common/resource_type.h"
|
||||
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
||||
+#include <android/log.h>
|
||||
+
|
||||
@@ -273,8 +342,6 @@ new file mode 100644
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
+bool adblock_enabled = true;
|
||||
+
|
||||
+const char *LOG_TAG = "Bromite";
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
@@ -431,69 +498,69 @@ new file mode 100644
|
||||
+ return match;
|
||||
+}
|
||||
+
|
||||
+static int url_match_domain(adblock_entry *entry, const std::string &origin_host) {
|
||||
+ if (entry->domains_skip && !origin_host.empty()) {
|
||||
+ // filter will not be activated on these domains
|
||||
+bool url_match_domain(adblock_entry *entry, const std::string &origin_host) {
|
||||
+ bool match_domain = true;
|
||||
+ // check for a negative domain match
|
||||
+ if (entry->domains_skip) {
|
||||
+ if (origin_host.empty()) {
|
||||
+ // skip this rule, cannot match on domain
|
||||
+ return false;
|
||||
+ }
|
||||
+ for (int d = 0; const char *domain = entry->domains_skip[d]; d++) {
|
||||
+ if (domain == origin_host) {
|
||||
+ // this domain is whitelisted, do not further process this rule in any way
|
||||
+ return 0;
|
||||
+ match_domain = false;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // fallthrough is desired
|
||||
+
|
||||
+ if (!entry->domains || origin_host.empty()) {
|
||||
+ // undetermined
|
||||
+ return 3;
|
||||
+ }
|
||||
+
|
||||
+ // filter will be active only if a domain matches
|
||||
+ // if none matches, the filter is to be skipped
|
||||
+ for (int d = 0; const char *domain = entry->domains[d]; d++) {
|
||||
+ if (domain == origin_host) {
|
||||
+ // this domain is one of those that activate the rule
|
||||
+ return 1;
|
||||
+ // check for a required positive domain match
|
||||
+ if (entry->domains) {
|
||||
+ if (origin_host.empty()) {
|
||||
+ // skip this rule, cannot match on domain
|
||||
+ return false;
|
||||
+ }
|
||||
+ for (int d = 0; const char *domain = entry->domains[d]; d++) {
|
||||
+ if (domain != origin_host) {
|
||||
+ match_domain = false;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // at least one domain should have been found, but none was
|
||||
+ // thus the filter must be skipped
|
||||
+ return 0;
|
||||
+ return match_domain;
|
||||
+}
|
||||
+
|
||||
+static int url_match_party(adblock_entry *entry, const GURL &url,
|
||||
+ const std::string &origin_host, int &fp) {
|
||||
+ int desired_fp;
|
||||
+static bool url_match_party(adblock_entry *entry, const GURL &url,
|
||||
+ const std::string &origin_host, bool &checked_fp,
|
||||
+ bool &fp) {
|
||||
+ bool wanted_fp;
|
||||
+ if ((entry->flags & ADBLOCK_FLAG_THIRD_PARTY) != 0) {
|
||||
+ desired_fp = 0;
|
||||
+ wanted_fp = false;
|
||||
+ } else if ((entry->flags & ADBLOCK_FLAG_FIRST_PARTY) != 0) {
|
||||
+ desired_fp = 1;
|
||||
+ wanted_fp = true;
|
||||
+ } else {
|
||||
+ // undetermined, it does not test for first/third party
|
||||
+ return 3;
|
||||
+ // no-op
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ if (origin_host.empty()) {
|
||||
+ // cannot match this rule, no origin host to determine first/third party
|
||||
+ return 0;
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+//__android_log_print(ANDROID_LOG_INFO, LOG_TAG, "matchFirst=%d matchThird=%d",
|
||||
+// matchFirstParty, matchThirdParty);
|
||||
+#endif
|
||||
+ if (fp == 3) {
|
||||
+ if (!checked_fp) {
|
||||
+ // lower-case version
|
||||
+ char *l_host = strtolower(origin_host.c_str()),
|
||||
+ *l_url_host = strtolower(url.host().c_str());
|
||||
+
|
||||
+ // is the URL a first-party to the current page's host?
|
||||
+ if (is_first_party(l_host, l_url_host))
|
||||
+ fp = 1;
|
||||
+ else
|
||||
+ fp = 0;
|
||||
+ fp = is_first_party(l_host, l_url_host);
|
||||
+
|
||||
+ checked_fp = true;
|
||||
+#ifdef ADB_TESTER
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG,
|
||||
+ "is_first_party(\"%s\", \"%s\") = %s", l_host,
|
||||
@@ -503,14 +570,14 @@ new file mode 100644
|
||||
+ free(l_url_host);
|
||||
+ }
|
||||
+
|
||||
+ return fp == desired_fp ? 1 : 0;
|
||||
+ return fp == wanted_fp;
|
||||
+}
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host) {
|
||||
+ // if (!url.is_valid() || !url.SchemeIsHTTPOrHTTPS()) {
|
||||
+ // return 0;
|
||||
+ // }
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host
|
||||
+#ifndef ADB_TESTER
|
||||
+, content::ResourceType resource_type
|
||||
+#endif
|
||||
+) {
|
||||
+ if (url.is_valid() && url.SchemeIsHTTPOrHTTPS()) {
|
||||
+ const char *c_url = url.spec().c_str();
|
||||
+ char *c_url_lower = strtolower(c_url);
|
||||
@@ -522,7 +589,7 @@ new file mode 100644
|
||||
+ c_url, url.host().c_str(), origin_host.c_str());
|
||||
+#endif
|
||||
+
|
||||
+ int fp = 3;
|
||||
+ bool checked_fp = false, fp = false;
|
||||
+
|
||||
+ bool intercept = false;
|
||||
+ for (int i = 0; i < ADBLOCK_ENTRY_COUNT; i++) {
|
||||
@@ -532,22 +599,19 @@ new file mode 100644
|
||||
+ bool check =
|
||||
+ (!intercept && ((entry->flags & ADBLOCK_FLAG_EXCEPTION) == 0)) ||
|
||||
+ (intercept && ((entry->flags & ADBLOCK_FLAG_EXCEPTION) != 0));
|
||||
+
|
||||
+ if (!check)
|
||||
+ continue;
|
||||
+
|
||||
+ // first check for domain matches, a quick branch out if matching
|
||||
+ if (0 == url_match_domain(entry, origin_host)) {
|
||||
+ if (!url_match_domain(entry, origin_host))
|
||||
+ continue;
|
||||
+ }
|
||||
+ // fallthrough with values 3 (undetermined / no domain options) or 1 (matched)
|
||||
+
|
||||
+ // check on the URL matcher
|
||||
+ if (!url_matches(c_url, c_url_sep, c_url_lower, c_url_lower_sep, entry))
|
||||
+ continue;
|
||||
+
|
||||
+ // finally check first/third-party
|
||||
+ if (0 == url_match_party(entry, url, origin_host, fp))
|
||||
+ if (!url_match_party(entry, url, origin_host, checked_fp, fp))
|
||||
+ continue;
|
||||
+
|
||||
+#ifdef ADBLOCK_LOG
|
||||
@@ -569,12 +633,12 @@ new file mode 100644
|
||||
+
|
||||
+ if (intercept) {
|
||||
+#ifdef ADBLOCK_LOG
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "blocked (fp=%d)", fp);
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "blocked");
|
||||
+#endif
|
||||
+ return 1;
|
||||
+ }
|
||||
+#ifdef ADBLOCK_LOG
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "pass (fp=%d)", fp);
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "pass");
|
||||
+#endif
|
||||
+ }
|
||||
+ return 0;
|
||||
@@ -585,225 +649,31 @@ 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,18 @@
|
||||
@@ -0,0 +1,24 @@
|
||||
+#ifndef NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+#define NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+#ifndef ADB_TESTER
|
||||
+#include "content/public/common/resource_type.h"
|
||||
+#endif
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+int adblock_rules_count();
|
||||
+#endif
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host);
|
||||
+
|
||||
+extern bool adblock_enabled;
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host
|
||||
+#ifndef ADB_TESTER
|
||||
+, content::ResourceType resource_type
|
||||
+#endif
|
||||
+);
|
||||
+
|
||||
+} // namespace net
|
||||
+
|
||||
+#endif // NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
diff --git a/net/url_request/nochromo_intercept.cc b/net/url_request/nochromo_intercept.cc
|
||||
deleted file mode 100644
|
||||
--- a/net/url_request/nochromo_intercept.cc
|
||||
+++ /dev/null
|
||||
@@ -1,116 +0,0 @@
|
||||
-#include "url/gurl.h"
|
||||
-#include "net/url_request/nochromo_entries.h"
|
||||
-
|
||||
-#include <android/log.h>
|
||||
-
|
||||
-namespace net {
|
||||
-
|
||||
-#define NOCHROMO_LOG 0
|
||||
-#define NOCHROMO_LOG_MORE 0
|
||||
-
|
||||
-static char* strtolower(const char* str) {
|
||||
- int len = strlen(str);
|
||||
- char* ret = (char*)malloc(len + 1);
|
||||
- ret[len] = '\0';
|
||||
- for (int i = 0; i < len; i++) {
|
||||
- if ((65 <= str[i]) && (str[i] <= 90)) {
|
||||
- ret[i] = str[i] + 32;
|
||||
- } else {
|
||||
- ret[i] = str[i];
|
||||
- }
|
||||
- }
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-static char* strtosep(const char* str) {
|
||||
- int len = strlen(str);
|
||||
- char* ret = (char*)malloc(len + 3);
|
||||
- ret[0] = '^';
|
||||
- ret[len + 1] = '^';
|
||||
- ret[len + 2] = '\0';
|
||||
- for (int i = 0; i < len; i++) {
|
||||
- if ((str[i] == ':') || (str[i] == '/') || (str[i] == '?') || (str[i] == '&') || (str[i] == '=')) {
|
||||
- ret[i + 1] = '^';
|
||||
- } else {
|
||||
- ret[i + 1] = str[i];
|
||||
- }
|
||||
- }
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-int nochromo_intercept(const GURL& url) {
|
||||
- if (url.is_valid() && url.SchemeIsHTTPOrHTTPS()) {
|
||||
- const char* c_url = url.spec().c_str();
|
||||
- char* c_url_lower = strtolower(c_url);
|
||||
- char* c_url_sep = strtosep(c_url);
|
||||
- char* c_url_lower_sep = strtosep(c_url_lower);
|
||||
-
|
||||
- if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s]", c_url);
|
||||
-
|
||||
- bool intercept = false;
|
||||
- for (int i = 0; i < NOCHROMO_ENTRY_COUNT; i++) {
|
||||
- nochromo_entry* entry = &NOCHROMO_ENTRIES[i];
|
||||
-
|
||||
- // no use checking rules when we're intercepting, or exceptions when not
|
||||
- bool check =
|
||||
- (!intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) == 0)) ||
|
||||
- (intercept && ((entry->flags & NOCHROMO_FLAG_EXCEPTION) != 0));
|
||||
-
|
||||
- if (check) {
|
||||
- bool match = false;
|
||||
-
|
||||
- // select comparison string based on case and separator presence (separator takes some shortcuts)
|
||||
- bool match_case = ((entry->flags & NOCHROMO_FLAG_MATCH_CASE) != 0);
|
||||
- bool match_separator = ((entry->flags & NOCHROMO_FLAG_HAS_SEPARATOR) != 0);
|
||||
- const char* match_url = match_case ? (match_separator ? c_url_sep : c_url) : (match_separator ? c_url_lower_sep : c_url_lower);
|
||||
-
|
||||
- if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[case:%d][sep:%d][%s]", match_case, match_separator, match_url);
|
||||
-
|
||||
- // check for all match parts at >= position of last match
|
||||
- const char* last = match_url;
|
||||
- for (int m = 0; m < entry->matchcount; m++) {
|
||||
- const char* pos = strstr(last, entry->matches[m]);
|
||||
- match = (pos != NULL);
|
||||
-
|
||||
- if (NOCHROMO_LOG || NOCHROMO_LOG_MORE) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "[%s][found:%d][match:%d]", entry->matches[m], pos == NULL ? 0 : 1, match ? 1 : 0);
|
||||
-
|
||||
- // check if the url starts with the first match part
|
||||
- if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_BEGIN) != 0) && (pos != match_url)) match = false;
|
||||
-
|
||||
- // check if the url ends with the last match part
|
||||
- if (match && (m == entry->matchcount - 1) && ((entry->flags & NOCHROMO_FLAG_MATCH_END) != 0) && (pos != &match_url[strlen(match_url) - strlen(entry->matches[m])])) match = false;
|
||||
-
|
||||
- // check domain match
|
||||
- if (match && (m == 0) && ((entry->flags & NOCHROMO_FLAG_MATCH_DOMAIN) != 0) && (pos != match_url) && (pos[-1] != '^') && (pos[-1] != '.') && (pos[-1] != '/')) match = false;
|
||||
-
|
||||
- // short circuit
|
||||
- if (!match) break;
|
||||
- }
|
||||
-
|
||||
- if (match) {
|
||||
- if (NOCHROMO_LOG) {
|
||||
- if (!intercept) {
|
||||
- __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> intercept (%d) (%d)", i, entry->flags);
|
||||
- } else {
|
||||
- __android_log_print(ANDROID_LOG_INFO, "NoChromo", "--> pass (%d) (%d)", i, entry->flags);
|
||||
- }
|
||||
- }
|
||||
- intercept = !intercept;
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- free(c_url_sep);
|
||||
- free(c_url_lower);
|
||||
- free(c_url_lower_sep);
|
||||
-
|
||||
- if (intercept) {
|
||||
- if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "intercepted!");
|
||||
- return 1;
|
||||
- }
|
||||
- if (NOCHROMO_LOG) __android_log_print(ANDROID_LOG_INFO, "NoChromo", "pass!");
|
||||
- }
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-} // namespace net
|
||||
\ No newline at end of file
|
||||
diff --git a/net/url_request/nochromo_intercept.h b/net/url_request/nochromo_intercept.h
|
||||
deleted file mode 100644
|
||||
--- a/net/url_request/nochromo_intercept.h
|
||||
+++ /dev/null
|
||||
@@ -1,13 +0,0 @@
|
||||
-#ifndef NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_
|
||||
-#define NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_
|
||||
-
|
||||
-#include "url/gurl.h"
|
||||
-
|
||||
-namespace net {
|
||||
-
|
||||
-GURL nochromo_intercepted = GURL("http://127.0.0.1/");
|
||||
-int nochromo_intercept(const GURL& url);
|
||||
-
|
||||
-} // namespace net
|
||||
-
|
||||
-#endif // NET_URL_REQUEST_NOCHROMO_INTERCEPT_H_
|
||||
diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
||||
--- a/net/url_request/url_request.cc
|
||||
+++ b/net/url_request/url_request.cc
|
||||
@@ -44,7 +44,9 @@
|
||||
#include "url/gurl.h"
|
||||
#include "url/origin.h"
|
||||
|
||||
-#include "net/url_request/nochromo_intercept.h"
|
||||
+#if defined(OS_ANDROID)
|
||||
+#include "net/url_request/adblock_intercept.h"
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_REPORTING)
|
||||
#include "net/network_error_logging/network_error_logging_service.h"
|
||||
@@ -585,8 +587,6 @@ URLRequest::URLRequest(const GURL& url,
|
||||
// Sanity check out environment.
|
||||
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
|
||||
|
||||
- if (nochromo_intercept(url)) url_chain_.push_back(nochromo_intercepted);
|
||||
-
|
||||
context->url_requests()->insert(this);
|
||||
net_log_.BeginEvent(
|
||||
NetLogEventType::REQUEST_ALIVE,
|
||||
@@ -665,6 +665,36 @@ void URLRequest::StartJob(URLRequestJob* job) {
|
||||
}
|
||||
}
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
+ if (net::adblock_enabled) {
|
||||
+ std::string initiatorHost;
|
||||
+ if (initiator_.has_value()) {
|
||||
+ initiatorHost = initiator_.value().host();
|
||||
+ }
|
||||
+
|
||||
+ if (adblock_intercept(url(), initiatorHost)) {
|
||||
+ std::string source("delegate");
|
||||
+ net_log_.AddEvent(NetLogEventType::CANCELLED,
|
||||
+ NetLog::StringCallback("source", &source));
|
||||
+
|
||||
+ job_.reset(new URLRequestErrorJob(
|
||||
+ this, network_delegate_, ERR_BLOCKED_BY_CLIENT));
|
||||
+
|
||||
+ job_->SetExtraRequestHeaders(extra_request_headers_);
|
||||
+ job_->SetPriority(priority_);
|
||||
+ job_->SetRequestHeadersCallback(request_headers_callback_);
|
||||
+ job_->SetResponseHeadersCallback(response_headers_callback_);
|
||||
+
|
||||
+ if (upload_data_stream_.get())
|
||||
+ job_->SetUpload(upload_data_stream_.get());
|
||||
+
|
||||
+ // on fallthrough the initial status will be ERR_IO_PENDING,
|
||||
+ // but the URLRequestErrorJob will then call NotifyResponseStarted
|
||||
+ // with the correct ERR_BLOCKED_BYCLIENT status
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
// Start() always completes asynchronously.
|
||||
//
|
||||
// Status is generally set by URLRequestJob itself, but Start() calls
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 21 Mar 2018 14:15:28 +0100
|
||||
Subject: User Agent: anonymize
|
||||
|
||||
Remove device name and build id
|
||||
---
|
||||
content/common/user_agent.cc | 25 ++-----------------------
|
||||
1 file changed, 2 insertions(+), 23 deletions(-)
|
||||
|
||||
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
|
||||
@@ -60,26 +60,6 @@ std::string BuildOSCpuInfo() {
|
||||
}
|
||||
#elif defined(OS_ANDROID)
|
||||
std::string android_version_str = base::SysInfo::OperatingSystemVersion();
|
||||
-
|
||||
- std::string android_info_str;
|
||||
-
|
||||
- // Send information about the device.
|
||||
- bool semicolon_inserted = false;
|
||||
- std::string android_build_codename = base::SysInfo::GetAndroidBuildCodename();
|
||||
- std::string android_device_name = base::SysInfo::HardwareModelName();
|
||||
- if ("REL" == android_build_codename && android_device_name.size() > 0) {
|
||||
- android_info_str += "; " + android_device_name;
|
||||
- semicolon_inserted = true;
|
||||
- }
|
||||
-
|
||||
- // Append the build ID.
|
||||
- std::string android_build_id = base::SysInfo::GetAndroidBuildID();
|
||||
- if (android_build_id.size() > 0) {
|
||||
- if (!semicolon_inserted) {
|
||||
- android_info_str += ";";
|
||||
- }
|
||||
- android_info_str += " Build/" + android_build_id;
|
||||
- }
|
||||
#elif (defined(OS_POSIX) && !defined(OS_MACOSX)) || defined(OS_FUCHSIA)
|
||||
// Should work on any Posix system.
|
||||
struct utsname unixinfo;
|
||||
@@ -115,9 +95,8 @@ std::string BuildOSCpuInfo() {
|
||||
os_minor_version,
|
||||
os_bugfix_version
|
||||
#elif defined(OS_ANDROID)
|
||||
- "Android %s%s",
|
||||
- android_version_str.c_str(),
|
||||
- android_info_str.c_str()
|
||||
+ "Android %s",
|
||||
+ android_version_str.c_str()
|
||||
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
||||
"%s %s",
|
||||
unixinfo.sysname, // e.g. Linux
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 21 Mar 2018 14:15:28 +0100
|
||||
Subject: User Agent: anonymize
|
||||
|
||||
Use a fixed device name and Chrome product version.
|
||||
---
|
||||
components/version_info/version_info.cc | 17 ++++++++++++-
|
||||
content/common/user_agent.cc | 45 +++++++++++++++++++--------------
|
||||
2 files changed, 42 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
|
||||
--- a/components/version_info/version_info.cc
|
||||
+++ b/components/version_info/version_info.cc
|
||||
@@ -7,13 +7,28 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/version.h"
|
||||
+#include "base/sys_info.h"
|
||||
#include "build/build_config.h"
|
||||
#include "components/version_info/version_info_values.h"
|
||||
|
||||
namespace version_info {
|
||||
|
||||
std::string GetProductNameAndVersionForUserAgent() {
|
||||
- return "Chrome/" + GetVersionNumber();
|
||||
+ int32_t major, minor, bugfix;
|
||||
+ base::SysInfo::OperatingSystemVersionNumbers(&major,
|
||||
+ &minor,
|
||||
+ &bugfix);
|
||||
+ switch (major) {
|
||||
+ case 7:
|
||||
+ return "Chrome/63.0.3239.111";
|
||||
+ case 6:
|
||||
+ return "Chrome/63.0.3239.83";
|
||||
+ case 5:
|
||||
+ case 4:
|
||||
+ return "Chrome/62.0.3202.84";
|
||||
+ }
|
||||
+ // version 8 and above
|
||||
+ return "Chrome/67.0.3396.87";
|
||||
}
|
||||
|
||||
std::string GetProductName() {
|
||||
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
|
||||
--- a/content/common/user_agent.cc
|
||||
+++ b/content/common/user_agent.cc
|
||||
@@ -59,26 +59,33 @@ std::string BuildOSCpuInfo() {
|
||||
architecture_token = "; Win64; IA64";
|
||||
}
|
||||
#elif defined(OS_ANDROID)
|
||||
- std::string android_version_str = base::SysInfo::OperatingSystemVersion();
|
||||
+ int32_t major, minor, bugfix;
|
||||
+ base::SysInfo::OperatingSystemVersionNumbers(&major, &minor, &bugfix);
|
||||
+ std::string android_version_str = base::StringPrintf("%d.%d.%d", major, minor, bugfix);
|
||||
|
||||
+ // Send information about the device and buld ID.
|
||||
+ // Use a common device/build ID based on Android major version.
|
||||
std::string android_info_str;
|
||||
-
|
||||
- // Send information about the device.
|
||||
- bool semicolon_inserted = false;
|
||||
- std::string android_build_codename = base::SysInfo::GetAndroidBuildCodename();
|
||||
- std::string android_device_name = base::SysInfo::HardwareModelName();
|
||||
- if ("REL" == android_build_codename && android_device_name.size() > 0) {
|
||||
- android_info_str += "; " + android_device_name;
|
||||
- semicolon_inserted = true;
|
||||
- }
|
||||
-
|
||||
- // Append the build ID.
|
||||
- std::string android_build_id = base::SysInfo::GetAndroidBuildID();
|
||||
- if (android_build_id.size() > 0) {
|
||||
- if (!semicolon_inserted) {
|
||||
- android_info_str += ";";
|
||||
- }
|
||||
- android_info_str += " Build/" + android_build_id;
|
||||
+ switch (major) {
|
||||
+ case 7:
|
||||
+ // Chrome/63.0.3239.111
|
||||
+ android_info_str = "SM-J730GM Build/NRD90M";
|
||||
+ break;
|
||||
+ case 6:
|
||||
+ // Chrome/63.0.3239.83
|
||||
+ android_info_str = "SM-G532G Build/MMB29T";
|
||||
+ break;
|
||||
+ case 5:
|
||||
+ // Chrome/62.0.3202.84
|
||||
+ android_info_str = "A37fw Build/LMY47V";
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ // Chrome/62.0.3202.84
|
||||
+ android_info_str = "SM-G7102 Build/KOT49H";
|
||||
+ break;
|
||||
+ default: // version 8 and above
|
||||
+ android_info_str = "SM-G950U Build/R16NW";
|
||||
+ break;
|
||||
}
|
||||
#elif (defined(OS_POSIX) && !defined(OS_MACOSX)) || defined(OS_FUCHSIA)
|
||||
// Should work on any Posix system.
|
||||
@@ -115,7 +122,7 @@ std::string BuildOSCpuInfo() {
|
||||
os_minor_version,
|
||||
os_bugfix_version
|
||||
#elif defined(OS_ANDROID)
|
||||
- "Android %s%s",
|
||||
+ "Android %s; %s",
|
||||
android_version_str.c_str(),
|
||||
android_info_str.c_str()
|
||||
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+8
-9
@@ -6,8 +6,8 @@ Return fixed base latency
|
||||
---
|
||||
third_party/blink/renderer/modules/webaudio/analyser_node.idl | 8 ++++----
|
||||
third_party/blink/renderer/modules/webaudio/audio_buffer.idl | 4 ++--
|
||||
third_party/blink/renderer/modules/webaudio/audio_context.cc | 2 +-
|
||||
3 files changed, 7 insertions(+), 7 deletions(-)
|
||||
third_party/blink/renderer/modules/webaudio/audio_context.cc | 1 +
|
||||
3 files changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
|
||||
--- a/third_party/blink/renderer/modules/webaudio/analyser_node.idl
|
||||
@@ -43,15 +43,14 @@ 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
|
||||
@@ -271,7 +271,7 @@ void AudioContext::StopRendering() {
|
||||
}
|
||||
|
||||
@@ -314,6 +314,7 @@ void AudioContext::StopRendering() {
|
||||
double AudioContext::baseLatency() const {
|
||||
- return FramesPerBuffer() / static_cast<double>(sampleRate());
|
||||
DCHECK(IsMainThread());
|
||||
DCHECK(destination());
|
||||
+ return 0.04;
|
||||
}
|
||||
|
||||
} // namespace blink
|
||||
// TODO(hongchan): Due to the incompatible constructor between
|
||||
// AudioDestinationNode and DefaultAudioDestinationNode, casting directly from
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -64,9 +64,9 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
|
||||
+#include "base/rand_util.h"
|
||||
+#include "base/logging.h"
|
||||
#include "base/numerics/checked_math.h"
|
||||
#include "gpu/command_buffer/client/gles2_interface.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/accelerated_static_bitmap_image.h"
|
||||
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
|
||||
@@ -15,6 +17,7 @@
|
||||
#include "third_party/skia/include/core/SkCanvas.h"
|
||||
#include "third_party/skia/include/core/SkImage.h"
|
||||
@@ -75,7 +75,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
#include "third_party/skia/include/gpu/GrContext.h"
|
||||
|
||||
namespace blink {
|
||||
@@ -161,10 +164,161 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
@@ -154,10 +157,161 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
DCHECK(read_pixels_successful ||
|
||||
!sk_image->bounds().intersect(SkIRect::MakeXYWH(
|
||||
rect.X(), rect.Y(), info.width(), info.height())));
|
||||
@@ -250,5 +250,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
|
||||
|
||||
+23
-23
@@ -4,7 +4,7 @@ Subject: getClientRects, getBoundingClientRect, measureText: add
|
||||
fingerprinting mitigation
|
||||
|
||||
Scale the result of Range::getClientRects, Element::getBoundingClientRect and
|
||||
Canvas::measureText by a random +/-3/10000th of the original value for each
|
||||
Canvas::measureText by a random +/-3/1000000th of the original value for each
|
||||
float in the returned Rect/Quad.
|
||||
|
||||
Rationale is that the returned values are within the same order of magnitude
|
||||
@@ -31,14 +31,14 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
||||
|
||||
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
|
||||
#include "third_party/blink/renderer/bindings/core/v8/dictionary.h"
|
||||
@@ -1356,6 +1357,15 @@ DOMRectList* Element::getClientRects() {
|
||||
@@ -1382,6 +1383,15 @@ DOMRectList* Element::getClientRects() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
||||
quads, *element_layout_object);
|
||||
+
|
||||
+ // scale all quads by 3/10000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ // scale all quads
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+
|
||||
+ for (FloatQuad& quad : quads) {
|
||||
+ quad.Scale(shuffleX, shuffleY);
|
||||
@@ -47,14 +47,14 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
||||
return DOMRectList::Create(quads);
|
||||
}
|
||||
|
||||
@@ -1373,6 +1383,13 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
@@ -1399,6 +1409,13 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
||||
*element_layout_object);
|
||||
+
|
||||
+ // scale rect by 3/10000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ // scale rect by 3/1000000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+
|
||||
+ result.Scale(shuffleX, shuffleY);
|
||||
+
|
||||
@@ -70,16 +70,16 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
|
||||
|
||||
+#include "base/rand_util.h"
|
||||
+
|
||||
#include "third_party/blink/renderer/bindings/core/v8/exception_state.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"
|
||||
@@ -1575,11 +1577,27 @@ DOMRectList* Range::getClientRects() const {
|
||||
@@ -1604,11 +1606,27 @@ DOMRectList* Range::getClientRects() const {
|
||||
Vector<FloatQuad> quads;
|
||||
GetBorderAndTextQuads(quads);
|
||||
|
||||
+ // scale all quads by 3/10000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ // scale all quads by 3/1000000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+
|
||||
+ for (FloatQuad& quad : quads) {
|
||||
+ quad.Scale(shuffleX, shuffleY);
|
||||
@@ -92,9 +92,9 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
|
||||
- return DOMRect::FromFloatRect(BoundingRect());
|
||||
+ auto rect = BoundingRect();
|
||||
+
|
||||
+ // scale rect by 3/10000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ // scale rect by 3/1000000th
|
||||
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+
|
||||
+ rect.Scale(shuffleX, shuffleY);
|
||||
+
|
||||
@@ -105,7 +105,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
|
||||
@@ -47,6 +47,24 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
|
||||
@@ -48,6 +48,24 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
||||
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
||||
@@ -67,6 +67,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
|
||||
@@ -68,6 +68,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
|
||||
|
||||
static float GetFontBaseline(const TextBaseline&, const FontMetrics&);
|
||||
|
||||
@@ -154,7 +154,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"
|
||||
@@ -776,8 +778,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
@@ -775,8 +777,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
else
|
||||
direction = ToTextDirection(GetState().GetDirection(), canvas());
|
||||
|
||||
@@ -162,8 +162,8 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
|
||||
+ TextMetrics* textMetrics = TextMetrics::Create(font, direction, GetState().GetTextBaseline(),
|
||||
GetState().GetTextAlign(), text);
|
||||
+
|
||||
+ // scale text metrics by 3/10000th
|
||||
+ auto shuffleFactor = 1 + (base::RandDouble() - 0.5) * 0.0003;
|
||||
+ // scale text metrics by 3/1000000th
|
||||
+ auto shuffleFactor = 1 + (base::RandDouble() - 0.5) * 0.000003;
|
||||
+ textMetrics->Shuffle(shuffleFactor);
|
||||
+
|
||||
+ return textMetrics;
|
||||
@@ -171,5 +171,5 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
|
||||
|
||||
void CanvasRenderingContext2D::DrawTextInternal(
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+6
-6
@@ -10,15 +10,15 @@ 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
|
||||
@@ -536,7 +536,7 @@ void ChromeContentClient::AddContentDecryptionModules(
|
||||
if (IsWidevineAvailable(&cdm_path, &video_codecs_supported,
|
||||
&supports_persistent_license,
|
||||
&encryption_modes_supported)) {
|
||||
@@ -532,7 +532,7 @@ void ChromeContentClient::AddContentDecryptionModules(
|
||||
base::FilePath cdm_path;
|
||||
content::CdmCapability capability;
|
||||
if (IsWidevineAvailable(&cdm_path, &capability)) {
|
||||
- const base::Version version(WIDEVINE_CDM_VERSION_STRING);
|
||||
+ const base::Version version("1.0.123.456");
|
||||
DCHECK(version.IsValid());
|
||||
|
||||
cdms->push_back(content::CdmInfo(
|
||||
cdms->push_back(
|
||||
--
|
||||
2.7.4
|
||||
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
|
||||
@@ -949,7 +949,7 @@ void ProfileIOData::InitializeMetricsEnabledStateOnUIThread() {
|
||||
@@ -922,7 +922,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
|
||||
|
||||
+43
-43
@@ -11,19 +11,19 @@ See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-02.txt
|
||||
chrome/browser/about_flags.cc | 12 +++++++++
|
||||
chrome/browser/flag_descriptions.cc | 3 +++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/browser/io_thread.cc | 14 +++++++----
|
||||
.../browser/net/system_network_context_manager.cc | 12 +++++----
|
||||
.../common/network_features.cc | 5 ++--
|
||||
.../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 | 28 +++++++++++++--------
|
||||
10 files changed, 64 insertions(+), 45 deletions(-)
|
||||
net/url_request/url_request_http_job.cc | 26 +++++++++++--------
|
||||
10 files changed, 61 insertions(+), 44 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
|
||||
@@ -400,6 +400,12 @@ const FeatureEntry::Choice kChromeHomeSwipeLogicChoices[] = {
|
||||
@@ -421,6 +421,12 @@ const FeatureEntry::Choice kChromeHomeSwipeLogicChoices[] = {
|
||||
switches::kChromeHomeSwipeLogicType, "velocity"},
|
||||
};
|
||||
|
||||
@@ -36,7 +36,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
#endif // OS_ANDROID
|
||||
|
||||
const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
|
||||
@@ -3489,6 +3495,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -3517,6 +3523,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kAsyncDns)},
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
@@ -52,7 +52,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
|
||||
@@ -1952,6 +1952,9 @@ const char kAndroidPaymentAppsDescription[] =
|
||||
@@ -2112,6 +2112,9 @@ const char kAndroidPaymentAppsDescription[] =
|
||||
const char kAsyncDnsName[] = "Async DNS resolver";
|
||||
const char kAsyncDnsDescription[] = "Enables the built-in DNS resolver.";
|
||||
|
||||
@@ -65,7 +65,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
|
||||
@@ -1188,6 +1188,9 @@ extern const char kAndroidPaymentAppsDescription[];
|
||||
@@ -1284,6 +1284,9 @@ extern const char kAppNotificationStatusMessagingDescription[];
|
||||
extern const char kAsyncDnsName[];
|
||||
extern const char kAsyncDnsDescription[];
|
||||
|
||||
@@ -75,39 +75,35 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
||||
extern const char kAutofillAccessoryViewName[];
|
||||
extern const char kAutofillAccessoryViewDescription[];
|
||||
|
||||
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
|
||||
--- a/chrome/browser/io_thread.cc
|
||||
+++ b/chrome/browser/io_thread.cc
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "components/metrics/metrics_service.h"
|
||||
#include "components/net_log/chrome_net_log.h"
|
||||
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"
|
||||
+#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"
|
||||
#include "components/prefs/pref_registry_simple.h"
|
||||
@@ -373,13 +374,16 @@ IOThread::IOThread(
|
||||
base::Unretained(this)));
|
||||
dns_client_enabled_.MoveToThread(io_thread_proxy);
|
||||
|
||||
@@ -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>();
|
||||
- if (base::FeatureList::IsEnabled(features::kDnsOverHttps)) {
|
||||
- base::Value server(variations::GetVariationParamValueByFeature(
|
||||
- features::kDnsOverHttps, "server"));
|
||||
- base::Value method(variations::GetVariationParamValueByFeature(
|
||||
- features::kDnsOverHttps, "method"));
|
||||
+ std::string dnsOverHttpsServer =
|
||||
+ base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
||||
+ switches::kDnsOverHttpsServer);
|
||||
+ if (!dnsOverHttpsServer.empty()) {
|
||||
base::Value specs(base::Value::Type::LIST);
|
||||
base::Value methods(base::Value::Type::LIST);
|
||||
- base::Value spec(variations::GetVariationParamValueByFeature(
|
||||
- features::kDnsOverHttps, "server"));
|
||||
- base::Value method(variations::GetVariationParamValueByFeature(
|
||||
- features::kDnsOverHttps, "method"));
|
||||
+
|
||||
+ base::Value spec(dnsOverHttpsServer);
|
||||
+ base::Value server(dnsOverHttpsServer);
|
||||
+ base::Value method("POST");
|
||||
+
|
||||
if (spec.GetString().size() > 0) {
|
||||
specs.GetList().push_back(std::move(spec));
|
||||
methods.GetList().push_back(std::move(method));
|
||||
if (!server.GetString().empty()) {
|
||||
default_doh_servers->GetList().push_back(std::move(server));
|
||||
default_doh_server_methods->GetList().push_back(std::move(method));
|
||||
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
|
||||
@@ -155,20 +151,23 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
|
||||
diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
|
||||
--- a/net/base/load_flags_list.h
|
||||
+++ b/net/base/load_flags_list.h
|
||||
@@ -92,3 +92,9 @@ LOAD_FLAG(DISABLE_CONNECTION_MIGRATION, 1 << 16)
|
||||
// Indicates that the cache should not check that the request matches the
|
||||
// response's vary header.
|
||||
LOAD_FLAG(SKIP_VARY_CHECK, 1 << 17)
|
||||
@@ -92,6 +92,12 @@ LOAD_FLAG(MAYBE_USER_GESTURE, 1 << 14)
|
||||
LOAD_FLAG(DO_NOT_USE_EMBEDDED_IDENTITY, 1 << 15)
|
||||
|
||||
// Indicates that this request is not to be migrated to a cellular network when
|
||||
+
|
||||
+// This load will not send Accept-Language or User-Agent headers, and not
|
||||
+// advertise brotli encoding.
|
||||
+// Used to comply with IETF (draft) DNS-over-HTTPS:
|
||||
+// "Implementors SHOULD NOT set non-essential HTTP headers in DoH client requests."
|
||||
+LOAD_FLAG(MINIMAL_HEADERS, 1 << 18)
|
||||
// QUIC connection migration is enabled.
|
||||
LOAD_FLAG(DISABLE_CONNECTION_MIGRATION_TO_CELLULAR, 1 << 16)
|
||||
|
||||
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
|
||||
@@ -390,30 +390,8 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
@@ -389,30 +389,8 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
|
||||
HttpRequestHeaders extra_request_headers;
|
||||
extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
|
||||
@@ -201,7 +200,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
net_log_ = request_->net_log();
|
||||
|
||||
if (use_post) {
|
||||
@@ -431,6 +409,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
@@ -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 |
|
||||
@@ -209,7 +208,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
LOAD_DO_NOT_SEND_AUTH_DATA);
|
||||
}
|
||||
|
||||
@@ -850,7 +829,7 @@ class DnsTransactionImpl : public DnsTransaction,
|
||||
@@ -849,7 +828,7 @@ class DnsTransactionImpl : public DnsTransaction,
|
||||
had_tcp_attempt_(false),
|
||||
doh_attempt_(false),
|
||||
first_server_index_(0),
|
||||
@@ -221,7 +220,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,19 +434,23 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -434,21 +434,25 @@ void URLRequestHttpJob::Start() {
|
||||
// plugin could set a referrer although sending the referrer is inhibited.
|
||||
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
|
||||
|
||||
@@ -229,18 +228,19 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
||||
- // instance WebCore::FrameLoader::HideReferrer.
|
||||
- if (referrer.is_valid()) {
|
||||
- request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
|
||||
- referrer.spec());
|
||||
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
|
||||
+ // Our consumer should have made sure that this is a safe referrer. See for
|
||||
+ // instance WebCore::FrameLoader::HideReferrer.
|
||||
+ if (referrer.is_valid()) {
|
||||
+ request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
|
||||
+ referrer.spec());
|
||||
referrer.spec());
|
||||
+ }
|
||||
}
|
||||
|
||||
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(
|
||||
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
|
||||
+ request_info_.extra_headers.SetHeaderIfMissing(
|
||||
@@ -251,7 +251,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
||||
|
||||
AddExtraHeaders();
|
||||
AddCookieHeaderAndStart();
|
||||
@@ -663,10 +667,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -666,10 +670,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
HttpRequestHeaders::kAcceptEncoding)) {
|
||||
// Advertise "br" encoding only if transferred data is opaque to proxy.
|
||||
bool advertise_brotli = false;
|
||||
@@ -268,7 +268,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
||||
}
|
||||
}
|
||||
|
||||
@@ -683,7 +689,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
@@ -686,7 +692,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
advertised_encodings);
|
||||
}
|
||||
|
||||
@@ -278,5 +278,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
|
||||
|
||||
+14
-22
@@ -4,34 +4,26 @@ Subject: Always respect async dns flag (regardless of SDK version)
|
||||
|
||||
Do not read experiment value for cronet async DNS configuration
|
||||
---
|
||||
chrome/browser/io_thread.cc | 10 +---------
|
||||
components/cronet/url_request_context_config.cc | 3 ++-
|
||||
2 files changed, 3 insertions(+), 10 deletions(-)
|
||||
chrome/browser/net/system_network_context_manager.cc | 2 +-
|
||||
components/cronet/url_request_context_config.cc | 3 ++-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
|
||||
--- a/chrome/browser/io_thread.cc
|
||||
+++ b/chrome/browser/io_thread.cc
|
||||
@@ -252,15 +252,7 @@ void UpdateMetricsUsagePrefsOnUIThread(const std::string& service_name,
|
||||
// Check the AsyncDns field trial and return true if it should be enabled. On
|
||||
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) {
|
||||
// Android this includes checking the Android version in the field trial.
|
||||
bool ShouldEnableAsyncDns() {
|
||||
- bool feature_can_be_enabled = true;
|
||||
bool feature_can_be_enabled = true;
|
||||
-#if defined(OS_ANDROID)
|
||||
- int min_sdk =
|
||||
- base::GetFieldTrialParamByFeatureAsInt(features::kAsyncDns, "min_sdk", 0);
|
||||
- if (base::android::BuildInfo::GetInstance()->sdk_int() < min_sdk)
|
||||
- feature_can_be_enabled = false;
|
||||
-#endif
|
||||
- return feature_can_be_enabled &&
|
||||
- base::FeatureList::IsEnabled(features::kAsyncDns);
|
||||
+ return base::FeatureList::IsEnabled(features::kAsyncDns);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
+#if 0
|
||||
int min_sdk =
|
||||
base::GetFieldTrialParamByFeatureAsInt(features::kAsyncDns, "min_sdk", 0);
|
||||
if (base::android::BuildInfo::GetInstance()->sdk_int() < min_sdk)
|
||||
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
|
||||
@@ -366,7 +366,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
@@ -390,7 +390,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
effective_experimental_options->Remove(it.key(), nullptr);
|
||||
continue;
|
||||
}
|
||||
@@ -42,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
|
||||
|
||||
+22
-25
@@ -6,32 +6,31 @@ With the introduction of this flag it is possible to increase the maximum
|
||||
allowed connections per host; this can however be detrimental to devices
|
||||
with limited CPU/memory resources and it is disabled by default.
|
||||
---
|
||||
chrome/browser/about_flags.cc | 9 +++++++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../common/network_features.cc | 4 ++++
|
||||
.../common/network_features.h | 4 ++++
|
||||
.../common/network_switch_list.h | 4 ++++
|
||||
net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++
|
||||
7 files changed, 45 insertions(+)
|
||||
chrome/browser/about_flags.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../common/network_features.cc | 3 +++
|
||||
.../common/network_features.h | 4 ++++
|
||||
.../common/network_switch_list.h | 4 ++++
|
||||
net/socket/client_socket_pool_manager.cc | 16 ++++++++++++++++
|
||||
7 files changed, 42 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -798,6 +798,12 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
@@ -839,6 +839,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
net::kEffectiveConnectionType4G},
|
||||
};
|
||||
|
||||
+const FeatureEntry::Choice kMaxConnectionsPerHostChoices[] = {
|
||||
+ {features::kMaxConnectionsPerHostChoiceDefault, "", "0"},
|
||||
+ {features::kMaxConnectionsPerHostChoice6, switches::kMaxConnectionsPerHost, "6"},
|
||||
+ {features::kMaxConnectionsPerHostChoiceDefault, "", ""},
|
||||
+ {features::kMaxConnectionsPerHostChoice15, switches::kMaxConnectionsPerHost, "15"},
|
||||
+};
|
||||
+
|
||||
// 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 ==
|
||||
@@ -2398,6 +2404,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2432,6 +2437,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kMaterialDesignIncognitoNTPName,
|
||||
flag_descriptions::kMaterialDesignIncognitoNTPDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kMaterialDesignIncognitoNTP)},
|
||||
@@ -44,13 +43,13 @@ 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
|
||||
@@ -975,6 +975,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
|
||||
@@ -1065,6 +1065,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
|
||||
"If enabled, the Incognito New Tab page uses the new material design with "
|
||||
"a better readable text.";
|
||||
|
||||
+const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
|
||||
+const char kMaxConnectionsPerHostDescription[] =
|
||||
+ "Customize maximum allowed connections per host (experimental).";
|
||||
+ "Customize maximum allowed connections per host.";
|
||||
+
|
||||
const char kMediaRouterCastAllowAllIPsName[] =
|
||||
"Connect to Cast devices on all IP addresses";
|
||||
@@ -58,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
|
||||
@@ -613,6 +613,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
|
||||
@@ -667,6 +667,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
|
||||
extern const char kMaterialDesignIncognitoNTPName[];
|
||||
extern const char kMaterialDesignIncognitoNTPDescription[];
|
||||
|
||||
@@ -71,12 +70,11 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
||||
diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc
|
||||
--- a/components/network_session_configurator/common/network_features.cc
|
||||
+++ b/components/network_session_configurator/common/network_features.cc
|
||||
@@ -8,6 +8,10 @@
|
||||
@@ -8,6 +8,9 @@
|
||||
|
||||
namespace features {
|
||||
|
||||
+const char kMaxConnectionsPerHostChoiceDefault[] = "Default",
|
||||
+ kMaxConnectionsPerHostChoice6[] = "6",
|
||||
+const char kMaxConnectionsPerHostChoiceDefault[] = "6",
|
||||
+ kMaxConnectionsPerHostChoice15[] = "15";
|
||||
+
|
||||
const base::Feature kTokenBinding{"token-binding",
|
||||
@@ -132,17 +130,16 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
||||
|
||||
namespace net {
|
||||
|
||||
@@ -316,6 +319,20 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
||||
@@ -316,6 +319,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
||||
int ClientSocketPoolManager::max_sockets_per_group(
|
||||
HttpNetworkSession::SocketPoolType pool_type) {
|
||||
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
|
||||
+
|
||||
+ if (pool_type == HttpNetworkSession::NORMAL_SOCKET_POOL) {
|
||||
+ int maxConnectionsPerHost;
|
||||
+ if (!base::StringToInt(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kMaxConnectionsPerHost),
|
||||
+ &maxConnectionsPerHost)) {
|
||||
+ LOG(DFATAL) << "--" << switches::kMaxConnectionsPerHost << " only accepts integers as arguments";
|
||||
+ maxConnectionsPerHost = 0;
|
||||
+ int maxConnectionsPerHost = 0;
|
||||
+ auto value = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(switches::kMaxConnectionsPerHost);
|
||||
+ if (!value.empty() && !base::StringToInt(value, &maxConnectionsPerHost)) {
|
||||
+ LOG(DFATAL) << "--" << switches::kMaxConnectionsPerHost << " only accepts integers as arguments (\"" << value << "\" is invalid)";
|
||||
+ }
|
||||
+ if (maxConnectionsPerHost != 0) {
|
||||
+ return maxConnectionsPerHost;
|
||||
@@ -154,5 +151,5 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 9 Jul 2018 20:12:19 +0200
|
||||
Subject: Add flag to show/hide NTP tiles
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/android/ntp/most_visited_sites_bridge.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/common/chrome_switches.cc | 3 +++
|
||||
chrome/common/chrome_switches.h | 1 +
|
||||
6 files changed, 23 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1285,6 +1285,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kWebrtcNewEncodeCpuLoadEstimatorDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(media::kNewEncodeCpuLoadEstimator)},
|
||||
#if defined(OS_ANDROID)
|
||||
+ {"hide-ntp-tiles",
|
||||
+ flag_descriptions::kHideNTPTilesName,
|
||||
+ flag_descriptions::kHideNTPTilesDescription, kOsAndroid,
|
||||
+ SINGLE_VALUE_TYPE(switches::kHideNTPTiles)},
|
||||
{"clear-old-browsing-data", flag_descriptions::kClearOldBrowsingDataName,
|
||||
flag_descriptions::kClearOldBrowsingDataDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kClearOldBrowsingData)},
|
||||
diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
--- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
+++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
@@ -13,9 +13,11 @@
|
||||
#include "base/android/jni_array.h"
|
||||
#include "base/android/jni_string.h"
|
||||
#include "base/android/scoped_java_ref.h"
|
||||
+#include "base/command_line.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "chrome/browser/browser_process.h"
|
||||
+#include "chrome/common/chrome_switches.h"
|
||||
#include "chrome/browser/history/history_service_factory.h"
|
||||
#include "chrome/browser/ntp_tiles/chrome_most_visited_sites_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
@@ -167,6 +169,10 @@ void MostVisitedSitesBridge::JavaObserver::OnURLsAvailable(
|
||||
std::vector<int> sources;
|
||||
std::vector<int> section_types;
|
||||
std::vector<int64_t> data_generation_times;
|
||||
+
|
||||
+ // do not source any tile if NTP is disabled
|
||||
+ if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
+ switches::kHideNTPTiles)) {
|
||||
for (const auto& section : sections) {
|
||||
const NTPTilesVector& tiles = section.second;
|
||||
section_types.resize(section_types.size() + tiles.size(),
|
||||
@@ -181,6 +187,8 @@ void MostVisitedSitesBridge::JavaObserver::OnURLsAvailable(
|
||||
tile.data_generation_time.ToJavaTime());
|
||||
}
|
||||
}
|
||||
+ }
|
||||
+
|
||||
Java_MostVisitedSitesBridge_onURLsAvailable(
|
||||
env, observer_, ToJavaArrayOfStrings(env, titles),
|
||||
ToJavaArrayOfStrings(env, urls), ToJavaIntArray(env, section_types),
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -106,6 +106,10 @@ const char kBackgroundVideoTrackOptimizationDescription[] =
|
||||
"Disable video tracks when the video is played in the background to "
|
||||
"optimize performance.";
|
||||
|
||||
+const char kHideNTPTilesName[] = "Hide NTP tiles";
|
||||
+const char kHideNTPTilesDescription[] =
|
||||
+ "Hide all tiles on the New Tab Page, making it effectively empty all the time.";
|
||||
+
|
||||
const char kBleAdvertisingInExtensionsName[] = "BLE Advertising in Chrome Apps";
|
||||
const char kBleAdvertisingInExtensionsDescription[] =
|
||||
"Enables BLE Advertising in Chrome Apps. BLE Advertising might interfere "
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -92,6 +92,9 @@ extern const char kAv1DecoderDescription[];
|
||||
extern const char kBackgroundVideoTrackOptimizationName[];
|
||||
extern const char kBackgroundVideoTrackOptimizationDescription[];
|
||||
|
||||
+extern const char kHideNTPTilesName[];
|
||||
+extern const char kHideNTPTilesDescription[];
|
||||
+
|
||||
extern const char kBleAdvertisingInExtensionsName[];
|
||||
extern const char kBleAdvertisingInExtensionsDescription[];
|
||||
|
||||
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
|
||||
--- a/chrome/common/chrome_switches.cc
|
||||
+++ b/chrome/common/chrome_switches.cc
|
||||
@@ -88,6 +88,9 @@ const char kAutoSelectDesktopCaptureSource[] =
|
||||
const char kBypassAppBannerEngagementChecks[] =
|
||||
"bypass-app-banner-engagement-checks";
|
||||
|
||||
+// Hide all New Tab Page tiles, making it effectively empty all the time.
|
||||
+const char kHideNTPTiles[] = "hide-ntp-tiles";
|
||||
+
|
||||
// How often (in seconds) to check for updates. Should only be used for testing
|
||||
// purposes.
|
||||
const char kCheckForUpdateIntervalSec[] = "check-for-update-interval";
|
||||
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
|
||||
--- a/chrome/common/chrome_switches.h
|
||||
+++ b/chrome/common/chrome_switches.h
|
||||
@@ -46,6 +46,7 @@ extern const char kAuthServerWhitelist[];
|
||||
extern const char kAutoOpenDevToolsForTabs[];
|
||||
extern const char kAutoSelectDesktopCaptureSource[];
|
||||
extern const char kBypassAppBannerEngagementChecks[];
|
||||
+extern const char kHideNTPTiles[];
|
||||
extern const char kCheckForUpdateIntervalSec[];
|
||||
extern const char kCipherSuiteBlacklist[];
|
||||
extern const char kCloudPrintFile[];
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 29 Aug 2018 11:03:44 +0200
|
||||
Subject: Add custom tab intents privacy option
|
||||
|
||||
---
|
||||
chrome/android/java/res/values/values.xml | 3 +++
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../org/chromium/chrome/browser/LaunchIntentDispatcher.java | 2 ++
|
||||
.../chrome/browser/preferences/privacy/PrivacyPreferences.java | 10 ++++++++++
|
||||
chrome/android/java/strings/android_chrome_strings.grd | 7 +++++++
|
||||
5 files changed, 27 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -18,6 +18,9 @@
|
||||
<item name="top_controls_show_threshold" format="float" type="dimen">0.5</item>
|
||||
<item name="top_controls_hide_threshold" format="float" type="dimen">0.5</item>
|
||||
|
||||
+ <string name="allow_custom_tab_intents_title">Allow custom tab intents from applications</string>
|
||||
+ <string name="allow_custom_tab_intents_summary">When disabled, all custom tab intents will be processed as regular navigation instead</string>
|
||||
+
|
||||
<!-- The number of thumbnails that the thumbnail cache can hold. -->
|
||||
<integer name="default_thumbnail_cache_size">5</integer>
|
||||
<!-- The number of approximation thumbnails that the approximation cache can hold. -->
|
||||
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 @@
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="allow_custom_tab_intents"
|
||||
+ 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"/>
|
||||
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;
|
||||
import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
|
||||
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
|
||||
+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
|
||||
*/
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(PrivacyPreferences.PREF_ALLOW_CUSTOM_TAB_INTENTS, false)) return false;
|
||||
if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent)
|
||||
|| !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) {
|
||||
return false;
|
||||
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";
|
||||
+ 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));
|
||||
|
||||
+ 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);
|
||||
+ } 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);
|
||||
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
|
||||
Browse
|
||||
</message>
|
||||
|
||||
+ <message name="IDS_ALLOW_CUSTOM_TAB_INTENTS_TITLE" desc="Text for 'Allow custom tab intents' settings-privacy option.">
|
||||
+ Allow custom tab intents
|
||||
+ </message>
|
||||
+ <message name="IDS_ALLOW_CUSTOM_TAB_INTENTS_SUMMARY" desc="Summary text for 'Allow custom tab intents' settings-privacy option.">
|
||||
+ Allow applications to open custom tab intents, similar to webview.
|
||||
+ </message>
|
||||
+
|
||||
<!-- Migration strings -->
|
||||
<message name="IDS_UPDATING_CHROME" desc="String that indicates that Chrome is updating">
|
||||
Updating Chrome...
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 8 Jul 2018 23:06:52 +0200
|
||||
Subject: Add flag to disable custom tab intents
|
||||
|
||||
Custom tab intents allow apps to open URLs with a minimal browser UI;
|
||||
this flag allows disabling this functionality altogether and all custom tab
|
||||
intents will instead open as regular URLs.
|
||||
---
|
||||
.../java/src/org/chromium/chrome/browser/ChromeSwitches.java | 3 +++
|
||||
.../src/org/chromium/chrome/browser/LaunchIntentDispatcher.java | 8 ++++++--
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
chrome/common/chrome_switches.cc | 3 +++
|
||||
chrome/common/chrome_switches.h | 1 +
|
||||
7 files changed, 24 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeSwitches.java
|
||||
@@ -177,6 +177,9 @@ public abstract class ChromeSwitches {
|
||||
/** Open all custom tabs in a new task. Used only for experimental purposes. */
|
||||
public static final String OPEN_CUSTOM_TABS_IN_NEW_TASK = "open-custom-tabs-in-new-task";
|
||||
|
||||
+ /** Disallow custom tab intents. */
|
||||
+ public static final String DISALLOW_CUSTOM_TAB_INTENT = "disallow-custom-tab-intent";
|
||||
+
|
||||
/**
|
||||
* Don't crash on undispatched VIEW intents sent to .Main.
|
||||
* See ChromeTabbedActivity.maybeDispatchExplicitMainViewIntent() for more info.
|
||||
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
|
||||
@@ -149,9 +149,13 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
recordIntentMetrics();
|
||||
|
||||
mIsVrIntent = VrIntentUtils.isVrIntent(mIntent);
|
||||
- boolean isCustomTabIntent = (!mIsVrIntent && isCustomTabIntent(mIntent))
|
||||
+
|
||||
+ if (!CommandLine.getInstance().hasSwitch(ChromeSwitches.DISALLOW_CUSTOM_TAB_INTENT)) {
|
||||
+ mIsCustomTabIntent = (!mIsVrIntent && isCustomTabIntent(mIntent))
|
||||
|| (mIsVrIntent && VrIntentUtils.isCustomTabVrIntent(mIntent));
|
||||
- mIsCustomTabIntent = isCustomTabIntent;
|
||||
+ } else {
|
||||
+ mIsCustomTabIntent = false;
|
||||
+ }
|
||||
}
|
||||
|
||||
/**
|
||||
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
|
||||
@@ -1302,6 +1302,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kMediaScreenCaptureName,
|
||||
flag_descriptions::kMediaScreenCaptureDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kUserMediaScreenCapturing)},
|
||||
+ {"disallow-custom-tab-intent",
|
||||
+ flag_descriptions::kDisallowCustomTabIntentName,
|
||||
+ flag_descriptions::kDisallowCustomTabIntentDescription, kOsAndroid,
|
||||
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisallowCustomTabIntent)},
|
||||
#endif // OS_ANDROID
|
||||
// Native client is compiled out if ENABLE_NACL is not set.
|
||||
#if BUILDFLAG(ENABLE_NACL)
|
||||
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
|
||||
@@ -2043,6 +2043,10 @@ const char kContextualSearchSecondTapDescription[] =
|
||||
"Enables triggering on a second tap gesture even when Ranker would "
|
||||
"normally suppress that tap.";
|
||||
|
||||
+const char kDisallowCustomTabIntentName[] = "Disallow custom tab intent";
|
||||
+const char kDisallowCustomTabIntentDescription[] =
|
||||
+ "Do not allow apps to open custom tab intents and use a regular browsing interaction instead.";
|
||||
+
|
||||
const char kDontPrefetchLibrariesName[] = "Don't Prefetch Libraries";
|
||||
const char kDontPrefetchLibrariesDescription[] =
|
||||
"Don't prefetch libraries after loading.";
|
||||
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
|
||||
@@ -1244,6 +1244,9 @@ extern const char kContextualSearchRankerQueryDescription[];
|
||||
extern const char kContextualSearchSecondTapName[];
|
||||
extern const char kContextualSearchSecondTapDescription[];
|
||||
|
||||
+extern const char kDisallowCustomTabIntentName[];
|
||||
+extern const char kDisallowCustomTabIntentDescription[];
|
||||
+
|
||||
extern const char kDontPrefetchLibrariesName[];
|
||||
extern const char kDontPrefetchLibrariesDescription[];
|
||||
|
||||
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
|
||||
--- a/chrome/common/chrome_switches.cc
|
||||
+++ b/chrome/common/chrome_switches.cc
|
||||
@@ -218,6 +218,9 @@ const char kDisableExtensions[] = "disable-extensions";
|
||||
// Disable extensions except those specified in a comma-separated list.
|
||||
const char kDisableExtensionsExcept[] = "disable-extensions-except";
|
||||
|
||||
+// Disallow apps to use custom tab intents and use a regular URL open intent instead.
|
||||
+const char kDisallowCustomTabIntent[] = "disallow-custom-tab-intent";
|
||||
+
|
||||
// Disable checking for user opt-in for extensions that want to inject script
|
||||
// into file URLs (ie, always allow it). This is used during automated testing.
|
||||
const char kDisableExtensionsFileAccessCheck[] =
|
||||
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
|
||||
--- a/chrome/common/chrome_switches.h
|
||||
+++ b/chrome/common/chrome_switches.h
|
||||
@@ -72,6 +72,7 @@ extern const char kDisableCastStreamingHWEncoding[];
|
||||
extern const char kDisableClientSidePhishingDetection[];
|
||||
extern const char kDisableComponentExtensionsWithBackgroundPages[];
|
||||
extern const char kDisableComponentUpdate[];
|
||||
+extern const char kDisallowCustomTabIntent[];
|
||||
extern const char kDisableDefaultApps[];
|
||||
extern const char kDisableDeviceDiscoveryNotifications[];
|
||||
extern const char kDisableDomainReliability[];
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,200 @@
|
||||
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
|
||||
|
||||
---
|
||||
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 ++++++++++++++++++++++
|
||||
.../java/strings/android_chrome_strings.grd | 6 ++++++
|
||||
.../android/preferences/pref_service_bridge.cc | 19 ++++++++++++++++++
|
||||
6 files changed, 68 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -39,6 +39,9 @@
|
||||
<integer name="reload_button_level_reload">0</integer>
|
||||
<integer name="reload_button_level_stop">1</integer>
|
||||
|
||||
+ <string name="allow_cookies_session_only_title">Keep cookies only until you quit your browser</string>
|
||||
+ <string name="allow_cookies_session_only_summary">When enabled, all cookies will be erased when the browsing session is over</string>
|
||||
+
|
||||
<!-- Help and Feedback
|
||||
These constants should be in sync with the context names on go/mobilehelprecs.
|
||||
If the context ID cannot be found, the default help page will be shown to the user.-->
|
||||
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 @@
|
||||
android:summary="@string/allow_third_party_cookies_summary"
|
||||
android:defaultValue="true"
|
||||
android:persistent="false" />
|
||||
+ <!-- A toggle for cookies to be saved only until session exit, only shown for the Cookies category. -->
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="cookies_session_only"
|
||||
+ android:title="@string/allow_cookies_session_only_title"
|
||||
+ android:summary="@string/allow_cookies_session_only_summary"
|
||||
+ android:defaultValue="true"
|
||||
+ android:persistent="false" />
|
||||
<!-- A toggle for enabling vibration in notifications. -->
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
android:key="notifications_vibrate"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
@@ -245,6 +245,10 @@ public class PrefServiceBridge {
|
||||
return nativeGetBlockThirdPartyCookiesEnabled();
|
||||
}
|
||||
|
||||
+ public boolean isCookiesSessionOnlyEnabled() {
|
||||
+ return nativeGetCookiesSessionOnlyEnabled();
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @return Whether third-party cookie blocking is configured by policy
|
||||
*/
|
||||
@@ -630,6 +634,10 @@ public class PrefServiceBridge {
|
||||
nativeSetBlockThirdPartyCookiesEnabled(enabled);
|
||||
}
|
||||
|
||||
+ public void setCookiesSessionOnlyEnabled(boolean enabled) {
|
||||
+ nativeSetCookiesSessionOnlyEnabled(enabled);
|
||||
+ }
|
||||
+
|
||||
public void setDoNotTrackEnabled(boolean enabled) {
|
||||
nativeSetDoNotTrackEnabled(enabled);
|
||||
}
|
||||
@@ -1026,6 +1034,7 @@ public class PrefServiceBridge {
|
||||
private native boolean nativeGetAutoplayEnabled();
|
||||
private native boolean nativeGetBackgroundSyncEnabled();
|
||||
private native boolean nativeGetBlockThirdPartyCookiesEnabled();
|
||||
+ private native boolean nativeGetCookiesSessionOnlyEnabled();
|
||||
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);
|
||||
+ private native void nativeSetCookiesSessionOnlyEnabled(boolean enabled);
|
||||
private native void nativeSetClipboardEnabled(boolean allow);
|
||||
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";
|
||||
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
|
||||
|
||||
if (type == SiteSettingsCategory.Type.COOKIES) {
|
||||
updateThirdPartyCookiesCheckBox();
|
||||
+ updateCookiesSessionOnlyCheckBox();
|
||||
} else if (type == SiteSettingsCategory.Type.NOTIFICATIONS) {
|
||||
updateNotificationsVibrateCheckBox();
|
||||
}
|
||||
@@ -491,6 +493,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
getInfoForOrigins();
|
||||
} else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
PrefServiceBridge.getInstance().setBlockThirdPartyCookiesEnabled(!((boolean) newValue));
|
||||
+ } else if (COOKIES_SESSION_ONLY_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
+ PrefServiceBridge.getInstance().setCookiesSessionOnlyEnabled(!((boolean) newValue));
|
||||
} else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
PrefServiceBridge.getInstance().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.
|
||||
+ Preference cookiesSessionOnly = getPreferenceScreen().findPreference(
|
||||
+ COOKIES_SESSION_ONLY_TOGGLE_KEY);
|
||||
+ if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
|
||||
+ cookiesSessionOnly.setOnPreferenceChangeListener(this);
|
||||
+ updateCookiesSessionOnlyCheckBox();
|
||||
+ } else {
|
||||
+ getPreferenceScreen().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
|
||||
preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged());
|
||||
}
|
||||
|
||||
+ private void updateCookiesSessionOnlyCheckBox() {
|
||||
+ ChromeBaseCheckBoxPreference cookiesSessionOnlyPref = (ChromeBaseCheckBoxPreference)
|
||||
+ getPreferenceScreen().findPreference(COOKIES_SESSION_ONLY_TOGGLE_KEY);
|
||||
+ cookiesSessionOnlyPref.setChecked(
|
||||
+ !PrefServiceBridge.getInstance().isCookiesSessionOnlyEnabled());
|
||||
+ cookiesSessionOnlyPref.setEnabled(PrefServiceBridge.getInstance().isCategoryEnabled(
|
||||
+ ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES));
|
||||
+ }
|
||||
+
|
||||
private void updateNotificationsVibrateCheckBox() {
|
||||
ChromeBaseCheckBoxPreference preference =
|
||||
(ChromeBaseCheckBoxPreference) getPreferenceScreen().findPreference(
|
||||
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
|
||||
<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>
|
||||
+ <message name="IDS_ALLOW_COOKIES_SESSION_ONLY_TITLE" desc="Title for Allow Cookies Session Only preference">
|
||||
+ Keep cookies only until you quit your browser
|
||||
+ </message>
|
||||
+ <message name="IDS_ALLOW_COOKIES_SESSION_ONLY_SUMMARY" desc="Summary text for Allow Session Only Cookies preference">
|
||||
+ When enabled, all cookies will be erased when the browsing session is over
|
||||
+ </message>
|
||||
<message name="IDS_JAVASCRIPT_PERMISSION_TITLE" desc="Title of the permission to run javascript [CHAR-LIMIT=32]">
|
||||
JavaScript
|
||||
</message>
|
||||
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(
|
||||
return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies);
|
||||
}
|
||||
|
||||
+static jboolean JNI_PrefServiceBridge_GetCookiesSessionOnlyEnabled(
|
||||
+ JNIEnv* env,
|
||||
+ 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);
|
||||
+}
|
||||
+
|
||||
static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj) {
|
||||
@@ -741,6 +749,17 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
|
||||
GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled);
|
||||
}
|
||||
|
||||
+static void JNI_PrefServiceBridge_SetCookiesSessionOnlyEnabled(
|
||||
+ JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& obj,
|
||||
+ jboolean enabled) {
|
||||
+ HostContentSettingsMap* host_content_settings_map =
|
||||
+ HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile());
|
||||
+ host_content_settings_map->SetDefaultContentSetting(
|
||||
+ CONTENT_SETTINGS_TYPE_COOKIES,
|
||||
+ enabled ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_SESSION_ONLY);
|
||||
+}
|
||||
+
|
||||
static void JNI_PrefServiceBridge_SetRememberPasswordsEnabled(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-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
|
||||
|
||||
+1
-1
@@ -32,5 +32,5 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+817
@@ -0,0 +1,817 @@
|
||||
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
|
||||
|
||||
---
|
||||
.../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/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 +-
|
||||
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(-)
|
||||
|
||||
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
|
||||
+++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
@@ -22,6 +22,20 @@
|
||||
app:showAsAction="ifRoom"
|
||||
app:iconTint="@color/dark_mode_tint" />
|
||||
<item
|
||||
+ android:id="@+id/import_menu_id"
|
||||
+ android:icon="@drawable/add_circle_blue"
|
||||
+ android:title="@string/import_bookmarks"
|
||||
+ android:visible="true"
|
||||
+ app:showAsAction="ifRoom"
|
||||
+ app:iconTint="@color/dark_mode_tint" />
|
||||
+ <item
|
||||
+ android:id="@+id/export_menu_id"
|
||||
+ android:icon="@drawable/ic_file_download_white_24dp"
|
||||
+ android:title="@string/export_bookmarks"
|
||||
+ android:visible="true"
|
||||
+ app:showAsAction="ifRoom"
|
||||
+ app:iconTint="@color/dark_mode_tint" />
|
||||
+ <item
|
||||
android:id="@+id/close_menu_id"
|
||||
android:icon="@drawable/btn_close"
|
||||
android:title="@string/bookmark_action_bar_close"
|
||||
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>
|
||||
} else if (menuItem.getItemId() == R.id.search_menu_id) {
|
||||
mDelegate.openSearchUI();
|
||||
return true;
|
||||
+ } else if (menuItem.getItemId() == R.id.import_menu_id) {
|
||||
+ mDelegate.importBookmarks();
|
||||
+ return true;
|
||||
+ } else if (menuItem.getItemId() == R.id.export_menu_id) {
|
||||
+ mDelegate.exportBookmarks();
|
||||
+ return true;
|
||||
}
|
||||
|
||||
SelectionDelegate<BookmarkId> selectionDelegate = mDelegate.getSelectionDelegate();
|
||||
@@ -125,6 +131,8 @@ public class BookmarkActionBar extends SelectableListToolbar<BookmarkId>
|
||||
void showLoadingUi() {
|
||||
setTitle(null);
|
||||
setNavigationButton(NAVIGATION_BUTTON_NONE);
|
||||
+ getMenu().findItem(R.id.import_menu_id).setVisible(false);
|
||||
+ getMenu().findItem(R.id.export_menu_id).setVisible(false);
|
||||
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>
|
||||
super.showNormalView();
|
||||
|
||||
if (mDelegate == null) {
|
||||
+ getMenu().findItem(R.id.import_menu_id).setVisible(false);
|
||||
+ getMenu().findItem(R.id.export_menu_id).setVisible(false);
|
||||
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>
|
||||
public void onFolderStateSet(BookmarkId folder) {
|
||||
mCurrentFolder = mDelegate.getModel().getBookmarkById(folder);
|
||||
|
||||
+ getMenu().findItem(R.id.import_menu_id).setVisible(true);
|
||||
+ getMenu().findItem(R.id.export_menu_id).setVisible(true);
|
||||
getMenu().findItem(R.id.search_menu_id).setVisible(true);
|
||||
getMenu().findItem(R.id.edit_menu_id).setVisible(mCurrentFolder.isEditable());
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
|
||||
@@ -12,6 +12,7 @@ import org.chromium.base.VisibleForTesting;
|
||||
import org.chromium.chrome.browser.SnackbarActivity;
|
||||
import org.chromium.chrome.browser.UrlConstants;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
+import org.chromium.ui.base.ActivityWindowAndroid;
|
||||
|
||||
/**
|
||||
* The activity that displays the bookmark UI on the phone. It keeps a {@link BookmarkManager}
|
||||
@@ -21,6 +22,7 @@ import org.chromium.components.bookmarks.BookmarkId;
|
||||
public class BookmarkActivity extends SnackbarActivity {
|
||||
|
||||
private BookmarkManager mBookmarkManager;
|
||||
+ private ActivityWindowAndroid mWindowAndroid;
|
||||
static final int EDIT_BOOKMARK_REQUEST_CODE = 14;
|
||||
public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId";
|
||||
|
||||
@@ -32,6 +34,22 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL;
|
||||
mBookmarkManager.updateForUrl(url);
|
||||
setContentView(mBookmarkManager.getView());
|
||||
+
|
||||
+ final boolean listenToActivityState = true;
|
||||
+ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState);
|
||||
+ mWindowAndroid.restoreInstanceState(savedInstanceState);
|
||||
+ mBookmarkManager.setWindow(mWindowAndroid);
|
||||
+ // Set up the animation placeholder to be the SurfaceView. This disables the
|
||||
+ // SurfaceView's 'hole' clipping during animations that are notified to the window.
|
||||
+// mWindowAndroid.setAnimationPlaceholderView(
|
||||
+// mBookmarkManager.getContentViewRenderView().getSurfaceView());
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ protected void onSaveInstanceState(Bundle outState) {
|
||||
+ super.onSaveInstanceState(outState);
|
||||
+
|
||||
+ mWindowAndroid.saveInstanceState(outState);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -48,6 +66,7 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
+ mWindowAndroid.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
|
||||
BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(data.getStringExtra(
|
||||
INTENT_VISIT_BOOKMARK_ID));
|
||||
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;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
import org.chromium.components.bookmarks.BookmarkType;
|
||||
import org.chromium.components.url_formatter.UrlFormatter;
|
||||
+import org.chromium.ui.base.WindowAndroid;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -508,6 +509,24 @@ public class BookmarkBridge {
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Import bookmarks from a selected file.
|
||||
+ * @param window The current window of the bookmarks activity or page.
|
||||
+ */
|
||||
+ public void importBookmarks(WindowAndroid window) {
|
||||
+ assert mIsNativeBookmarkModelLoaded;
|
||||
+ nativeImportBookmarks(mNativeBookmarkBridge, window);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Export bookmarks to a path selected by the user.
|
||||
+ * @param window The current window of the bookmarks activity or page.
|
||||
+ */
|
||||
+ public void exportBookmarks() {
|
||||
+ assert mIsNativeBookmarkModelLoaded;
|
||||
+ nativeExportBookmarks(mNativeBookmarkBridge);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
* 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 {
|
||||
boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
|
||||
private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
|
||||
int index);
|
||||
+ private native void nativeImportBookmarks(long nativeBookmarkBridge, WindowAndroid window);
|
||||
+ private native void nativeExportBookmarks(long nativeBookmarkBridge);
|
||||
private native int nativeGetTotalBookmarkCount(long nativeBookmarkBridge, long id, int type);
|
||||
private native void nativeSetBookmarkTitle(long nativeBookmarkBridge, long id, int type,
|
||||
String title);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkDelegate.java
|
||||
@@ -69,6 +69,16 @@ interface BookmarkDelegate {
|
||||
void openSearchUI();
|
||||
|
||||
/**
|
||||
+ * Imports bookmarks from user-selected file.
|
||||
+ */
|
||||
+ void importBookmarks();
|
||||
+
|
||||
+ /**
|
||||
+ * Exports bookmarks to downloads directory.
|
||||
+ */
|
||||
+ void exportBookmarks();
|
||||
+
|
||||
+ /**
|
||||
* Dismisses the search UI.
|
||||
*/
|
||||
void closeSearchUI();
|
||||
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;
|
||||
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.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;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
+import org.chromium.ui.base.ActivityWindowAndroid;
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
@@ -55,6 +57,7 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
private Activity mActivity;
|
||||
private ViewGroup mMainView;
|
||||
private BookmarkModel mBookmarkModel;
|
||||
+ private ActivityWindowAndroid mWindowAndroid;
|
||||
private BookmarkUndoController mUndoController;
|
||||
private final ObserverList<BookmarkUIObserver> mUIObservers = new ObserverList<>();
|
||||
private BasicNativePage mNativePage;
|
||||
@@ -267,6 +270,13 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Sets the Android window that is used by further intents created by the bookmark activity.
|
||||
+ */
|
||||
+ public void setWindow(ActivityWindowAndroid window) {
|
||||
+ mWindowAndroid = window;
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
* @return Current URL representing the UI state of bookmark manager. If no state has been shown
|
||||
* yet in this session, on phone return last used state stored in preference; on tablet
|
||||
* return the url previously set by {@link #updateForUrl(String)}.
|
||||
@@ -414,6 +424,16 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
}
|
||||
|
||||
@Override
|
||||
+ public void importBookmarks() {
|
||||
+ mBookmarkModel.importBookmarks(mWindowAndroid);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void exportBookmarks() {
|
||||
+ mBookmarkModel.exportBookmarks();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
public void openSearchUI() {
|
||||
setState(BookmarkUIState.createSearchState());
|
||||
mSelectableListLayout.onStartSearch();
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java
|
||||
@@ -35,6 +35,7 @@ public class BookmarkPage extends BasicNativePage {
|
||||
mManager = new BookmarkManager(
|
||||
activity, false, ((SnackbarManageable) activity).getSnackbarManager());
|
||||
mManager.setBasicNativePage(this);
|
||||
+ mManager.setWindow(activity.getWindowAndroid());
|
||||
mTitle = activity.getString(R.string.bookmarks);
|
||||
}
|
||||
|
||||
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:
|
||||
<message name="IDS_SEARCH" desc="The label for a search button.">
|
||||
Search
|
||||
</message>
|
||||
+ <message name="IDS_IMPORT_BOOKMARKS" desc="The label for the import bookmarks button.">
|
||||
+ Import
|
||||
+ </message>
|
||||
+ <message name="IDS_EXPORT_BOOKMARKS" desc="The label for an export bookmarks button.">
|
||||
+ Export
|
||||
+ </message>
|
||||
<message name="IDS_SHOW_INFO" desc="The label for a info button to show info.">
|
||||
Show Info
|
||||
</message>
|
||||
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") {
|
||||
"bitmap_fetcher/bitmap_fetcher_service.h",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
|
||||
+ "importer/profile_writer.cc",
|
||||
+ "importer/profile_writer.h",
|
||||
+ "bookmarks/bookmark_html_writer.cc",
|
||||
+ "bookmarks/bookmark_html_writer.h",
|
||||
"bookmarks/bookmark_model_factory.cc",
|
||||
"bookmarks/bookmark_model_factory.h",
|
||||
"bookmarks/bookmark_stats.cc",
|
||||
@@ -2479,8 +2483,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",
|
||||
- "bookmarks/bookmark_html_writer.cc",
|
||||
- "bookmarks/bookmark_html_writer.h",
|
||||
"certificate_viewer.h",
|
||||
"chrome_browser_field_trials_desktop.cc",
|
||||
"chrome_browser_field_trials_desktop.h",
|
||||
@@ -2569,8 +2571,6 @@ jumbo_split_static_library("browser") {
|
||||
"importer/importer_uma.h",
|
||||
"importer/in_process_importer_bridge.cc",
|
||||
"importer/in_process_importer_bridge.h",
|
||||
- "importer/profile_writer.cc",
|
||||
- "importer/profile_writer.h",
|
||||
"lifetime/browser_close_manager.cc",
|
||||
"lifetime/browser_close_manager.h",
|
||||
"lifetime/termination_notification.cc",
|
||||
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
|
||||
@@ -9,18 +9,29 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
+#include "base/android/content_uri_utils.h"
|
||||
#include "base/android/jni_array.h"
|
||||
#include "base/android/jni_string.h"
|
||||
+#include "base/android/path_utils.h"
|
||||
#include "base/containers/stack.h"
|
||||
#include "base/containers/stack_container.h"
|
||||
#include "base/i18n/string_compare.h"
|
||||
+#include "base/strings/utf_string_conversions.h"
|
||||
+#include "chrome/utility/importer/bookmark_html_reader.h"
|
||||
+#include "chrome/browser/bookmarks/bookmark_html_writer.h"
|
||||
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
||||
#include "chrome/browser/bookmarks/managed_bookmark_service_factory.h"
|
||||
+#include "chrome/browser/importer/profile_writer.h"
|
||||
+#include "chrome/browser/platform_util.h"
|
||||
+#include "chrome/browser/ui/chrome_select_file_policy.h"
|
||||
#include "chrome/browser/profiles/incognito_helpers.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/profiles/profile_android.h"
|
||||
#include "chrome/browser/signin/signin_manager_factory.h"
|
||||
#include "chrome/browser/undo/bookmark_undo_service_factory.h"
|
||||
+#include "chrome/common/importer/imported_bookmark_entry.h"
|
||||
+#include "chrome/common/importer/importer_data_types.h"
|
||||
+#include "chrome/common/url_constants.h"
|
||||
#include "components/bookmarks/browser/bookmark_model.h"
|
||||
#include "components/bookmarks/browser/bookmark_utils.h"
|
||||
#include "components/bookmarks/browser/scoped_group_bookmark_actions.h"
|
||||
@@ -30,11 +41,14 @@
|
||||
#include "components/bookmarks/managed/managed_bookmark_service.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
#include "components/query_parser/query_parser.h"
|
||||
+#include "components/search_engines/template_url.h"
|
||||
#include "components/signin/core/browser/signin_manager.h"
|
||||
#include "components/undo/bookmark_undo_service.h"
|
||||
#include "components/undo/undo_manager.h"
|
||||
+#include "components/url_formatter/url_fixer.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "jni/BookmarkBridge_jni.h"
|
||||
+#include "ui/android/window_android.h"
|
||||
|
||||
using base::android::AttachCurrentThread;
|
||||
using base::android::ConvertUTF8ToJavaString;
|
||||
@@ -53,6 +67,57 @@ using bookmarks::BookmarkPermanentNode;
|
||||
using bookmarks::BookmarkType;
|
||||
using content::BrowserThread;
|
||||
|
||||
+namespace internal {
|
||||
+
|
||||
+// Returns true if |url| has a valid scheme that we allow to import. We
|
||||
+// filter out the URL with a unsupported scheme.
|
||||
+bool CanImportURL(const GURL& url) {
|
||||
+ // The URL is not valid.
|
||||
+ if (!url.is_valid())
|
||||
+ return false;
|
||||
+
|
||||
+ // Filter out the URLs with unsupported schemes.
|
||||
+ const char* const kInvalidSchemes[] = {"wyciwyg", "place"};
|
||||
+ for (size_t i = 0; i < arraysize(kInvalidSchemes); ++i) {
|
||||
+ if (url.SchemeIs(kInvalidSchemes[i]))
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // Check if |url| is about:blank.
|
||||
+ if (url == url::kAboutBlankURL)
|
||||
+ return true;
|
||||
+
|
||||
+ // If |url| starts with chrome:// or about:, check if it's one of the URLs
|
||||
+ // that we support.
|
||||
+ if (url.SchemeIs(content::kChromeUIScheme) ||
|
||||
+ url.SchemeIs(url::kAboutScheme)) {
|
||||
+ if (url.host_piece() == chrome::kChromeUIUberHost ||
|
||||
+ url.host_piece() == chrome::kChromeUIAboutHost)
|
||||
+ return true;
|
||||
+
|
||||
+ GURL fixed_url(url_formatter::FixupURL(url.spec(), std::string()));
|
||||
+ for (size_t i = 0; i < chrome::kNumberOfChromeHostURLs; ++i) {
|
||||
+ if (fixed_url.DomainIs(chrome::kChromeHostURLs[i]))
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ for (size_t i = 0; i < chrome::kNumberOfChromeDebugURLs; ++i) {
|
||||
+ if (fixed_url == chrome::kChromeDebugURLs[i])
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ // If url has either chrome:// or about: schemes but wasn't found in the
|
||||
+ // above lists, it means we don't support it, so we don't allow the user
|
||||
+ // to import it.
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // Otherwise, we assume the url has a valid (importable) scheme.
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+} // internal
|
||||
+
|
||||
namespace {
|
||||
|
||||
class BookmarkTitleComparer {
|
||||
@@ -129,6 +194,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
bookmark_model_->RemoveObserver(this);
|
||||
if (partner_bookmarks_shim_)
|
||||
partner_bookmarks_shim_->RemoveObserver(this);
|
||||
+ // There may be pending file dialogs, we need to tell them that we've gone
|
||||
+ // away so they don't try and call back to us.
|
||||
+ if (select_file_dialog_)
|
||||
+ select_file_dialog_->ListenerDestroyed();
|
||||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
|
||||
@@ -470,6 +539,156 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
+void BookmarkBridge::ImportBookmarks(JNIEnv* env,
|
||||
+ const JavaParamRef<jobject>& obj,
|
||||
+ const JavaParamRef<jobject>& java_window) {
|
||||
+ DCHECK(IsLoaded());
|
||||
+
|
||||
+ ui::WindowAndroid* window =
|
||||
+ ui::WindowAndroid::FromJavaWindowAndroid(java_window);
|
||||
+ CHECK(window);
|
||||
+
|
||||
+ select_file_dialog_ = ui::SelectFileDialog::Create(
|
||||
+ this, std::make_unique<ChromeSelectFilePolicy>(nullptr));
|
||||
+
|
||||
+ //NOTE: extension and description are not used on Android
|
||||
+ ui::SelectFileDialog::FileTypeInfo file_type_info;
|
||||
+ 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;
|
||||
+
|
||||
+ const base::FilePath file_path;
|
||||
+
|
||||
+ select_file_dialog_->SelectFile(
|
||||
+ ui::SelectFileDialog::SELECT_OPEN_FILE,
|
||||
+ base::string16(),
|
||||
+ file_path,
|
||||
+ NULL,
|
||||
+ 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;
|
||||
+}
|
||||
+
|
||||
+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;
|
||||
+ }
|
||||
+
|
||||
+ path = path.Append(FILE_PATH_LITERAL("bookmarks.html"));
|
||||
+
|
||||
+// base::PostTaskWithTraits(FROM_HERE, {base::MayBlock()},
|
||||
+// base::BindOnce(&ExporterCallback, profile_, path));
|
||||
+ ExporterCallback(profile_, path);
|
||||
+}
|
||||
+
|
||||
+// Attempts to create a TemplateURL from the provided data. |title| is optional.
|
||||
+// If TemplateURL creation fails, returns null.
|
||||
+std::unique_ptr<TemplateURL> CreateTemplateURL(const base::string16& url,
|
||||
+ const base::string16& keyword,
|
||||
+ const base::string16& title) {
|
||||
+ if (url.empty() || keyword.empty())
|
||||
+ return nullptr;
|
||||
+ TemplateURLData data;
|
||||
+ data.SetKeyword(keyword);
|
||||
+ // We set short name by using the title if it exists.
|
||||
+ // Otherwise, we use the shortcut.
|
||||
+ data.SetShortName(title.empty() ? keyword : title);
|
||||
+ data.SetURL(TemplateURLRef::DisplayURLToURLRef(url));
|
||||
+ 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;
|
||||
+ if (path.IsContentUri()) {
|
||||
+ file = base::OpenContentUriForRead(path);
|
||||
+ } else {
|
||||
+ file.Initialize(path, base::File::FLAG_OPEN | base::File::FLAG_READ);
|
||||
+ }
|
||||
+ if (!file.IsValid()) {
|
||||
+ LOG(ERROR) << "Cannot open bookmarks file for import";
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ auto fileLength = file.GetLength();
|
||||
+ if (-1 == fileLength) {
|
||||
+ LOG(ERROR) << "Cannot read bookmarks file length";
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (fileLength > 10 * 1024 * 1024) {
|
||||
+ LOG(ERROR) << "Bookmarks file is too big";
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ std::vector<char> buffer(fileLength);
|
||||
+ if (-1 == file.ReadAtCurrentPos(buffer.data(), fileLength)) {
|
||||
+ LOG(ERROR) << "Could not read bookmarks file";
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (buffer.empty()) {
|
||||
+ LOG(ERROR) << "Empty bookmarks file";
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ std::string content(buffer.begin(), buffer.end());
|
||||
+// base::PostTaskWithTraits(FROM_HERE, {base::MayBlock()},
|
||||
+// base::BindOnce(&ImporterCallback, profile_, path, content));
|
||||
+ ImporterCallback(profile_, path, content);
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::FileSelectionCanceled(void* params) {
|
||||
+}
|
||||
+
|
||||
void BookmarkBridge::SetBookmarkTitle(JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
jlong id,
|
||||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.h
|
||||
@@ -13,6 +13,8 @@
|
||||
#include "components/bookmarks/browser/base_bookmark_model_observer.h"
|
||||
#include "components/bookmarks/common/android/bookmark_id.h"
|
||||
#include "components/prefs/pref_change_registrar.h"
|
||||
+#include "components/search_engines/template_url.h"
|
||||
+#include "ui/shell_dialogs/select_file_dialog.h"
|
||||
|
||||
namespace bookmarks {
|
||||
class BookmarkModel;
|
||||
@@ -26,7 +28,8 @@ class Profile;
|
||||
// bookmark page. This fetches the bookmarks, title, urls, folder
|
||||
// hierarchy.
|
||||
class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
- public PartnerBookmarksShim::Observer {
|
||||
+ public PartnerBookmarksShim::Observer,
|
||||
+ public ui::SelectFileDialog::Listener {
|
||||
public:
|
||||
BookmarkBridge(JNIEnv* env,
|
||||
const base::android::JavaRef<jobject>& obj,
|
||||
@@ -36,6 +39,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
bool IsDoingExtensiveChanges(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
|
||||
+ // SelectFileDialog::Listener implementation.
|
||||
+ void FileSelected(const base::FilePath& path,
|
||||
+ int index,
|
||||
+ void* params) override;
|
||||
+ void FileSelectionCanceled(void* params) override;
|
||||
+
|
||||
jboolean IsEditBookmarksEnabled(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj);
|
||||
@@ -116,6 +125,13 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
jlong id,
|
||||
jint type);
|
||||
|
||||
+ void ImportBookmarks(JNIEnv* env,
|
||||
+ const base::android::JavaParamRef<jobject>& obj,
|
||||
+ const base::android::JavaParamRef<jobject>& java_window);
|
||||
+
|
||||
+ void ExportBookmarks(JNIEnv* env,
|
||||
+ const base::android::JavaParamRef<jobject>& obj);
|
||||
+
|
||||
void SetBookmarkTitle(JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& obj,
|
||||
jlong id,
|
||||
@@ -267,6 +283,7 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
std::unique_ptr<bookmarks::ScopedGroupBookmarkActions>
|
||||
grouped_bookmark_actions_;
|
||||
PrefChangeRegistrar pref_change_registrar_;
|
||||
+ scoped_refptr<ui::SelectFileDialog> select_file_dialog_;
|
||||
|
||||
// Information about the Partner bookmarks (must check for IsLoaded()).
|
||||
// This is owned by profile.
|
||||
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,
|
||||
HistoryServiceFactory::GetForProfile(profile_,
|
||||
ServiceAccessType::EXPLICIT_ACCESS)
|
||||
->AddPagesWithDetails(page, visit_source);
|
||||
+#if !defined(OS_ANDROID)
|
||||
// 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());
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ProfileWriter::AddHomepage(const GURL& home_page) {
|
||||
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") {
|
||||
sources += [
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
+ ## Bromite dependencies for bookmark import functionality
|
||||
+ "importer/imported_bookmark_entry.cc",
|
||||
+ "importer/imported_bookmark_entry.h",
|
||||
]
|
||||
} else {
|
||||
# Non-Android.
|
||||
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") {
|
||||
|
||||
if (!is_android) {
|
||||
sources += [
|
||||
- "importer/bookmark_html_reader.cc",
|
||||
- "importer/bookmark_html_reader.h",
|
||||
"importer/bookmarks_file_importer.cc",
|
||||
"importer/bookmarks_file_importer.h",
|
||||
"importer/edge_database_reader_win.cc",
|
||||
@@ -158,6 +156,11 @@ static_library("utility") {
|
||||
]
|
||||
}
|
||||
|
||||
+ sources += [
|
||||
+ "importer/bookmark_html_reader.cc",
|
||||
+ "importer/bookmark_html_reader.h",
|
||||
+ ]
|
||||
+
|
||||
if (use_nss_certs) {
|
||||
sources += [
|
||||
"importer/nss_decryptor_system_nss.cc",
|
||||
diff --git a/chrome/utility/importer/bookmark_html_reader.cc b/chrome/utility/importer/bookmark_html_reader.cc
|
||||
--- a/chrome/utility/importer/bookmark_html_reader.cc
|
||||
+++ b/chrome/utility/importer/bookmark_html_reader.cc
|
||||
@@ -17,7 +17,9 @@
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/time/time.h"
|
||||
#include "chrome/common/importer/imported_bookmark_entry.h"
|
||||
+#if !defined(OS_ANDROID)
|
||||
#include "chrome/utility/importer/favicon_reencode.h"
|
||||
+#endif
|
||||
#include "components/search_engines/search_terms_data.h"
|
||||
#include "components/search_engines/template_url.h"
|
||||
#include "net/base/data_url.h"
|
||||
@@ -56,6 +58,7 @@ bool GetAttribute(const std::string& attribute_list,
|
||||
return true;
|
||||
}
|
||||
|
||||
+#if !defined(OS_ANDROID)
|
||||
// Given the URL of a page and a favicon data URL, adds an appropriate record
|
||||
// to the given favicon usage vector.
|
||||
void DataURLToFaviconUsage(const GURL& link_url,
|
||||
@@ -86,6 +89,7 @@ void DataURLToFaviconUsage(const GURL& link_url,
|
||||
|
||||
favicons->push_back(usage);
|
||||
}
|
||||
+#endif
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -108,12 +112,10 @@ static std::string stripDt(const std::string& lineDt) {
|
||||
void ImportBookmarksFile(
|
||||
const base::Callback<bool(void)>& cancellation_callback,
|
||||
const base::Callback<bool(const GURL&)>& valid_url_callback,
|
||||
- const base::FilePath& file_path,
|
||||
+ const std::string& content,
|
||||
std::vector<ImportedBookmarkEntry>* bookmarks,
|
||||
std::vector<importer::SearchEngineInfo>* search_engines,
|
||||
favicon_base::FaviconUsageDataList* favicons) {
|
||||
- std::string content;
|
||||
- base::ReadFileToString(file_path, &content);
|
||||
std::vector<std::string> lines = base::SplitString(
|
||||
content, "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
|
||||
|
||||
@@ -126,6 +128,7 @@ void ImportBookmarksFile(
|
||||
std::vector<base::string16> path;
|
||||
size_t toolbar_folder_index = 0;
|
||||
std::string charset = "UTF-8"; // If no charset is specified, assume utf-8.
|
||||
+
|
||||
for (size_t i = 0;
|
||||
i < lines.size() &&
|
||||
(cancellation_callback.is_null() || !cancellation_callback.Run());
|
||||
@@ -218,10 +221,12 @@ void ImportBookmarksFile(
|
||||
}
|
||||
bookmarks->push_back(entry);
|
||||
|
||||
+#if !defined(OS_ANDROID)
|
||||
// Save the favicon. DataURLToFaviconUsage will handle the case where
|
||||
// there is no favicon.
|
||||
if (favicons)
|
||||
DataURLToFaviconUsage(url, favicon, favicons);
|
||||
+#endif
|
||||
|
||||
continue;
|
||||
}
|
||||
@@ -278,6 +283,22 @@ void ImportBookmarksFile(
|
||||
}
|
||||
}
|
||||
|
||||
+void ImportBookmarksFile(
|
||||
+ const base::Callback<bool(void)>& cancellation_callback,
|
||||
+ const base::Callback<bool(const GURL&)>& valid_url_callback,
|
||||
+ const base::FilePath& file_path,
|
||||
+ std::vector<ImportedBookmarkEntry>* bookmarks,
|
||||
+ std::vector<importer::SearchEngineInfo>* search_engines,
|
||||
+ favicon_base::FaviconUsageDataList* favicons) {
|
||||
+ std::string content;
|
||||
+ if (!base::ReadFileToString(file_path, &content)) {
|
||||
+ LOG(ERROR) << "Could not directly read bookmarks import file";
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ImportBookmarksFile(cancellation_callback, valid_url_callback, content, bookmarks, search_engines, favicons);
|
||||
+}
|
||||
+
|
||||
bool CanImportURLAsSearchEngine(const GURL& url,
|
||||
std::string* search_engine_url) {
|
||||
std::string url_spec = url.possibly_invalid_spec();
|
||||
diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/importer/bookmark_html_reader.h
|
||||
--- a/chrome/utility/importer/bookmark_html_reader.h
|
||||
+++ b/chrome/utility/importer/bookmark_html_reader.h
|
||||
@@ -51,6 +51,15 @@ void ImportBookmarksFile(
|
||||
std::vector<importer::SearchEngineInfo>* search_engines,
|
||||
favicon_base::FaviconUsageDataList* favicons);
|
||||
|
||||
+void ImportBookmarksFile(
|
||||
+ const base::Callback<bool(void)>& cancellation_callback,
|
||||
+ const base::Callback<bool(const GURL&)>& valid_url_callback,
|
||||
+ const std::string& content,
|
||||
+ std::vector<ImportedBookmarkEntry>* bookmarks,
|
||||
+ std::vector<importer::SearchEngineInfo>* search_engines,
|
||||
+ favicon_base::FaviconUsageDataList* favicons);
|
||||
+
|
||||
+
|
||||
// Returns true if |url| should be imported as a search engine, i.e. because it
|
||||
// has replacement terms. Chrome treats such bookmarks as search engines rather
|
||||
// than true bookmarks.
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,126 @@
|
||||
From: samartnik <artem@brave.com>
|
||||
Date: Tue, 17 Apr 2018 17:14:00 +0300
|
||||
Subject: Add option to not persist tabs across sessions
|
||||
|
||||
---
|
||||
chrome/android/java/res/values/values.xml | 3 +++
|
||||
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
|
||||
.../org/chromium/chrome/browser/ChromeTabbedActivity.java | 4 +++-
|
||||
.../browser/preferences/privacy/PrivacyPreferences.java | 14 ++++++++++++++
|
||||
chrome/android/java/strings/android_chrome_strings.grd | 6 ++++++
|
||||
5 files changed, 31 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
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -66,6 +66,9 @@
|
||||
<!-- TODO(peconn): Add help section. -->
|
||||
<!-- <string name="help_context_suggestions">mobile_content_suggestions</string> -->
|
||||
|
||||
+ <string name="close_tabs_on_exit_title">Close tabs on exit</string>
|
||||
+ <string name="close_tabs_on_exit_summary">Don\'t persist tabs between browsing sessions</string>
|
||||
+
|
||||
<!-- Our manage space activity. Default pre-KitKat to be nothing. -->
|
||||
<string name="manage_space_activity"></string>
|
||||
|
||||
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"
|
||||
android:defaultValue="true" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="close_tabs_on_exit"
|
||||
+ android:title="@string/close_tabs_on_exit_title"
|
||||
+ 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" />
|
||||
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
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
+ String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
boolean noRestoreState =
|
||||
- CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE);
|
||||
+ CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE) ||
|
||||
+ ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false);
|
||||
if (noRestoreState) {
|
||||
// Clear the state files because they are inconsistent and useless from now on.
|
||||
mTabModelSelectorImpl.clearState();
|
||||
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
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
package org.chromium.chrome.browser.preferences.privacy;
|
||||
|
||||
+import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.preference.CheckBoxPreference;
|
||||
import android.preference.Preference;
|
||||
@@ -15,6 +16,7 @@ import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
+import org.chromium.base.ContextUtils;
|
||||
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
|
||||
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";
|
||||
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
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);
|
||||
|
||||
+ 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
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
+ } else if (PREF_CLOSE_TABS_ON_EXIT.equals(key)) {
|
||||
+// PrefServiceBridge.getInstance().setBoolean(
|
||||
+// Pref.CLOSE_TABS_ON_EXIT_ENABLED, (boolean) newValue);
|
||||
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
+ sharedPreferencesEditor.putBoolean(PREF_CLOSE_TABS_ON_EXIT, (boolean)newValue);
|
||||
+ sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
return true;
|
||||
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
|
||||
</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
|
||||
+ </message>
|
||||
+ <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>
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,313 @@
|
||||
From: Ryan Archer <ryan.bradley.archer@gmail.com>
|
||||
Date: Wed, 2 Aug 2017 01:41:28 -0400
|
||||
Subject: Add an always-incognito mode.
|
||||
|
||||
More specifically, add a preference that causes all new tabs and all
|
||||
clicked links to launch as incognito.
|
||||
---
|
||||
.../android/java/res/xml/privacy_preferences.xml | 5 ++
|
||||
.../browser/AlwaysIncognitoLinkInterceptor.java | 72 ++++++++++++++++++++++
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 4 ++
|
||||
.../chrome/browser/appmenu/AppMenuHandler.java | 12 ++++
|
||||
.../contextmenu/ChromeContextMenuPopulator.java | 7 +++
|
||||
.../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(-)
|
||||
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
|
||||
+ 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" />
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
@@ -0,0 +1,72 @@
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+package org.chromium.chrome.browser;
|
||||
+
|
||||
+import android.content.SharedPreferences;
|
||||
+
|
||||
+import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
||||
+import org.chromium.chrome.browser.tab.Tab;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
+import org.chromium.content_public.browser.LoadUrlParams;
|
||||
+
|
||||
+import java.util.HashMap;
|
||||
+import java.util.HashSet;
|
||||
+import java.util.Map;
|
||||
+import java.util.Set;
|
||||
+/**
|
||||
+ * A {@link TabObserver} that implements the always-incognito preference behavior for links. When the preference is set
|
||||
+ * to true, it intercepts links opened within observed {@link Tab}s and opens them in new incognito <code>Tab</code>s instead.
|
||||
+ */
|
||||
+public class AlwaysIncognitoLinkInterceptor extends EmptyTabObserver {
|
||||
+
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
+
|
||||
+ private final SharedPreferences alwaysIncognitoContainer;
|
||||
+ private final Map<Tab, String> lastUrls;
|
||||
+ private final Set<Tab> revertingTabs;
|
||||
+
|
||||
+ public AlwaysIncognitoLinkInterceptor(final SharedPreferences alwaysIncognitoContainer) {
|
||||
+
|
||||
+ assert alwaysIncognitoContainer != null;
|
||||
+
|
||||
+ this.alwaysIncognitoContainer = alwaysIncognitoContainer;
|
||||
+ lastUrls = new HashMap<Tab, String>();
|
||||
+ revertingTabs = new HashSet<Tab>();
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onDestroyed(final Tab tab)
|
||||
+ {
|
||||
+ lastUrls.remove(tab);
|
||||
+ revertingTabs.remove(tab);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void onUpdateUrl(final Tab tab, final String url) {
|
||||
+
|
||||
+ if (tab == null) return;
|
||||
+ if (url == null) return;
|
||||
+ if (tab.isIncognito()) return;
|
||||
+ if (alwaysIncognitoContainer == null) return;
|
||||
+
|
||||
+ final String lastUrl = lastUrls.put(tab, url);
|
||||
+
|
||||
+ if (!alwaysIncognitoContainer.getBoolean(PREF_ALWAYS_INCOGNITO, false)) return;
|
||||
+ if (revertingTabs.contains(tab)) {
|
||||
+ revertingTabs.remove(tab);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ tab.getActivity().getTabCreator(true).createNewTab(new LoadUrlParams(url), TabModel.TabLaunchType.FROM_LINK, tab);
|
||||
+
|
||||
+ if ((url.equals(lastUrl)) || (!tab.canGoBack())) {
|
||||
+ // this call was triggered by a reload
|
||||
+ } else {
|
||||
+ revertingTabs.add(tab);
|
||||
+ tab.goBack();
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
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
|
||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||
|
||||
// Observes when sync becomes ready to create the mContextReporter.
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
|
||||
|
||||
private ChromeFullscreenManager mFullscreenManager;
|
||||
@@ -1630,6 +1631,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ return mIncognitoTabCreator;
|
||||
+ }
|
||||
return incognito ? mIncognitoTabCreator : mRegularTabCreator;
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandler.java
|
||||
@@ -17,6 +17,7 @@ import android.view.View;
|
||||
import android.widget.PopupMenu;
|
||||
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -26,6 +27,9 @@ import java.util.ArrayList;
|
||||
* AppMenuObservers about these actions.
|
||||
*/
|
||||
public class AppMenuHandler {
|
||||
+
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
+
|
||||
private AppMenu mAppMenu;
|
||||
private AppMenuDragHelper mAppMenuDragHelper;
|
||||
private Menu mMenu;
|
||||
@@ -167,6 +171,14 @@ public class AppMenuHandler {
|
||||
if (mDelegate.shouldShowHeader(appRect.height())) {
|
||||
headerResourceId = mDelegate.getHeaderResourceId();
|
||||
}
|
||||
+
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ final MenuItem newTabOption = mAppMenu.getMenu().findItem(R.id.new_tab_menu_id);
|
||||
+ if (newTabOption != null) {
|
||||
+ newTabOption.setVisible(false);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y,
|
||||
footerResourceId, headerResourceId, mHighlightMenuId, showFromBottom);
|
||||
mAppMenuDragHelper.onShow(startDragging);
|
||||
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;
|
||||
|
||||
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.chrome.R;
|
||||
@@ -45,6 +46,7 @@ import java.util.Set;
|
||||
*/
|
||||
public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
private static final String TAG = "CCMenuPopulator";
|
||||
+ 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);
|
||||
}
|
||||
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
|
||||
@@ -7,8 +7,10 @@ package org.chromium.chrome.browser.tabmodel;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.SysUtils;
|
||||
import org.chromium.base.TraceEvent;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.ChromeActivity;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.IntentHandler;
|
||||
@@ -19,6 +21,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
|
||||
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
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.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 {
|
||||
|
||||
private final ChromeActivity mActivity;
|
||||
private final boolean mIncognito;
|
||||
+ private final TabObserver mExtraLogic;
|
||||
|
||||
private WindowAndroid mNativeWindow;
|
||||
private TabModel mTabModel;
|
||||
@@ -47,6 +51,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
mActivity = activity;
|
||||
mNativeWindow = nativeWindow;
|
||||
mIncognito = incognito;
|
||||
+ if (!mIncognito) {
|
||||
+ mExtraLogic = new AlwaysIncognitoLinkInterceptor(ContextUtils.getAppSharedPreferences());
|
||||
+ } else {
|
||||
+ mExtraLogic = null;
|
||||
+ }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -159,6 +168,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
tab.getWebContents());
|
||||
}
|
||||
|
||||
+ if (mExtraLogic != null) {
|
||||
+ tab.addObserver(mExtraLogic);
|
||||
+ }
|
||||
+
|
||||
mTabModel.addTab(tab, position, type);
|
||||
return tab;
|
||||
} finally {
|
||||
@@ -199,6 +212,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);
|
||||
+
|
||||
+ if (mExtraLogic != null) {
|
||||
+ tab.addObserver(mExtraLogic);
|
||||
+ }
|
||||
+
|
||||
mTabModel.addTab(tab, position, type);
|
||||
return true;
|
||||
}
|
||||
@@ -242,7 +260,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
*/
|
||||
public Tab launchUrlFromExternalApp(String url, String referer, String headers,
|
||||
String appId, boolean forceNewTab, Intent intent, long intentTimestamp) {
|
||||
- assert !mIncognito;
|
||||
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 {
|
||||
tab.initialize(
|
||||
null, mTabContentManager, createDefaultTabDelegateFactory(), !selectTab, false);
|
||||
assert state.isIncognito() == mIncognito;
|
||||
+
|
||||
+ if (mExtraLogic != null) {
|
||||
+ tab.addObserver(mExtraLogic);
|
||||
+ }
|
||||
+
|
||||
mTabModel.addTab(tab, index, TabLaunchType.FROM_RESTORE);
|
||||
return tab;
|
||||
}
|
||||
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:
|
||||
<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>
|
||||
+ <message name="IDS_ALWAYS_INCOGNITO_TITLE" desc="Title for always incognito mode">
|
||||
+ Open links in incognito tabs always
|
||||
+ </message>
|
||||
+ <message name="IDS_ALWAYS_INCOGNITO_SUMMARY" desc="Summary for always incognito mode">
|
||||
+ Opens links in incognito tabs when you click on new tab or on a link
|
||||
+ </message>
|
||||
<message name="IDS_SAFE_BROWSING_TITLE" desc="Title for safe browsing.">
|
||||
Safe Browsing
|
||||
</message>
|
||||
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
|
||||
@@ -8,6 +8,7 @@ import("//device/vr/buildflags/buildflags.gni")
|
||||
import("//chrome/android/feed/feed_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/ActivityTabTaskDescriptionHelper.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java",
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -46,7 +46,7 @@ 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
|
||||
@@ -224,6 +224,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
@@ -225,6 +225,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() {
|
||||
@@ -54,7 +54,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
|
||||
#if !defined(GOOGLE_CHROME_BUILD)
|
||||
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kVariationsServerURL) &&
|
||||
@@ -235,6 +236,9 @@ bool IsFetchingEnabled() {
|
||||
@@ -236,6 +237,9 @@ bool IsFetchingEnabled() {
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
@@ -65,5 +65,5 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
|
||||
|
||||
std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
|
||||
--
|
||||
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
|
||||
|
||||
+3
-3
@@ -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
|
||||
@@ -1239,10 +1239,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
|
||||
@@ -1262,10 +1262,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
|
||||
}
|
||||
|
||||
PluginData* LocalFrame::GetPluginData() const {
|
||||
@@ -21,7 +21,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame);
|
||||
void LocalFrame::SetAdTrackerForTesting(AdTracker* ad_tracker) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@ Subject: Remove google account access permission on reboot
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -790,8 +790,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
@@ -869,8 +869,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
resources = [
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
"java/res_template/xml/launchershortcuts.xml",
|
||||
@@ -23,7 +23,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
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
|
||||
@@ -831,14 +831,14 @@ by a child template that "extends" this file.
|
||||
@@ -837,14 +837,14 @@ by a child template that "extends" this file.
|
||||
</provider>
|
||||
|
||||
<!-- Sync adapter for browser invalidation. -->
|
||||
@@ -41,5 +41,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
@@ -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
|
||||
|
||||
+2
-2
@@ -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
|
||||
@@ -107,10 +107,10 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
|
||||
@@ -108,10 +108,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
|
||||
|
||||
+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
|
||||
|
||||
+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
|
||||
|
||||
+13
-28
@@ -4,14 +4,14 @@ Subject: autofill: disable autofill download manager
|
||||
|
||||
Disables the autofill download manager (trk:158).
|
||||
---
|
||||
components/autofill/core/browser/autofill_download_manager.cc | 9 +++++++--
|
||||
components/autofill/core/browser/autofill_download_manager.cc | 6 +++++-
|
||||
components/autofill/core/browser/autofill_manager.cc | 2 ++
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -39,7 +39,6 @@ namespace autofill {
|
||||
@@ -41,7 +41,6 @@ namespace autofill {
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -19,44 +19,29 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
|
||||
const size_t kMaxFormCacheSize = 16;
|
||||
const size_t kMaxFieldsPerQueryRequest = 100;
|
||||
|
||||
@@ -69,11 +68,13 @@ const net::BackoffEntry::Policy kAutofillBackoffPolicy = {
|
||||
false,
|
||||
};
|
||||
@@ -365,6 +364,7 @@ bool AutofillDownloadManager::StartUploadRequest(
|
||||
|
||||
+#if 0
|
||||
#if defined(GOOGLE_CHROME_BUILD)
|
||||
const char kClientName[] = "Google+Chrome";
|
||||
#else
|
||||
const char kClientName[] = "Chromium";
|
||||
#endif // defined(GOOGLE_CHROME_BUILD)
|
||||
+#endif
|
||||
|
||||
const char kDefaultAutofillServerURL[] =
|
||||
"https://clients1.google.com/tbproxy/af/";
|
||||
@@ -371,7 +372,7 @@ bool AutofillDownloadManager::StartUploadRequest(
|
||||
std::tuple<GURL, net::URLFetcher::RequestType>
|
||||
AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
const FormRequestData& request_data) const {
|
||||
- net::URLFetcher::RequestType method = net::URLFetcher::POST;
|
||||
+#if 0
|
||||
std::string query_str(base::StrCat({"client=", kClientName}));
|
||||
std::string method("POST");
|
||||
std::string query_str;
|
||||
|
||||
if (request_data.request_type == AutofillDownloadManager::REQUEST_QUERY) {
|
||||
@@ -394,6 +395,10 @@ AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
@@ -387,6 +387,10 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
GURL url = autofill_server_url_
|
||||
.Resolve(RequestTypeToString(request_data.request_type))
|
||||
.ReplaceComponents(replacements);
|
||||
+#else
|
||||
+ net::URLFetcher::RequestType method = net::URLFetcher::GET;
|
||||
+ std::string method("GET");
|
||||
+ GURL url = GURL("about:blank");
|
||||
+#endif
|
||||
|
||||
return std::make_tuple(std::move(url), method);
|
||||
return std::make_tuple(std::move(url), std::move(method));
|
||||
}
|
||||
|
||||
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
|
||||
@@ -1264,9 +1264,11 @@ AutofillManager::AutofillManager(
|
||||
@@ -1183,9 +1183,11 @@ AutofillManager::AutofillManager(
|
||||
weak_ptr_factory_(this) {
|
||||
DCHECK(driver);
|
||||
DCHECK(client_);
|
||||
@@ -69,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
|
||||
|
||||
+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
|
||||
@@ -206,8 +206,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
|
||||
@@ -207,8 +207,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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+5
-5
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -285,6 +287,10 @@ void ClientSideDetectionService::StartClientReportPhishingRequest(
|
||||
@@ -289,6 +291,10 @@ void ClientSideDetectionService::StartClientReportPhishingRequest(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
|
||||
// Fill in metadata about which model we used.
|
||||
if (is_extended_reporting) {
|
||||
request->set_model_filename(model_loader_extended_->name());
|
||||
@@ -367,6 +373,7 @@ void ClientSideDetectionService::StartClientReportPhishingRequest(
|
||||
@@ -371,6 +377,7 @@ void ClientSideDetectionService::StartClientReportPhishingRequest(
|
||||
|
||||
// Record that we made a request
|
||||
phishing_report_times_.push(base::Time::Now());
|
||||
@@ -45,7 +45,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
|
||||
}
|
||||
|
||||
void ClientSideDetectionService::StartClientReportMalwareRequest(
|
||||
@@ -381,6 +388,10 @@ void ClientSideDetectionService::StartClientReportMalwareRequest(
|
||||
@@ -385,6 +392,10 @@ void ClientSideDetectionService::StartClientReportMalwareRequest(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -56,7 +56,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
|
||||
std::string request_data;
|
||||
if (!request->SerializeToString(&request_data)) {
|
||||
UpdateEnumUMAHistogram(REPORT_FAILED_SERIALIZATION);
|
||||
@@ -450,6 +461,7 @@ void ClientSideDetectionService::StartClientReportMalwareRequest(
|
||||
@@ -454,6 +465,7 @@ void ClientSideDetectionService::StartClientReportMalwareRequest(
|
||||
|
||||
// Record that we made a malware request
|
||||
malware_report_times_.push(base::Time::Now());
|
||||
@@ -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
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
From: thermatk <thermatk@thermatk.com>
|
||||
Date: Fri, 22 Jun 2018 17:04:43 +0200
|
||||
Subject: kill Vision
|
||||
|
||||
---
|
||||
services/shape_detection/BUILD.gn | 3 ---
|
||||
.../java/src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
|
||||
.../chromium/shape_detection/FaceDetectionProviderImpl.java | 2 +-
|
||||
.../src/org/chromium/shape_detection/InterfaceRegistrar.java | 2 --
|
||||
4 files changed, 1 insertion(+), 18 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
|
||||
@@ -79,13 +79,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/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
|
||||
@@ -30,7 +30,7 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
|
||||
== ConnectionResult.SUCCESS;
|
||||
|
||||
if (isGmsCoreSupported) {
|
||||
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
+ //FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
} else {
|
||||
FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
@@ -20,9 +20,7 @@ class InterfaceRegistrar {
|
||||
// is not necessary to hold on to a reference to it explicitly.
|
||||
InterfaceRegistry registry = InterfaceRegistry.create(
|
||||
CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle());
|
||||
- registry.addInterface(BarcodeDetection.MANAGER, new BarcodeDetectionImpl.Factory());
|
||||
registry.addInterface(
|
||||
FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
|
||||
- registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
|
||||
}
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+4
-4
@@ -17,7 +17,7 @@ References: https://github.com/iridium-browser/iridium-browser/issues/37
|
||||
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
|
||||
+++ b/chrome/browser/safe_browsing/client_side_detection_service.cc
|
||||
@@ -354,7 +354,7 @@ void ClientSideDetectionService::StartClientReportPhishingRequest(
|
||||
@@ -358,7 +358,7 @@ void ClientSideDetectionService::StartClientReportPhishingRequest(
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = GetClientReportUrl(kClientReportPhishingUrl);
|
||||
resource_request->method = "POST";
|
||||
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
|
||||
auto loader = network::SimpleURLLoader::Create(std::move(resource_request),
|
||||
traffic_annotation);
|
||||
loader->AttachStringForUpload(request_data, "application/octet-stream");
|
||||
@@ -436,7 +436,7 @@ void ClientSideDetectionService::StartClientReportMalwareRequest(
|
||||
@@ -440,7 +440,7 @@ void ClientSideDetectionService::StartClientReportMalwareRequest(
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = GetClientReportUrl(kClientReportMalwareUrl);
|
||||
resource_request->method = "POST";
|
||||
@@ -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
|
||||
@@ -1022,7 +1022,7 @@ void CheckClientDownloadRequest::SendRequest() {
|
||||
@@ -1068,7 +1068,7 @@ void CheckClientDownloadRequest::SendRequest() {
|
||||
auto resource_request = std::make_unique<network::ResourceRequest>();
|
||||
resource_request->url = PPAPIDownloadRequest::GetDownloadRequestUrl();
|
||||
resource_request->method = "POST";
|
||||
@@ -110,5 +110,5 @@ diff --git a/components/safe_browsing/browser/threat_details_cache.cc b/componen
|
||||
current_load_ = network::SimpleURLLoader::Create(std::move(resource_request),
|
||||
traffic_annotation);
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,179 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 18 Sep 2018 08:06:14 +0200
|
||||
Subject: Fixes for building without safebrowsing on Android
|
||||
|
||||
---
|
||||
.../android/java/res/xml/privacy_preferences.xml | 12 -----
|
||||
.../preferences/privacy/PrivacyPreferences.java | 58 ----------------------
|
||||
.../chrome_browsing_data_remover_delegate.cc | 10 ----
|
||||
.../chrome_resource_dispatcher_host_delegate.cc | 2 +
|
||||
4 files changed, 2 insertions(+), 80 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
|
||||
@@ -25,18 +25,6 @@
|
||||
android:summary="@string/always_incognito_summary"
|
||||
android:defaultValue="false" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing_extended_reporting"
|
||||
- android:title="@string/safe_browsing_extended_reporting_title"
|
||||
- android:summary="@string/safe_browsing_extended_reporting_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing_scout_reporting"
|
||||
- android:title="@string/safe_browsing_scout_reporting_title"
|
||||
- android:summary="@string/safe_browsing_scout_reporting_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing"
|
||||
- android:title="@string/safe_browsing_title"
|
||||
- android:summary="@string/safe_browsing_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
android:key="network_predictions"
|
||||
android:title="@string/network_predictions_title"
|
||||
android:summary="@string/network_predictions_summary"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -39,12 +39,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
implements OnPreferenceChangeListener {
|
||||
private static final String PREF_NAVIGATION_ERROR = "navigation_error";
|
||||
private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
|
||||
- private static final String PREF_SAFE_BROWSING_EXTENDED_REPORTING =
|
||||
- "safe_browsing_extended_reporting";
|
||||
- private static final String PREF_SAFE_BROWSING_SCOUT_REPORTING =
|
||||
- "safe_browsing_scout_reporting";
|
||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
- private static final String PREF_SAFE_BROWSING = "safe_browsing";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
|
||||
@@ -77,10 +72,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));
|
||||
@@ -122,32 +113,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
}
|
||||
|
||||
- // Listen to changes to both Extended Reporting prefs.
|
||||
- ChromeBaseCheckBoxPreference legacyExtendedReportingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(
|
||||
- PREF_SAFE_BROWSING_EXTENDED_REPORTING);
|
||||
- legacyExtendedReportingPref.setOnPreferenceChangeListener(this);
|
||||
- legacyExtendedReportingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
- ChromeBaseCheckBoxPreference scoutReportingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING);
|
||||
- scoutReportingPref.setOnPreferenceChangeListener(this);
|
||||
- scoutReportingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
- // Remove the extended reporting preference that is NOT active.
|
||||
- String extended_reporting_pref_to_remove =
|
||||
- prefServiceBridge.isSafeBrowsingScoutReportingActive()
|
||||
- ? PREF_SAFE_BROWSING_EXTENDED_REPORTING : PREF_SAFE_BROWSING_SCOUT_REPORTING;
|
||||
- preferenceScreen.removePreference(findPreference(extended_reporting_pref_to_remove));
|
||||
-
|
||||
ChromeBaseCheckBoxPreference allowCustomTabIntentsPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_ALLOW_CUSTOM_TAB_INTENTS);
|
||||
allowCustomTabIntentsPref.setOnPreferenceChangeListener(this);
|
||||
allowCustomTabIntentsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
- ChromeBaseCheckBoxPreference safeBrowsingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
- safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
- safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
-
|
||||
ChromeBaseCheckBoxPreference closeTabsOnExitPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
|
||||
@@ -161,12 +131,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
String key = preference.getKey();
|
||||
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
|
||||
- } else if (PREF_SAFE_BROWSING.equals(key)) {
|
||||
- PrefServiceBridge.getInstance().setSafeBrowsingEnabled((boolean) newValue);
|
||||
- } else if (PREF_SAFE_BROWSING_EXTENDED_REPORTING.equals(key)
|
||||
- || PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
- PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled(
|
||||
- (boolean) newValue);
|
||||
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
@@ -225,21 +189,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) {
|
||||
@@ -276,13 +225,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
|
||||
@@ -256,16 +256,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/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
|
||||
@@ -495,8 +495,10 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
|
||||
// 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)
|
||||
--
|
||||
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
|
||||
@@ -377,9 +377,12 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
@@ -378,9 +378,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
|
||||
|
||||
+1
-1
@@ -27,5 +27,5 @@ diff --git a/components/translate/core/browser/translate_language_list.cc b/comp
|
||||
|
||||
void TranslateLanguageList::SetResourceRequestsAllowed(bool allowed) {
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ Subject: lint: suppress hardcoded text warnings
|
||||
diff --git a/build/android/lint/suppressions.xml b/build/android/lint/suppressions.xml
|
||||
--- a/build/android/lint/suppressions.xml
|
||||
+++ b/build/android/lint/suppressions.xml
|
||||
@@ -94,10 +94,8 @@ Still reading?
|
||||
@@ -92,10 +92,8 @@ Still reading?
|
||||
<ignore regexp="chromecast/internal" />
|
||||
<ignore regexp="remoting/android/java/src/org/chromium/chromoting/TapGestureDetector.java" />
|
||||
</issue>
|
||||
@@ -23,5 +23,5 @@ diff --git a/build/android/lint/suppressions.xml b/build/android/lint/suppressio
|
||||
<ignore regexp="remoting/android/host/res/layout/main.xml"/>
|
||||
</issue>
|
||||
--
|
||||
2.7.4
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
From: thermatk <thermatk@thermatk.com>
|
||||
Date: Fri, 22 Jun 2018 17:04:43 +0200
|
||||
Subject: kill Vision
|
||||
|
||||
---
|
||||
.../org/chromium/shape_detection/BarcodeDetectionImpl.java | 6 +++---
|
||||
.../java/src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
|
||||
.../chromium/shape_detection/FaceDetectionImplGmsCore.java | 6 +++---
|
||||
.../chromium/shape_detection/FaceDetectionProviderImpl.java | 2 +-
|
||||
.../src/org/chromium/shape_detection/InterfaceRegistrar.java | 10 +++++-----
|
||||
.../src/org/chromium/shape_detection/TextDetectionImpl.java | 6 +++---
|
||||
6 files changed, 15 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
|
||||
@@ -43,11 +43,11 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
|
||||
// on the device; this happens "fast", but it might have not completed,
|
||||
// bail in this case. Also, the API was disabled between and v.9.0 and
|
||||
// v.9.2, see https://developers.google.com/android/guides/releases.
|
||||
- if (!mBarcodeDetector.isOperational()) {
|
||||
+// if (!mBarcodeDetector.isOperational()) {
|
||||
Log.e(TAG, "BarcodeDetector is not operational");
|
||||
callback.call(new BarcodeDetectionResult[0]);
|
||||
return;
|
||||
- }
|
||||
+/* }
|
||||
|
||||
Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
if (frame == null) {
|
||||
@@ -77,7 +77,7 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
|
||||
barcodeArray[i].cornerPoints[j].y = corners[j].y;
|
||||
}
|
||||
}
|
||||
- callback.call(barcodeArray);
|
||||
+ callback.call(barcodeArray);*/
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
|
||||
@@ -6,8 +6,6 @@ package org.chromium.shape_detection;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
|
||||
-import com.google.android.gms.vision.Frame;
|
||||
-
|
||||
import org.chromium.mojo_base.BigBufferUtil;
|
||||
import org.chromium.skia.mojom.ColorType;
|
||||
|
||||
@@ -44,14 +42,4 @@ public class BitmapUtils {
|
||||
|
||||
return bitmap;
|
||||
}
|
||||
-
|
||||
- public static Frame convertToFrame(org.chromium.skia.mojom.Bitmap bitmapData) {
|
||||
- Bitmap bitmap = convertToBitmap(bitmapData);
|
||||
- if (bitmap == null) {
|
||||
- return null;
|
||||
- }
|
||||
-
|
||||
- // This constructor implies a pixel format conversion to YUV.
|
||||
- return new Frame.Builder().setBitmap(bitmap).build();
|
||||
- }
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
|
||||
@@ -63,7 +63,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
|
||||
// The vision library will be downloaded the first time the API is used
|
||||
// on the device; this happens "fast", but it might have not completed,
|
||||
// bail in this case.
|
||||
- if (!mFaceDetector.isOperational()) {
|
||||
+// if (!mFaceDetector.isOperational()) {
|
||||
Log.e(TAG, "FaceDetector is not operational");
|
||||
|
||||
// Fallback to Android's FaceDetectionImpl.
|
||||
@@ -73,7 +73,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
|
||||
FaceDetectionImpl detector = new FaceDetectionImpl(options);
|
||||
detector.detect(bitmapData, callback);
|
||||
return;
|
||||
- }
|
||||
+/* }
|
||||
|
||||
Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
if (frame == null) {
|
||||
@@ -157,7 +157,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
|
||||
faceArray[i].boundingBox.height = face.getHeight();
|
||||
}
|
||||
}
|
||||
- callback.call(faceArray);
|
||||
+ callback.call(faceArray);*/
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
|
||||
@@ -30,7 +30,7 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
|
||||
== ConnectionResult.SUCCESS;
|
||||
|
||||
if (isGmsCoreSupported) {
|
||||
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
+ //FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
|
||||
} else {
|
||||
FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
|
||||
@@ -20,10 +20,10 @@ class InterfaceRegistrar {
|
||||
// is not necessary to hold on to a reference to it explicitly.
|
||||
InterfaceRegistry registry = InterfaceRegistry.create(
|
||||
CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle());
|
||||
- registry.addInterface(
|
||||
- BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
|
||||
- registry.addInterface(
|
||||
- FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
|
||||
- registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
|
||||
+// registry.addInterface(
|
||||
+// BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
|
||||
+// registry.addInterface(
|
||||
+// FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
|
||||
+// registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
|
||||
}
|
||||
}
|
||||
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
|
||||
@@ -42,11 +42,11 @@ public class TextDetectionImpl implements TextDetection {
|
||||
// on the device; this happens "fast", but it might have not completed,
|
||||
// bail in this case. Also, the API was disabled between and v.9.0 and
|
||||
// v.9.2, see https://developers.google.com/android/guides/releases.
|
||||
- if (!mTextRecognizer.isOperational()) {
|
||||
+// if (!mTextRecognizer.isOperational()) {
|
||||
Log.e(TAG, "TextDetector is not operational");
|
||||
callback.call(new TextDetectionResult[0]);
|
||||
return;
|
||||
- }
|
||||
+/* }
|
||||
|
||||
Frame frame = BitmapUtils.convertToFrame(bitmapData);
|
||||
if (frame == null) {
|
||||
@@ -76,7 +76,7 @@ public class TextDetectionImpl implements TextDetection {
|
||||
detectedTextArray[i].cornerPoints[j].y = corners[j].y;
|
||||
}
|
||||
}
|
||||
- callback.call(detectedTextArray);
|
||||
+ callback.call(detectedTextArray); */
|
||||
}
|
||||
|
||||
@Override
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -17,17 +17,17 @@ Subject: kill GCM
|
||||
.../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 ++--------
|
||||
.../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, 34 insertions(+), 252 deletions(-)
|
||||
19 files changed, 36 insertions(+), 250 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
|
||||
@@ -43,8 +43,6 @@ if (enable_java_templates) {
|
||||
@@ -64,8 +64,6 @@ if (enable_java_templates) {
|
||||
support_lib_alias("android_support_chromium_java") {
|
||||
testonly = true
|
||||
}
|
||||
@@ -54,7 +54,7 @@ diff --git a/build/secondary/third_party/android_tools/support/BUILD.gn b/build/
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -260,7 +260,6 @@ android_library("chrome_java") {
|
||||
@@ -269,7 +269,6 @@ android_library("chrome_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",
|
||||
@@ -65,7 +65,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
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
|
||||
@@ -74,22 +74,17 @@ by a child template that "extends" this file.
|
||||
@@ -77,22 +77,17 @@ by a child template that "extends" this file.
|
||||
<permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
|
||||
<permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
|
||||
<permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
|
||||
@@ -88,7 +88,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" />
|
||||
@@ -913,43 +908,6 @@ by a child template that "extends" this file.
|
||||
@@ -919,43 +914,6 @@ by a child template that "extends" this file.
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
|
||||
android:hardwareAccelerated="false" />
|
||||
|
||||
@@ -132,7 +132,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"/>
|
||||
@@ -961,8 +919,6 @@ by a child template that "extends" this file.
|
||||
@@ -967,8 +925,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 +141,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"
|
||||
@@ -989,24 +945,6 @@ by a child template that "extends" this file.
|
||||
@@ -995,24 +951,6 @@ by a child template that "extends" this file.
|
||||
android:exported="false"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"/>
|
||||
|
||||
@@ -169,17 +169,17 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
|
||||
@@ -9,10 +9,6 @@ import android.content.SharedPreferences;
|
||||
import android.os.AsyncTask;
|
||||
@@ -8,10 +8,6 @@ import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.StrictMode;
|
||||
|
||||
-import com.google.android.gms.gcm.GcmNetworkManager;
|
||||
-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;
|
||||
@@ -251,7 +251,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
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
|
||||
@@ -12,8 +12,6 @@ import android.os.Build;
|
||||
@@ -11,8 +11,6 @@ import android.os.Build;
|
||||
import android.os.Handler;
|
||||
import android.os.SystemClock;
|
||||
|
||||
@@ -259,7 +259,7 @@ 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.Log;
|
||||
import org.chromium.base.AsyncTask;
|
||||
@@ -200,16 +198,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
|
||||
* Registers for Google Cloud Messaging (GCM) for Invalidations.
|
||||
*/
|
||||
@@ -386,15 +386,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GC
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
|
||||
@@ -13,7 +13,6 @@ import android.os.Parcel;
|
||||
@@ -12,7 +12,6 @@ import android.os.Parcel;
|
||||
import android.support.annotation.MainThread;
|
||||
import android.util.Log;
|
||||
|
||||
-import com.google.android.gms.gcm.GoogleCloudMessaging;
|
||||
import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService;
|
||||
|
||||
import org.chromium.base.ThreadUtils;
|
||||
@@ -92,6 +91,7 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
import org.chromium.base.AsyncTask;
|
||||
@@ -95,6 +94,7 @@ 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) {
|
||||
@@ -402,7 +402,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/In
|
||||
// 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)) {
|
||||
@@ -105,6 +105,7 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
@@ -109,6 +109,7 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
Log.w(TAG, "Send message failed");
|
||||
GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SEND_FAILED);
|
||||
}
|
||||
@@ -413,7 +413,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/In
|
||||
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
|
||||
@@ -24,7 +24,6 @@ chrome_java_sources = [
|
||||
@@ -27,7 +27,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/ChromeActivity.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeApplication.java",
|
||||
@@ -421,7 +421,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",
|
||||
@@ -1159,7 +1158,6 @@ chrome_java_sources = [
|
||||
@@ -1217,7 +1216,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",
|
||||
@@ -560,7 +560,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
|
||||
@@ -26,7 +26,6 @@ public class InstanceIDBridge {
|
||||
@@ -25,7 +25,6 @@ public class InstanceIDBridge {
|
||||
* Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be
|
||||
* initialized on a background thread.
|
||||
*/
|
||||
@@ -568,7 +568,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
|
||||
private static boolean sBlockOnAsyncTasksForTesting;
|
||||
|
||||
@@ -71,7 +70,7 @@ public class InstanceIDBridge {
|
||||
@@ -70,7 +69,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<String>() {
|
||||
@Override
|
||||
protected String doBackgroundWork() {
|
||||
@@ -577,7 +577,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(String id) {
|
||||
@@ -86,7 +85,7 @@ public class InstanceIDBridge {
|
||||
@@ -85,7 +84,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Long>() {
|
||||
@Override
|
||||
protected Long doBackgroundWork() {
|
||||
@@ -586,7 +586,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Long creationTime) {
|
||||
@@ -107,11 +106,7 @@ public class InstanceIDBridge {
|
||||
@@ -106,11 +105,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<String>() {
|
||||
@Override
|
||||
protected String doBackgroundWork() {
|
||||
@@ -599,7 +599,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(String token) {
|
||||
@@ -127,12 +122,7 @@ public class InstanceIDBridge {
|
||||
@@ -126,12 +121,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Boolean>() {
|
||||
@Override
|
||||
protected Boolean doBackgroundWork() {
|
||||
@@ -613,7 +613,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Boolean success) {
|
||||
@@ -147,12 +137,7 @@ public class InstanceIDBridge {
|
||||
@@ -146,12 +136,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Boolean>() {
|
||||
@Override
|
||||
protected Boolean doBackgroundWork() {
|
||||
@@ -627,17 +627,20 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Boolean success) {
|
||||
@@ -192,10 +177,6 @@ public class InstanceIDBridge {
|
||||
@@ -190,11 +175,11 @@ public class InstanceIDBridge {
|
||||
@Override
|
||||
@SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native.
|
||||
protected Result doInBackground(Void... params) {
|
||||
synchronized (InstanceIDBridge.this) {
|
||||
- if (mInstanceID == null) {
|
||||
- mInstanceID = InstanceIDWithSubtype.getInstance(
|
||||
- ContextUtils.getApplicationContext(), mSubtype);
|
||||
- }
|
||||
}
|
||||
- synchronized (InstanceIDBridge.this) {
|
||||
+/* synchronized (InstanceIDBridge.this) {
|
||||
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
|
||||
@@ -796,5 +799,5 @@ diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/
|
||||
}
|
||||
}
|
||||
--
|
||||
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