Compare commits
44
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4fc10e560b | ||
|
|
01ecc5d52f | ||
|
|
7edcab0232 | ||
|
|
b4ada5bd99 | ||
|
|
cfa7aca62a | ||
|
|
9eca1ff0b3 | ||
|
|
aac51e0a5a | ||
|
|
ea53ed1889 | ||
|
|
780bb60137 | ||
|
|
0fd859a0a6 | ||
|
|
03645239a9 | ||
|
|
ec5be6c048 | ||
|
|
67651fbd75 | ||
|
|
6b758bfe0c | ||
|
|
49ae827092 | ||
|
|
01ad976b53 | ||
|
|
38a672a1ca | ||
|
|
a723e0e77d | ||
|
|
3abb1ad2a3 | ||
|
|
d7e8ac9d86 | ||
|
|
284c419d01 | ||
|
|
2dca759091 | ||
|
|
11cebfadc5 | ||
|
|
e4e56ed69c | ||
|
|
7dcc27cb5e | ||
|
|
8b494263c3 | ||
|
|
4029e8843d | ||
|
|
85a9737c16 | ||
|
|
247247a8ae | ||
|
|
4bfb168982 | ||
|
|
1652ef39b1 | ||
|
|
190ee08724 | ||
|
|
367a2521a0 | ||
|
|
6b1cbc612a | ||
|
|
d0f89298b8 | ||
|
|
9adbcaf262 | ||
|
|
ef067cd35d | ||
|
|
e08ef39d4e | ||
|
|
33f1df4d26 | ||
|
|
29e6c35657 | ||
|
|
148f920a06 | ||
|
|
c5e38e8077 | ||
|
|
94a0637fb1 | ||
|
|
db00f3e4f4 |
@@ -1,3 +1,75 @@
|
||||
# 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 randomisation 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Bromite - Take back your browser
|
||||
|
||||
[![GitHub release][version-image]][version-url] [![license][license-image]][license-url]
|
||||
<img src="https://www.bromite.org/release.svg" alt="current Bromite release" title="current Bromite release" /> [![license][license-image]][license-url]
|
||||
|
||||
<img title="Bromite - take back your browser!" src="https://www.bromite.org/android-icon-192x192.png" width="96" alt="Bromite" />
|
||||
|
||||
@@ -10,10 +10,19 @@ 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" />
|
||||
|
||||
# Goals
|
||||
|
||||
Bromite aims at providing a no-clutter browsing experience without privacy-invasive features and with the addition of a fast ad-blocking engine.
|
||||
Minimal UI changes are applied to help curbing the idea of "browser as an advertisement platform".
|
||||
|
||||
# Donate
|
||||
|
||||
Please donate to support development of Bromite and the costs for the build system.
|
||||
|
||||
[Become a patron on Patreon](https://www.patreon.com/bePatron?c=1807244)
|
||||
|
||||
Support development with a donation of 3 EUR: [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JP3XTQPVRNET2)
|
||||
|
||||
Support development with a free amount donation: [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LC7Q6A3UAQPY8)
|
||||
@@ -22,33 +31,52 @@ BTC donations address: `3MkC3idL61npQSCxL1gceksmRTkNkiCPcG`
|
||||
|
||||
ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
|
||||
|
||||
# Features
|
||||
|
||||
* adblocking (currently baked-in, no configuration options available)
|
||||
* remove click-tracking and AMP from Google search results
|
||||
* allow youtube/vimeo videos to play in background
|
||||
* [StartPage](https://startpage.com/) search engine (select it from search engines under settings)
|
||||
* [DuckDuckGo](https://duckduckgo.com/) search engine (select it from search engines under settings)
|
||||
* Google search engines English-only with reduced tracking (select it from search engines under settings)
|
||||
* privacy enhancement patches from Inox patchset, ungoogled-chromium and Iridium projects
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* built with official optimizations
|
||||
|
||||
# F.A.Q.
|
||||
|
||||
## Does Google Sync/Translate/Data saver work?
|
||||
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.
|
||||
|
||||
## What is the SystemWebView?
|
||||
It is the core component of Android for all web page visualizations. For example when you access a new wifi network and need to activate it, that is using the SystemWebView. If you do not know what it is then you do not need to install it.
|
||||
|
||||
## Does Bromite require root?
|
||||
No.
|
||||
|
||||
## Can you add dark mode/some cool themes?
|
||||
No.
|
||||
Bromite is about adblocking and privacy.
|
||||
|
||||
## 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.
|
||||
|
||||
# Features
|
||||
|
||||
* baked-in adblock engine with filters from EasyList, EasyPrivacy and others
|
||||
* remove click-tracking and AMP from Google search results
|
||||
* allow videos to play in background
|
||||
* [StartPage](https://startpage.com/) search engine
|
||||
* [DuckDuckGo](https://duckduckgo.com/) search engine
|
||||
* [Qwant](https://www.qwant.com/) search engine
|
||||
* Google search engine English-only with reduced tracking
|
||||
* privacy enhancement patches from Inox patchset, ungoogled-chromium and Iridium projects
|
||||
* webRTC, canvas, audio and other anti-fingerprinting mitigations
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* built with official optimizations
|
||||
|
||||
# Releases
|
||||
|
||||
A build server goes through the very lengthy build operation and then new versions are available in this project as [releases](https://github.com/bromite/bromite/releases).
|
||||
All built versions are available as [releases](https://github.com/bromite/bromite/releases).
|
||||
|
||||
Each tag corresponds to a Chromium release tag.
|
||||
|
||||
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDKs versions 16 and 21
|
||||
Additionally, SystemWebView, Monochrome and the vanilla Chromium builds are provided.
|
||||
|
||||
# How to build
|
||||
|
||||
The [bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git).
|
||||
The [Bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git).
|
||||
|
||||
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.
|
||||
|
||||
@@ -59,7 +87,7 @@ Please refer to [official Chromium build documentation](https://www.chromium.org
|
||||
* [Iridium project](https://github.com/iridium-browser) for some patches (taken from above ungoogled-chromium)
|
||||
* [Inox patchset](https://github.com/gcarq/inox-patchset) for some patches (taken from above ungoogled-chromium)
|
||||
* nochromo for the original adblock patch
|
||||
* AdBlock Plus, uBlock, EasyList and EasyPrivacy for the compilation of original adblock patch
|
||||
* AdBlock Plus, uBlock, EasyList and EasyPrivacy for the filters included
|
||||
|
||||
# License
|
||||
|
||||
|
||||
+103219
File diff suppressed because one or more lines are too long
@@ -0,0 +1,32 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 18 May 2018 10:10:00 +0200
|
||||
Subject: Increase maximum connections per host from 6 to 15
|
||||
|
||||
---
|
||||
net/socket/client_socket_pool_manager.cc | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
|
||||
--- a/net/socket/client_socket_pool_manager.cc
|
||||
+++ b/net/socket/client_socket_pool_manager.cc
|
||||
@@ -34,7 +34,7 @@ static_assert(arraysize(g_max_sockets_per_pool) ==
|
||||
HttpNetworkSession::NUM_SOCKET_POOL_TYPES,
|
||||
"max sockets per pool length mismatch");
|
||||
|
||||
-// Default to allow up to 6 connections per host. Experiment and tuning may
|
||||
+// Default to allow up to 15 connections per host. Experiment and tuning may
|
||||
// try other values (greater than 0). Too large may cause many problems, such
|
||||
// as home routers blocking the connections!?!? See http://crbug.com/12066.
|
||||
//
|
||||
@@ -43,7 +43,7 @@ static_assert(arraysize(g_max_sockets_per_pool) ==
|
||||
// be the same as the limit for ws. Also note that Firefox uses a limit of 200.
|
||||
// See http://crbug.com/486800
|
||||
int g_max_sockets_per_group[] = {
|
||||
- 6, // NORMAL_SOCKET_POOL
|
||||
+ 15, // NORMAL_SOCKET_POOL
|
||||
255 // WEBSOCKET_SOCKET_POOL
|
||||
};
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:47:49 2017 +0200
|
||||
|
||||
Disable the ad promo system by default
|
||||
author: Michael Gilbert <mgilbert@debian.org>
|
||||
bug-debian: http://bugs.debian.org/634101
|
||||
|
||||
diff --git a/chrome/browser/ui/app_list/app_list_service.cc b/chrome/browser/ui/app_list/app_list_service.cc
|
||||
--- a/chrome/browser/ui/app_list/app_list_service.cc
|
||||
+++ b/chrome/browser/ui/app_list/app_list_service.cc
|
||||
@@ -142,6 +142,10 @@ void AppListService::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterIntegerPref(prefs::kAppListEnableMethod,
|
||||
ENABLE_NOT_RECORDED);
|
||||
registry->RegisterInt64Pref(prefs::kAppListEnableTime, 0);
|
||||
+
|
||||
+ // Identifies whether we should show the app launcher promo or not. This
|
||||
+ // becomes false when the user dismisses the promo.
|
||||
+ registry->RegisterBooleanPref(prefs::kShowAppLauncherPromo, false);
|
||||
}
|
||||
|
||||
// static
|
||||
+11
-5
@@ -1,13 +1,16 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:50:10 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 11 Oct 2017 22:50:10 +0200
|
||||
Subject: Disable third-party cookies by default
|
||||
|
||||
Disable third-party cookies by default
|
||||
author: Chad Miller <chad.miller@canonical.com>
|
||||
author: Chad Miller <chad.miller@canonical.com>
|
||||
---
|
||||
components/content_settings/core/browser/cookie_settings.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -88,7 +88,7 @@ void CookieSettings::GetCookieSettings(
|
||||
@@ -111,7 +111,7 @@ void CookieSettings::GetCookieSettings(
|
||||
void CookieSettings::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -16,3 +19,6 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+9
-3
@@ -1,7 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Nov 26 11:40:05 2017 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 26 Nov 2017 11:40:05 +0100
|
||||
Subject: Restore classic new tab page
|
||||
|
||||
Restore classic new tab page
|
||||
---
|
||||
chrome/browser/search/search.cc | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
||||
--- a/chrome/browser/search/search.cc
|
||||
@@ -18,3 +21,6 @@ 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
|
||||
|
||||
+9
-3
@@ -1,7 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:57:29 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 11 Oct 2017 22:57:29 +0200
|
||||
Subject: Disable battery status service
|
||||
|
||||
Disable battery status service
|
||||
---
|
||||
services/device/battery/battery_status_service.cc | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/services/device/battery/battery_status_service.cc b/services/device/battery/battery_status_service.cc
|
||||
--- a/services/device/battery/battery_status_service.cc
|
||||
@@ -25,3 +28,6 @@ diff --git a/services/device/battery/battery_status_service.cc b/services/device
|
||||
|
||||
return callback_list_.Add(callback);
|
||||
}
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+9
-3
@@ -1,7 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 22:58:52 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 11 Oct 2017 22:58:52 +0200
|
||||
Subject: Disable GCM status check
|
||||
|
||||
Disable GCM status check
|
||||
---
|
||||
components/gcm_driver/gcm_channel_status_request.cc | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
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
|
||||
@@ -35,3 +38,6 @@ diff --git a/components/gcm_driver/gcm_channel_status_request.cc b/components/gc
|
||||
}
|
||||
|
||||
void GCMChannelStatusRequest::OnURLFetchComplete(
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+10
-3
@@ -1,7 +1,11 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 01:35:53 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 12 Oct 2017 01:35:53 +0200
|
||||
Subject: Disable updater pings
|
||||
|
||||
Disable updater pings
|
||||
---
|
||||
components/component_updater/configurator_impl.cc | 21 +++------------------
|
||||
components/component_updater/configurator_impl.h | 1 -
|
||||
2 files changed, 3 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/components/component_updater/configurator_impl.cc b/components/component_updater/configurator_impl.cc
|
||||
--- a/components/component_updater/configurator_impl.cc
|
||||
@@ -61,3 +65,6 @@ diff --git a/components/component_updater/configurator_impl.h b/components/compo
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(ConfiguratorImpl);
|
||||
};
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+12
-7
@@ -1,11 +1,13 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:19:25 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 13 Sep 2014 17:25:47 +0200
|
||||
Subject: prefs: only keep cookies until exit
|
||||
|
||||
Subject: [PATCH 21/60] prefs: only keep cookies until exit
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Sat, 13 Sep 2014 17:25:47 +0200
|
||||
|
||||
Out with all those tracking cookies!
|
||||
Out with all those tracking cookies!
|
||||
|
||||
author: Jan Engelhardt <jengelh@inai.de>
|
||||
---
|
||||
components/content_settings/core/browser/content_settings_registry.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -19,3 +21,6 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
|
||||
WebsiteSettingsInfo::SYNCABLE,
|
||||
WhitelistedSchemes(kChromeUIScheme, kChromeDevToolsScheme),
|
||||
ValidSettings(CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK,
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+16
-11
@@ -1,14 +1,16 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:12:18 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 2 Apr 2015 12:44:23 +0200
|
||||
Subject: Remove EV certificates
|
||||
|
||||
[PATCH 35/60] Remove EV certificates
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Thu, 2 Apr 2015 12:44:23 +0200
|
||||
|
||||
The team chose to let EV certificates appear just like normal
|
||||
certificates. The web of trust is considered a failure in itself, so
|
||||
do not give users a false sense of extra security with EV certs.
|
||||
Instead, let them appear just like regular ones.
|
||||
The team chose to let EV certificates appear just like normal
|
||||
certificates. The web of trust is considered a failure in itself, so
|
||||
do not give users a false sense of extra security with EV certs.
|
||||
Instead, let them appear just like regular ones.
|
||||
|
||||
author: Jan Engelhardt <jengelh@inai.de>
|
||||
---
|
||||
net/cert/ev_root_ca_metadata.cc | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc
|
||||
--- a/net/cert/ev_root_ca_metadata.cc
|
||||
@@ -30,7 +32,7 @@ diff --git a/net/cert/ev_root_ca_metadata.cc b/net/cert/ev_root_ca_metadata.cc
|
||||
// AC Camerfirma S.A. Chambers of Commerce Root - 2008
|
||||
// https://www.camerfirma.com
|
||||
{
|
||||
@@ -708,7 +718,9 @@ static const EVMetadata ev_root_ca_metadata[] = {
|
||||
@@ -748,7 +758,9 @@ static const EVMetadata ev_root_ca_metadata[] = {
|
||||
0xd2, 0x09, 0xb7, 0x37, 0xcb, 0xe2, 0xc1, 0x8c, 0xfb, 0x2c, 0x10,
|
||||
0xc0, 0xff, 0x0b, 0xcf, 0x0d, 0x32, 0x86, 0xfc, 0x1a, 0xa2}},
|
||||
{"2.16.840.1.114404.1.1.2.4.1", ""},
|
||||
@@ -41,3 +43,6 @@ 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)
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Sun, 9 Nov 2014 01:54:27 +0100
|
||||
Subject: promo: disable Google promotion fetching
|
||||
|
||||
Documentation is scarce, and sprinkled with misleading acronyms.
|
||||
NTP is not NTP, for example. FWIW:
|
||||
|
||||
// A PromoResourceService fetches data from a web resource server to
|
||||
// be used to dynamically change the appearance of the New Tab Page.
|
||||
// For example, it has been used to fetch "tips" to be displayed on
|
||||
// the NTP, or to display promotional messages to certain groups of
|
||||
// Chrome users.
|
||||
|
||||
Whatever it is that it downloads, deactivate the one that leads to
|
||||
Google.
|
||||
|
||||
References: https://github.com/iridium-browser/iridium-browser/issues/33
|
||||
---
|
||||
chrome/browser/signin/signin_promo.cc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
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 {
|
||||
|
||||
bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) {
|
||||
DCHECK(profile);
|
||||
+ return false;
|
||||
|
||||
// Don't show if the profile is an incognito.
|
||||
if (profile->IsOffTheRecord())
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:22:05 2017 +0200
|
||||
|
||||
[PATCH 45/60] promo: disable Google promotion fetching
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Sun, 9 Nov 2014 01:54:27 +0100
|
||||
|
||||
Documentation is scarce, and sprinkled with misleading acronyms.
|
||||
NTP is not NTP, for example. FWIW:
|
||||
|
||||
// A PromoResourceService fetches data from a web resource server to
|
||||
// be used to dynamically change the appearance of the New Tab Page.
|
||||
// For example, it has been used to fetch "tips" to be displayed on
|
||||
// the NTP, or to display promotional messages to certain groups of
|
||||
// Chrome users.
|
||||
|
||||
Whatever it is that it downloads, deactivate the one that leads to
|
||||
Google.
|
||||
|
||||
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 {
|
||||
|
||||
bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) {
|
||||
DCHECK(profile);
|
||||
+ return false;
|
||||
|
||||
// Don't show if the profile is an incognito.
|
||||
if (profile->IsOffTheRecord())
|
||||
+12
-9
@@ -1,25 +1,25 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:24:58 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 11 Oct 2017 23:24:58 +0200
|
||||
Subject: Disables omission of URL elements in Omnibox
|
||||
|
||||
Disables omission of URL elements in Omnibox
|
||||
|
||||
Disable all omissions (already shadowed by first flag)
|
||||
Disable all omissions (already shadowed by first flag)
|
||||
---
|
||||
components/url_formatter/url_formatter.cc | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
|
||||
--- a/components/url_formatter/url_formatter.cc
|
||||
+++ b/components/url_formatter/url_formatter.cc
|
||||
@@ -401,13 +401,13 @@ bool IDNToUnicodeOneComponent(const base::char16* comp,
|
||||
|
||||
@@ -402,12 +402,12 @@ bool IDNToUnicodeOneComponent(const base::char16* comp,
|
||||
} // namespace
|
||||
|
||||
-const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
-const FormatUrlType kFormatUrlOmitUsernamePassword = 1 << 0;
|
||||
-const FormatUrlType kFormatUrlOmitHTTP = 1 << 1;
|
||||
-const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 1 << 2;
|
||||
-const FormatUrlType kFormatUrlOmitHTTPS = 1 << 3;
|
||||
-const FormatUrlType kFormatUrlExperimentalElideAfterHost = 1 << 4;
|
||||
-const FormatUrlType kFormatUrlOmitTrivialSubdomains = 1 << 5;
|
||||
+const FormatUrlType kFormatUrlOmitNothing = 1;
|
||||
+const FormatUrlType kFormatUrlOmitUsernamePassword = 0 << 0;
|
||||
+const FormatUrlType kFormatUrlOmitHTTP = 0 << 1;
|
||||
+const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 0 << 2;
|
||||
@@ -29,3 +29,6 @@ diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatte
|
||||
|
||||
const FormatUrlType kFormatUrlOmitDefaults =
|
||||
kFormatUrlOmitUsernamePassword | kFormatUrlOmitHTTP |
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+36
-15
@@ -1,12 +1,30 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 08:09:24 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 12 Oct 2017 08:09:24 +0200
|
||||
Subject: Modify default preferences
|
||||
|
||||
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 +-
|
||||
.../resources/settings/reset_page/reset_profile_dialog.html | 2 +-
|
||||
chrome/browser/signin/signin_promo.cc | 4 ++--
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 4 ++--
|
||||
chrome/browser/ui/navigation_correction_tab_observer.cc | 2 +-
|
||||
chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc | 4 ----
|
||||
chrome/service/cloud_print/connector_settings.cc | 2 +-
|
||||
components/autofill/core/browser/autofill_manager.cc | 2 +-
|
||||
components/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(-)
|
||||
|
||||
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
|
||||
@@ -363,7 +363,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -362,7 +362,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
|
||||
registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
|
||||
#endif
|
||||
@@ -18,7 +36,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
|
||||
@@ -879,7 +879,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
@@ -990,7 +990,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
|
||||
@@ -30,15 +48,15 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
||||
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
|
||||
@@ -625,7 +625,7 @@ void IOThread::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -615,7 +615,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);
|
||||
registry->RegisterBooleanPref(prefs::kQuickCheckEnabled, true);
|
||||
registry->RegisterBooleanPref(prefs::kPacHttpsUrlStrippingEnabled, true);
|
||||
#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
|
||||
@@ -86,7 +104,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
|
||||
+ <paper-checkbox id="sendSettings">
|
||||
$i18nRaw{resetPageFeedback}</paper-checkbox>
|
||||
</div>
|
||||
</dialog>
|
||||
</cr-dialog>
|
||||
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
|
||||
@@ -99,12 +117,12 @@ diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signi
|
||||
+ registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, false);
|
||||
registry->RegisterBooleanPref(prefs::kSignInPromoShowNTPBubble, false);
|
||||
registry->RegisterIntegerPref(prefs::kDiceSigninUserMenuPromoCount, 0);
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -65,11 +65,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -70,11 +70,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -133,7 +151,7 @@ diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/br
|
||||
diff --git a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
--- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
|
||||
@@ -144,10 +144,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
|
||||
@@ -143,10 +143,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kLocalDiscoveryNotificationsEnabled,
|
||||
@@ -159,7 +177,7 @@ 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
|
||||
@@ -216,7 +216,7 @@ void AutofillManager::RegisterProfilePrefs(
|
||||
@@ -227,7 +227,7 @@ void AutofillManager::RegisterProfilePrefs(
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kAutofillCreditCardSigninPromoImpressionCount, 0);
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -189,7 +207,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
|
||||
@@ -346,9 +346,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
@@ -374,9 +374,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -204,7 +222,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
|
||||
@@ -330,14 +330,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
@@ -368,14 +368,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
if (is_theme())
|
||||
return false;
|
||||
|
||||
@@ -219,3 +237,6 @@ diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
||||
// Unless they are unpacked, never show hosted apps. Note: We intentionally
|
||||
// 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
|
||||
|
||||
+10
-4
@@ -1,7 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 11 23:17:17 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 11 Oct 2017 23:17:17 +0200
|
||||
Subject: Do not store passwords by default
|
||||
|
||||
Do not store passwords by default
|
||||
---
|
||||
components/password_manager/core/browser/password_manager.cc | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -17,5 +20,8 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp
|
||||
- prefs::kCredentialsEnableAutosignin, true,
|
||||
+ prefs::kCredentialsEnableAutosignin, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
|
||||
registry->RegisterBooleanPref(prefs::kWasObsoleteHttpDataCleaned, false);
|
||||
registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(),
|
||||
PrefRegistry::NO_REGISTRATION_FLAGS);
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+9
-3
@@ -1,7 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 08:15:17 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 12 Oct 2017 08:15:17 +0200
|
||||
Subject: Disable NTP remote suggestions by default
|
||||
|
||||
Disable NTP remote suggestions by default
|
||||
---
|
||||
components/ntp_snippets/features.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
|
||||
--- a/components/ntp_snippets/features.cc
|
||||
@@ -26,3 +29,6 @@ diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/featu
|
||||
|
||||
const base::Feature kPhysicalWebPageSuggestionsFeature{
|
||||
"NTPPhysicalWebPageSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+12
-3
@@ -1,7 +1,13 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Oct 15 21:45:46 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 15 Oct 2017 21:45:46 +0200
|
||||
Subject: Disable references to fonts.googleapis.com
|
||||
|
||||
Disables references to fonts.googleapis.com
|
||||
---
|
||||
.../dom_distiller/content/browser/dom_distiller_viewer_source.cc | 2 +-
|
||||
components/dom_distiller/core/html/preview.html | 2 +-
|
||||
components/dom_distiller/core/javascript/dom_distiller_viewer.js | 2 +-
|
||||
third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css | 3 +--
|
||||
4 files changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
--- a/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
@@ -52,3 +58,6 @@ diff --git a/third_party/crashpad/crashpad/doc/support/crashpad_doxygen.css b/th
|
||||
|
||||
body,
|
||||
table,
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+10
-4
@@ -1,12 +1,15 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 26 16:59:03 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 26 Oct 2017 16:59:03 +0200
|
||||
Subject: Disable WebRTC by default
|
||||
|
||||
Disable WebRTC by default
|
||||
---
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -84,10 +84,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -89,10 +89,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
#endif
|
||||
#if BUILDFLAG(ENABLE_WEBRTC)
|
||||
// TODO(guoweis): Remove next 2 options at M50.
|
||||
@@ -20,3 +23,6 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
|
||||
registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string());
|
||||
#endif
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+12
-5
@@ -1,17 +1,21 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri Oct 27 15:53:37 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 27 Oct 2017 15:53:37 +0200
|
||||
Subject: Disable data saver
|
||||
|
||||
Ported data reduction disable patch
|
||||
---
|
||||
.../java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 1 -
|
||||
.../chrome/browser/net/spdyproxy/DataReductionProxySettings.java | 2 ++
|
||||
.../browser/preferences/datareduction/DataReductionPromoUtils.java | 2 +-
|
||||
3 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
@@ -140,7 +140,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -140,7 +140,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
boolean notifyAdapter = false;
|
||||
// An optional Data Saver page.
|
||||
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
|
||||
- mPages.add(new DataReductionProxyFirstRunFragment.Page());
|
||||
+ //mPages.add(new DataReductionProxyFirstRunFragment.Page());
|
||||
mFreProgressStates.add(FRE_PROGRESS_DATA_SAVER_SHOWN);
|
||||
notifyAdapter = true;
|
||||
}
|
||||
@@ -46,3 +50,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+12
-4
@@ -1,7 +1,12 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Nov 26 22:51:43 2017 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 26 Nov 2017 22:51:43 +0100
|
||||
Subject: Skip the first run and metrics
|
||||
|
||||
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(-)
|
||||
|
||||
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
|
||||
@@ -51,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
|
||||
@@ -73,20 +73,14 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
@@ -74,20 +74,14 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
}
|
||||
});
|
||||
|
||||
@@ -78,3 +83,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd
|
||||
mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
NoUnderlineClickableSpan clickableTermsSpan = new NoUnderlineClickableSpan() {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+10
-4
@@ -1,12 +1,15 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Nov 26 23:11:56 2017 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 26 Nov 2017 23:11:56 +0100
|
||||
Subject: Disable Omaha update checks
|
||||
|
||||
Always disable Omaha update checks
|
||||
---
|
||||
.../android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -122,7 +122,7 @@ public class OmahaBase {
|
||||
@@ -132,7 +132,7 @@ public class OmahaBase {
|
||||
|
||||
/** See {@link #sIsDisabled}. */
|
||||
static boolean isDisabled() {
|
||||
@@ -15,3 +18,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+12
-11
@@ -1,19 +1,17 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu Oct 12 11:06:18 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 12 Oct 2017 11:06:18 +0200
|
||||
Subject: Add DuckDuckGo search engine
|
||||
|
||||
Add DuckDuckGo search engine, not enabled by default
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 19 ++
|
||||
components/search_engines/search_engine_type.h | 2 +
|
||||
.../template_url_prepopulate_data.cc | 218 ++++++++++-----------
|
||||
3 files changed, 130 insertions(+), 109 deletions(-)
|
||||
|
||||
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
|
||||
--- a/components/search_engines/prepopulated_engines.json
|
||||
+++ b/components/search_engines/prepopulated_engines.json
|
||||
@@ -32,12 +32,31 @@
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 100
|
||||
+ "kCurrentDataVersion": 101
|
||||
},
|
||||
|
||||
@@ -38,6 +38,25 @@
|
||||
// The following engines are included in country lists and are added to the
|
||||
// list of search engines on the first run depending on user's country.
|
||||
"elements": {
|
||||
@@ -712,3 +710,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
||||
&mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio,
|
||||
&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
|
||||
|
||||
+13
-5
@@ -1,7 +1,12 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Oct 18 21:24:05 2017 +0200
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 18 Oct 2017 21:24:05 +0200
|
||||
Subject: Add StartPage search engine
|
||||
|
||||
Add StartPage search engine
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 12 +-
|
||||
components/search_engines/search_engine_type.h | 1 +
|
||||
.../template_url_prepopulate_data.cc | 218 ++++++++++-----------
|
||||
3 files changed, 121 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
|
||||
@@ -10,8 +15,8 @@ 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": 101
|
||||
+ "kCurrentDataVersion": 102
|
||||
- "kCurrentDataVersion": 100
|
||||
+ "kCurrentDataVersion": 101
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -704,3 +709,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
||||
&mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio,
|
||||
&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
|
||||
|
||||
+15
-5
@@ -1,7 +1,14 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Dec 11 22:42:11 2017 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 11 Dec 2017 22:42:11 +0100
|
||||
Subject: Added Google English-only engine
|
||||
|
||||
Added Google English-only engine, no RLZ and field experiments
|
||||
Add a Google search engine that forces languages to English,
|
||||
disable from all its searches RLZ and field experiments querystring parameters.
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 23 ++-
|
||||
components/search_engines/search_engine_type.h | 1 +
|
||||
.../template_url_prepopulate_data.cc | 218 ++++++++++-----------
|
||||
3 files changed, 132 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
|
||||
@@ -10,8 +17,8 @@ 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": 101
|
||||
+ "kCurrentDataVersion": 102
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -715,3 +722,6 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
||||
&mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio,
|
||||
&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
|
||||
|
||||
@@ -0,0 +1,715 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Mar 2018 20:31:44 +0100
|
||||
Subject: Add Qwant search engine
|
||||
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 13 +-
|
||||
components/search_engines/search_engine_type.h | 1 +
|
||||
.../template_url_prepopulate_data.cc | 218 ++++++++++-----------
|
||||
3 files changed, 122 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
|
||||
+++ b/components/search_engines/prepopulated_engines.json
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
// Increment this if you change the data in ways that mean users with
|
||||
// existing data should get a new version.
|
||||
- "kCurrentDataVersion": 102
|
||||
+ "kCurrentDataVersion": 103
|
||||
},
|
||||
|
||||
// The following engines are included in country lists and are added to the
|
||||
@@ -939,6 +939,17 @@
|
||||
"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
|
||||
+ },
|
||||
+
|
||||
"rambler": {
|
||||
"name": "\u0420\u0430\u043c\u0431\u043b\u0435\u0440",
|
||||
"keyword": "rambler.ru",
|
||||
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
|
||||
--- a/components/search_engines/search_engine_type.h
|
||||
+++ b/components/search_engines/search_engine_type.h
|
||||
@@ -67,6 +67,7 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_DUCKDUCKGOLIGHT,
|
||||
SEARCH_ENGINE_STARTPAGE,
|
||||
SEARCH_ENGINE_GOOGLE_EN,
|
||||
+ SEARCH_ENGINE_QWANT,
|
||||
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
|
||||
};
|
||||
|
||||
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
|
||||
--- a/components/search_engines/template_url_prepopulate_data.cc
|
||||
+++ b/components/search_engines/template_url_prepopulate_data.cc
|
||||
@@ -51,548 +51,548 @@ namespace {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
const PrepopulatedEngine* const engines_default[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// United Arab Emirates
|
||||
const PrepopulatedEngine* const engines_AE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Albania
|
||||
const PrepopulatedEngine* const engines_AL[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Argentina
|
||||
const PrepopulatedEngine* const engines_AR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ar,
|
||||
};
|
||||
|
||||
// Austria
|
||||
const PrepopulatedEngine* const engines_AT[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_at,
|
||||
};
|
||||
|
||||
// Australia
|
||||
const PrepopulatedEngine* const engines_AU[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_au,
|
||||
};
|
||||
|
||||
// Bosnia and Herzegovina
|
||||
const PrepopulatedEngine* const engines_BA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Belgium
|
||||
const PrepopulatedEngine* const engines_BE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Bulgaria
|
||||
const PrepopulatedEngine* const engines_BG[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Bahrain
|
||||
const PrepopulatedEngine* const engines_BH[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Burundi
|
||||
const PrepopulatedEngine* const engines_BI[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Brunei
|
||||
const PrepopulatedEngine* const engines_BN[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Bolivia
|
||||
const PrepopulatedEngine* const engines_BO[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Brazil
|
||||
const PrepopulatedEngine* const engines_BR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &ask_br, &bing, &yahoo_br,
|
||||
};
|
||||
|
||||
// Belarus
|
||||
const PrepopulatedEngine* const engines_BY[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_by, &mail_ru,
|
||||
};
|
||||
|
||||
// Belize
|
||||
const PrepopulatedEngine* const engines_BZ[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Canada
|
||||
const PrepopulatedEngine* const engines_CA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &ask, &yahoo_ca, &yahoo_qc,
|
||||
};
|
||||
|
||||
// Switzerland
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ch,
|
||||
};
|
||||
|
||||
// Chile
|
||||
const PrepopulatedEngine* const engines_CL[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_cl,
|
||||
};
|
||||
|
||||
// China
|
||||
const PrepopulatedEngine* const engines_CN[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &baidu, &sogou, &so_360,
|
||||
};
|
||||
|
||||
// Colombia
|
||||
const PrepopulatedEngine* const engines_CO[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_co,
|
||||
};
|
||||
|
||||
// Costa Rica
|
||||
const PrepopulatedEngine* const engines_CR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Czech Republic
|
||||
const PrepopulatedEngine* const engines_CZ[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &seznam, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &seznam, &bing,
|
||||
};
|
||||
|
||||
// Germany
|
||||
const PrepopulatedEngine* const engines_DE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Denmark
|
||||
const PrepopulatedEngine* const engines_DK[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_dk,
|
||||
};
|
||||
|
||||
// Dominican Republic
|
||||
const PrepopulatedEngine* const engines_DO[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Algeria
|
||||
const PrepopulatedEngine* const engines_DZ[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Ecuador
|
||||
const PrepopulatedEngine* const engines_EC[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Estonia
|
||||
const PrepopulatedEngine* const engines_EE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Egypt
|
||||
const PrepopulatedEngine* const engines_EG[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Spain
|
||||
const PrepopulatedEngine* const engines_ES[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_es,
|
||||
};
|
||||
|
||||
// Faroe Islands
|
||||
const PrepopulatedEngine* const engines_FO[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &ask,
|
||||
};
|
||||
|
||||
// Finland
|
||||
const PrepopulatedEngine* const engines_FI[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fi,
|
||||
};
|
||||
|
||||
// France
|
||||
const PrepopulatedEngine* const engines_FR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// United Kingdom
|
||||
const PrepopulatedEngine* const engines_GB[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk, &ask_uk,
|
||||
};
|
||||
|
||||
// Greece
|
||||
const PrepopulatedEngine* const engines_GR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_gr,
|
||||
};
|
||||
|
||||
// Guatemala
|
||||
const PrepopulatedEngine* const engines_GT[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Hong Kong
|
||||
const PrepopulatedEngine* const engines_HK[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_hk, &baidu, &bing,
|
||||
};
|
||||
|
||||
// Honduras
|
||||
const PrepopulatedEngine* const engines_HN[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Croatia
|
||||
const PrepopulatedEngine* const engines_HR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Hungary
|
||||
const PrepopulatedEngine* const engines_HU[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Indonesia
|
||||
const PrepopulatedEngine* const engines_ID[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_id, &bing,
|
||||
};
|
||||
|
||||
// Ireland
|
||||
const PrepopulatedEngine* const engines_IE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_uk,
|
||||
};
|
||||
|
||||
// Israel
|
||||
const PrepopulatedEngine* const engines_IL[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// India
|
||||
const PrepopulatedEngine* const engines_IN[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_in,
|
||||
};
|
||||
|
||||
// Iraq
|
||||
const PrepopulatedEngine* const engines_IQ[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Iran
|
||||
const PrepopulatedEngine* const engines_IR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Iceland
|
||||
const PrepopulatedEngine* const engines_IS[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Italy
|
||||
const PrepopulatedEngine* const engines_IT[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &virgilio, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &virgilio, &bing,
|
||||
};
|
||||
|
||||
// Jamaica
|
||||
const PrepopulatedEngine* const engines_JM[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Jordan
|
||||
const PrepopulatedEngine* const engines_JO[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Japan
|
||||
const PrepopulatedEngine* const engines_JP[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_jp, &bing,
|
||||
};
|
||||
|
||||
// Kenya
|
||||
const PrepopulatedEngine* const engines_KE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Kuwait
|
||||
const PrepopulatedEngine* const engines_KW[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// South Korea
|
||||
const PrepopulatedEngine* const engines_KR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &naver, &daum,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &naver, &daum,
|
||||
};
|
||||
|
||||
// Kazakhstan
|
||||
const PrepopulatedEngine* const engines_KZ[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &mail_ru, &yandex_kz,
|
||||
};
|
||||
|
||||
// Lebanon
|
||||
const PrepopulatedEngine* const engines_LB[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Liechtenstein
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_de,
|
||||
};
|
||||
|
||||
// Lithuania
|
||||
const PrepopulatedEngine* const engines_LT[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yandex_ru,
|
||||
};
|
||||
|
||||
// Luxembourg
|
||||
const PrepopulatedEngine* const engines_LU[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_fr,
|
||||
};
|
||||
|
||||
// Latvia
|
||||
const PrepopulatedEngine* const engines_LV[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_ru, &bing,
|
||||
};
|
||||
|
||||
// Libya
|
||||
const PrepopulatedEngine* const engines_LY[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Morocco
|
||||
const PrepopulatedEngine* const engines_MA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Monaco
|
||||
const PrepopulatedEngine* const engines_MC[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_fr, &bing,
|
||||
};
|
||||
|
||||
// Moldova
|
||||
const PrepopulatedEngine* const engines_MD[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Montenegro
|
||||
const PrepopulatedEngine* const engines_ME[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Macedonia
|
||||
const PrepopulatedEngine* const engines_MK[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Mexico
|
||||
const PrepopulatedEngine* const engines_MX[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_mx,
|
||||
};
|
||||
|
||||
// Malaysia
|
||||
const PrepopulatedEngine* const engines_MY[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_my, &bing,
|
||||
};
|
||||
|
||||
// Nicaragua
|
||||
const PrepopulatedEngine* const engines_NI[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Netherlands
|
||||
const PrepopulatedEngine* const engines_NL[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_nl, &vinden,
|
||||
};
|
||||
|
||||
// Norway
|
||||
const PrepopulatedEngine* const engines_NO[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &kvasir,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &kvasir,
|
||||
};
|
||||
|
||||
// New Zealand
|
||||
const PrepopulatedEngine* const engines_NZ[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_nz,
|
||||
};
|
||||
|
||||
// Oman
|
||||
const PrepopulatedEngine* const engines_OM[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Panama
|
||||
const PrepopulatedEngine* const engines_PA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Peru
|
||||
const PrepopulatedEngine* const engines_PE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_pe,
|
||||
};
|
||||
|
||||
// Philippines
|
||||
const PrepopulatedEngine* const engines_PH[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_ph, &bing,
|
||||
};
|
||||
|
||||
// Pakistan
|
||||
const PrepopulatedEngine* const engines_PK[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Puerto Rico
|
||||
const PrepopulatedEngine* const engines_PR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Poland
|
||||
const PrepopulatedEngine* const engines_PL[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &onet, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &onet, &bing,
|
||||
};
|
||||
|
||||
// Portugal
|
||||
const PrepopulatedEngine* const engines_PT[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Paraguay
|
||||
const PrepopulatedEngine* const engines_PY[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Qatar
|
||||
const PrepopulatedEngine* const engines_QA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Romania
|
||||
const PrepopulatedEngine* const engines_RO[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_ro, &bing,
|
||||
};
|
||||
|
||||
// Serbia
|
||||
const PrepopulatedEngine* const engines_RS[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Russia
|
||||
const PrepopulatedEngine* const engines_RU[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_ru, &mail_ru,
|
||||
};
|
||||
|
||||
// Rwanda
|
||||
const PrepopulatedEngine* const engines_RW[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Saudi Arabia
|
||||
const PrepopulatedEngine* const engines_SA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_maktoob, &bing,
|
||||
};
|
||||
|
||||
// Sweden
|
||||
const PrepopulatedEngine* const engines_SE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_se,
|
||||
};
|
||||
|
||||
// Singapore
|
||||
const PrepopulatedEngine* const engines_SG[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_sg, &bing,
|
||||
};
|
||||
|
||||
// Slovenia
|
||||
const PrepopulatedEngine* const engines_SI[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &najdi, &ask,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &najdi, &ask,
|
||||
};
|
||||
|
||||
// Slovakia
|
||||
const PrepopulatedEngine* const engines_SK[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// El Salvador
|
||||
const PrepopulatedEngine* const engines_SV[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Syria
|
||||
const PrepopulatedEngine* const engines_SY[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Thailand
|
||||
const PrepopulatedEngine* const engines_TH[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_th, &bing,
|
||||
};
|
||||
|
||||
// Tunisia
|
||||
const PrepopulatedEngine* const engines_TN[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// Turkey
|
||||
const PrepopulatedEngine* const engines_TR[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_tr, &yandex_tr,
|
||||
};
|
||||
|
||||
// Trinidad and Tobago
|
||||
const PrepopulatedEngine* const engines_TT[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Taiwan
|
||||
const PrepopulatedEngine* const engines_TW[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_tw, &bing,
|
||||
};
|
||||
|
||||
// Tanzania
|
||||
const PrepopulatedEngine* const engines_TZ[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo, &bing,
|
||||
};
|
||||
|
||||
// Ukraine
|
||||
const PrepopulatedEngine* const engines_UA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yandex_ua, &bing,
|
||||
};
|
||||
|
||||
// United States
|
||||
const PrepopulatedEngine* const engines_US[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &aol, &ask,
|
||||
};
|
||||
|
||||
// Uruguay
|
||||
const PrepopulatedEngine* const engines_UY[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Venezuela
|
||||
const PrepopulatedEngine* const engines_VE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_ve,
|
||||
};
|
||||
|
||||
// Vietnam
|
||||
const PrepopulatedEngine* const engines_VN[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &yahoo_vn, &bing,
|
||||
};
|
||||
|
||||
// Yemen
|
||||
const PrepopulatedEngine* const engines_YE[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo_maktoob,
|
||||
};
|
||||
|
||||
// South Africa
|
||||
const PrepopulatedEngine* const engines_ZA[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo,
|
||||
};
|
||||
|
||||
// Zimbabwe
|
||||
const PrepopulatedEngine* const engines_ZW[] = {
|
||||
- &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask,
|
||||
+ &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &bing, &yahoo, &ask,
|
||||
};
|
||||
|
||||
// A list of all the engines that we know about.
|
||||
const PrepopulatedEngine* const kAllEngines[] = {
|
||||
// Prepopulated engines:
|
||||
- &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &googleen, &google, &startpage, &duckduckgo, &duckduckgo_light, &kvasir,
|
||||
+ &aol, &ask, &ask_br, &ask_uk, &baidu, &bing, &daum, &googleen, &google, &startpage, &qwant, &duckduckgo, &duckduckgo_light, &kvasir,
|
||||
&mail_ru, &najdi, &naver, &onet, &seznam, &sogou, &vinden, &virgilio,
|
||||
&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
|
||||
|
||||
-114
@@ -1,114 +0,0 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Dec 20 22:18:41 2017 +0100
|
||||
|
||||
Revert "Remove Runtime flags for /deep/ and ::shadow used in CSS dynamic profile"
|
||||
|
||||
This reverts commit 860f43550bf6587ca21900dfdf901fce697cbbb7
|
||||
|
||||
diff --git a/third_party/WebKit/Source/core/css/CSSSelector.cpp b/third_party/WebKit/Source/core/css/CSSSelector.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/CSSSelector.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/CSSSelector.cpp
|
||||
@@ -546,8 +546,14 @@ void CSSSelector::UpdatePseudoType(const AtomicString& value,
|
||||
pseudo_type_ = kPseudoUnknown;
|
||||
break;
|
||||
case kPseudoShadow:
|
||||
- if (match_ != kPseudoElement || context.IsDynamicProfile())
|
||||
- pseudo_type_ = kPseudoUnknown;
|
||||
+ if (RuntimeEnabledFeatures::
|
||||
+ ShadowPseudoElementInCSSDynamicProfileEnabled()) {
|
||||
+ if (match_ != kPseudoElement)
|
||||
+ pseudo_type_ = kPseudoUnknown;
|
||||
+ } else {
|
||||
+ if (match_ != kPseudoElement || context.IsDynamicProfile())
|
||||
+ pseudo_type_ = kPseudoUnknown;
|
||||
+ }
|
||||
break;
|
||||
case kPseudoBlinkInternalElement:
|
||||
if (match_ != kPseudoElement || mode != kUASheetMode)
|
||||
diff --git a/third_party/WebKit/Source/core/css/SelectorChecker.cpp b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/SelectorChecker.cpp
|
||||
@@ -336,6 +336,8 @@ SelectorChecker::MatchStatus SelectorChecker::MatchForRelation(
|
||||
|
||||
switch (relation) {
|
||||
case CSSSelector::kShadowDeepAsDescendant:
|
||||
+ DCHECK(
|
||||
+ !RuntimeEnabledFeatures::DeepCombinatorInCSSDynamicProfileEnabled());
|
||||
Deprecation::CountDeprecation(context.element->GetDocument(),
|
||||
WebFeature::kCSSDeepCombinator);
|
||||
FALLTHROUGH;
|
||||
@@ -424,6 +426,11 @@ SelectorChecker::MatchStatus SelectorChecker::MatchForRelation(
|
||||
UseCounter::Count(context.element->GetDocument(),
|
||||
WebFeature::kPseudoShadowInStaticProfile);
|
||||
}
|
||||
+ if (RuntimeEnabledFeatures::
|
||||
+ ShadowPseudoElementInCSSDynamicProfileEnabled()) {
|
||||
+ Deprecation::CountDeprecation(context.element->GetDocument(),
|
||||
+ WebFeature::kCSSSelectorPseudoShadow);
|
||||
+ }
|
||||
// If we're in the same tree-scope as the scoping element, then following
|
||||
// a shadow descendant combinator would escape that and thus the scope.
|
||||
if (context.scope && context.scope->OwnerShadowHost() &&
|
||||
diff --git a/third_party/WebKit/Source/core/css/StyleEngineTest.cpp b/third_party/WebKit/Source/core/css/StyleEngineTest.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/StyleEngineTest.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/StyleEngineTest.cpp
|
||||
@@ -842,6 +842,14 @@ TEST_F(StyleEngineTest, RuleSetInvalidationV0BoundaryCrossing) {
|
||||
EXPECT_EQ(ScheduleInvalidationsForRules(
|
||||
*shadow_root, ".a ::content span { background: green}"),
|
||||
kRuleSetInvalidationFullRecalc);
|
||||
+ if (RuntimeEnabledFeatures::DeepCombinatorInCSSDynamicProfileEnabled()) {
|
||||
+ EXPECT_EQ(ScheduleInvalidationsForRules(
|
||||
+ *shadow_root, ".a /deep/ span { background: green}"),
|
||||
+ kRuleSetInvalidationFullRecalc);
|
||||
+ EXPECT_EQ(ScheduleInvalidationsForRules(
|
||||
+ *shadow_root, ".a::shadow span { background: green}"),
|
||||
+ kRuleSetInvalidationFullRecalc);
|
||||
+ }
|
||||
}
|
||||
|
||||
TEST_F(StyleEngineTest, HasViewportDependentMediaQueries) {
|
||||
diff --git a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
||||
--- a/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
||||
+++ b/third_party/WebKit/Source/core/css/parser/CSSSelectorParser.cpp
|
||||
@@ -1,4 +1,3 @@
|
||||
-
|
||||
// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
@@ -667,6 +666,9 @@ CSSSelector::RelationType CSSSelectorParser::ConsumeCombinator(
|
||||
const CSSParserToken& slash = range.ConsumeIncludingWhitespace();
|
||||
if (slash.GetType() != kDelimiterToken || slash.Delimiter() != '/')
|
||||
failed_parsing_ = true;
|
||||
+ if (RuntimeEnabledFeatures::DeepCombinatorInCSSDynamicProfileEnabled()) {
|
||||
+ return CSSSelector::kShadowDeep;
|
||||
+ }
|
||||
return context_->IsDynamicProfile() ? CSSSelector::kShadowDeepAsDescendant
|
||||
: CSSSelector::kShadowDeep;
|
||||
}
|
||||
diff --git a/third_party/WebKit/Source/platform/runtime_enabled_features.json5 b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
@@ -325,6 +325,11 @@
|
||||
name: "DecodeToYUV",
|
||||
status: "experimental",
|
||||
},
|
||||
+ // Remove this flag once we can remove /deep/ at M63.
|
||||
+ {
|
||||
+ name: "DeepCombinatorInCSSDynamicProfile",
|
||||
+ status: "test",
|
||||
+ },
|
||||
{
|
||||
name: "DeprecationReporting",
|
||||
status: "experimental",
|
||||
@@ -974,6 +979,11 @@
|
||||
name: "ShadowPiercingDescendantCombinator",
|
||||
status: "experimental",
|
||||
},
|
||||
+ // Remove this flag once we can remove ::shadow at M63.
|
||||
+ {
|
||||
+ name: "ShadowPseudoElementInCSSDynamicProfile",
|
||||
+ status: "test",
|
||||
+ },
|
||||
{
|
||||
name: "ShapeDetection",
|
||||
status: "experimental",
|
||||
+12
-6
@@ -1,14 +1,17 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat Jan 20 19:44:43 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 20 Jan 2018 19:44:43 +0100
|
||||
Subject: Fix crash when accessing page info / site settings
|
||||
|
||||
Fix crash when accessing page info / site settings
|
||||
---
|
||||
chrome/browser/permissions/permission_manager.cc | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
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
|
||||
@@ -573,6 +573,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
const GURL& embedding_origin) {
|
||||
GURL canonical_requesting_origin = GetCanonicalOrigin(requesting_origin);
|
||||
@@ -632,6 +632,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
GURL canonical_requesting_origin =
|
||||
GetCanonicalOrigin(requesting_origin, embedding_origin);
|
||||
PermissionContextBase* context = GetPermissionContext(permission);
|
||||
+ if (context == nullptr) {
|
||||
+ return PermissionResult(CONTENT_SETTING_BLOCK, PermissionStatusSource::UNSPECIFIED);
|
||||
@@ -16,3 +19,6 @@ diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/p
|
||||
PermissionResult result = context->GetPermissionStatus(
|
||||
render_frame_host, canonical_requesting_origin.GetOrigin(),
|
||||
embedding_origin.GetOrigin());
|
||||
--
|
||||
2.7.4
|
||||
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Dec 20 22:31:37 2017 +0100
|
||||
|
||||
Revert "Disable runtime flags for /deep/ and ::shadow used in CSS dynamic profile for M63."
|
||||
|
||||
This reverts commit 0ebd56da93abf970128804390879624b3dc79ac2.
|
||||
|
||||
diff --git a/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
|
||||
--- a/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
|
||||
+++ b/third_party/WebKit/LayoutTests/fast/dom/shadow/apply-deep-in-document-scope-expected.txt
|
||||
@@ -1,4 +1,4 @@
|
||||
-CONSOLE WARNING: line 1: /deep/ combinator is no longer supported in CSS dynamic profile.It is now effectively no-op, acting as if it were a descendant combinator. /deep/ combinator will be removed, and will be invalid at M65. You should remove it. See https://www.chromestatus.com/features/4964279606312960 for more details.
|
||||
+CONSOLE WARNING: line 1: /deep/ combinator in CSS is deprecated and will be removed in M63, around December 2017. See https://www.chromestatus.com/features/4964279606312960 for more details.
|
||||
/deep/ as a descendant selector in document without shadow trees.
|
||||
|
||||
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
|
||||
diff --git a/third_party/WebKit/Source/core/frame/Deprecation.cpp b/third_party/WebKit/Source/core/frame/Deprecation.cpp
|
||||
--- a/third_party/WebKit/Source/core/frame/Deprecation.cpp
|
||||
+++ b/third_party/WebKit/Source/core/frame/Deprecation.cpp
|
||||
@@ -388,13 +388,13 @@ DeprecationInfo GetDeprecationInfo(WebFeature feature) {
|
||||
"details.")};
|
||||
|
||||
case WebFeature::kCSSDeepCombinator:
|
||||
- return {"CSSDeepCombinator", M65,
|
||||
- "/deep/ combinator is no longer supported in CSS dynamic profile."
|
||||
- "It is now effectively no-op, acting as if it were a descendant "
|
||||
- "combinator. /deep/ combinator will be removed, and will be "
|
||||
- "invalid at M65. You should remove it. See "
|
||||
- "https://www.chromestatus.com/features/4964279606312960 for more "
|
||||
- "details."};
|
||||
+ return {"CSSDeepCombinator", M63,
|
||||
+ willBeRemoved("/deep/ combinator in CSS", M63, "4964279606312960")};
|
||||
+
|
||||
+ case WebFeature::kCSSSelectorPseudoShadow:
|
||||
+ return {"CSSSelectorPseudoShadow", M63,
|
||||
+ willBeRemoved("::shadow pseudo-element in CSS", M63,
|
||||
+ "6750456638341120")};
|
||||
|
||||
case WebFeature::kVREyeParametersOffset:
|
||||
return {"VREyeParametersOffset", Unknown,
|
||||
diff --git a/third_party/WebKit/Source/platform/runtime_enabled_features.json5 b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
|
||||
@@ -325,10 +325,11 @@
|
||||
name: "DecodeToYUV",
|
||||
status: "experimental",
|
||||
},
|
||||
- // Remove this flag once we can remove /deep/ at M63.
|
||||
+ // Introduced this flag as stable so we can re-enable this feature easily
|
||||
+ // after we disable this feature.
|
||||
{
|
||||
name: "DeepCombinatorInCSSDynamicProfile",
|
||||
- status: "test",
|
||||
+ status: "stable",
|
||||
},
|
||||
{
|
||||
name: "DeprecationReporting",
|
||||
@@ -979,10 +980,11 @@
|
||||
name: "ShadowPiercingDescendantCombinator",
|
||||
status: "experimental",
|
||||
},
|
||||
- // Remove this flag once we can remove ::shadow at M63.
|
||||
+ // Introduced this flag as stable so we can re-enable this feature easily
|
||||
+ // after we disable this feature.
|
||||
{
|
||||
name: "ShadowPseudoElementInCSSDynamicProfile",
|
||||
- status: "test",
|
||||
+ status: "stable",
|
||||
},
|
||||
{
|
||||
name: "ShapeDetection",
|
||||
@@ -0,0 +1,109 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 20 Jan 2018 21:17:27 +0100
|
||||
Subject: openH264: enable ARM/ARM64 optimizations
|
||||
|
||||
Enable the optimizations not only for ChromeOS but for all compatbile ARM/ARM64 architectures
|
||||
Limit threads auto-detect only for iOS
|
||||
---
|
||||
content/renderer/media_recorder/h264_encoder.cc | 6 ++--
|
||||
third_party/openh264/BUILD.gn | 39 +++++++++++++++++++++++++
|
||||
2 files changed, 42 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/content/renderer/media_recorder/h264_encoder.cc b/content/renderer/media_recorder/h264_encoder.cc
|
||||
--- a/content/renderer/media_recorder/h264_encoder.cc
|
||||
+++ b/content/renderer/media_recorder/h264_encoder.cc
|
||||
@@ -149,11 +149,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
|
||||
init_params.iRCMode = RC_OFF_MODE;
|
||||
}
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
- init_params.iMultipleThreadIdc = 0;
|
||||
-#else
|
||||
+#if defined(OS_MACOSX)
|
||||
// Threading model: Set to 1 due to https://crbug.com/583348.
|
||||
init_params.iMultipleThreadIdc = 1;
|
||||
+#else
|
||||
+ init_params.iMultipleThreadIdc = 0;
|
||||
#endif
|
||||
|
||||
// TODO(mcasas): consider reducing complexity if there are few CPUs available.
|
||||
diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
||||
--- a/third_party/openh264/BUILD.gn
|
||||
+++ b/third_party/openh264/BUILD.gn
|
||||
@@ -10,6 +10,7 @@ import("//third_party/yasm/yasm_assemble.gni")
|
||||
# Config shared by all openh264 targets.
|
||||
config("config") {
|
||||
cflags = []
|
||||
+ defines = []
|
||||
|
||||
if (is_chromeos && target_cpu == "arm") {
|
||||
# HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS
|
||||
@@ -20,6 +21,20 @@ config("config") {
|
||||
]
|
||||
}
|
||||
|
||||
+ # HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS
|
||||
+ # devices.
|
||||
+ if (is_chromeos && target_cpu == "arm") {
|
||||
+ defines += [
|
||||
+ "__chromeos__",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
+ if (target_cpu == "arm" || target_cpu == "arm64") {
|
||||
+ defines += [
|
||||
+ "HAVE_NEON",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
# 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") {
|
||||
}
|
||||
include_dirs = openh264_common_include_dirs
|
||||
|
||||
+ # enable ARM optimizations
|
||||
+ if (target_cpu == "arm") {
|
||||
+ sources += openh264_common_sources_asm_arm
|
||||
+ }
|
||||
+ if (target_cpu == "arm64") {
|
||||
+ sources += openh264_common_sources_asm_arm64
|
||||
+ }
|
||||
+
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":config" ]
|
||||
@@ -154,6 +177,14 @@ source_set("processing") {
|
||||
}
|
||||
include_dirs = openh264_processing_include_dirs
|
||||
|
||||
+ # enable ARM optimizations
|
||||
+ if (target_cpu == "arm") {
|
||||
+ sources += openh264_common_sources_asm_arm
|
||||
+ }
|
||||
+ if (target_cpu == "arm64") {
|
||||
+ sources += openh264_common_sources_asm_arm64
|
||||
+ }
|
||||
+
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":config" ]
|
||||
@@ -173,6 +204,14 @@ source_set("encoder") {
|
||||
}
|
||||
include_dirs = openh264_encoder_include_dirs
|
||||
|
||||
+ # enable ARM optimizations
|
||||
+ if (target_cpu == "arm") {
|
||||
+ sources += openh264_common_sources_asm_arm
|
||||
+ }
|
||||
+ if (target_cpu == "arm64") {
|
||||
+ sources += openh264_common_sources_asm_arm64
|
||||
+ }
|
||||
+
|
||||
configs -= [ "//build/config/compiler:chromium_code" ]
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
configs += [ ":config" ]
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+43
-35
@@ -1,33 +1,38 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat Oct 28 10:09:41 2017 +0200
|
||||
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
|
||||
|
||||
Do not track google search results clicks
|
||||
|
||||
Limit AMP cleanup to main search results
|
||||
---
|
||||
third_party/blink/renderer/core/dom/BUILD.gn | 1 +
|
||||
third_party/blink/renderer/core/dom/document.cc | 20 +++++++++++++++++++-
|
||||
.../renderer/core/dom/extensions/anti_amp_cure.h | 6 ++++++
|
||||
3 files changed, 26 insertions(+), 1 deletion(-)
|
||||
create mode 100644 third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h
|
||||
|
||||
diff --git a/third_party/WebKit/Source/core/dom/BUILD.gn b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
--- a/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
+++ b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
@@ -301,6 +301,7 @@ blink_core_sources("dom") {
|
||||
"events/TreeScopeEventContext.h",
|
||||
"events/WindowEventContext.cpp",
|
||||
"events/WindowEventContext.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,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",
|
||||
"ng/flat_tree_traversal_ng.cc",
|
||||
"ng/flat_tree_traversal_ng.h",
|
||||
"trustedtypes/TrustedHTML.cpp",
|
||||
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
--- a/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
@@ -221,6 +221,7 @@
|
||||
#include "core/xml/parser/XMLDocumentParser.h"
|
||||
#include "core/xml_names.h"
|
||||
#include "core/xmlns_names.h"
|
||||
+#include "extensions/dont-track-me.h"
|
||||
#include "platform/CrossThreadFunctional.h"
|
||||
#include "platform/DateComponents.h"
|
||||
#include "platform/EventDispatchForbiddenScope.h"
|
||||
@@ -5786,8 +5787,24 @@ void Document::FinishedParsing() {
|
||||
"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
|
||||
@@ -276,6 +276,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>>;
|
||||
@@ -5839,8 +5841,24 @@ void Document::FinishedParsing() {
|
||||
fetcher_->ClearResourcesFromPreviousFetcher();
|
||||
}
|
||||
|
||||
@@ -44,23 +49,26 @@ diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKi
|
||||
+ size_t pos = domain.Find(".google.");
|
||||
+ auto* bodyElement = body();
|
||||
+ if (bodyElement && (pos != WTF::kNotFound) && (domain.length() - pos - 8 < 4)) {
|
||||
+ LOG(INFO) << "injecting dont-track-me Javascript payload";
|
||||
+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload";
|
||||
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
+ e->setText(DONT_TRACK_ME_JS);
|
||||
+ e->setText(ANTI_AMP_CURE_JS);
|
||||
+ bodyElement->AppendChild(e);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
void Document::ElementDataCacheClearTimerFired(TimerBase*) {
|
||||
diff --git a/third_party/WebKit/Source/core/dom/extensions/dont-track-me.h b/third_party/WebKit/Source/core/dom/extensions/dont-track-me.h
|
||||
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/WebKit/Source/core/dom/extensions/dont-track-me.h
|
||||
+++ b/third_party/blink/renderer/core/dom/extensions/anti_amp_cure.h
|
||||
@@ -0,0 +1,6 @@
|
||||
+#ifndef dont_track_me_h
|
||||
+#define dont_track_me_h
|
||||
+#ifndef anti_amp_cure_h
|
||||
+#define anti_amp_cure_h
|
||||
+
|
||||
+#define DONT_TRACK_ME_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());\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('mlogo');\n if (mlogo) {\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() {\n var saned = 0, total = 0;\n document.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// document.addEventListener('touchstart', handlePointerPress, true);\n sanitizeAll();\n}\nsetMlogoClick();\n"
|
||||
+#define ANTI_AMP_CURE_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=<url>)\n // Mobile (/url?q=<url>)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks(document));\n}\n\nfunction hookMoreResults() {\n var extrares = document.getElementById('extrares');\n if (!extrares) {\n console.log(\"could not hook more results\");\n return;\n }\n // mutation observers are great but they don't work\n extrares.addEventListener(\"DOMNodeInserted\", function(e) {\n var node = e.target;\n if (node.id && node.id.startsWith(\"arc-srp\"))\n console.log(\"hyperlinks sanitized on new result node: \", sanitizeAllHyperlinks(node));\n });\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('qslc');\n if (mlogo && mlogo.children[0]) {\n mlogo = mlogo.children[0];\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks(rootNode) {\n var saned = 0, total = 0;\n rootNode.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && (document.location.host.indexOf(\"news.google.\") == -1)) {\n sanitizeAll();\n}\nsetMlogoClick();\n\nhookMoreResults();\n"
|
||||
+
|
||||
+#endif // dont_track_me_h
|
||||
+#endif // anti_amp_cure_h
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat Jan 20 21:17:27 2018 +0100
|
||||
|
||||
Compile ARM optimizations for H264
|
||||
Not only when running ChromeOS+ARM but for all ARM devices
|
||||
|
||||
diff --git a/content/renderer/media_recorder/h264_encoder.cc b/content/renderer/media_recorder/h264_encoder.cc
|
||||
--- a/content/renderer/media_recorder/h264_encoder.cc
|
||||
+++ b/content/renderer/media_recorder/h264_encoder.cc
|
||||
@@ -149,11 +149,11 @@ void H264Encoder::ConfigureEncoderOnEncodingTaskRunner(const gfx::Size& size) {
|
||||
init_params.iRCMode = RC_OFF_MODE;
|
||||
}
|
||||
|
||||
-#if defined(OS_CHROMEOS)
|
||||
- init_params.iMultipleThreadIdc = 0;
|
||||
-#else
|
||||
+#if defined(OS_MACOSX)
|
||||
// Threading model: Set to 1 due to https://crbug.com/583348.
|
||||
init_params.iMultipleThreadIdc = 1;
|
||||
+#else
|
||||
+ init_params.iMultipleThreadIdc = 0;
|
||||
#endif
|
||||
|
||||
// TODO(mcasas): consider reducing complexity if there are few CPUs available.
|
||||
diff --git a/third_party/openh264/BUILD.gn b/third_party/openh264/BUILD.gn
|
||||
--- a/third_party/openh264/BUILD.gn
|
||||
+++ b/third_party/openh264/BUILD.gn
|
||||
@@ -10,16 +10,22 @@ import("//third_party/yasm/yasm_assemble.gni")
|
||||
# Config shared by all openh264 targets.
|
||||
config("config") {
|
||||
cflags = []
|
||||
+ defines = []
|
||||
|
||||
+ # HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS
|
||||
+ # devices.
|
||||
if (is_chromeos && target_cpu == "arm") {
|
||||
- # HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS
|
||||
- # devices.
|
||||
- defines = [
|
||||
- "HAVE_NEON",
|
||||
+ defines += [
|
||||
"__chromeos__",
|
||||
]
|
||||
}
|
||||
|
||||
+ if (target_cpu == "arm") {
|
||||
+ defines += [
|
||||
+ "HAVE_NEON",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
# GCC and clang flags. MSVS (is_win && !is_clang) does not use cflags.
|
||||
if (!is_win || is_clang) {
|
||||
cflags += [
|
||||
@@ -123,7 +129,7 @@ if (use_assembler) {
|
||||
|
||||
source_set("common") {
|
||||
sources = openh264_common_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
+ if (target_cpu == "arm") {
|
||||
sources += openh264_common_sources_asm_arm
|
||||
}
|
||||
include_dirs = openh264_common_include_dirs
|
||||
@@ -149,7 +155,7 @@ source_set("common") {
|
||||
|
||||
source_set("processing") {
|
||||
sources = openh264_processing_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
+ if (target_cpu == "arm") {
|
||||
sources += openh264_processing_sources_asm_arm
|
||||
}
|
||||
include_dirs = openh264_processing_include_dirs
|
||||
@@ -168,7 +174,7 @@ source_set("processing") {
|
||||
|
||||
source_set("encoder") {
|
||||
sources = openh264_encoder_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
+ if (target_cpu == "arm") {
|
||||
sources += openh264_encoder_sources_asm_arm
|
||||
}
|
||||
include_dirs = openh264_encoder_include_dirs
|
||||
+39
-30
@@ -1,33 +1,39 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun Feb 18 22:15:25 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 18 Feb 2018 22:15:25 +0100
|
||||
Subject: Play videos in background
|
||||
|
||||
Play videos in background
|
||||
Break Page Visibility API and Fullscreen API for youtube.com and vimeo.com
|
||||
Original Javascript code by timdream
|
||||
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 +++++++++++++----
|
||||
.../blink/renderer/core/dom/extensions/video_bg_play.h | 6 ++++++
|
||||
3 files changed, 20 insertions(+), 4 deletions(-)
|
||||
create mode 100644 third_party/blink/renderer/core/dom/extensions/video_bg_play.h
|
||||
|
||||
diff --git a/third_party/WebKit/Source/core/dom/BUILD.gn b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
--- a/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
+++ b/third_party/WebKit/Source/core/dom/BUILD.gn
|
||||
@@ -302,6 +302,7 @@ blink_core_sources("dom") {
|
||||
"events/WindowEventContext.cpp",
|
||||
"events/WindowEventContext.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
|
||||
@@ -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",
|
||||
"ng/flat_tree_traversal_ng.cc",
|
||||
"ng/flat_tree_traversal_ng.h",
|
||||
"trustedtypes/TrustedHTML.cpp",
|
||||
diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
--- a/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
+++ b/third_party/WebKit/Source/core/dom/Document.cpp
|
||||
@@ -222,6 +222,7 @@
|
||||
#include "core/xml_names.h"
|
||||
#include "core/xmlns_names.h"
|
||||
#include "extensions/dont-track-me.h"
|
||||
+#include "extensions/video-bg-play.h"
|
||||
#include "platform/CrossThreadFunctional.h"
|
||||
#include "platform/DateComponents.h"
|
||||
#include "platform/EventDispatchForbiddenScope.h"
|
||||
@@ -5794,17 +5795,25 @@ void Document::FinishedParsing() {
|
||||
"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
|
||||
@@ -221,6 +221,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/paint_layer_scrollable_area.h"
|
||||
#include "third_party/blink/renderer/core/policy/document_policy.h"
|
||||
@@ -5848,17 +5849,25 @@ void Document::FinishedParsing() {
|
||||
|
||||
// determine whether this is a Google search results page
|
||||
const SecurityOrigin *origin = GetSecurityOrigin();
|
||||
@@ -39,9 +45,9 @@ diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKi
|
||||
- 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 dont-track-me Javascript payload";
|
||||
LOG(INFO) << "injecting anti-AMP-cure Javascript payload";
|
||||
HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
|
||||
e->setText(DONT_TRACK_ME_JS);
|
||||
e->setText(ANTI_AMP_CURE_JS);
|
||||
bodyElement->AppendChild(e);
|
||||
}
|
||||
- }
|
||||
@@ -57,10 +63,10 @@ diff --git a/third_party/WebKit/Source/core/dom/Document.cpp b/third_party/WebKi
|
||||
}
|
||||
|
||||
void Document::ElementDataCacheClearTimerFired(TimerBase*) {
|
||||
diff --git a/third_party/WebKit/Source/core/dom/extensions/video-bg-play.h b/third_party/WebKit/Source/core/dom/extensions/video-bg-play.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/WebKit/Source/core/dom/extensions/video-bg-play.h
|
||||
+++ 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
|
||||
@@ -68,3 +74,6 @@ new file mode 100644
|
||||
+#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.7.4
|
||||
|
||||
+9
-3
@@ -1,7 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:43:35 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:43:35 +0100
|
||||
Subject: Never send any crash upload data
|
||||
|
||||
Never send any crash upload data
|
||||
---
|
||||
chrome/browser/tracing/crash_service_uploader.cc | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
--- a/chrome/browser/tracing/crash_service_uploader.cc
|
||||
@@ -16,3 +19,6 @@ diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/t
|
||||
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
|
||||
progress_callback_ = progress_callback;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+9
-3
@@ -1,7 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed Feb 14 12:56:01 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 14 Feb 2018 12:56:01 +0100
|
||||
Subject: Never fetch popular sites
|
||||
|
||||
Never fetch popular sites
|
||||
---
|
||||
components/ntp_tiles/popular_sites_impl.cc | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/popular_sites_impl.cc
|
||||
--- a/components/ntp_tiles/popular_sites_impl.cc
|
||||
@@ -19,3 +22,6 @@ diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/p
|
||||
const base::Time last_download_time = base::Time::FromInternalValue(
|
||||
prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref));
|
||||
const base::TimeDelta time_since_last_download =
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+15
-8
@@ -1,12 +1,16 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:14:39 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:14:39 +0100
|
||||
Subject: ungoogled-chromium: Disable signin
|
||||
|
||||
ungoogled-chromium: Disable signin
|
||||
---
|
||||
chrome/browser/ui/chrome_pages.cc | 8 ++------
|
||||
components/signin/core/browser/signin_manager_base.cc | 2 +-
|
||||
2 files changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
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) {
|
||||
@@ -77,12 +77,6 @@ void OpenBookmarkManagerForNode(Browser* browser, int64_t node_id) {
|
||||
ShowSingletonTabOverwritingNTP(browser, params);
|
||||
}
|
||||
|
||||
@@ -19,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) {
|
||||
@@ -397,6 +391,7 @@ void ShowSearchEngineSettings(Browser* browser) {
|
||||
#if !defined(OS_ANDROID)
|
||||
void ShowBrowserSignin(Browser* browser,
|
||||
signin_metrics::AccessPoint access_point) {
|
||||
@@ -27,9 +31,9 @@ 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);
|
||||
@@ -436,6 +431,7 @@ void ShowBrowserSignin(Browser* browser,
|
||||
false));
|
||||
DCHECK_GT(browser->tab_strip_model()->count(), 0);
|
||||
@@ -442,6 +437,7 @@ void ShowBrowserSignin(Browser* browser,
|
||||
BrowserWindow::AVATAR_BUBBLE_MODE_SIGNIN,
|
||||
signin::ManageAccountsParams(), access_point, false);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
@@ -47,3 +51,6 @@ diff --git a/components/signin/core/browser/signin_manager_base.cc b/components/
|
||||
}
|
||||
|
||||
AccountInfo SigninManagerBase::GetAuthenticatedAccountInfo() const {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:21:36 +0100
|
||||
Subject: ungoogled-chromium: Disable webRTC log uploader
|
||||
|
||||
---
|
||||
chrome/browser/media/webrtc/webrtc_log_uploader.cc | 28 ++++------------------
|
||||
1 file changed, 4 insertions(+), 24 deletions(-)
|
||||
|
||||
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
|
||||
@@ -115,30 +115,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
|
||||
DCHECK(meta_data.get());
|
||||
DCHECK(!upload_done_data.log_path.empty());
|
||||
|
||||
- std::string compressed_log;
|
||||
- CompressLog(&compressed_log, log_buffer.get());
|
||||
-
|
||||
- std::string local_log_id;
|
||||
-
|
||||
- if (base::PathExists(upload_done_data.log_path)) {
|
||||
- webrtc_logging::DeleteOldWebRtcLogFiles(upload_done_data.log_path);
|
||||
-
|
||||
- local_log_id = base::NumberToString(base::Time::Now().ToDoubleT());
|
||||
- base::FilePath log_file_path =
|
||||
- upload_done_data.log_path.AppendASCII(local_log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".gz"));
|
||||
- WriteCompressedLogToFile(compressed_log, log_file_path);
|
||||
-
|
||||
- base::FilePath log_list_path =
|
||||
- webrtc_logging::LogList::GetWebRtcLogListFileForDirectory(
|
||||
- upload_done_data.log_path);
|
||||
- AddLocallyStoredLogInfoToUploadListFile(log_list_path, local_log_id);
|
||||
- }
|
||||
-
|
||||
- WebRtcLogUploadDoneData upload_done_data_with_log_id = upload_done_data;
|
||||
- upload_done_data_with_log_id.local_log_id = local_log_id;
|
||||
- PrepareMultipartPostData(compressed_log, std::move(meta_data),
|
||||
- upload_done_data_with_log_id);
|
||||
+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
}
|
||||
|
||||
void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
@@ -149,6 +126,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
DCHECK(!compressed_log.empty());
|
||||
DCHECK(meta_data.get());
|
||||
|
||||
+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
+ return;
|
||||
+
|
||||
std::unique_ptr<std::string> post_data(new std::string());
|
||||
SetupMultipart(post_data.get(),
|
||||
compressed_log,
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,117 +0,0 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:21:36 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable webRTC log uploader
|
||||
Disables WebRTC log uploading to Google - ported patch
|
||||
|
||||
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
|
||||
@@ -115,30 +115,10 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
|
||||
DCHECK(meta_data.get());
|
||||
DCHECK(!upload_done_data.log_path.empty());
|
||||
|
||||
- std::string compressed_log;
|
||||
- CompressLog(&compressed_log, log_buffer.get());
|
||||
-
|
||||
- std::string local_log_id;
|
||||
-
|
||||
if (base::PathExists(upload_done_data.log_path)) {
|
||||
webrtc_logging::DeleteOldWebRtcLogFiles(upload_done_data.log_path);
|
||||
-
|
||||
- local_log_id = base::NumberToString(base::Time::Now().ToDoubleT());
|
||||
- base::FilePath log_file_path =
|
||||
- upload_done_data.log_path.AppendASCII(local_log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".gz"));
|
||||
- WriteCompressedLogToFile(compressed_log, log_file_path);
|
||||
-
|
||||
- base::FilePath log_list_path =
|
||||
- webrtc_logging::LogList::GetWebRtcLogListFileForDirectory(
|
||||
- upload_done_data.log_path);
|
||||
- AddLocallyStoredLogInfoToUploadListFile(log_list_path, local_log_id);
|
||||
}
|
||||
-
|
||||
- WebRtcLogUploadDoneData upload_done_data_with_log_id = upload_done_data;
|
||||
- upload_done_data_with_log_id.local_log_id = local_log_id;
|
||||
- PrepareMultipartPostData(compressed_log, std::move(meta_data),
|
||||
- upload_done_data_with_log_id);
|
||||
+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
}
|
||||
|
||||
void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
@@ -149,29 +129,7 @@ void WebRtcLogUploader::PrepareMultipartPostData(
|
||||
DCHECK(!compressed_log.empty());
|
||||
DCHECK(meta_data.get());
|
||||
|
||||
- std::unique_ptr<std::string> post_data(new std::string());
|
||||
- SetupMultipart(post_data.get(),
|
||||
- compressed_log,
|
||||
- upload_done_data.incoming_rtp_dump,
|
||||
- upload_done_data.outgoing_rtp_dump,
|
||||
- *meta_data.get());
|
||||
-
|
||||
- // If a test has set the test string pointer, write to it and skip uploading.
|
||||
- // Still fire the upload callback so that we can run an extension API test
|
||||
- // using the test framework for that without hanging.
|
||||
- // TODO(grunell): Remove this when the api test for this feature is fully
|
||||
- // implemented according to the test plan. http://crbug.com/257329.
|
||||
- if (post_data_) {
|
||||
- *post_data_ = *post_data;
|
||||
- NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- BrowserThread::PostTask(
|
||||
- BrowserThread::IO, FROM_HERE,
|
||||
- base::BindOnce(&WebRtcLogUploader::UploadCompressedLog,
|
||||
- base::Unretained(this), upload_done_data,
|
||||
- base::Passed(&post_data)));
|
||||
+ NotifyUploadDone(net::HTTP_OK, "", upload_done_data);
|
||||
}
|
||||
|
||||
void WebRtcLogUploader::UploadStoredLog(
|
||||
@@ -237,44 +195,6 @@ void WebRtcLogUploader::LoggingStoppedDoStore(
|
||||
|
||||
webrtc_logging::DeleteOldWebRtcLogFiles(log_paths.log_path);
|
||||
|
||||
- base::FilePath log_list_path =
|
||||
- webrtc_logging::LogList::GetWebRtcLogListFileForDirectory(
|
||||
- log_paths.log_path);
|
||||
-
|
||||
- // Store the native log with a ".gz" extension.
|
||||
- std::string compressed_log;
|
||||
- CompressLog(&compressed_log, log_buffer.get());
|
||||
- base::FilePath native_log_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".gz"));
|
||||
- WriteCompressedLogToFile(compressed_log, native_log_path);
|
||||
- AddLocallyStoredLogInfoToUploadListFile(log_list_path, log_id);
|
||||
-
|
||||
- // Move the rtp dump files to the log directory with a name of
|
||||
- // <log id>.rtp_[in|out].
|
||||
- if (!log_paths.incoming_rtp_dump.empty()) {
|
||||
- base::FilePath rtp_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".rtp_in"));
|
||||
- base::Move(log_paths.incoming_rtp_dump, rtp_path);
|
||||
- }
|
||||
-
|
||||
- if (!log_paths.outgoing_rtp_dump.empty()) {
|
||||
- base::FilePath rtp_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".rtp_out"));
|
||||
- base::Move(log_paths.outgoing_rtp_dump, rtp_path);
|
||||
- }
|
||||
-
|
||||
- if (meta_data.get() && !meta_data->empty()) {
|
||||
- base::Pickle pickle;
|
||||
- for (const auto& it : *meta_data.get()) {
|
||||
- pickle.WriteString(it.first);
|
||||
- pickle.WriteString(it.second);
|
||||
- }
|
||||
- base::FilePath meta_path = log_paths.log_path.AppendASCII(log_id)
|
||||
- .AddExtension(FILE_PATH_LITERAL(".meta"));
|
||||
- base::WriteFile(meta_path, static_cast<const char*>(pickle.data()),
|
||||
- pickle.size());
|
||||
- }
|
||||
-
|
||||
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
|
||||
base::BindOnce(done_callback, true, ""));
|
||||
|
||||
+42
-20
@@ -1,8 +1,17 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:28:11 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:28:11 +0100
|
||||
Subject: ungoogled-chromium: Disable untraceable URLs
|
||||
|
||||
ungoogled-chromium: Disable untraceable URLs
|
||||
Disable additional URLs that are not caught by the "trk" scheme
|
||||
Disable additional URLs that are not caught by the "trk" scheme
|
||||
---
|
||||
chrome/browser/android/rlz/rlz_ping_handler.cc | 2 +-
|
||||
chrome/browser/plugins/plugins_resource_service.cc | 5 +----
|
||||
chrome/browser/safe_browsing/client_side_model_loader.cc | 6 ++----
|
||||
chrome/browser/safe_browsing/client_side_model_loader.h | 1 -
|
||||
rlz/lib/financial_ping.cc | 4 ++--
|
||||
rlz/lib/lib_values.cc | 1 -
|
||||
rlz/lib/lib_values.h | 1 -
|
||||
7 files changed, 6 insertions(+), 14 deletions(-)
|
||||
|
||||
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
|
||||
@@ -19,7 +28,17 @@ 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
|
||||
@@ -69,7 +69,7 @@ GURL GetPluginsServerURL() {
|
||||
@@ -51,9 +51,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;
|
||||
|
||||
-const char kPluginsServerUrl[] =
|
||||
- "https://www.gstatic.com/chrome/config/plugins_3/";
|
||||
-
|
||||
GURL GetPluginsServerURL() {
|
||||
std::string filename;
|
||||
#if defined(OS_WIN)
|
||||
@@ -68,7 +65,7 @@ GURL GetPluginsServerURL() {
|
||||
#error Unknown platform
|
||||
#endif
|
||||
|
||||
@@ -31,7 +50,7 @@ diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser
|
||||
diff --git a/chrome/browser/safe_browsing/client_side_model_loader.cc b/chrome/browser/safe_browsing/client_side_model_loader.cc
|
||||
--- a/chrome/browser/safe_browsing/client_side_model_loader.cc
|
||||
+++ b/chrome/browser/safe_browsing/client_side_model_loader.cc
|
||||
@@ -34,8 +34,6 @@ namespace safe_browsing {
|
||||
@@ -35,8 +35,6 @@ namespace safe_browsing {
|
||||
// Model Loader strings
|
||||
const size_t ModelLoader::kMaxModelSizeBytes = 150 * 1024;
|
||||
const int ModelLoader::kClientModelFetchIntervalMs = 3600 * 1000;
|
||||
@@ -40,39 +59,39 @@ diff --git a/chrome/browser/safe_browsing/client_side_model_loader.cc b/chrome/b
|
||||
const char ModelLoader::kClientModelNamePattern[] =
|
||||
"client_model_v5%s_variation_%d.pb";
|
||||
const char ModelLoader::kClientModelFinchExperiment[] =
|
||||
@@ -88,7 +86,7 @@ ModelLoader::ModelLoader(base::Closure update_renderers_callback,
|
||||
net::URLRequestContextGetter* request_context_getter,
|
||||
bool is_extended_reporting)
|
||||
@@ -90,7 +88,7 @@ ModelLoader::ModelLoader(
|
||||
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
|
||||
bool is_extended_reporting)
|
||||
: name_(FillInModelName(is_extended_reporting, GetModelNumber())),
|
||||
- url_(kClientModelUrlPrefix + name_),
|
||||
+ url_("about:blank"),
|
||||
update_renderers_callback_(update_renderers_callback),
|
||||
request_context_getter_(request_context_getter),
|
||||
url_loader_factory_(url_loader_factory),
|
||||
weak_factory_(this) {
|
||||
@@ -99,7 +97,7 @@ ModelLoader::ModelLoader(base::Closure update_renderers_callback,
|
||||
ModelLoader::ModelLoader(base::Closure update_renderers_callback,
|
||||
const std::string& model_name)
|
||||
@@ -103,7 +101,7 @@ ModelLoader::ModelLoader(
|
||||
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory,
|
||||
const std::string& model_name)
|
||||
: name_(model_name),
|
||||
- url_(kClientModelUrlPrefix + name_),
|
||||
+ url_("about:blank"),
|
||||
update_renderers_callback_(update_renderers_callback),
|
||||
request_context_getter_(NULL),
|
||||
url_loader_factory_(url_loader_factory),
|
||||
weak_factory_(this) {
|
||||
diff --git a/chrome/browser/safe_browsing/client_side_model_loader.h b/chrome/browser/safe_browsing/client_side_model_loader.h
|
||||
--- a/chrome/browser/safe_browsing/client_side_model_loader.h
|
||||
+++ b/chrome/browser/safe_browsing/client_side_model_loader.h
|
||||
@@ -43,7 +43,6 @@ class ModelLoader : public net::URLFetcherDelegate {
|
||||
@@ -42,7 +42,6 @@ class ModelLoader {
|
||||
static const int kClientModelFetchIntervalMs;
|
||||
static const char kClientModelFinchExperiment[];
|
||||
static const char kClientModelFinchParam[];
|
||||
- static const char kClientModelUrlPrefix[];
|
||||
static const char kClientModelNamePattern[];
|
||||
|
||||
// Constructs a model loader to fetch a model using |request_context_getter|.
|
||||
// Constructs a model loader to fetch a model using |url_loader_factory|.
|
||||
diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc
|
||||
--- a/rlz/lib/financial_ping.cc
|
||||
+++ b/rlz/lib/financial_ping.cc
|
||||
@@ -366,7 +366,7 @@ bool FinancialPing::PingServer(const char* request, std::string* response) {
|
||||
@@ -351,7 +351,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request,
|
||||
|
||||
// Open network connection.
|
||||
InternetHandle connection_handle = InternetConnectA(inet_handle,
|
||||
@@ -80,9 +99,9 @@ diff --git a/rlz/lib/financial_ping.cc b/rlz/lib/financial_ping.cc
|
||||
+ "about:blank", kFinancialPort, "", "", INTERNET_SERVICE_HTTP,
|
||||
INTERNET_FLAG_NO_CACHE_WRITE, 0);
|
||||
if (!connection_handle)
|
||||
return false;
|
||||
@@ -410,7 +410,7 @@ bool FinancialPing::PingServer(const char* request, std::string* response) {
|
||||
return true;
|
||||
return PING_FAILURE;
|
||||
@@ -395,7 +395,7 @@ FinancialPing::PingResponse FinancialPing::PingServer(const char* request,
|
||||
return PING_SUCCESSFUL;
|
||||
#else
|
||||
std::string url =
|
||||
- base::StringPrintf("https://%s%s", kFinancialServer, request);
|
||||
@@ -112,3 +131,6 @@ diff --git a/rlz/lib/lib_values.h b/rlz/lib/lib_values.h
|
||||
|
||||
extern const int kFinancialPort;
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+11
-4
@@ -1,8 +1,12 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:28:53 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:28:53 +0100
|
||||
Subject: ungoogled-chromium: Disable translate integration
|
||||
|
||||
ungoogled-chromium: Disable translate
|
||||
Disable Google Translate integration
|
||||
---
|
||||
components/translate/content/renderer/translate_helper.cc | 4 +++-
|
||||
components/translate/core/browser/translate_manager.cc | 2 +-
|
||||
components/translate/core/browser/translate_script.cc | 3 +--
|
||||
3 files changed, 5 insertions(+), 4 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
|
||||
@@ -44,3 +48,6 @@ 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
|
||||
|
||||
+9
-4
@@ -1,8 +1,10 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:29:30 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:29:30 +0100
|
||||
Subject: ungoogled-chromium: Disable profile avatar downloading
|
||||
|
||||
ungoogled-chromium: Disable profile avatar downloading
|
||||
Stop downloading profile avatar
|
||||
---
|
||||
chrome/browser/profiles/profile_avatar_downloader.cc | 8 +-------
|
||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
--- a/chrome/browser/profiles/profile_avatar_downloader.cc
|
||||
@@ -28,3 +30,6 @@ diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/brows
|
||||
net::NetworkTrafficAnnotationTag traffic_annotation =
|
||||
net::DefineNetworkTrafficAnnotation("profile_avatar", R"(
|
||||
semantics {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:30:30 +0100
|
||||
Subject: ungoogled-chromium: Disable intranet redirect detector
|
||||
|
||||
Disables the intranet redirect detector. It generates extra DNS requests and the functionality using this is disabled.
|
||||
|
||||
See this page for more information: https://mikewest.org/2012/02/chrome-connects-to-three-random-domains-at-startup
|
||||
---
|
||||
chrome/browser/intranet_redirect_detector.cc | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
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() {
|
||||
simple_loaders_.clear();
|
||||
resulting_origins_.clear();
|
||||
|
||||
- const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
|
||||
- if (cmd_line->HasSwitch(switches::kDisableBackgroundNetworking))
|
||||
- return;
|
||||
+ return;
|
||||
|
||||
DCHECK(simple_loaders_.empty() && resulting_origins_.empty());
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:30:30 2018 +0100
|
||||
|
||||
ungoogled-chromium: Disable intranet redirect detector
|
||||
Disables the intranet redirect detector. It generates extra DNS requests and the functionality using this is disabled
|
||||
See this page for more information: https://mikewest.org/2012/02/chrome-connects-to-three-random-domains-at-startup
|
||||
|
||||
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
|
||||
@@ -72,9 +72,7 @@ void IntranetRedirectDetector::FinishSleep() {
|
||||
fetchers_.clear();
|
||||
resulting_origins_.clear();
|
||||
|
||||
- const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
|
||||
- if (cmd_line->HasSwitch(switches::kDisableBackgroundNetworking))
|
||||
- return;
|
||||
+ return;
|
||||
|
||||
DCHECK(fetchers_.empty() && resulting_origins_.empty());
|
||||
|
||||
+23
-12
@@ -1,8 +1,15 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:36:33 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:36:33 +0100
|
||||
Subject: ungoogled-chromium: Disable Google host detection
|
||||
|
||||
ungoogled-chromium: Disable Google host detection
|
||||
Disables various detections of Google hosts and functionality specific to them
|
||||
Disables various detections of Google hosts and functionality specific to them
|
||||
---
|
||||
.../page_load_metrics/page_load_metrics_util.cc | 4 +-
|
||||
.../page_load_metrics/page_load_metrics_util.cc | 33 +---
|
||||
components/google/core/browser/google_util.cc | 193 ++-------------------
|
||||
components/search_engines/template_url.cc | 6 +-
|
||||
net/base/url_util.cc | 22 ---
|
||||
5 files changed, 14 insertions(+), 244 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_util.cc b/chrome/browser/page_load_metrics/page_load_metrics_util.cc
|
||||
--- a/chrome/browser/page_load_metrics/page_load_metrics_util.cc
|
||||
@@ -317,22 +324,23 @@ 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
|
||||
@@ -510,11 +510,6 @@ base::string16 TemplateURLRef::SearchTermToString16(
|
||||
@@ -510,11 +510,7 @@ base::string16 TemplateURLRef::SearchTermToString16(
|
||||
bool TemplateURLRef::HasGoogleBaseURLs(
|
||||
const SearchTermsData& search_terms_data) const {
|
||||
ParseIfNecessary(search_terms_data);
|
||||
- for (size_t i = 0; i < replacements_.size(); ++i) {
|
||||
- if ((replacements_[i].type == GOOGLE_BASE_URL) ||
|
||||
- (replacements_[i].type == GOOGLE_BASE_SUGGEST_URL))
|
||||
- return true;
|
||||
- }
|
||||
return false;
|
||||
- return std::any_of(replacements_.begin(), replacements_.end(),
|
||||
- [](const Replacement& replacement) {
|
||||
- return replacement.type == GOOGLE_BASE_URL ||
|
||||
- replacement.type == GOOGLE_BASE_SUGGEST_URL;
|
||||
- });
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool TemplateURLRef::ExtractSearchTermsFromURL(
|
||||
diff --git a/net/base/url_util.cc b/net/base/url_util.cc
|
||||
--- a/net/base/url_util.cc
|
||||
+++ b/net/base/url_util.cc
|
||||
@@ -397,28 +397,6 @@ void GetIdentityFromURL(const GURL& url,
|
||||
@@ -383,28 +383,6 @@ void GetIdentityFromURL(const GURL& url,
|
||||
}
|
||||
|
||||
bool HasGoogleHost(const GURL& url) {
|
||||
@@ -361,3 +369,6 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc
|
||||
return false;
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+10
-4
@@ -1,8 +1,11 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:37:10 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:37:10 +0100
|
||||
Subject: ungoogled-chromium: Disable GCM
|
||||
|
||||
ungoogled-chromium: Disable GCM
|
||||
Disable Google Cloud Messaging (GCM) client
|
||||
Disable Google Cloud Messaging (GCM) client
|
||||
---
|
||||
components/gcm_driver/gcm_client_impl.cc | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
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
|
||||
@@ -31,3 +34,6 @@ 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_.get() || !device_checkin_info_.accounts_set)
|
||||
return;
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+20
-7
@@ -1,9 +1,19 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:37:52 2018 +0100
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Feb 2018 21:37:52 +0100
|
||||
Subject: ungoogled-chromium: Disable Gaia
|
||||
|
||||
ungoogled-chromium: Disable Gaia
|
||||
Disables Gaia code
|
||||
Somehow it is still activated even without being signed-in: https://github.com/Eloston/ungoogled-chromium/issues/104
|
||||
Disables Gaia code.
|
||||
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(-)
|
||||
|
||||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
@@ -16,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" />
|
||||
@@ -437,7 +436,6 @@
|
||||
@@ -436,7 +435,6 @@
|
||||
</if>
|
||||
<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" />
|
||||
@@ -83,7 +93,7 @@ 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
|
||||
@@ -219,35 +219,6 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
@@ -248,35 +248,6 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
|
||||
int load_flags,
|
||||
const net::NetworkTrafficAnnotationTag& traffic_annotation) {
|
||||
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
|
||||
@@ -119,3 +129,6 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
|
||||
}
|
||||
|
||||
// static
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+28
-13
@@ -1,13 +1,25 @@
|
||||
Author: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon Feb 12 21:45:21 2018 +0100
|
||||
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
|
||||
|
||||
ungoogled-chromium: Clear HTTP cache menu item
|
||||
Adds a menu item under "More tools" to clear the HTTP authentication cache on demand
|
||||
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 | 4 ++++
|
||||
net/http/http_auth_cache.h | 2 ++
|
||||
tools/metrics/histograms/enums.xml | 1 +
|
||||
tools/metrics/histograms/histograms.xml | 1 +
|
||||
10 files changed, 32 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
|
||||
@@ -148,6 +148,7 @@
|
||||
@@ -152,6 +152,7 @@
|
||||
#define IDC_DEV_TOOLS_INSPECT 40023
|
||||
#define IDC_UPGRADE_DIALOG 40024
|
||||
#define IDC_VIEW_INCOMPATIBILITIES 40025
|
||||
@@ -18,7 +30,7 @@ diff --git a/chrome/app/chrome_command_ids.h b/chrome/app/chrome_command_ids.h
|
||||
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
|
||||
@@ -1067,6 +1067,9 @@ are declared in build/common.gypi.
|
||||
@@ -1053,6 +1053,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>
|
||||
@@ -28,7 +40,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
|
||||
<message name="IDS_SHOW_DOWNLOADS" desc="The show downloads menu in the app menu">
|
||||
&Downloads
|
||||
</message>
|
||||
@@ -1105,6 +1108,9 @@ are declared in build/common.gypi.
|
||||
@@ -1091,6 +1094,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>
|
||||
@@ -41,9 +53,9 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
|
||||
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
|
||||
@@ -58,6 +58,9 @@
|
||||
@@ -60,6 +60,9 @@
|
||||
#include "extensions/browser/extension_system.h"
|
||||
#include "printing/features/features.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"
|
||||
@@ -51,7 +63,7 @@ diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui
|
||||
|
||||
#if defined(OS_MACOSX)
|
||||
#include "chrome/browser/ui/browser_commands_mac.h"
|
||||
@@ -625,6 +628,9 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
|
||||
@@ -629,6 +632,9 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
|
||||
case IDC_CLEAR_BROWSING_DATA:
|
||||
ShowClearBrowsingDataDialog(browser_);
|
||||
break;
|
||||
@@ -61,7 +73,7 @@ diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui
|
||||
case IDC_IMPORT_SETTINGS:
|
||||
ShowImportDialog(browser_);
|
||||
break;
|
||||
@@ -867,6 +873,7 @@ void BrowserCommandController::InitCommandState() {
|
||||
@@ -871,6 +877,7 @@ void BrowserCommandController::InitCommandState() {
|
||||
!profile()->IsOffTheRecord());
|
||||
command_updater_.UpdateCommandEnabled(IDC_CLEAR_BROWSING_DATA,
|
||||
!guest_session);
|
||||
@@ -145,7 +157,7 @@ diff --git a/net/http/http_auth_cache.h b/net/http/http_auth_cache.h
|
||||
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
|
||||
@@ -46546,6 +46546,7 @@ Called by update_traffic_annotation_histograms.py.-->
|
||||
@@ -48309,6 +48309,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"/>
|
||||
@@ -156,7 +168,7 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
|
||||
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
|
||||
@@ -103687,6 +103687,7 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
|
||||
@@ -107908,6 +107908,7 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
|
||||
<suffix name="Overestimate"
|
||||
label="Tracks when the compositor's estimates were too high and by how
|
||||
much."/>
|
||||
@@ -164,3 +176,6 @@ diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/
|
||||
<suffix name="Underestimate"
|
||||
label="Tracks when the compositor's estimates were too low and by how
|
||||
much."/>
|
||||
--
|
||||
2.7.4
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,189 @@
|
||||
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
|
||||
@@ -1756,6 +1756,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
|
||||
|
||||
@@ -0,0 +1,584 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 28 Mar 2018 15:55:11 +0200
|
||||
Subject: Bromite adblock engine
|
||||
|
||||
Ported from NoChromo patch
|
||||
Make interception testable
|
||||
Add domain support
|
||||
Re-land: third-party filters support
|
||||
---
|
||||
net/BUILD.gn | 9 +-
|
||||
net/url_request/adblock_intercept.cc | 324 ++++++++++++++++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 16 ++
|
||||
net/url_request/nochromo_intercept.cc | 116 ------------
|
||||
net/url_request/nochromo_intercept.h | 13 --
|
||||
net/url_request/url_request.cc | 19 +-
|
||||
6 files changed, 364 insertions(+), 133 deletions(-)
|
||||
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/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1756,8 +1756,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",
|
||||
@@ -1815,6 +1813,13 @@ component("net") {
|
||||
"//third_party/zlib",
|
||||
]
|
||||
|
||||
+ if (is_android) {
|
||||
+ sources += [
|
||||
+ "url_request/adblock_intercept.cc",
|
||||
+ "url_request/adblock_intercept.h"
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
if (enable_reporting) {
|
||||
sources += [
|
||||
"network_error_logging/network_error_logging_delegate.cc",
|
||||
diff --git a/net/url_request/adblock_intercept.cc b/net/url_request/adblock_intercept.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/adblock_intercept.cc
|
||||
@@ -0,0 +1,324 @@
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+#include <cstddef>
|
||||
+#include <cstdlib>
|
||||
+#include <string.h>
|
||||
+
|
||||
+#include "log.h"
|
||||
+#include <tld.h>
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
||||
+#include <android/log.h>
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#include "net/url_request/adblock_entries.h"
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
+const char *LOG_TAG = "Bromite";
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+int adblock_rules_count() { return ADBLOCK_ENTRY_COUNT; }
|
||||
+#endif
|
||||
+
|
||||
+// True if the given canonical |host| is "[www.]<domain_in_lower_case>.<TLD>"
|
||||
+// with a valid TLD. If |subdomain_permission| is ALLOW_SUBDOMAIN, we check
|
||||
+// against host "*.<domain_in_lower_case>.<TLD>" instead. Will return the TLD
|
||||
+// string in |tld|, if specified and the |host| can be parsed.
|
||||
+static bool is_first_party(char *l_host, char *l_url_host) {
|
||||
+ size_t tld_length;
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+ char *found_tld;
|
||||
+
|
||||
+ if (TLD_SUCCESS != tld_get_z(l_host, &found_tld))
|
||||
+ return false;
|
||||
+ tld_length = strlen(found_tld);
|
||||
+ if (tld_length == 0)
|
||||
+ return false;
|
||||
+#else
|
||||
+ tld_length = net::registry_controlled_domains::GetCanonicalHostRegistryLength(
|
||||
+ l_host, net::registry_controlled_domains::EXCLUDE_UNKNOWN_REGISTRIES,
|
||||
+ net::registry_controlled_domains::EXCLUDE_PRIVATE_REGISTRIES);
|
||||
+ if ((tld_length == 0) || (tld_length == std::string::npos))
|
||||
+ return false;
|
||||
+#endif
|
||||
+
|
||||
+ int len = strlen(l_host);
|
||||
+ char *tld = l_host + len - tld_length;
|
||||
+
|
||||
+ // Removes any subdomain from origin host.
|
||||
+ int i = len - tld_length - 2, top_i = i;
|
||||
+ if (i < 0) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ char *domain = l_host;
|
||||
+ for (; i >= 0; i--) {
|
||||
+ if (l_host[i] == '.') {
|
||||
+ int p_len = top_i - i;
|
||||
+ // skip "co" in "co.uk", "org" in "org.uk"
|
||||
+ if (p_len <= 3) {
|
||||
+ tld -= p_len + 1;
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ // segment is long enough, accept it at as a domain
|
||||
+ domain = l_host + i;
|
||||
+ len -= i;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+#ifdef ADBLOCK_LOG
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG,
|
||||
+ "%s: extracted domain suffix: \"%s\" (TLD=\"%s\")",
|
||||
+ l_host, domain, tld);
|
||||
+#endif
|
||||
+
|
||||
+ // Check if supplied URL host matches, including the dot.
|
||||
+ int b_len = strlen(l_url_host);
|
||||
+ if (b_len < len) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ for (int i = 0; i < len; i++) {
|
||||
+ if (l_url_host[b_len - 1 - i] != domain[len - 1 - i])
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // pass with flying colors
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+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;
|
||||
+}
|
||||
+
|
||||
+static bool url_matches(const char *c_url, char *c_url_sep, char *c_url_lower,
|
||||
+ char *c_url_lower_sep, adblock_entry *entry) {
|
||||
+ bool match = false;
|
||||
+ // select comparison string based on case and separator presence (separator
|
||||
+ // takes some shortcuts)
|
||||
+ bool match_case = ((entry->flags & ADBLOCK_FLAG_MATCH_CASE) != 0);
|
||||
+ bool match_separator = ((entry->flags & ADBLOCK_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);
|
||||
+
|
||||
+#ifdef ADBLOCK_LOG_MORE
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[case:%d][sep:%d][%s]",
|
||||
+ match_case, match_separator, match_url);
|
||||
+#endif
|
||||
+ // check for all match parts at >= position of last match
|
||||
+ const char *last = match_url;
|
||||
+ for (int m = 0; const char *url_match = entry->matches[m]; m++) {
|
||||
+ bool is_last_match = entry->matches[m + 1] == NULL;
|
||||
+ const char *pos = strstr(last, url_match);
|
||||
+ match = (pos != NULL);
|
||||
+
|
||||
+#ifdef ADBLOCK_LOG_MORE
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[%s][found:%d][match:%d]",
|
||||
+ entry->matches[m], pos == NULL ? 0 : 1, match ? 1 : 0);
|
||||
+#endif
|
||||
+ // check if the url starts with the first match part
|
||||
+ if (match && (m == 0) && ((entry->flags & ADBLOCK_FLAG_MATCH_BEGIN) != 0) &&
|
||||
+ (pos != match_url))
|
||||
+ match = false;
|
||||
+
|
||||
+ // check if the url ends with the last match part
|
||||
+ if (match && is_last_match &&
|
||||
+ ((entry->flags & ADBLOCK_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 & ADBLOCK_FLAG_MATCH_DOMAIN) != 0) &&
|
||||
+ (pos != match_url) && (pos[-1] != '^') && (pos[-1] != '.') &&
|
||||
+ (pos[-1] != '/'))
|
||||
+ match = false;
|
||||
+
|
||||
+ // short circuit
|
||||
+ if (!match)
|
||||
+ break;
|
||||
+ }
|
||||
+ return match;
|
||||
+}
|
||||
+
|
||||
+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_neg) {
|
||||
+ if (origin_host.empty()) {
|
||||
+ // skip this rule, cannot match on domain
|
||||
+ return false;
|
||||
+ }
|
||||
+ for (int d = 0; const char *domain = entry->domains_neg[d]; d++) {
|
||||
+ if (domain == origin_host) {
|
||||
+ match_domain = false;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // 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;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return match_domain;
|
||||
+}
|
||||
+
|
||||
+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) {
|
||||
+ wanted_fp = false;
|
||||
+ } else if ((entry->flags & ADBLOCK_FLAG_FIRST_PARTY) != 0) {
|
||||
+ wanted_fp = true;
|
||||
+ } else {
|
||||
+ // no-op
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ if (origin_host.empty()) {
|
||||
+ // cannot match this rule, no origin host to determine first/third party
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+//__android_log_print(ANDROID_LOG_INFO, LOG_TAG, "matchFirst=%d matchThird=%d",
|
||||
+// matchFirstParty, matchThirdParty);
|
||||
+#endif
|
||||
+ 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?
|
||||
+ 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,
|
||||
+ l_url_host, fp ? "true" : "false");
|
||||
+#endif
|
||||
+ free(l_host);
|
||||
+ free(l_url_host);
|
||||
+ }
|
||||
+
|
||||
+ return fp == wanted_fp;
|
||||
+}
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host) {
|
||||
+ // if (!url.is_valid() || !url.SchemeIsHTTPOrHTTPS()) {
|
||||
+ // return 0;
|
||||
+ // }
|
||||
+
|
||||
+ 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);
|
||||
+
|
||||
+#ifdef ADBLOCK_LOG
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[%s with host '%s'] [%s]",
|
||||
+ c_url, url.host().c_str(), origin_host.c_str());
|
||||
+#endif
|
||||
+
|
||||
+ bool checked_fp = false, fp = false;
|
||||
+
|
||||
+ bool intercept = false;
|
||||
+ for (int i = 0; i < ADBLOCK_ENTRY_COUNT; i++) {
|
||||
+ adblock_entry *entry = &ADBLOCK_ENTRIES[i];
|
||||
+
|
||||
+ // no use checking rules when we're intercepting, or exceptions when not
|
||||
+ 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 (!url_match_domain(entry, origin_host))
|
||||
+ continue;
|
||||
+
|
||||
+ // 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 (!url_match_party(entry, url, origin_host, checked_fp, fp))
|
||||
+ continue;
|
||||
+
|
||||
+#ifdef ADBLOCK_LOG
|
||||
+ if (!intercept) {
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG,
|
||||
+ "--> intercept (#%d: \"%s\") (%x)", i,
|
||||
+ entry->matches[0], entry->flags);
|
||||
+ } else {
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "--> pass (%d) (#%d)", i,
|
||||
+ entry->flags);
|
||||
+ }
|
||||
+#endif
|
||||
+ intercept = !intercept;
|
||||
+ } // for each entry
|
||||
+
|
||||
+ free(c_url_sep);
|
||||
+ free(c_url_lower);
|
||||
+ free(c_url_lower_sep);
|
||||
+
|
||||
+ if (intercept) {
|
||||
+#ifdef ADBLOCK_LOG
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "blocked");
|
||||
+#endif
|
||||
+ return 1;
|
||||
+ }
|
||||
+#ifdef ADBLOCK_LOG
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "pass");
|
||||
+#endif
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+} // namespace net
|
||||
diff --git a/net/url_request/adblock_intercept.h b/net/url_request/adblock_intercept.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/adblock_intercept.h
|
||||
@@ -0,0 +1,16 @@
|
||||
+#ifndef NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+#define NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+int adblock_rules_count();
|
||||
+#endif
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host);
|
||||
+
|
||||
+} // 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"
|
||||
@@ -559,7 +561,9 @@ URLRequest::URLRequest(const GURL& url,
|
||||
: context->network_delegate()),
|
||||
net_log_(NetLogWithSource::Make(context->net_log(),
|
||||
NetLogSourceType::URL_REQUEST)),
|
||||
+#if !defined(OS_ANDROID)
|
||||
url_chain_(1, url),
|
||||
+#endif
|
||||
attach_same_site_cookies_(false),
|
||||
method_("GET"),
|
||||
referrer_policy_(CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE),
|
||||
@@ -585,7 +589,18 @@ URLRequest::URLRequest(const GURL& url,
|
||||
// Sanity check out environment.
|
||||
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
|
||||
|
||||
- if (nochromo_intercept(url)) url_chain_.push_back(nochromo_intercepted);
|
||||
+#if defined(OS_ANDROID)
|
||||
+ std::string initiatorHost;
|
||||
+ if (initiator_.has_value()) {
|
||||
+ initiatorHost = initiator_.value().host();
|
||||
+ }
|
||||
+
|
||||
+ if (adblock_intercept(url, initiatorHost)) {
|
||||
+ url_chain_ = { url, GURL("http://127.0.0.1") };
|
||||
+ } else {
|
||||
+ url_chain_ = { url };
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
context->url_requests()->insert(this);
|
||||
net_log_.BeginEvent(
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
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
|
||||
@@ -79,26 +79,6 @@ std::string BuildOSCpuInfo() {
|
||||
|
||||
#if 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;
|
||||
- }
|
||||
#endif
|
||||
|
||||
base::StringAppendF(
|
||||
@@ -121,9 +101,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()
|
||||
#else
|
||||
"%s %s",
|
||||
unixinfo.sysname, // e.g. Linux
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 22 Mar 2018 22:11:57 +0100
|
||||
Subject: Battery API: return nothing
|
||||
|
||||
---
|
||||
services/device/battery/battery_status_service.cc | 2 +-
|
||||
.../renderer/modules/battery/battery_manager.cc | 25 ++++------------------
|
||||
2 files changed, 5 insertions(+), 22 deletions(-)
|
||||
|
||||
diff --git a/services/device/battery/battery_status_service.cc b/services/device/battery/battery_status_service.cc
|
||||
--- a/services/device/battery/battery_status_service.cc
|
||||
+++ b/services/device/battery/battery_status_service.cc
|
||||
@@ -41,7 +41,7 @@ BatteryStatusService::AddCallback(const BatteryUpdateCallback& callback) {
|
||||
if (!battery_fetcher_)
|
||||
battery_fetcher_ = BatteryStatusManager::Create(update_callback_);
|
||||
|
||||
-#if 0
|
||||
+#if !defined(OS_ANDROID)
|
||||
if (callback_list_.empty()) {
|
||||
bool success = battery_fetcher_->StartListeningBatteryChange();
|
||||
// On failure pass the default values back.
|
||||
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
--- a/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
|
||||
@@ -42,45 +42,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
|
||||
}
|
||||
|
||||
bool BatteryManager::charging() {
|
||||
- return battery_status_.Charging();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
double BatteryManager::chargingTime() {
|
||||
- return battery_status_.charging_time();
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
double BatteryManager::dischargingTime() {
|
||||
- return battery_status_.discharging_time();
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
double BatteryManager::level() {
|
||||
- return battery_status_.Level();
|
||||
+ return 1;
|
||||
}
|
||||
|
||||
void BatteryManager::DidUpdateData() {
|
||||
DCHECK(battery_property_);
|
||||
|
||||
- BatteryStatus old_status = battery_status_;
|
||||
- battery_status_ = *BatteryDispatcher::Instance().LatestData();
|
||||
-
|
||||
if (battery_property_->GetState() == ScriptPromisePropertyBase::kPending) {
|
||||
battery_property_->Resolve(this);
|
||||
return;
|
||||
}
|
||||
-
|
||||
- Document* document = ToDocument(GetExecutionContext());
|
||||
- DCHECK(document);
|
||||
- if (document->IsContextPaused() || document->IsContextDestroyed())
|
||||
- return;
|
||||
-
|
||||
- if (battery_status_.Charging() != old_status.Charging())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::chargingchange));
|
||||
- if (battery_status_.charging_time() != old_status.charging_time())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::chargingtimechange));
|
||||
- if (battery_status_.discharging_time() != old_status.discharging_time())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::dischargingtimechange));
|
||||
- if (battery_status_.Level() != old_status.Level())
|
||||
- DispatchEvent(Event::Create(EventTypeNames::levelchange));
|
||||
}
|
||||
|
||||
void BatteryManager::RegisterWithDispatcher() {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 22 Mar 2018 22:38:00 +0100
|
||||
Subject: Disable plugins enumeration
|
||||
|
||||
---
|
||||
third_party/blink/renderer/core/frame/local_frame.cc | 6 ++----
|
||||
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||
|
||||
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
|
||||
@@ -1175,10 +1175,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
|
||||
}
|
||||
|
||||
PluginData* LocalFrame::GetPluginData() const {
|
||||
- if (!Loader().AllowPlugins(kNotAboutToInstantiatePlugin))
|
||||
- return nullptr;
|
||||
- return GetPage()->GetPluginData(
|
||||
- Tree().Top().GetSecurityContext()->GetSecurityOrigin());
|
||||
+ // what about no
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame);
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 25 Mar 2018 21:49:37 +0200
|
||||
Subject: AudioBuffer, AnalyserNode: fingerprinting mitigations via IDL
|
||||
|
||||
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(-)
|
||||
|
||||
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
|
||||
+++ b/third_party/blink/renderer/modules/webaudio/analyser_node.idl
|
||||
@@ -42,10 +42,10 @@ interface AnalyserNode : AudioNode {
|
||||
|
||||
// Copies the current frequency data into the passed array.
|
||||
// If the array has fewer elements than the frequencyBinCount, the excess elements will be dropped.
|
||||
- void getFloatFrequencyData(Float32Array array);
|
||||
- void getByteFrequencyData(Uint8Array array);
|
||||
+ //void getFloatFrequencyData(Float32Array array);
|
||||
+ //void getByteFrequencyData(Uint8Array array);
|
||||
|
||||
// Real-time waveform data
|
||||
- void getFloatTimeDomainData(Float32Array array);
|
||||
- void getByteTimeDomainData(Uint8Array array);
|
||||
+ //void getFloatTimeDomainData(Float32Array array);
|
||||
+ //void getByteTimeDomainData(Uint8Array array);
|
||||
};
|
||||
diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
|
||||
--- a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
|
||||
+++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.idl
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
// Channel access
|
||||
readonly attribute unsigned long numberOfChannels;
|
||||
- [RaisesException] Float32Array getChannelData(unsigned long channelIndex);
|
||||
- [RaisesException] void copyFromChannel(Float32Array destination, long channelNumber, optional unsigned long startInChannel = 0);
|
||||
+ //[RaisesException] Float32Array getChannelData(unsigned long channelIndex);
|
||||
+ //[RaisesException] void copyFromChannel(Float32Array destination, long channelNumber, optional unsigned long startInChannel = 0);
|
||||
[RaisesException] void copyToChannel(Float32Array source, long channelNumber, optional unsigned long startInChannel = 0);
|
||||
};
|
||||
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
|
||||
@@ -261,7 +261,7 @@ void AudioContext::StopRendering() {
|
||||
}
|
||||
|
||||
double AudioContext::baseLatency() const {
|
||||
- return FramesPerBuffer() / static_cast<double>(sampleRate());
|
||||
+ return 0.04;
|
||||
}
|
||||
|
||||
} // namespace blink
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 18 Oct 2017 21:26:53 +0200
|
||||
Subject: Add menu option to toggle global Javascript preference
|
||||
|
||||
---
|
||||
chrome/android/java/res/menu/custom_tabs_menu.xml | 13 ++++++++
|
||||
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 ++++++++++++++++++++++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
|
||||
.../java/strings/android_chrome_strings.grd | 11 +++++++
|
||||
7 files changed, 91 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
|
||||
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
@@ -49,6 +49,19 @@
|
||||
<item android:id="@+id/open_webapk_id"
|
||||
android:title="@string/menu_open_webapk"
|
||||
android:orderInCategory="2" />
|
||||
+
|
||||
+ <item android:id="@+id/enable_javascript_row_menu_id"
|
||||
+ android:title="@null"
|
||||
+ android:orderInCategory="2">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_javascript_id"
|
||||
+ android:title="@string/menu_enable_javascript" />
|
||||
+ <item android:id="@+id/enable_javascript_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
+
|
||||
<item android:id="@+id/request_desktop_site_row_menu_id"
|
||||
android:title="@null"
|
||||
android:orderInCategory="2">
|
||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -59,6 +59,19 @@
|
||||
android:title="@string/menu_add_to_homescreen" />
|
||||
<item android:id="@+id/open_webapk_id"
|
||||
android:title="@string/menu_open_webapk" />
|
||||
+
|
||||
+ <item android:id="@+id/enable_javascript_row_menu_id"
|
||||
+ android:title="@null"
|
||||
+ android:orderInCategory="2">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_javascript_id"
|
||||
+ android:title="@string/menu_enable_javascript" />
|
||||
+ <item android:id="@+id/enable_javascript_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
+
|
||||
<item android:id="@+id/request_desktop_site_row_menu_id"
|
||||
android:title="@null">
|
||||
<menu>
|
||||
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
|
||||
@@ -2050,6 +2050,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);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
} else {
|
||||
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
|
||||
@@ -1710,6 +1710,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);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.open_recently_closed_tab) {
|
||||
TabModel currentModel = mTabModelSelectorImpl.getCurrentModel();
|
||||
if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab();
|
||||
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
|
||||
@@ -214,6 +214,8 @@ public class AppMenuPropertiesDelegate {
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
+ updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
+
|
||||
// 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()));
|
||||
@@ -469,4 +471,39 @@ public class AppMenuPropertiesDelegate {
|
||||
|
||||
return chromeHomeMenuItemFlagEnabled && !sHideChromeHomeMenuItems;
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
+ * Updates the enable JavaScript item's state.
|
||||
+ *
|
||||
+ * @param menu {@link Menu} for enable javascript
|
||||
+ * @param currentTab Current tab being displayed.
|
||||
+ */
|
||||
+ protected void updateEnableJavascriptMenuItem(
|
||||
+ Menu menu, Tab currentTab) {
|
||||
+ MenuItem enableMenuRow = menu.findItem(R.id.enable_javascript_row_menu_id);
|
||||
+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_javascript_id);
|
||||
+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_javascript_check_id);
|
||||
+
|
||||
+ // Hide enable javascript on all chrome:// pages except for the NTP.
|
||||
+ String url = currentTab.getUrl();
|
||||
+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX)
|
||||
+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
|
||||
+ // Also hide enable javascsript on Reader Mode.
|
||||
+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url);
|
||||
+
|
||||
+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage;
|
||||
+ enableMenuRow.setVisible(itemVisible);
|
||||
+ if (!itemVisible) return;
|
||||
+
|
||||
+ boolean jsEnabled = PrefServiceBridge.getInstance().javaScriptEnabled();
|
||||
+
|
||||
+ // Mark the checkbox if Javascript is activated on this tab.
|
||||
+ enableMenuCheck.setChecked(jsEnabled);
|
||||
+
|
||||
+ // This title doesn't seem to be displayed by Android, but it is used to set up
|
||||
+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}.
|
||||
+ enableMenuLabel.setTitleCondensed(jsEnabled
|
||||
+ ? mActivity.getString(R.string.menu_enable_javascript_on)
|
||||
+ : mActivity.getString(R.string.menu_enable_javascript_off));
|
||||
+ }
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
||||
+ updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible);
|
||||
}
|
||||
}
|
||||
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
|
||||
@@ -2548,6 +2548,17 @@ Google may use your browsing activity, content on some sites you visit, and othe
|
||||
<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>
|
||||
+
|
||||
+ <message name="IDS_MENU_ENABLE_JAVASCRIPT" desc="Menu item in Chrome's overflow/options menu. If this menu item is unselected, Bromite will disable JavaScript support for the page. [CHAR-LIMIT=27]">
|
||||
+ Enable JavaScript
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_JAVASCRIPT_ON" desc="Accessibility description for when Enable JavaScript is selected.">
|
||||
+ Turn off JavaScript
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_JAVASCRIPT_OFF" desc="Accessibility description for when Enable JavaScript is unselected.">
|
||||
+ Turn on JavaScript
|
||||
+ </message>
|
||||
+
|
||||
<message name="IDS_MENU_REQUEST_DESKTOP_SITE" desc="Menu item in Chrome's overflow/options menu. By default, when a user navigates to a web page, Chrome shows the mobile site, that is, the version of the site designed for mobile phones. If this menu item is selected, however, Chrome will try to load the 'desktop' site instead, i.e. the site designed for desktop computers or laptop computers, which have larger screens. [CHAR-LIMIT=24]">
|
||||
Desktop site
|
||||
</message>
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
From: SergeyZhukovsky <serg.zhukovsky@gmail.com>
|
||||
Date: Tue, 15 Aug 2017 15:33:16 -0400
|
||||
Subject: Remove google account access permission on reboot
|
||||
|
||||
---
|
||||
chrome/android/BUILD.gn | 3 +--
|
||||
chrome/android/java/AndroidManifest.xml | 4 ++--
|
||||
2 files changed, 3 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -784,8 +784,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
|
||||
resources = [
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
"java/res_template/xml/launchershortcuts.xml",
|
||||
- "java/res_template/xml/searchable.xml",
|
||||
- "java/res_template/xml/syncadapter.xml",
|
||||
+ "java/res_template/xml/searchable.xml"
|
||||
]
|
||||
res_dir = "java/res_template"
|
||||
variables = chrome_public_jinja_variables
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -804,14 +804,14 @@ by a child template that "extends" this file.
|
||||
</provider>
|
||||
|
||||
<!-- Sync adapter for browser invalidation. -->
|
||||
- <service android:name="org.chromium.chrome.browser.invalidation.ChromeBrowserSyncAdapterService"
|
||||
+ <!--<service android:name="org.chromium.chrome.browser.invalidation.ChromeBrowserSyncAdapterService"
|
||||
android:exported="false">
|
||||
<intent-filter>
|
||||
<action android:name="android.content.SyncAdapter" />
|
||||
</intent-filter>
|
||||
<meta-data android:name="android.content.SyncAdapter"
|
||||
android:resource="@xml/syncadapter" />
|
||||
- </service>
|
||||
+ </service>-->
|
||||
|
||||
<!-- Broadcast receiver that will be notified of account changes -->
|
||||
<receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 2 Apr 2018 11:36:02 +0200
|
||||
Subject: Punt the Widevine version string
|
||||
|
||||
Originally from http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromium-browser.wily.beta/view/head:/debian/patches/fix_building_widevinecdm_with_chromium.patch
|
||||
---
|
||||
chrome/common/chrome_content_client.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -526,7 +526,7 @@ void ChromeContentClient::AddContentDecryptionModules(
|
||||
bool supports_persistent_license = false;
|
||||
if (IsWidevineAvailable(&cdm_path, &video_codecs_supported,
|
||||
&supports_persistent_license)) {
|
||||
- const base::Version version(WIDEVINE_CDM_VERSION_STRING);
|
||||
+ const base::Version version("1.0.123.456");
|
||||
DCHECK(version.IsValid());
|
||||
|
||||
cdms->push_back(content::CdmInfo(
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 25 Apr 2018 10:23:51 +0200
|
||||
Subject: Disable metrics on all I/O threads
|
||||
|
||||
---
|
||||
chrome/browser/profiles/profile_io_data.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -964,7 +964,7 @@ void ProfileIOData::InitializeMetricsEnabledStateOnUIThread() {
|
||||
|
||||
bool ProfileIOData::GetMetricsEnabledStateOnIOThread() const {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
||||
- return enable_metrics_.GetValue();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
chrome_browser_net::Predictor* ProfileIOData::GetPredictor() {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 28 Apr 2018 08:30:26 +0200
|
||||
Subject: Enable DNS-over-HTTPS by default
|
||||
|
||||
---
|
||||
components/network_session_configurator/common/network_features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -10,6 +10,6 @@ const base::Feature kTokenBinding{"token-binding",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kDnsOverHttps{"dns-over-https",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
} // namespace features
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 30 Mar 2018 10:09:03 +0200
|
||||
Subject: Add fingerprinting mitigation for getClientRects,
|
||||
getBoundingClientRect
|
||||
|
||||
Scale the result of Range::getClientRects and Element::getBoundingClientRect
|
||||
by a random +/-3% of the original value for each float in the Rect/Quad.
|
||||
The random value is generated once for each Document and re-used for all the
|
||||
attached elements.
|
||||
The rationale is that such value, albeit constant within the rendered Document,
|
||||
is within the same order of magniture of the floating point precision being
|
||||
used for fingerprinting and sufficient to poison the well.
|
||||
|
||||
See also: http://www.gsd.inesc-id.pt/~mpc/pubs/fingerprinting-trustcom2016.pdf
|
||||
---
|
||||
third_party/blink/renderer/core/dom/document.cc | 14 ++++++++++++++
|
||||
third_party/blink/renderer/core/dom/document.h | 5 +++++
|
||||
third_party/blink/renderer/core/dom/element.cc | 7 +++++++
|
||||
third_party/blink/renderer/core/dom/range.cc | 8 +++++++-
|
||||
4 files changed, 33 insertions(+), 1 deletion(-)
|
||||
|
||||
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
|
||||
@@ -279,6 +279,8 @@
|
||||
|
||||
#include "extensions/anti_amp_cure.h"
|
||||
|
||||
+#include "base/rand_util.h"
|
||||
+
|
||||
#ifndef NDEBUG
|
||||
using WeakDocumentSet =
|
||||
blink::PersistentHeapHashSet<blink::WeakMember<blink::Document>>;
|
||||
@@ -740,6 +742,10 @@ Document::Document(const DocumentInit& initializer,
|
||||
#ifndef NDEBUG
|
||||
liveDocumentSet().insert(this);
|
||||
#endif
|
||||
+
|
||||
+ // add +/- 3% noise against fingerprinting
|
||||
+ shuffleFactorX_ = 1 + (base::RandDouble() - 0.5) * 0.03;
|
||||
+ shuffleFactorY_ = 1 + (base::RandDouble() - 0.5) * 0.03;
|
||||
}
|
||||
|
||||
Document::~Document() {
|
||||
@@ -766,6 +772,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope,
|
||||
Position::BeforeNode(*shadow_host));
|
||||
}
|
||||
|
||||
+double Document::GetShuffleFactorX() {
|
||||
+ return shuffleFactorX_;
|
||||
+}
|
||||
+
|
||||
+double Document::GetShuffleFactorY() {
|
||||
+ return shuffleFactorY_;
|
||||
+}
|
||||
+
|
||||
SelectorQueryCache& Document::GetSelectorQueryCache() {
|
||||
if (!selector_query_cache_)
|
||||
selector_query_cache_ = std::make_unique<SelectorQueryCache>();
|
||||
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
|
||||
--- a/third_party/blink/renderer/core/dom/document.h
|
||||
+++ b/third_party/blink/renderer/core/dom/document.h
|
||||
@@ -408,6 +408,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
|
||||
String origin() const;
|
||||
|
||||
+ double GetShuffleFactorX();
|
||||
+ double GetShuffleFactorY();
|
||||
+
|
||||
String visibilityState() const;
|
||||
mojom::PageVisibilityState GetPageVisibilityState() const;
|
||||
bool hidden() const;
|
||||
@@ -1670,6 +1673,8 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
|
||||
double start_time_;
|
||||
|
||||
+ double shuffleFactorX_, shuffleFactorY_;
|
||||
+
|
||||
TraceWrapperMember<ScriptRunner> script_runner_;
|
||||
|
||||
HeapVector<Member<ScriptElementBase>> current_script_stack_;
|
||||
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
|
||||
--- a/third_party/blink/renderer/core/dom/element.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/element.cc
|
||||
@@ -1348,6 +1348,11 @@ DOMRectList* Element::getClientRects() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
||||
quads, *element_layout_object);
|
||||
+
|
||||
+ for (FloatQuad& quad : quads) {
|
||||
+ quad.Scale(GetDocument().GetShuffleFactorX(), GetDocument().GetShuffleFactorY());
|
||||
+ }
|
||||
+
|
||||
return DOMRectList::Create(quads);
|
||||
}
|
||||
|
||||
@@ -1365,6 +1370,8 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
||||
*element_layout_object);
|
||||
+ result.Scale(GetDocument().GetShuffleFactorX(), GetDocument().GetShuffleFactorY());
|
||||
+
|
||||
return DOMRect::FromFloatRect(result);
|
||||
}
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
|
||||
--- a/third_party/blink/renderer/core/dom/range.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/range.cc
|
||||
@@ -1575,11 +1575,17 @@ DOMRectList* Range::getClientRects() const {
|
||||
Vector<FloatQuad> quads;
|
||||
GetBorderAndTextQuads(quads);
|
||||
|
||||
+ for (FloatQuad& quad : quads) {
|
||||
+ quad.Scale(owner_document_->GetShuffleFactorX(), owner_document_->GetShuffleFactorY());
|
||||
+ }
|
||||
+
|
||||
return DOMRectList::Create(quads);
|
||||
}
|
||||
|
||||
DOMRect* Range::getBoundingClientRect() const {
|
||||
- return DOMRect::FromFloatRect(BoundingRect());
|
||||
+ auto rect = BoundingRect();
|
||||
+ rect.Scale(owner_document_->GetShuffleFactorX(), owner_document_->GetShuffleFactorY());
|
||||
+ return DOMRect::FromFloatRect(rect);
|
||||
}
|
||||
|
||||
// TODO(editing-dev): We should make
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 2 May 2018 01:04:07 +0200
|
||||
Subject: Disable custom tab activities permanently
|
||||
|
||||
---
|
||||
.../src/org/chromium/chrome/browser/LaunchIntentDispatcher.java | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
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,10 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
|
||||
recordIntentMetrics();
|
||||
|
||||
mIsVrIntent = VrIntentUtils.isVrIntent(mIntent);
|
||||
- boolean isCustomTabIntent = (!mIsVrIntent && isCustomTabIntent(mIntent))
|
||||
- || (mIsVrIntent && VrIntentUtils.isCustomTabVrIntent(mIntent));
|
||||
- mIsCustomTabIntent = isCustomTabIntent;
|
||||
+ //boolean isCustomTabIntent = (!mIsVrIntent && isCustomTabIntent(mIntent))
|
||||
+ // || (mIsVrIntent && VrIntentUtils.isCustomTabVrIntent(mIntent));
|
||||
+ //mIsCustomTabIntent = isCustomTabIntent;
|
||||
+ mIsCustomTabIntent = false;
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 24 Mar 2018 05:18:03 +0100
|
||||
Subject: Canvas: fingerprinting mitigations via IDL
|
||||
|
||||
Disable toDataURL, toBlob, getImageData and webGL renderering info
|
||||
---
|
||||
third_party/blink/renderer/core/html/canvas/html_canvas_element.idl | 4 ++--
|
||||
.../renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl | 4 ++--
|
||||
third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc | 4 ++--
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl b/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl
|
||||
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.idl
|
||||
@@ -37,9 +37,9 @@ interface HTMLCanvasElement : HTMLElement
|
||||
// Note: The arguments argument is variadic in the spec, but not here as
|
||||
// only one extra argument is actually used.
|
||||
// FIXME: type should not have a default value.
|
||||
- [MeasureAs=CanvasToDataURL, RaisesException] DOMString toDataURL(optional DOMString type = null, optional any arguments);
|
||||
+ //[MeasureAs=CanvasToDataURL, RaisesException] DOMString toDataURL(optional DOMString type = null, optional any arguments);
|
||||
|
||||
- [MeasureAs=CanvasToBlob, RaisesException] void toBlob(BlobCallback _callback, optional DOMString type = null, optional any arguments);
|
||||
+ //[MeasureAs=CanvasToBlob, RaisesException] void toBlob(BlobCallback _callback, optional DOMString type = null, optional any arguments);
|
||||
};
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/canvas.html#blobcallback
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
|
||||
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
|
||||
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.idl
|
||||
@@ -110,7 +110,7 @@ interface CanvasRenderingContext2D {
|
||||
// text (see also the CanvasDrawingStyles interface)
|
||||
void fillText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
|
||||
void strokeText(DOMString text, unrestricted double x, unrestricted double y, optional unrestricted double maxWidth);
|
||||
- TextMetrics measureText(DOMString text);
|
||||
+ //TextMetrics measureText(DOMString text);
|
||||
|
||||
// drawing images
|
||||
[CallWith=ScriptState, RaisesException] void drawImage(CanvasImageSource image, unrestricted double x, unrestricted double y);
|
||||
@@ -125,7 +125,7 @@ interface CanvasRenderingContext2D {
|
||||
// pixel manipulation
|
||||
[RaisesException] ImageData createImageData(ImageData imagedata);
|
||||
[RaisesException] ImageData createImageData(long sw, long sh);
|
||||
- [RaisesException] ImageData getImageData(long sx, long sy, long sw, long sh);
|
||||
+ //[RaisesException] ImageData getImageData(long sx, long sy, long sw, long sh);
|
||||
[RaisesException] void putImageData(ImageData imagedata, long dx, long dy);
|
||||
[RaisesException] void putImageData(ImageData imagedata, long dx, long dy, long dirtyX, long dirtyY, long dirtyWidth, long dirtyHeight);
|
||||
|
||||
diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
--- a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
+++ b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
|
||||
@@ -37,11 +37,11 @@ WebGLExtensionName WebGLDebugRendererInfo::GetName() const {
|
||||
|
||||
WebGLDebugRendererInfo* WebGLDebugRendererInfo::Create(
|
||||
WebGLRenderingContextBase* context) {
|
||||
- return new WebGLDebugRendererInfo(context);
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
bool WebGLDebugRendererInfo::Supported(WebGLRenderingContextBase*) {
|
||||
- return true;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
const char* WebGLDebugRendererInfo::ExtensionName() {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,273 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 30 Apr 2018 15:39:58 +0200
|
||||
Subject: Started work on canvas randomisation
|
||||
|
||||
Add shuffling for TextMetrics
|
||||
---
|
||||
.../renderer/core/html/canvas/canvas_async_blob_creator.cc | 14 +++++++-------
|
||||
.../renderer/core/html/canvas/canvas_async_blob_creator.h | 6 +++---
|
||||
.../blink/renderer/core/html/canvas/html_canvas_element.cc | 4 ++--
|
||||
.../blink/renderer/core/html/canvas/text_metrics.cc | 4 ++++
|
||||
third_party/blink/renderer/core/html/canvas/text_metrics.h | 2 ++
|
||||
.../blink/renderer/core/inspector/InspectorAuditsAgent.cpp | 2 +-
|
||||
.../renderer/core/offscreencanvas/offscreen_canvas.cc | 6 +++++-
|
||||
.../renderer/modules/accessibility/ax_layout_object.cc | 2 +-
|
||||
.../modules/canvas/canvas2d/base_rendering_context_2d.cc | 3 +++
|
||||
.../modules/canvas/canvas2d/canvas_rendering_context_2d.cc | 6 +++++-
|
||||
.../blink/renderer/platform/graphics/image_data_buffer.cc | 6 ++++--
|
||||
.../blink/renderer/platform/graphics/image_data_buffer.h | 3 ++-
|
||||
12 files changed, 39 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
|
||||
--- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
|
||||
@@ -218,14 +218,14 @@ void CanvasAsyncBlobCreator::Dispose() {
|
||||
image_ = nullptr;
|
||||
}
|
||||
|
||||
-bool CanvasAsyncBlobCreator::EncodeImage(const double& quality) {
|
||||
+bool CanvasAsyncBlobCreator::EncodeImage(const double& quality, const double shuffleAmt) {
|
||||
std::unique_ptr<ImageDataBuffer> buffer = ImageDataBuffer::Create(src_data_);
|
||||
if (!buffer)
|
||||
return false;
|
||||
- return buffer->EncodeImage("image/webp", quality, &encoded_image_);
|
||||
+ return buffer->EncodeImage("image/webp", quality, shuffleAmt, &encoded_image_);
|
||||
}
|
||||
|
||||
-void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality) {
|
||||
+void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality, const double shuffleAmt) {
|
||||
if (!static_bitmap_image_loaded_) {
|
||||
context_->GetTaskRunner(TaskType::kCanvasBlobSerialization)
|
||||
->PostTask(FROM_HERE,
|
||||
@@ -239,7 +239,7 @@ void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality) {
|
||||
// When OffscreenCanvas.convertToBlob() occurs on worker thread,
|
||||
// we do not need to use background task runner to reduce load on main.
|
||||
// So we just directly encode images on the worker thread.
|
||||
- if (!EncodeImage(quality)) {
|
||||
+ if (!EncodeImage(quality, shuffleAmt)) {
|
||||
context_->GetTaskRunner(TaskType::kCanvasBlobSerialization)
|
||||
->PostTask(
|
||||
FROM_HERE,
|
||||
@@ -258,7 +258,7 @@ void CanvasAsyncBlobCreator::ScheduleAsyncBlobCreation(const double& quality) {
|
||||
BackgroundTaskRunner::PostOnBackgroundThread(
|
||||
FROM_HERE,
|
||||
CrossThreadBind(&CanvasAsyncBlobCreator::EncodeImageOnEncoderThread,
|
||||
- WrapCrossThreadPersistent(this), quality));
|
||||
+ WrapCrossThreadPersistent(this), quality, shuffleAmt));
|
||||
}
|
||||
} else {
|
||||
idle_task_status_ = kIdleTaskNotStarted;
|
||||
@@ -430,11 +430,11 @@ void CanvasAsyncBlobCreator::CreateNullAndReturnResult() {
|
||||
Dispose();
|
||||
}
|
||||
|
||||
-void CanvasAsyncBlobCreator::EncodeImageOnEncoderThread(double quality) {
|
||||
+void CanvasAsyncBlobCreator::EncodeImageOnEncoderThread(double quality, double shuffleAmt) {
|
||||
DCHECK(!IsMainThread());
|
||||
DCHECK(mime_type_ == kMimeTypeWebp);
|
||||
|
||||
- if (!EncodeImage(quality)) {
|
||||
+ if (!EncodeImage(quality, shuffleAmt)) {
|
||||
PostCrossThreadTask(
|
||||
*parent_frame_task_runner_, FROM_HERE,
|
||||
CrossThreadBind(&CanvasAsyncBlobCreator::CreateNullAndReturnResult,
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h
|
||||
--- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.h
|
||||
@@ -38,7 +38,7 @@ class CORE_EXPORT CanvasAsyncBlobCreator
|
||||
ExecutionContext*,
|
||||
ScriptPromiseResolver*);
|
||||
|
||||
- void ScheduleAsyncBlobCreation(const double& quality);
|
||||
+ void ScheduleAsyncBlobCreation(const double& quality, const double shuffleAmt);
|
||||
virtual ~CanvasAsyncBlobCreator();
|
||||
enum MimeType {
|
||||
kMimeTypePng,
|
||||
@@ -130,7 +130,7 @@ class CORE_EXPORT CanvasAsyncBlobCreator
|
||||
Member<ScriptPromiseResolver> script_promise_resolver_;
|
||||
|
||||
void LoadStaticBitmapImage();
|
||||
- bool EncodeImage(const double&);
|
||||
+ bool EncodeImage(const double&, const double);
|
||||
|
||||
// PNG, JPEG
|
||||
bool InitializeEncoder(double quality);
|
||||
@@ -138,7 +138,7 @@ class CORE_EXPORT CanvasAsyncBlobCreator
|
||||
// without deadline
|
||||
|
||||
// WEBP
|
||||
- void EncodeImageOnEncoderThread(double quality);
|
||||
+ void EncodeImageOnEncoderThread(double quality, double shuffleAmt);
|
||||
|
||||
void IdleTaskStartTimeoutEvent(double quality);
|
||||
void IdleTaskCompleteTimeoutEvent();
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
|
||||
--- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc
|
||||
@@ -850,7 +850,7 @@ String HTMLCanvasElement::ToDataURLInternal(
|
||||
std::unique_ptr<ImageDataBuffer> data_buffer =
|
||||
ImageDataBuffer::Create(image_bitmap);
|
||||
if (data_buffer)
|
||||
- return data_buffer->ToDataURL(encoding_mime_type, quality);
|
||||
+ return data_buffer->ToDataURL(encoding_mime_type, quality, GetDocument().GetShuffleFactorX());
|
||||
}
|
||||
return String("data:,");
|
||||
}
|
||||
@@ -916,7 +916,7 @@ void HTMLCanvasElement::toBlob(V8BlobCallback* callback,
|
||||
}
|
||||
|
||||
if (async_creator) {
|
||||
- async_creator->ScheduleAsyncBlobCreation(quality);
|
||||
+ async_creator->ScheduleAsyncBlobCreation(quality, GetDocument().GetShuffleFactorX());
|
||||
} else {
|
||||
GetDocument()
|
||||
.GetTaskRunner(TaskType::kCanvasBlobSerialization)
|
||||
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,10 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+void TextMetrics::Shuffle(const double amt) {
|
||||
+ //TODO: shuffle here
|
||||
+}
|
||||
+
|
||||
void TextMetrics::Update(const Font& font,
|
||||
const TextDirection& direction,
|
||||
const TextBaseline& baseline,
|
||||
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 {
|
||||
|
||||
static float GetFontBaseline(const TextBaseline&, const FontMetrics&);
|
||||
|
||||
+ void Shuffle(const double amt);
|
||||
+
|
||||
private:
|
||||
void Update(const Font&,
|
||||
const TextDirection&,
|
||||
diff --git a/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp b/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp
|
||||
--- a/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp
|
||||
+++ b/third_party/blink/renderer/core/inspector/InspectorAuditsAgent.cpp
|
||||
@@ -56,7 +56,7 @@ bool EncodeAsImage(char* body,
|
||||
|
||||
String mime_type = "image/";
|
||||
mime_type.append(encoding);
|
||||
- return image_to_encode->EncodeImage(mime_type, quality, output);
|
||||
+ return image_to_encode->EncodeImage(mime_type, quality, 0, output);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
diff --git a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
|
||||
--- a/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
|
||||
+++ b/third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.cc
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h"
|
||||
|
||||
#include <memory>
|
||||
+#include "base/rand_util.h"
|
||||
#include <utility>
|
||||
|
||||
#include "gpu/config/gpu_feature_info.h"
|
||||
@@ -403,7 +404,10 @@ ScriptPromise OffscreenCanvas::convertToBlob(ScriptState* script_state,
|
||||
CanvasAsyncBlobCreator* async_creator = CanvasAsyncBlobCreator::Create(
|
||||
snapshot, encoding_mime_type, start_time,
|
||||
ExecutionContext::From(script_state), resolver);
|
||||
- async_creator->ScheduleAsyncBlobCreation(options.quality());
|
||||
+
|
||||
+ // add +/- 3% noise against fingerprinting
|
||||
+ double shuffleAmt = (base::RandDouble() - 0.5) * 0.03;
|
||||
+ async_creator->ScheduleAsyncBlobCreation(options.quality(), shuffleAmt);
|
||||
return resolver->Promise();
|
||||
} else {
|
||||
exception_state.ThrowDOMException(
|
||||
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
|
||||
--- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
|
||||
+++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
|
||||
@@ -1009,7 +1009,7 @@ String AXLayoutObject::ImageDataUrl(const IntSize& max_size) const {
|
||||
if (!buffer)
|
||||
return String();
|
||||
|
||||
- return buffer->ToDataURL("image/png", 1.0);
|
||||
+ return buffer->ToDataURL("image/png", 1.0, document->GetShuffleFactorX());
|
||||
}
|
||||
|
||||
String AXLayoutObject::GetText() const {
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
|
||||
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
|
||||
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
|
||||
@@ -1620,6 +1620,9 @@ ImageData* BaseRenderingContext2D::getImageData(
|
||||
const CanvasColorParams& color_params = ColorParams();
|
||||
scoped_refptr<StaticBitmapImage> snapshot = GetImage(kPreferNoAcceleration);
|
||||
|
||||
+ //TODO: calculate some random value and use it to shuffle pixel data in 'snapshot'
|
||||
+ // it should StaticBitmapImage somehow
|
||||
+
|
||||
if (!StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
snapshot, contents, image_data_rect, color_params, IsAccelerated())) {
|
||||
exception_state.ThrowRangeError("Out of memory at ImageData creation");
|
||||
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
|
||||
@@ -773,8 +773,12 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
else
|
||||
direction = ToTextDirection(GetState().GetDirection(), canvas());
|
||||
|
||||
- return TextMetrics::Create(font, direction, GetState().GetTextBaseline(),
|
||||
+ TextMetrics* textMetrics = TextMetrics::Create(font, direction, GetState().GetTextBaseline(),
|
||||
GetState().GetTextAlign(), text);
|
||||
+
|
||||
+ textMetrics->Shuffle(canvas()->GetDocument().GetShuffleFactorX());
|
||||
+
|
||||
+ return textMetrics;
|
||||
}
|
||||
|
||||
void CanvasRenderingContext2D::DrawTextInternal(
|
||||
diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
|
||||
--- a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
|
||||
+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc
|
||||
@@ -118,7 +118,9 @@ const unsigned char* ImageDataBuffer::Pixels() const {
|
||||
|
||||
bool ImageDataBuffer::EncodeImage(const String& mime_type,
|
||||
const double& quality,
|
||||
+ const double shuffleAmt,
|
||||
Vector<unsigned char>* encoded_image) const {
|
||||
+ //TODO: this is the only place where shuffleAmt should be used
|
||||
DCHECK(is_valid_);
|
||||
|
||||
if (mime_type == "image/jpeg") {
|
||||
@@ -154,12 +156,12 @@ bool ImageDataBuffer::EncodeImage(const String& mime_type,
|
||||
}
|
||||
|
||||
String ImageDataBuffer::ToDataURL(const String& mime_type,
|
||||
- const double& quality) const {
|
||||
+ const double& quality, const double shuffleAmt) const {
|
||||
DCHECK(is_valid_);
|
||||
DCHECK(MIMETypeRegistry::IsSupportedImageMIMETypeForEncoding(mime_type));
|
||||
|
||||
Vector<unsigned char> result;
|
||||
- if (!EncodeImage(mime_type, quality, &result))
|
||||
+ if (!EncodeImage(mime_type, quality, shuffleAmt, &result))
|
||||
return "data:,";
|
||||
|
||||
return "data:" + mime_type + ";base64," + Base64Encode(result);
|
||||
diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.h b/third_party/blink/renderer/platform/graphics/image_data_buffer.h
|
||||
--- a/third_party/blink/renderer/platform/graphics/image_data_buffer.h
|
||||
+++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.h
|
||||
@@ -47,9 +47,10 @@ class PLATFORM_EXPORT ImageDataBuffer {
|
||||
scoped_refptr<StaticBitmapImage>);
|
||||
static std::unique_ptr<ImageDataBuffer> Create(const SkPixmap&);
|
||||
|
||||
- String ToDataURL(const String& mime_type, const double& quality) const;
|
||||
+ String ToDataURL(const String& mime_type, const double& quality, const double shuffleAmt) const;
|
||||
bool EncodeImage(const String& mime_type,
|
||||
const double& quality,
|
||||
+ double shuffleAmt,
|
||||
Vector<unsigned char>* encoded_image) const;
|
||||
const unsigned char* Pixels() const;
|
||||
const IntSize& size() const { return size_; }
|
||||
--
|
||||
2.7.4
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 26 Apr 2018 10:37:05 +0200
|
||||
Subject: Add menu option to toggle global Adblock preference
|
||||
|
||||
Allow toggling Chromium's "ads enabled" content settings option together with Bromite adblock engine.
|
||||
---
|
||||
chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +++++++
|
||||
chrome/android/java/res/menu/main_menu.xml | 13 ++++++++
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 8 +++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 8 +++++
|
||||
.../browser/appmenu/AppMenuPropertiesDelegate.java | 38 ++++++++++++++++++++++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 2 ++
|
||||
.../java/strings/android_chrome_strings.grd | 11 +++++++
|
||||
.../subresource_filter_content_settings_manager.cc | 3 ++
|
||||
net/url_request/adblock_intercept.cc | 2 ++
|
||||
net/url_request/adblock_intercept.h | 2 ++
|
||||
net/url_request/url_request.cc | 4 +++
|
||||
11 files changed, 103 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
|
||||
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
@@ -74,6 +74,18 @@
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
+ <item android:id="@+id/enable_adblock_row_menu_id"
|
||||
+ android:title="@null"
|
||||
+ android:orderInCategory="2">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_adblock_id"
|
||||
+ android:title="@string/menu_enable_adblock" />
|
||||
+ <item android:id="@+id/enable_adblock_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
+
|
||||
<!-- Title is intentionally left blank in xml and will be set in java. -->
|
||||
<item android:id="@+id/open_in_browser_id"
|
||||
android:title=""
|
||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -82,6 +82,19 @@
|
||||
android:checkable="true" />
|
||||
</menu>
|
||||
</item>
|
||||
+
|
||||
+ <item android:id="@+id/enable_adblock_row_menu_id"
|
||||
+ android:title="@null"
|
||||
+ android:orderInCategory="2">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_adblock_id"
|
||||
+ android:title="@string/menu_enable_adblock" />
|
||||
+ <item android:id="@+id/enable_adblock_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
+
|
||||
<item android:id="@+id/reader_mode_prefs_id"
|
||||
android:title="@string/menu_reader_mode_prefs"
|
||||
android:icon="@drawable/reader_mode_prefs_icon" />
|
||||
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
|
||||
@@ -2060,6 +2060,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);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableAdBlock");
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
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
|
||||
@@ -1724,6 +1724,14 @@ public class ChromeTabbedActivity
|
||||
RecordUserAction.record("MobileTabClosedUndoShortCut");
|
||||
} else if (id == R.id.enter_vr_id) {
|
||||
VrShellDelegate.enterVrIfNecessary();
|
||||
+ } 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);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableAdBlock");
|
||||
} else {
|
||||
return super.onMenuOrKeyboardAction(id, fromMenu);
|
||||
}
|
||||
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
|
||||
@@ -212,6 +212,8 @@ public class AppMenuPropertiesDelegate {
|
||||
&& !TextUtils.isEmpty(url);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem);
|
||||
|
||||
+ updateEnableAdBlockMenuItem(menu, currentTab);
|
||||
+
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
@@ -445,6 +447,42 @@ public class AppMenuPropertiesDelegate {
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Updates the enable AdBlock item's state.
|
||||
+ *
|
||||
+ * @param menu {@link Menu} for enable adblock
|
||||
+ * @param currentTab Current tab being displayed.
|
||||
+ */
|
||||
+ protected void updateEnableAdBlockMenuItem(
|
||||
+ Menu menu, Tab currentTab) {
|
||||
+ MenuItem enableMenuRow = menu.findItem(R.id.enable_adblock_row_menu_id);
|
||||
+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_adblock_id);
|
||||
+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_adblock_check_id);
|
||||
+
|
||||
+
|
||||
+ // Hide enable adblock on all chrome:// pages except for the NTP.
|
||||
+ String url = currentTab.getUrl();
|
||||
+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX)
|
||||
+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
|
||||
+ // Also hide enable javascsript on Reader Mode.
|
||||
+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url);
|
||||
+
|
||||
+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage;
|
||||
+ enableMenuRow.setVisible(itemVisible);
|
||||
+ if (!itemVisible) return;
|
||||
+
|
||||
+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().adsEnabled();
|
||||
+
|
||||
+ // Mark the checkbox if adblock is globally activate.
|
||||
+ enableMenuCheck.setChecked(adBlockEnabled);
|
||||
+
|
||||
+ // This title doesn't seem to be displayed by Android, but it is used to set up
|
||||
+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}.
|
||||
+ enableMenuLabel.setTitleCondensed(adBlockEnabled
|
||||
+ ? mActivity.getString(R.string.menu_enable_adblock_on)
|
||||
+ : mActivity.getString(R.string.menu_enable_adblock_off));
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
* @return Whether bookmarks, downloads, and history should be shown in the menu.
|
||||
*/
|
||||
public static boolean shouldShowNavMenuItems() {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
+ updateEnableAdBlockMenuItem(menu, currentTab);
|
||||
+
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
||||
updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible);
|
||||
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
|
||||
@@ -2568,6 +2568,17 @@ Google may use your browsing activity, content on some sites you visit, and othe
|
||||
<message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
|
||||
Turn on Request desktop site
|
||||
</message>
|
||||
+
|
||||
+ <message name="IDS_MENU_ENABLE_ADBLOCK" desc="Menu item in Chrome's overflow/options menu. If this menu item is unselected, Bromite will disable AdBlock engine for the page. [CHAR-LIMIT=27]">
|
||||
+ Enable AdBlock
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_ADBLOCK_ON" desc="Accessibility description for when Enable AdBlock is selected.">
|
||||
+ Turn off AdBlock
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_ADBLOCK_OFF" desc="Accessibility description for when Enable AdBlock is unselected.">
|
||||
+ Turn on AdBlock
|
||||
+ </message>
|
||||
+
|
||||
<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/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 @@
|
||||
#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/url_request/adblock_intercept.cc b/net/url_request/adblock_intercept.cc
|
||||
--- a/net/url_request/adblock_intercept.cc
|
||||
+++ b/net/url_request/adblock_intercept.cc
|
||||
@@ -19,6 +19,8 @@
|
||||
|
||||
namespace net {
|
||||
|
||||
+bool adblock_enabled = true;
|
||||
+
|
||||
const char *LOG_TAG = "Bromite";
|
||||
|
||||
#ifdef ADB_TESTER
|
||||
diff --git a/net/url_request/adblock_intercept.h b/net/url_request/adblock_intercept.h
|
||||
--- a/net/url_request/adblock_intercept.h
|
||||
+++ b/net/url_request/adblock_intercept.h
|
||||
@@ -11,6 +11,8 @@ int adblock_rules_count();
|
||||
|
||||
int adblock_intercept(const GURL &url, const std::string &origin_host);
|
||||
|
||||
+extern bool adblock_enabled;
|
||||
+
|
||||
} // namespace net
|
||||
|
||||
#endif // NET_URL_REQUEST_ADBLOCK_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
|
||||
@@ -590,6 +590,7 @@ URLRequest::URLRequest(const GURL& url,
|
||||
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
+ if (net::adblock_enabled) {
|
||||
std::string initiatorHost;
|
||||
if (initiator_.has_value()) {
|
||||
initiatorHost = initiator_.value().host();
|
||||
@@ -600,6 +601,9 @@ URLRequest::URLRequest(const GURL& url,
|
||||
} else {
|
||||
url_chain_ = { url };
|
||||
}
|
||||
+ } else {
|
||||
+ url_chain_ = { url };
|
||||
+ }
|
||||
#endif
|
||||
|
||||
context->url_requests()->insert(this);
|
||||
--
|
||||
2.7.4
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 5 Jun 2018 13:46:40 +0200
|
||||
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(-)
|
||||
|
||||
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
|
||||
@@ -257,15 +257,7 @@ void UpdateMetricsUsagePrefsOnUIThread(const std::string& service_name,
|
||||
// Check the AsyncDns field trial and return true if it should be enabled. On
|
||||
// Android this includes checking the Android version in the field trial.
|
||||
bool ShouldEnableAsyncDns() {
|
||||
- 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
|
||||
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
|
||||
@@ -398,7 +398,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
effective_experimental_options->Remove(it.key(), nullptr);
|
||||
continue;
|
||||
}
|
||||
- async_dns_args->GetBoolean(kAsyncDnsEnable, &async_dns_enable);
|
||||
+ bool ignored;
|
||||
+ async_dns_args->GetBoolean(kAsyncDnsEnable, &ignored);
|
||||
} else if (it.key() == kStaleDnsFieldTrialName) {
|
||||
const base::DictionaryValue* stale_dns_args = nullptr;
|
||||
if (!it.value().GetAsDictionary(&stale_dns_args)) {
|
||||
--
|
||||
2.7.4
|
||||
|
||||
Reference in New Issue
Block a user