Compare commits
57
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
73b524f627 | ||
|
|
232dd7f970 | ||
|
|
ca366d39b9 | ||
|
|
5cf852d97d | ||
|
|
f2977bac96 | ||
|
|
a162d5820e | ||
|
|
95c717eb59 | ||
|
|
873c245f6e | ||
|
|
56fa92cbff | ||
|
|
acc8cbb1e9 | ||
|
|
c4bce0f449 | ||
|
|
cf3313d156 | ||
|
|
a6ffa85a0e | ||
|
|
e940ac0998 | ||
|
|
d1069ed023 | ||
|
|
3a9775c5c0 | ||
|
|
d1c1ce61ff | ||
|
|
525243125d | ||
|
|
c15c433631 | ||
|
|
e7e7afdc2d | ||
|
|
a600d36a56 | ||
|
|
e012e0aa9f | ||
|
|
a320e83fa1 | ||
|
|
5d3367398f | ||
|
|
a34b285160 | ||
|
|
a672f8d057 | ||
|
|
503e4b8f27 | ||
|
|
b615a77f51 | ||
|
|
7f6cc79541 | ||
|
|
2951298a6b | ||
|
|
d5b09217ef | ||
|
|
28d274b712 | ||
|
|
c800e61cc3 | ||
|
|
d66be65985 | ||
|
|
30b0e61732 | ||
|
|
a7c33014b6 | ||
|
|
abfa65cd17 | ||
|
|
fedd7572d7 | ||
|
|
d5dede3dfa | ||
|
|
a75b452332 | ||
|
|
d22dbd7b38 | ||
|
|
79eae0ab09 | ||
|
|
532c9c5c8b | ||
|
|
f5278822bb | ||
|
|
a8d215db86 | ||
|
|
2e921bffd8 | ||
|
|
fb225cf638 | ||
|
|
9c88a30ac3 | ||
|
|
0c9047e26d | ||
|
|
0d37a542ff | ||
|
|
34b616ba9f | ||
|
|
2e6d2a5c75 | ||
|
|
f963a09239 | ||
|
|
fcbca7eb8c | ||
|
|
65c50e3ec9 | ||
|
|
6cf627f9d4 | ||
|
|
0f2a48662d |
+133
@@ -1,3 +1,136 @@
|
||||
# 75.0.3770.53
|
||||
* fix crash when downloading or from browser-initiated requests (fixes https://github.com/bromite/bromite/issues/309)
|
||||
|
||||
# 75.0.3770.50
|
||||
* disable dynamic module loading
|
||||
* more fixes to allow building for SDK 17
|
||||
|
||||
# 74.0.3729.162
|
||||
* remove recent tabs signin
|
||||
|
||||
# 74.0.3729.154
|
||||
|
||||
# 74.0.3729.141
|
||||
|
||||
# 74.0.3729.122
|
||||
* remove more unnecessary permissions
|
||||
|
||||
# 74.0.3729.106
|
||||
* remove account/sync menu entries (fixes https://github.com/bromite/bromite/issues/285)
|
||||
* fix failed debug builds
|
||||
|
||||
# 74.0.3729.86
|
||||
* enable dark mode settings entry by default
|
||||
* fix permission request for Play services on reboot (fixes https://github.com/bromite/bromite/issues/281)
|
||||
|
||||
# 74.0.3729.80
|
||||
* increase minimum SDK version to 17 (Jelly Bean 4.2)
|
||||
* dropped obsolete patch for hyperlink auditing disable
|
||||
|
||||
# 73.0.3683.107
|
||||
* dropped patch to disable smooth scrolling
|
||||
* fixed custom tab intents issue (fixes https://github.com/bromite/bromite/issues/279)
|
||||
|
||||
# 73.0.3683.105
|
||||
* removed Fanboy's Annoyance List and Peter Lowe's adservers list from filters
|
||||
|
||||
# 73.0.3683.97
|
||||
* dropped redundant patch to hide NTP tiles (use home page + about:blank)
|
||||
|
||||
# 73.0.3683.88
|
||||
* add option to use home page as NTP
|
||||
|
||||
# 73.0.3683.82
|
||||
* remove force home page button flag
|
||||
* enable site per process isolation for devices with memory > 1GB
|
||||
* use 64-bit processes for SystemWebView
|
||||
* disable local field trials seed (redundant)
|
||||
* fix patch for classic new tab page (redundant)
|
||||
|
||||
# 73.0.3683.79
|
||||
* add missing Qwant engine from default engines list (fixes https://github.com/bromite/bromite/issues/262)
|
||||
* DoH: include upstream patch for DNS secure mode
|
||||
* DoH: enable DNS secure mode by default
|
||||
|
||||
# 73.0.3683.70
|
||||
|
||||
# 73.0.3683.61
|
||||
* drop patches with functionality now available from upstream (DuckDuckGo and Qwant search engines, TLS 1.3 final)
|
||||
* add only DuckDuckGo Lite search engine
|
||||
* provide image URL for Qwant
|
||||
* disable safe browsing subresource filter by default
|
||||
* fix PAC URL support in proxy configuration
|
||||
|
||||
# 72.0.3626.120
|
||||
* add support for resource type in adblock engine (fixes https://github.com/bromite/bromite/issues/115)
|
||||
* adblock engine speed optimizations
|
||||
* use adblock engine also in SystemWebView
|
||||
* add back uBlock Origin and EasyList filters
|
||||
* added Fanboy's Annoyance List
|
||||
|
||||
# 72.0.3626.119
|
||||
* use AdGuard filters
|
||||
* fixes for new tile rows usage
|
||||
* re-introduce patch to hide NTP tiles
|
||||
* disable NTP tile metrics collection
|
||||
|
||||
# 72.0.3626.114
|
||||
* use 4 tile rows instead of 2 in the new tab page
|
||||
* do not grant geolocation permission to default search engine (fixes https://github.com/bromite/bromite/issues/250)
|
||||
|
||||
# 72.0.3626.108
|
||||
|
||||
# 72.0.3626.99
|
||||
|
||||
# 72.0.3626.87
|
||||
* update bookmarks view after import
|
||||
|
||||
# 72.0.3626.81
|
||||
* serve empty content for blocked scripts/images (fixes https://github.com/bromite/bromite/issues/238)
|
||||
* keep support of Jelly Bean (workaround for upstream https://bugs.chromium.org/p/chromium/issues/detail?id=923477)
|
||||
|
||||
# 72.0.3626.73
|
||||
|
||||
# 72.0.3626.68
|
||||
* do not ignore save prompt for users without SD card (workaround for upstream wontfix https://bugs.chromium.org/p/chromium/issues/detail?id=916606)
|
||||
* remove third_party/analytics patch (now fixed upstream in https://chromium.googlesource.com/chromium/src.git/+/64d6a56f094efbab83802c07ad3ddffa014f9903)
|
||||
* AV1 codec support
|
||||
|
||||
# 71.0.3578.132
|
||||
* add patches from AndroidHardening project (fixes https://github.com/bromite/bromite/issues/226)
|
||||
|
||||
# 71.0.3578.123
|
||||
* disable jumbo builds (fixes https://github.com/bromite/bromite/issues/216 and https://github.com/bromite/bromite/issues/219)
|
||||
* disable preview fetching
|
||||
* do not consider Android Jelly Bean unsupported
|
||||
|
||||
# 71.0.3578.120
|
||||
* fix breakage of translate quick answers by anti-AMP (fixes https://github.com/bromite/bromite/issues/210)
|
||||
|
||||
# 71.0.3578.115
|
||||
* add AdGuard DNS-over-HTTPS option
|
||||
* use green icon for SystemWebView
|
||||
|
||||
# 71.0.3578.110
|
||||
|
||||
# 71.0.3578.104
|
||||
* fix AMP links sanitisation; have it working for news as well (fixes https://github.com/bromite/bromite/issues/202)
|
||||
* revert upstream patch responsible for the broken save dialog prompt (upstream: https://bugs.chromium.org/p/chromium/issues/detail?id=916606)
|
||||
|
||||
# 71.0.3578.101
|
||||
|
||||
# 71.0.3578.98
|
||||
* do not ask permissions for camera when importing bookmarks (fixes https://github.com/bromite/bromite/issues/200)
|
||||
|
||||
# 71.0.3578.88
|
||||
* add proxy configuration page (see https://github.com/bromite/bromite/wiki/ProxyConfiguration)
|
||||
* use more recent versions in User-Agent (fixes https://github.com/bromite/bromite/issues/156)
|
||||
|
||||
# 71.0.3578.85
|
||||
* fix blurry adaptive icon (fixes https://github.com/bromite/bromite/issues/197)
|
||||
|
||||
# 71.0.3578.76
|
||||
|
||||
# 71.0.3578.72
|
||||
* add flag to disable IPv6 probes
|
||||
|
||||
|
||||
@@ -46,6 +46,8 @@ Projects which follow a strict approach on this are [Iridium](https://iridiumbro
|
||||
## What is the SystemWebView?
|
||||
It is the core component of Android for all web page visualizations. For example when you access a new wifi network and need to activate it, that is using the SystemWebView. If you do not know what it is then you do not need to install it.
|
||||
|
||||
See also [the wiki page](https://github.com/bromite/bromite/wiki/Installing-SystemWebView) for community-contributed installation instructions.
|
||||
|
||||
## How to enable DNS-over-HTTPS?
|
||||
|
||||
See [this wiki page](https://github.com/bromite/bromite/wiki/Enabling-DNS-over-HTTPS).
|
||||
@@ -73,9 +75,10 @@ Yes, since version 69. While the desktop version of Chromium has an option to di
|
||||
|
||||
# Features
|
||||
|
||||
* baked-in adblock engine with filters from EasyList, EasyPrivacy and others
|
||||
* baked-in adblock engine
|
||||
* remove click-tracking and AMP from search results
|
||||
* DNS-over-HTTPS support via Google, Cloudflare and Quad9 servers
|
||||
* DNS-over-HTTPS support via Google, Cloudflare, Quad9 and AdGuard servers
|
||||
* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support
|
||||
* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines
|
||||
* chrome flags to disable custom intents and clear session on exit
|
||||
* always-incognito mode
|
||||
@@ -83,14 +86,20 @@ Yes, since version 69. While the desktop version of Chromium has an option to di
|
||||
* anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs
|
||||
* use fixed User-Agent to conceal real model and browser version
|
||||
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
|
||||
* security enhancement patches from [GrapheneOS](https://github.com/GrapheneOS) project
|
||||
|
||||
## Features not related to privacy
|
||||
* import/export bookmarks
|
||||
* allow playing videos in background tabs and disable pause on switching tabs
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* [AV1 codec support](https://github.com/bromite/bromite/wiki/AV1-support)
|
||||
* built with official speed optimizations
|
||||
|
||||
You can inspect all functionality/privacy changes by reading the patches: https://github.com/bromite/bromite/tree/master/patches
|
||||
You can inspect all functionality/privacy changes by reading the patches: https://github.com/bromite/bromite/tree/master/build/patches
|
||||
|
||||
# Privacy limitations
|
||||
|
||||
Bromite's privacy features, including anti-fingerprinting mitigations (which can be easily circumvented), **are not to be considered useful for journalists and people living in countries with freedom limitations**, please look at [Tor Browser](https://2019.www.torproject.org/projects/torbrowser.html.en) in such cases.
|
||||
|
||||
# Releases
|
||||
|
||||
@@ -98,7 +107,7 @@ All built versions are available as [releases](https://github.com/bromite/bromit
|
||||
|
||||
Each tag corresponds to a Chromium Stable release tag.
|
||||
|
||||
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDK versions 16 and 21; [Bromite SystemWebView](https://www.bromite.org/system_web_view) is provided as well (SDK21+).
|
||||
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDK versions 17 and 21; [Bromite SystemWebView](https://www.bromite.org/system_web_view) is provided as well (SDK21+).
|
||||
For every Bromite build you can always find a matching [vanilla Chromium](https://www.bromite.org/chromium) build which is used for example to verify which issues are specific to Bromite or not.
|
||||
|
||||
All official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
|
||||
@@ -133,17 +142,25 @@ The [Bromite main repository](https://github.com/bromite/bromite) contains tags
|
||||
|
||||
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.
|
||||
|
||||
The GN args used to build Bromite are available here: [GN_ARGS](./build/GN_ARGS).
|
||||
The patches are to be applied second the order specified in the `patches_list.txt` file (you can use `git am`); the big file `adblock_entries.h` (containing all the AdBlock filters) needs to be copied under `src/net/url_request/`.
|
||||
|
||||
# Credits
|
||||
|
||||
* [Chromium project](https://www.chromium.org/Home) and developers
|
||||
* [Iridium project](https://github.com/iridium-browser) for some patches
|
||||
* [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) for some patches
|
||||
* [GrapheneOS](https://github.com/GrapheneOS) for some security patches
|
||||
* [Inox patchset](https://github.com/gcarq/inox-patchset) for some patches (via ungoogled-chromium)
|
||||
* [Brave Browser](https://github.com/brave/browser-android-tabs) for some patches
|
||||
* nochromo for the original adblock patch
|
||||
* [AdBlock Plus](https://adblockplus.org/), [uBlock Origin](https://github.com/uBlockOrigin), [Peter Lowe's adservers list](https://pgl.yoyo.org/adservers/), [EasyList and EasyPrivacy](https://easylist.to/) for the filters included
|
||||
* [Vadim Pleshkov](http://vadimpleshkov.me/) for Bromite's logo
|
||||
|
||||
# Filters credits
|
||||
* [EasyList](https://easylist.to/#easylist)
|
||||
* [EasyPrivacy](https://easylist.to/#easyprivacy)
|
||||
* [uBlock Origin](https://github.com/uBlockOrigin)
|
||||
|
||||
# License
|
||||
|
||||
The patches published as part of the Bromite project are released under [GNU GPL v3](./LICENSE).
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
android_channel="stable"
|
||||
blink_symbol_level=1
|
||||
dcheck_always_on=false
|
||||
debuggable_apks=false
|
||||
enable_ac3_eac3_audio_demuxing=true enable_hevc_demuxing=true enable_iterator_debugging=false
|
||||
enable_av1_decoder=true
|
||||
enable_hangout_services_extension=false
|
||||
enable_mdns=false
|
||||
enable_mse_mpeg2ts_stream_parser=true ffmpeg_branding="Chrome" proprietary_codecs=true
|
||||
enable_nacl=false
|
||||
enable_nacl_nonsfi=false
|
||||
enable_remoting=false
|
||||
enable_reporting=false
|
||||
enable_resource_whitelist_generation=false
|
||||
enable_vr=false
|
||||
fieldtrial_testing_like_official_build=true
|
||||
is_component_build=false
|
||||
is_debug=false
|
||||
is_official_build=true
|
||||
jumbo_file_merge_limit=60
|
||||
safe_browsing_mode=0
|
||||
strip_absolute_paths_from_debug_symbols=true
|
||||
strip_debug_info=false
|
||||
symbol_level=1
|
||||
target_os="android"
|
||||
use_debug_fission=true
|
||||
use_errorprone_java_compiler=false
|
||||
use_jumbo_build=false
|
||||
use_official_google_api_keys=false
|
||||
use_openh264=true chrome_pgo_phase=0 full_wpo_on_official=true
|
||||
use_sysroot=false
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,234 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 16 Dec 2018 15:24:19 +0100
|
||||
Subject: AV1 codec support
|
||||
|
||||
libaom build fixes (requires -fPIC)
|
||||
Report AV1 as playable on Android
|
||||
---
|
||||
media/base/mime_util_internal.cc | 6 +++++-
|
||||
third_party/libaom/BUILD.gn | 6 ++++--
|
||||
third_party/libaom/libaom_srcs.gni | 5 +++++
|
||||
.../source/config/linux/arm-neon-cpu-detect/config/aom_config.asm | 2 +-
|
||||
.../source/config/linux/arm-neon-cpu-detect/config/aom_config.h | 2 +-
|
||||
.../libaom/source/config/linux/arm-neon/config/aom_config.asm | 2 +-
|
||||
third_party/libaom/source/config/linux/arm-neon/config/aom_config.h | 2 +-
|
||||
third_party/libaom/source/config/linux/arm/config/aom_config.asm | 2 +-
|
||||
third_party/libaom/source/config/linux/arm/config/aom_config.h | 2 +-
|
||||
third_party/libaom/source/config/linux/arm64/config/aom_config.asm | 2 +-
|
||||
third_party/libaom/source/config/linux/arm64/config/aom_config.h | 2 +-
|
||||
.../libaom/source/config/linux/generic/config/aom_config.asm | 2 +-
|
||||
third_party/libaom/source/config/linux/generic/config/aom_config.h | 2 +-
|
||||
third_party/libaom/source/config/linux/x64/config/aom_config.asm | 2 +-
|
||||
third_party/libaom/source/config/linux/x64/config/aom_config.h | 2 +-
|
||||
15 files changed, 26 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/media/base/mime_util_internal.cc b/media/base/mime_util_internal.cc
|
||||
--- a/media/base/mime_util_internal.cc
|
||||
+++ b/media/base/mime_util_internal.cc
|
||||
@@ -539,9 +539,13 @@ bool MimeUtil::IsCodecSupportedOnAndroid(
|
||||
case THEORA:
|
||||
return false;
|
||||
|
||||
- // AV1 is not supported on Android yet.
|
||||
+ // AV1 is supported on Android.
|
||||
case AV1:
|
||||
+#if BUILDFLAG(ENABLE_AV1_DECODER)
|
||||
+ return true;
|
||||
+#else
|
||||
return false;
|
||||
+#endif
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
// The remaining codecs may be supported depending on platform abilities.
|
||||
diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
|
||||
--- a/third_party/libaom/BUILD.gn
|
||||
+++ b/third_party/libaom/BUILD.gn
|
||||
@@ -74,7 +74,7 @@ if (enable_libaom_decoder) {
|
||||
sources = aom_dsp_common_asm_sse2
|
||||
sources += aom_dsp_common_asm_ssse3
|
||||
sources += aom_ports_asm_x86
|
||||
- defines = [ "CHROMIUM" ]
|
||||
+ defines = [ "CHROMIUM", "PIC" ]
|
||||
include_dirs = libaom_include_dirs
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@ if (enable_libaom_decoder) {
|
||||
configs += [ "//build/config/compiler:no_chromium_code" ]
|
||||
if (current_cpu == "arm") {
|
||||
configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
|
||||
- cflags = [ "-mfpu=neon" ]
|
||||
+ cflags = [ "-mfpu=neon", "-fPIC" ]
|
||||
}
|
||||
configs += [ ":libaom_config" ]
|
||||
|
||||
@@ -203,6 +203,8 @@ if (enable_libaom_decoder) {
|
||||
if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
|
||||
cpu_arch_full == "arm-neon-cpu-detect") {
|
||||
deps += [ ":libaom_intrinsics_neon" ]
|
||||
+ # will detect CPU
|
||||
+ sources += aom_ports_arm_sources
|
||||
}
|
||||
if (is_android) {
|
||||
deps += [ "//third_party/android_sdk:cpu_features" ]
|
||||
diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni
|
||||
--- a/third_party/libaom/libaom_srcs.gni
|
||||
+++ b/third_party/libaom/libaom_srcs.gni
|
||||
@@ -488,6 +488,11 @@ aom_mem_sources = [
|
||||
|
||||
aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ]
|
||||
|
||||
+aom_ports_arm_sources = [
|
||||
+ "//third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c",
|
||||
+ "//third_party/libaom/source/libaom/aom_ports/arm.h",
|
||||
+ ]
|
||||
+
|
||||
aom_rtcd_sources = [
|
||||
"//third_party/libaom/source/libaom/aom_dsp/aom_dsp_rtcd_defs.pl",
|
||||
"//third_party/libaom/source/libaom/aom_dsp/aom_dsp_rtcd.c",
|
||||
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.asm
|
||||
@@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_ONE_PASS_SVM equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_SHARED equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_config.h
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_ONE_PASS_SVM 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_SHARED 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.asm
|
||||
@@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_ONE_PASS_SVM equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_ONE_PASS_SVM 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 0
|
||||
#define CONFIG_SHARED 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm/config/aom_config.asm
|
||||
@@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_ONE_PASS_SVM equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm/config/aom_config.h
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_ONE_PASS_SVM 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 0
|
||||
#define CONFIG_SHARED 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
|
||||
@@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_ONE_PASS_SVM equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 0
|
||||
CONFIG_SHARED equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/arm64/config/aom_config.h
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_ONE_PASS_SVM 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 0
|
||||
#define CONFIG_SHARED 0
|
||||
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.asm b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/generic/config/aom_config.asm
|
||||
@@ -45,7 +45,7 @@ CONFIG_MULTITHREAD equ 1
|
||||
CONFIG_NORMAL_TILE_MODE equ 1
|
||||
CONFIG_ONE_PASS_SVM equ 0
|
||||
CONFIG_OS_SUPPORT equ 1
|
||||
-CONFIG_PIC equ 0
|
||||
+CONFIG_PIC equ 1
|
||||
CONFIG_RD_DEBUG equ 0
|
||||
CONFIG_RUNTIME_CPU_DETECT equ 1
|
||||
CONFIG_SHARED equ 0
|
||||
diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h b/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/generic/config/aom_config.h
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_ONE_PASS_SVM 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_SHARED 0
|
||||
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
+++ b/third_party/libaom/source/config/linux/x64/config/aom_config.asm
|
||||
@@ -35,7 +35,7 @@
|
||||
%define CONFIG_NORMAL_TILE_MODE 1
|
||||
%define CONFIG_ONE_PASS_SVM 0
|
||||
%define CONFIG_OS_SUPPORT 1
|
||||
-%define CONFIG_PIC 0
|
||||
+%define CONFIG_PIC 1
|
||||
%define CONFIG_RD_DEBUG 0
|
||||
%define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
%define CONFIG_SHARED 0
|
||||
diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
--- a/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
+++ b/third_party/libaom/source/config/linux/x64/config/aom_config.h
|
||||
@@ -47,7 +47,7 @@
|
||||
#define CONFIG_NORMAL_TILE_MODE 1
|
||||
#define CONFIG_ONE_PASS_SVM 0
|
||||
#define CONFIG_OS_SUPPORT 1
|
||||
-#define CONFIG_PIC 0
|
||||
+#define CONFIG_PIC 1
|
||||
#define CONFIG_RD_DEBUG 0
|
||||
#define CONFIG_RUNTIME_CPU_DETECT 1
|
||||
#define CONFIG_SHARED 0
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,625 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 12 Oct 2017 11:06:18 +0200
|
||||
Subject: Add DuckDuckGo Lite search engine
|
||||
|
||||
---
|
||||
.../search_engines/prepopulated_engines.json | 10 ++
|
||||
components/search_engines/search_engine_type.h | 1 +
|
||||
.../template_url_prepopulate_data.cc | 129 +++++++++++----------
|
||||
3 files changed, 76 insertions(+), 64 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
|
||||
@@ -95,6 +95,16 @@
|
||||
"id": 68
|
||||
},
|
||||
|
||||
+ "duckduckgo_light": {
|
||||
+ "name": "DuckDuckGo Light",
|
||||
+ "keyword": "duckduckgo.com/lite",
|
||||
+ "favicon_url": "https://duckduckgo.com/favicon.ico",
|
||||
+ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}",
|
||||
+ "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list",
|
||||
+ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT",
|
||||
+ "id": 12
|
||||
+ },
|
||||
+
|
||||
"duckduckgo": {
|
||||
"name": "DuckDuckGo",
|
||||
"keyword": "duckduckgo.com",
|
||||
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
|
||||
@@ -65,6 +65,7 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_360,
|
||||
SEARCH_ENGINE_COCCOC,
|
||||
SEARCH_ENGINE_DUCKDUCKGO,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT,
|
||||
SEARCH_ENGINE_PARSIJOO,
|
||||
SEARCH_ENGINE_QWANT,
|
||||
SEARCH_ENGINE_STARTPAGE,
|
||||
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
|
||||
@@ -35,6 +35,7 @@ const PrepopulatedEngine* const engines_default[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Note, the below entries are sorted by country code, not the name in comment.
|
||||
@@ -44,7 +45,7 @@ const PrepopulatedEngine* const engines_AE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Albania
|
||||
@@ -60,7 +61,7 @@ const PrepopulatedEngine* const engines_AR[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_ar,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Austria
|
||||
@@ -68,7 +69,7 @@ const PrepopulatedEngine* const engines_AT[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_at,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Australia
|
||||
@@ -76,7 +77,7 @@ const PrepopulatedEngine* const engines_AU[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_au,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Bosnia and Herzegovina
|
||||
@@ -92,7 +93,7 @@ const PrepopulatedEngine* const engines_BE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Bulgaria
|
||||
@@ -124,7 +125,7 @@ const PrepopulatedEngine* const engines_BN[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Bolivia
|
||||
@@ -132,7 +133,7 @@ const PrepopulatedEngine* const engines_BO[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Brazil
|
||||
@@ -140,7 +141,7 @@ const PrepopulatedEngine* const engines_BR[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_br,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Belarus
|
||||
@@ -156,19 +157,19 @@ const PrepopulatedEngine* const engines_BZ[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Canada
|
||||
const PrepopulatedEngine* const engines_CA[] = {
|
||||
- &googleen, &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo,
|
||||
+ &googleen, &google, &startpage, &bing, &yahoo_ca, &yahoo_qc, &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Switzerland
|
||||
const PrepopulatedEngine* const engines_CH[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo_ch,
|
||||
};
|
||||
|
||||
@@ -177,7 +178,7 @@ const PrepopulatedEngine* const engines_CL[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_cl,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// China
|
||||
@@ -190,7 +191,7 @@ const PrepopulatedEngine* const engines_CO[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo_co,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Costa Rica
|
||||
@@ -198,7 +199,7 @@ const PrepopulatedEngine* const engines_CR[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Czech Republic
|
||||
@@ -214,7 +215,7 @@ const PrepopulatedEngine* const engines_DE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_de,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Denmark
|
||||
@@ -222,7 +223,7 @@ const PrepopulatedEngine* const engines_DK[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_dk,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Dominican Republic
|
||||
@@ -230,7 +231,7 @@ const PrepopulatedEngine* const engines_DO[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Algeria
|
||||
@@ -246,7 +247,7 @@ const PrepopulatedEngine* const engines_EC[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Estonia
|
||||
@@ -270,7 +271,7 @@ const PrepopulatedEngine* const engines_ES[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_es,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Finland
|
||||
@@ -278,7 +279,7 @@ const PrepopulatedEngine* const engines_FI[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_fi,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Faroe Islands
|
||||
@@ -286,7 +287,7 @@ const PrepopulatedEngine* const engines_FO[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// France
|
||||
@@ -302,7 +303,7 @@ const PrepopulatedEngine* const engines_GB[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_uk,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Greece
|
||||
@@ -310,7 +311,7 @@ const PrepopulatedEngine* const engines_GR[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Guatemala
|
||||
@@ -318,7 +319,7 @@ const PrepopulatedEngine* const engines_GT[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Hong Kong
|
||||
@@ -334,7 +335,7 @@ const PrepopulatedEngine* const engines_HN[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Croatia
|
||||
@@ -342,7 +343,7 @@ const PrepopulatedEngine* const engines_HR[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Hungary
|
||||
@@ -350,7 +351,7 @@ const PrepopulatedEngine* const engines_HU[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Indonesia
|
||||
@@ -358,7 +359,7 @@ const PrepopulatedEngine* const engines_ID[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo_id,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Ireland
|
||||
@@ -366,7 +367,7 @@ const PrepopulatedEngine* const engines_IE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Israel
|
||||
@@ -382,7 +383,7 @@ const PrepopulatedEngine* const engines_IN[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo_in,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Iraq
|
||||
@@ -405,7 +406,7 @@ const PrepopulatedEngine* const engines_IS[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Italy
|
||||
@@ -413,7 +414,7 @@ const PrepopulatedEngine* const engines_IT[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Jamaica
|
||||
@@ -421,7 +422,7 @@ const PrepopulatedEngine* const engines_JM[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Jordan
|
||||
@@ -445,7 +446,7 @@ const PrepopulatedEngine* const engines_KE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// South Korea
|
||||
@@ -477,14 +478,14 @@ const PrepopulatedEngine* const engines_LB[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Liechtenstein
|
||||
const PrepopulatedEngine* const engines_LI[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
};
|
||||
|
||||
@@ -500,7 +501,7 @@ const PrepopulatedEngine* const engines_LT[] = {
|
||||
const PrepopulatedEngine* const engines_LU[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo,
|
||||
};
|
||||
|
||||
@@ -533,7 +534,7 @@ const PrepopulatedEngine* const engines_MC[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Moldova
|
||||
@@ -541,7 +542,7 @@ const PrepopulatedEngine* const engines_MD[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yandex_ru,
|
||||
&mail_ru,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Montenegro
|
||||
@@ -557,7 +558,7 @@ const PrepopulatedEngine* const engines_MK[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Mexico
|
||||
@@ -565,7 +566,7 @@ const PrepopulatedEngine* const engines_MX[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_mx,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Malaysia
|
||||
@@ -581,7 +582,7 @@ const PrepopulatedEngine* const engines_NI[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Netherlands
|
||||
@@ -589,7 +590,7 @@ const PrepopulatedEngine* const engines_NL[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_nl,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Norway
|
||||
@@ -597,14 +598,14 @@ const PrepopulatedEngine* const engines_NO[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// New Zealand
|
||||
const PrepopulatedEngine* const engines_NZ[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&yahoo_nz,
|
||||
};
|
||||
|
||||
@@ -621,7 +622,7 @@ const PrepopulatedEngine* const engines_PA[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Peru
|
||||
@@ -629,7 +630,7 @@ const PrepopulatedEngine* const engines_PE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo_pe,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Philippines
|
||||
@@ -637,7 +638,7 @@ const PrepopulatedEngine* const engines_PH[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo_ph,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Pakistan
|
||||
@@ -653,7 +654,7 @@ const PrepopulatedEngine* const engines_PL[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Puerto Rico
|
||||
@@ -661,7 +662,7 @@ const PrepopulatedEngine* const engines_PR[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Portugal
|
||||
@@ -669,7 +670,7 @@ const PrepopulatedEngine* const engines_PT[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Paraguay
|
||||
@@ -677,7 +678,7 @@ const PrepopulatedEngine* const engines_PY[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Qatar
|
||||
@@ -693,7 +694,7 @@ const PrepopulatedEngine* const engines_RO[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Serbia
|
||||
@@ -701,7 +702,7 @@ const PrepopulatedEngine* const engines_RS[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Russia
|
||||
@@ -733,7 +734,7 @@ const PrepopulatedEngine* const engines_SE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo_se,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Singapore
|
||||
@@ -749,7 +750,7 @@ const PrepopulatedEngine* const engines_SI[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Slovakia
|
||||
@@ -757,7 +758,7 @@ const PrepopulatedEngine* const engines_SK[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// El Salvador
|
||||
@@ -765,7 +766,7 @@ const PrepopulatedEngine* const engines_SV[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Syria
|
||||
@@ -805,7 +806,7 @@ const PrepopulatedEngine* const engines_TT[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Taiwan
|
||||
@@ -837,7 +838,7 @@ const PrepopulatedEngine* const engines_US[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Uruguay
|
||||
@@ -845,7 +846,7 @@ const PrepopulatedEngine* const engines_UY[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Venezuela
|
||||
@@ -853,7 +854,7 @@ const PrepopulatedEngine* const engines_VE[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&yahoo_ve,
|
||||
&bing,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Vietnam
|
||||
@@ -877,7 +878,7 @@ const PrepopulatedEngine* const engines_ZA[] = {
|
||||
&googleen, &google, &startpage,
|
||||
&bing,
|
||||
&yahoo,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
};
|
||||
|
||||
// Zimbabwe
|
||||
@@ -897,7 +898,7 @@ const PrepopulatedEngine* const kAllEngines[] = {
|
||||
&bing,
|
||||
&coccoc,
|
||||
&daum,
|
||||
- &duckduckgo,
|
||||
+ &duckduckgo, &duckduckgo_light,
|
||||
&googleen, &google, &startpage,
|
||||
&mail_ru,
|
||||
&naver,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+73
-68
@@ -5,25 +5,27 @@ Subject: Add a flag for DNS-over-HTTPS
|
||||
Allow selection between Google and Cloudflare endpoints.
|
||||
Serve DoH requests with maximum priority, remove traffic annotation.
|
||||
Reduce HTTP headers in DoH requests to bare minimum.
|
||||
Add AdGuard (default) endpoint
|
||||
Do not fallback to UDP when using DoH
|
||||
|
||||
See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt
|
||||
See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-14.txt
|
||||
---
|
||||
chrome/browser/about_flags.cc | 13 ++++++++++
|
||||
chrome/browser/about_flags.cc | 11 +++++++++
|
||||
chrome/browser/flag_descriptions.cc | 3 +++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../browser/net/system_network_context_manager.cc | 16 ++++++-------
|
||||
.../common/network_features.cc | 6 +++--
|
||||
.../common/network_features.h | 4 +++-
|
||||
.../browser/net/system_network_context_manager.cc | 17 +++++++------
|
||||
.../common/network_features.cc | 7 ++++--
|
||||
.../common/network_features.h | 5 +++-
|
||||
.../common/network_switch_list.h | 4 ++++
|
||||
net/base/load_flags_list.h | 6 +++++
|
||||
net/dns/dns_transaction.cc | 28 +++-------------------
|
||||
net/url_request/url_request_http_job.cc | 26 ++++++++++++--------
|
||||
10 files changed, 62 insertions(+), 47 deletions(-)
|
||||
net/dns/dns_transaction.cc | 27 +++------------------
|
||||
net/url_request/url_request_http_job.cc | 28 +++++++++++++---------
|
||||
10 files changed, 64 insertions(+), 47 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -461,6 +461,13 @@ const FeatureEntry::FeatureVariation kCCTModuleCacheVariations[] = {
|
||||
@@ -403,6 +403,14 @@ const FeatureEntry::FeatureVariation kCCTModuleCacheVariations[] = {
|
||||
base::size(kCCTModuleCache_ThirtyMinutes), nullptr},
|
||||
};
|
||||
|
||||
@@ -31,29 +33,27 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
+ {features::kDnsOverHttpsChoiceDefault, "", ""},
|
||||
+ {features::kDnsOverHttpsChoiceGoogle, switches::kDnsOverHttpsServer, "https://dns.google.com/experimental"},
|
||||
+ {features::kDnsOverHttpsChoiceCloudflare, switches::kDnsOverHttpsServer, "https://1.1.1.1/dns-query"},
|
||||
+ {features::kDnsOverHttpsChoiceQuad9, switches::kDnsOverHttpsServer, "https://9.9.9.9/dns-query"}
|
||||
+ {features::kDnsOverHttpsChoiceQuad9, switches::kDnsOverHttpsServer, "https://9.9.9.9/dns-query"},
|
||||
+ {features::kDnsOverHttpsChoiceAdGuard, switches::kDnsOverHttpsServer, "https://dns.adguard.com/dns-query"}
|
||||
+};
|
||||
+
|
||||
#endif // OS_ANDROID
|
||||
|
||||
const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
|
||||
@@ -3659,6 +3666,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kAsyncDns)},
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
+#if defined(OS_ANDROID)
|
||||
const FeatureEntry::Choice kEnableGpuRasterizationChoices[] = {
|
||||
@@ -3456,6 +3464,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kEnableSyncUSSBookmarksName,
|
||||
flag_descriptions::kEnableSyncUSSBookmarksDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(switches::kSyncUSSBookmarks)},
|
||||
+ {"enable-dns-over-https", flag_descriptions::kDnsOverHttpsName,
|
||||
+ flag_descriptions::kDnsOverHttpsDescription, kOsAndroid,
|
||||
+ MULTI_VALUE_TYPE(kDnsOverHttpsChoices)},
|
||||
+#endif // defined(OS_ANDROID)
|
||||
+
|
||||
{"enable-overflow-icons-for-media-controls",
|
||||
flag_descriptions::kOverflowIconsForMediaControlsName,
|
||||
flag_descriptions::kOverflowIconsForMediaControlsDescription, kOsAll,
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
{"incognito-strings", flag_descriptions::kIncognitoStringsName,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -2209,6 +2209,9 @@ const char kAutoFetchOnNetErrorPageDescription[] =
|
||||
@@ -2199,6 +2199,9 @@ const char kAutoFetchOnNetErrorPageDescription[] =
|
||||
"When enabled, and navigation fails with an offline error, schedule a "
|
||||
"fetch of the page when online again.";
|
||||
|
||||
@@ -66,7 +66,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -1343,6 +1343,9 @@ extern const char kAsyncDnsDescription[];
|
||||
@@ -1319,6 +1319,9 @@ extern const char kAsyncDnsDescription[];
|
||||
extern const char kAutoFetchOnNetErrorPageName[];
|
||||
extern const char kAutoFetchOnNetErrorPageDescription[];
|
||||
|
||||
@@ -79,7 +79,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
||||
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
|
||||
--- a/chrome/browser/net/system_network_context_manager.cc
|
||||
+++ b/chrome/browser/net/system_network_context_manager.cc
|
||||
@@ -22,6 +22,7 @@
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "chrome/browser/component_updater/sth_set_component_installer.h"
|
||||
#include "chrome/browser/io_thread.h"
|
||||
#include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h"
|
||||
@@ -87,7 +87,15 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
|
||||
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
||||
#include "chrome/browser/ssl/ssl_config_service_manager.h"
|
||||
#include "chrome/common/channel_info.h"
|
||||
@@ -389,15 +390,12 @@ SystemNetworkContextManager::SystemNetworkContextManager(
|
||||
@@ -124,6 +125,7 @@ void GetStubResolverConfig(
|
||||
if (!net::dns_util::IsValidDoHTemplate(
|
||||
doh_server_list[i].GetString(),
|
||||
doh_server_method_list[i].GetString())) {
|
||||
+ LOG(ERROR) << "Invalid DoH template: " << doh_server_list[i].GetString() << " with method " << doh_server_method_list[i].GetString();
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -399,15 +401,12 @@ SystemNetworkContextManager::SystemNetworkContextManager(
|
||||
base::Value(ShouldEnableAsyncDns()));
|
||||
base::ListValue default_doh_servers;
|
||||
base::ListValue default_doh_server_methods;
|
||||
@@ -112,38 +120,40 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
|
||||
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,7 +10,9 @@ namespace features {
|
||||
@@ -8,7 +8,10 @@
|
||||
|
||||
const base::Feature kChannelID{"channel-id", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
namespace features {
|
||||
|
||||
-const base::Feature kDnsOverHttps{"dns-over-https",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+const char kDnsOverHttpsChoiceDefault[] = "Disabled",
|
||||
+ kDnsOverHttpsChoiceGoogle[] = "Google",
|
||||
+ kDnsOverHttpsChoiceCloudflare[] = "Cloudflare",
|
||||
+ kDnsOverHttpsChoiceQuad9[] = "Quad9";
|
||||
+ kDnsOverHttpsChoiceQuad9[] = "Quad9",
|
||||
+ kDnsOverHttpsChoiceAdGuard[] = "AdGuard";
|
||||
|
||||
} // namespace features
|
||||
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
|
||||
--- a/components/network_session_configurator/common/network_features.h
|
||||
+++ b/components/network_session_configurator/common/network_features.h
|
||||
@@ -13,9 +13,11 @@ namespace features {
|
||||
// Enables Channel ID.
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kChannelID;
|
||||
@@ -10,9 +10,12 @@
|
||||
|
||||
namespace features {
|
||||
|
||||
-// Enabled DNS over HTTPS
|
||||
+// DNS over HTTPS server endpoint choices
|
||||
// (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt).
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kDnsOverHttps;
|
||||
+NETWORK_SESSION_CONFIGURATOR_EXPORT extern const char kDnsOverHttpsChoiceDefault[],
|
||||
+ kDnsOverHttpsChoiceGoogle[], kDnsOverHttpsChoiceCloudflare[], kDnsOverHttpsChoiceQuad9[];
|
||||
+ kDnsOverHttpsChoiceGoogle[], kDnsOverHttpsChoiceCloudflare[], kDnsOverHttpsChoiceQuad9[],
|
||||
+ kDnsOverHttpsChoiceAdGuard[];
|
||||
|
||||
} // namespace features
|
||||
|
||||
diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h
|
||||
--- a/components/network_session_configurator/common/network_switch_list.h
|
||||
+++ b/components/network_session_configurator/common/network_switch_list.h
|
||||
@@ -35,6 +35,10 @@ NETWORK_SWITCH(kOriginToForceQuicOn, "origin-to-force-quic-on")
|
||||
@@ -32,6 +32,10 @@ NETWORK_SWITCH(kOriginToForceQuicOn, "origin-to-force-quic-on")
|
||||
// the server.
|
||||
NETWORK_SWITCH(kQuicConnectionOptions, "quic-connection-options")
|
||||
|
||||
@@ -157,27 +167,23 @@ diff --git a/components/network_session_configurator/common/network_switch_list.
|
||||
diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
|
||||
--- a/net/base/load_flags_list.h
|
||||
+++ b/net/base/load_flags_list.h
|
||||
@@ -92,6 +92,12 @@ LOAD_FLAG(MAYBE_USER_GESTURE, 1 << 14)
|
||||
LOAD_FLAG(DO_NOT_USE_EMBEDDED_IDENTITY, 1 << 15)
|
||||
|
||||
// Indicates that this request is not to be migrated to a cellular network when
|
||||
@@ -105,3 +105,9 @@ LOAD_FLAG(SKIP_VARY_CHECK, 1 << 16)
|
||||
// does not complete in 60 seconds, the cache treat the stale resource as
|
||||
// invalid, as it did not specify stale-while-revalidate.
|
||||
LOAD_FLAG(SUPPORT_ASYNC_REVALIDATION, 1 << 17)
|
||||
+
|
||||
+// This load will not send Accept-Language or User-Agent headers, and not
|
||||
+// advertise brotli encoding.
|
||||
+// Used to comply with IETF (draft) DNS-over-HTTPS:
|
||||
+// "Implementors SHOULD NOT set non-essential HTTP headers in DoH client requests."
|
||||
+LOAD_FLAG(MINIMAL_HEADERS, 1 << 18)
|
||||
// QUIC connection migration is enabled.
|
||||
LOAD_FLAG(DISABLE_CONNECTION_MIGRATION_TO_CELLULAR, 1 << 16)
|
||||
|
||||
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
--- a/net/dns/dns_transaction.cc
|
||||
+++ b/net/dns/dns_transaction.cc
|
||||
@@ -358,30 +358,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
|
||||
HttpRequestHeaders extra_request_headers;
|
||||
@@ -360,29 +360,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
|
||||
-
|
||||
|
||||
DCHECK(url_request_context);
|
||||
- request_ = url_request_context->CreateRequest(
|
||||
- url, request_priority_, this,
|
||||
- net::DefineNetworkTrafficAnnotation("dns_over_https", R"(
|
||||
@@ -205,7 +211,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
net_log_ = request_->net_log();
|
||||
|
||||
if (use_post) {
|
||||
@@ -397,6 +374,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
@@ -398,6 +376,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
|
||||
|
||||
request_->SetExtraRequestHeaders(extra_request_headers);
|
||||
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
|
||||
@@ -213,10 +219,10 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
LOAD_BYPASS_PROXY);
|
||||
request_->set_allow_credentials(false);
|
||||
}
|
||||
@@ -819,7 +797,7 @@ class DnsTransactionImpl : public DnsTransaction,
|
||||
had_tcp_attempt_(false),
|
||||
@@ -813,7 +792,7 @@ class DnsTransactionImpl : public DnsTransaction,
|
||||
doh_attempt_(false),
|
||||
first_server_index_(0),
|
||||
url_request_context_(url_request_context),
|
||||
- request_priority_(DEFAULT_PRIORITY) {
|
||||
+ request_priority_(MAXIMUM_PRIORITY) {
|
||||
DCHECK(session_.get());
|
||||
@@ -225,7 +231,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
|
||||
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
|
||||
--- a/net/url_request/url_request_http_job.cc
|
||||
+++ b/net/url_request/url_request_http_job.cc
|
||||
@@ -434,19 +434,23 @@ void URLRequestHttpJob::Start() {
|
||||
@@ -338,17 +338,21 @@ void URLRequestHttpJob::Start() {
|
||||
// plugin could set a referrer although sending the referrer is inhibited.
|
||||
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
|
||||
|
||||
@@ -233,17 +239,16 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
||||
- // instance WebCore::FrameLoader::HideReferrer.
|
||||
- if (referrer.is_valid()) {
|
||||
- request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
|
||||
- referrer.spec());
|
||||
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
|
||||
+ // Our consumer should have made sure that this is a safe referrer. See for
|
||||
+ // instance WebCore::FrameLoader::HideReferrer.
|
||||
+ if (referrer.is_valid()) {
|
||||
+ request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
|
||||
referrer.spec());
|
||||
+ referrer.spec());
|
||||
+ }
|
||||
}
|
||||
|
||||
// This should be kept in sync with the corresponding code in
|
||||
// URLRequest::GetUserAgent.
|
||||
- request_info_.extra_headers.SetHeaderIfMissing(
|
||||
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
|
||||
+ request_info_.extra_headers.SetHeaderIfMissing(
|
||||
@@ -254,25 +259,25 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
||||
|
||||
AddExtraHeaders();
|
||||
AddCookieHeaderAndStart();
|
||||
@@ -664,10 +668,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
HttpRequestHeaders::kAcceptEncoding)) {
|
||||
// Advertise "br" encoding only if transferred data is opaque to proxy.
|
||||
bool advertise_brotli = false;
|
||||
- if (request()->context()->enable_brotli()) {
|
||||
- if (request()->url().SchemeIsCryptographic() ||
|
||||
- IsLocalhost(request()->url())) {
|
||||
- advertise_brotli = true;
|
||||
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
|
||||
+ if (request()->context()->enable_brotli()) {
|
||||
+ if (request()->url().SchemeIsCryptographic() ||
|
||||
+ IsLocalhost(request()->url())) {
|
||||
+ advertise_brotli = true;
|
||||
+ }
|
||||
@@ -571,10 +575,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
} else {
|
||||
// Advertise "br" encoding only if transferred data is opaque to proxy.
|
||||
bool advertise_brotli = false;
|
||||
- if (request()->context()->enable_brotli()) {
|
||||
- if (request()->url().SchemeIsCryptographic() ||
|
||||
- IsLocalhost(request()->url())) {
|
||||
- advertise_brotli = true;
|
||||
+ if (!(request_info_.load_flags & LOAD_MINIMAL_HEADERS)) {
|
||||
+ if (request()->context()->enable_brotli()) {
|
||||
+ if (request()->url().SchemeIsCryptographic() ||
|
||||
+ IsLocalhost(request()->url())) {
|
||||
+ advertise_brotli = true;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -684,7 +690,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
advertised_encodings);
|
||||
@@ -592,7 +598,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
|
||||
}
|
||||
}
|
||||
|
||||
- if (http_user_agent_settings_) {
|
||||
File diff suppressed because it is too large
Load Diff
+64
-62
@@ -5,37 +5,48 @@ Subject: Add an always-incognito mode
|
||||
More specifically, add a preference that causes all new tabs and all
|
||||
clicked links to launch as incognito.
|
||||
---
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
.../android/java/res/xml/privacy_preferences.xml | 5 ++
|
||||
.../browser/AlwaysIncognitoLinkInterceptor.java | 72 ++++++++++++++++++++++
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 4 ++
|
||||
.../browser/AlwaysIncognitoLinkInterceptor.java | 73 ++++++++++++++++++++++
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 5 ++
|
||||
.../chrome/browser/appmenu/AppMenuHandler.java | 12 ++++
|
||||
.../contextmenu/ChromeContextMenuPopulator.java | 9 ++-
|
||||
.../chrome/browser/tabmodel/ChromeTabCreator.java | 24 +++++++-
|
||||
.../chrome/browser/tabmodel/ChromeTabCreator.java | 24 ++++++-
|
||||
.../java/strings/android_chrome_strings.grd | 6 ++
|
||||
chrome/android/java_sources.gni | 1 +
|
||||
8 files changed, 131 insertions(+), 2 deletions(-)
|
||||
8 files changed, 133 insertions(+), 2 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -3,6 +3,7 @@
|
||||
# found in the LICENSE file.
|
||||
|
||||
chrome_java_sources = [
|
||||
+ "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java",
|
||||
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -23,6 +23,11 @@
|
||||
android:summary="@string/close_tabs_on_exit_summary"
|
||||
android:defaultValue="false" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
@@ -39,6 +39,11 @@
|
||||
android:key="usage_and_crash_reports"
|
||||
android:title="@string/usage_and_crash_reports_title_legacy"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.UsageAndCrashReportsPreferenceFragment" />
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="always_incognito"
|
||||
+ android:title="@string/always_incognito_title"
|
||||
+ android:summary="@string/always_incognito_summary"
|
||||
+ android:defaultValue="false" />
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
android:key="safe_browsing_extended_reporting"
|
||||
android:title="@string/safe_browsing_extended_reporting_title"
|
||||
android:summary="@string/safe_browsing_extended_reporting_summary" />
|
||||
<Preference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.DoNotTrackPreference"
|
||||
android:key="do_not_track"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
@@ -0,0 +1,72 @@
|
||||
@@ -0,0 +1,73 @@
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
@@ -47,6 +58,7 @@ new file mode 100644
|
||||
+import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
||||
+import org.chromium.chrome.browser.tab.Tab;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabLaunchType;
|
||||
+import org.chromium.chrome.browser.tabmodel.TabModel;
|
||||
+import org.chromium.content_public.browser.LoadUrlParams;
|
||||
+
|
||||
@@ -98,7 +110,7 @@ new file mode 100644
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ tab.getActivity().getTabCreator(true).createNewTab(new LoadUrlParams(url), TabModel.TabLaunchType.FROM_LINK, tab);
|
||||
+ tab.getActivity().getTabCreator(true).createNewTab(new LoadUrlParams(url), TabLaunchType.FROM_LINK, tab);
|
||||
+
|
||||
+ if ((url.equals(lastUrl)) || (!tab.canGoBack())) {
|
||||
+ // this call was triggered by a reload
|
||||
@@ -111,15 +123,16 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -249,6 +249,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||
@@ -242,6 +242,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
private static final int RECORD_MULTI_WINDOW_SCREEN_WIDTH_DELAY_MS = 5000;
|
||||
|
||||
// Observes when sync becomes ready to create the mContextReporter.
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
|
||||
|
||||
private ChromeFullscreenManager mFullscreenManager;
|
||||
@@ -1707,6 +1708,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
+
|
||||
/**
|
||||
* Timeout in ms for reading PartnerBrowserCustomizations provider.
|
||||
*/
|
||||
@@ -1729,6 +1731,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
@@ -138,9 +151,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.widget.textbubble.TextBubble;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -26,6 +27,9 @@ import java.util.ArrayList;
|
||||
@@ -27,6 +28,9 @@ import java.util.ArrayList;
|
||||
* AppMenuObservers about these actions.
|
||||
*/
|
||||
public class AppMenuHandler {
|
||||
@@ -150,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
private AppMenu mAppMenu;
|
||||
private AppMenuDragHelper mAppMenuDragHelper;
|
||||
private Menu mMenu;
|
||||
@@ -167,6 +171,14 @@ public class AppMenuHandler {
|
||||
@@ -184,6 +188,14 @@ public class AppMenuHandler {
|
||||
if (mDelegate.shouldShowHeader(appRect.height())) {
|
||||
headerResourceId = mDelegate.getHeaderResourceId();
|
||||
}
|
||||
@@ -163,8 +176,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
+ }
|
||||
+
|
||||
mAppMenu.show(wrapper, anchorView, isByPermanentButton, rotation, appRect, pt.y,
|
||||
footerResourceId, headerResourceId, mHighlightMenuId, showFromBottom);
|
||||
mAppMenuDragHelper.onShow(startDragging);
|
||||
footerResourceId, headerResourceId, mHighlightMenuId, mCircleHighlight,
|
||||
showFromBottom);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
@@ -175,8 +188,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
||||
@@ -43,6 +44,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabPanel;
|
||||
@@ -44,6 +45,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
private static final String TAG = "CCMenuPopulator";
|
||||
private final ContextMenuItemDelegate mDelegate;
|
||||
private final @ContextMenuMode int mMode;
|
||||
@@ -184,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
|
||||
/**
|
||||
* Defines the Groups of each Context Menu Item
|
||||
@@ -246,7 +248,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -252,7 +254,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && mMode == ContextMenuMode.NORMAL
|
||||
&& !isEmptyUrl(params.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(params.getUrl())) {
|
||||
@@ -210,17 +223,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
import org.chromium.base.TraceEvent;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.ChromeActivity;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.IntentHandler;
|
||||
@@ -19,6 +21,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
|
||||
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
import org.chromium.chrome.browser.ServiceTabLauncher;
|
||||
@@ -16,6 +18,7 @@ import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabDelegateFactory;
|
||||
import org.chromium.chrome.browser.tab.TabAssociatedApp;
|
||||
import org.chromium.chrome.browser.tab.TabBuilder;
|
||||
+import org.chromium.chrome.browser.tab.TabObserver;
|
||||
import org.chromium.chrome.browser.tab.TabDelegateFactory;
|
||||
import org.chromium.chrome.browser.tab.TabParentIntent;
|
||||
import org.chromium.chrome.browser.tab.TabRedirectHandler;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
|
||||
import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
|
||||
@@ -37,6 +40,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -35,6 +38,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
|
||||
private final ChromeActivity mActivity;
|
||||
private final boolean mIncognito;
|
||||
@@ -228,7 +241,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
|
||||
private WindowAndroid mNativeWindow;
|
||||
private TabModel mTabModel;
|
||||
@@ -48,6 +52,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -45,6 +49,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
mActivity = activity;
|
||||
mNativeWindow = nativeWindow;
|
||||
mIncognito = incognito;
|
||||
@@ -240,7 +253,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -160,6 +169,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -169,6 +178,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
tab.getWebContents());
|
||||
}
|
||||
|
||||
@@ -251,19 +264,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
mTabModel.addTab(tab, position, type);
|
||||
return tab;
|
||||
} finally {
|
||||
@@ -200,6 +213,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
Tab tab = Tab.createLiveTab(
|
||||
Tab.INVALID_TAB_ID, mIncognito, mNativeWindow, type, parentId, !openInForeground);
|
||||
tab.initialize(webContents, mTabContentManager, delegateFactory, !openInForeground, false);
|
||||
@@ -197,6 +210,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
.setWindow(mNativeWindow)
|
||||
.setLaunchType(type)
|
||||
.build();
|
||||
+
|
||||
+ if (mExtraLogic != null) {
|
||||
+ tab.addObserver(mExtraLogic);
|
||||
+ }
|
||||
+
|
||||
tab.initialize(webContents, delegateFactory, !openInForeground, null, false);
|
||||
mTabModel.addTab(tab, position, type);
|
||||
return true;
|
||||
}
|
||||
@@ -243,7 +261,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
@@ -240,7 +258,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
*/
|
||||
public Tab launchUrlFromExternalApp(String url, String referer, String headers,
|
||||
String appId, boolean forceNewTab, Intent intent, long intentTimestamp) {
|
||||
@@ -271,9 +284,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
|
||||
|
||||
// If an external app sends an intent for a Weblite URL and the Data Reduction Proxy is
|
||||
@@ -303,6 +320,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
tab.initialize(
|
||||
null, mTabContentManager, createDefaultTabDelegateFactory(), !selectTab, false);
|
||||
@@ -305,6 +322,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
|
||||
state.isIncognito());
|
||||
tab.initialize(null, createDefaultTabDelegateFactory(), !selectTab, state, false);
|
||||
assert state.isIncognito() == mIncognito;
|
||||
+
|
||||
+ if (mExtraLogic != null) {
|
||||
@@ -286,9 +299,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -691,6 +691,12 @@ CHAR-LIMIT guidelines:
|
||||
@@ -736,6 +736,12 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_SAFE_BROWSING_SCOUT_REPORTING_SUMMARY" desc="Body text for Chrome setting under 'Help Improve Safe Browsing'. This feature sends small amounts of data to Google about potentially-dangerous pages to help Safe Browsing improve Chrome's protection against malware and phishing.">
|
||||
Sends some system information and page content to Google
|
||||
To detect dangerous apps and sites, Chrome sends URLs of some pages you visit, limited system information, and some page content to Google
|
||||
</message>
|
||||
+ <message name="IDS_ALWAYS_INCOGNITO_TITLE" desc="Title for always incognito mode">
|
||||
+ Open links in incognito tabs always
|
||||
@@ -297,19 +310,8 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
||||
+ Opens links in incognito tabs when you click on new tab or on a link
|
||||
+ </message>
|
||||
<message name="IDS_SAFE_BROWSING_TITLE" desc="Title for safe browsing.">
|
||||
Safe Browsing
|
||||
Safe Browsing (protects you and your device from dangerous sites)
|
||||
</message>
|
||||
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
--- a/chrome/android/java_sources.gni
|
||||
+++ b/chrome/android/java_sources.gni
|
||||
@@ -8,6 +8,7 @@ import("//device/vr/buildflags/buildflags.gni")
|
||||
import("//chrome/android/feed/feed_java_sources.gni")
|
||||
|
||||
chrome_java_sources = [
|
||||
+ "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java",
|
||||
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+234
-81
@@ -1,13 +1,16 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 1 Aug 2018 09:19:40 +0200
|
||||
Subject: Add bookmark import/export actions in bookmarks activity and page
|
||||
Subject: Add bookmark import/export actions
|
||||
|
||||
Thanks to Arnaud for the snippet on how to add toast notifications
|
||||
Add bookmark import/export actions in bookmarks activity and page
|
||||
Reduce permissions needed for bookmarks import/export
|
||||
Completely remove contacts picker permission from the file dialog
|
||||
---
|
||||
chrome/android/java/AndroidManifest.xml | 1 -
|
||||
.../java/res/menu/bookmark_action_bar_menu.xml | 14 ++
|
||||
.../browser/bookmarks/BookmarkActionBar.java | 12 ++
|
||||
.../chrome/browser/bookmarks/BookmarkActivity.java | 19 ++
|
||||
.../chrome/browser/bookmarks/BookmarkBridge.java | 56 ++++++
|
||||
.../chrome/browser/bookmarks/BookmarkActivity.java | 15 ++
|
||||
.../chrome/browser/bookmarks/BookmarkBridge.java | 46 +++++
|
||||
.../chrome/browser/bookmarks/BookmarkDelegate.java | 10 +
|
||||
.../chrome/browser/bookmarks/BookmarkManager.java | 20 ++
|
||||
.../chrome/browser/bookmarks/BookmarkPage.java | 1 +
|
||||
@@ -15,33 +18,49 @@ Thanks to Arnaud for the snippet on how to add toast notifications
|
||||
chrome/browser/BUILD.gn | 8 +-
|
||||
.../browser/android/bookmarks/bookmark_bridge.cc | 215 +++++++++++++++++++++
|
||||
chrome/browser/android/bookmarks/bookmark_bridge.h | 20 +-
|
||||
chrome/browser/importer/profile_writer.cc | 2 +
|
||||
chrome/browser/importer/profile_writer.cc | 12 ++
|
||||
chrome/browser/importer/profile_writer.h | 6 +
|
||||
chrome/common/BUILD.gn | 3 +
|
||||
chrome/utility/BUILD.gn | 7 +-
|
||||
chrome/utility/importer/bookmark_html_reader.cc | 27 ++-
|
||||
chrome/utility/importer/bookmark_html_reader.h | 9 +
|
||||
16 files changed, 419 insertions(+), 10 deletions(-)
|
||||
.../src/org/chromium/ui/base/SelectFileDialog.java | 16 +-
|
||||
ui/shell_dialogs/select_file_dialog.h | 2 +
|
||||
ui/shell_dialogs/select_file_dialog_android.cc | 6 +
|
||||
ui/shell_dialogs/select_file_dialog_android.h | 2 +
|
||||
22 files changed, 445 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -35,7 +35,6 @@ by a child template that "extends" this file.
|
||||
{% endif %}
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||
- <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
--- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
|
||||
@@ -22,6 +22,20 @@
|
||||
app:showAsAction="ifRoom"
|
||||
app:iconTint="@color/dark_mode_tint" />
|
||||
app:iconTint="@color/standard_mode_tint" />
|
||||
<item
|
||||
+ android:id="@+id/import_menu_id"
|
||||
+ android:icon="@drawable/add_circle_blue"
|
||||
+ android:icon="@drawable/ic_folder_blue_24dp"
|
||||
+ android:title="@string/import_bookmarks"
|
||||
+ android:visible="true"
|
||||
+ app:showAsAction="ifRoom"
|
||||
+ app:iconTint="@color/dark_mode_tint" />
|
||||
+ app:iconTint="@color/standard_mode_tint" />
|
||||
+ <item
|
||||
+ android:id="@+id/export_menu_id"
|
||||
+ android:icon="@drawable/ic_file_download_white_24dp"
|
||||
+ android:title="@string/export_bookmarks"
|
||||
+ android:visible="true"
|
||||
+ app:showAsAction="ifRoom"
|
||||
+ app:iconTint="@color/dark_mode_tint" />
|
||||
+ app:iconTint="@color/standard_mode_tint" />
|
||||
+ <item
|
||||
android:id="@+id/close_menu_id"
|
||||
android:icon="@drawable/btn_close"
|
||||
@@ -108,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
static final int EDIT_BOOKMARK_REQUEST_CODE = 14;
|
||||
public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId";
|
||||
|
||||
@@ -32,6 +34,22 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -32,6 +34,18 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL;
|
||||
mBookmarkManager.updateForUrl(url);
|
||||
setContentView(mBookmarkManager.getView());
|
||||
@@ -117,10 +136,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
+ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState);
|
||||
+ mWindowAndroid.restoreInstanceState(savedInstanceState);
|
||||
+ mBookmarkManager.setWindow(mWindowAndroid);
|
||||
+ // Set up the animation placeholder to be the SurfaceView. This disables the
|
||||
+ // SurfaceView's 'hole' clipping during animations that are notified to the window.
|
||||
+// mWindowAndroid.setAnimationPlaceholderView(
|
||||
+// mBookmarkManager.getContentViewRenderView().getSurfaceView());
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
@@ -131,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -48,6 +66,7 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -48,6 +62,7 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
@@ -154,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
|
||||
@@ -13,11 +17,16 @@ import org.chromium.base.ObserverList;
|
||||
@@ -13,11 +17,15 @@ import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
@@ -167,11 +182,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
import org.chromium.components.url_formatter.UrlFormatter;
|
||||
+import org.chromium.ui.base.PageTransition;
|
||||
+import org.chromium.ui.base.WindowAndroid;
|
||||
+import org.chromium.ui.widget.Toast;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -508,6 +517,24 @@ public class BookmarkBridge {
|
||||
@@ -507,6 +515,24 @@ public class BookmarkBridge {
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -196,19 +210,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
* Synchronously gets a list of bookmarks that match the specified search query.
|
||||
* @param query Keyword used for searching bookmarks.
|
||||
* @param maxNumberOfResult Maximum number of result to fetch.
|
||||
@@ -840,6 +867,33 @@ public class BookmarkBridge {
|
||||
@@ -839,6 +865,24 @@ public class BookmarkBridge {
|
||||
depthList.add(depth);
|
||||
}
|
||||
|
||||
+
|
||||
+ @CalledByNative
|
||||
+ public void bookmarksImported() {
|
||||
+ Context context = ContextUtils.getApplicationContext();
|
||||
+
|
||||
+ //TODO: call this after actual import
|
||||
+ //Toast.makeText(ContextUtils.getApplicationContext(), "Bookmarks imported", Toast.LENGTH_LONG).show();
|
||||
+ }
|
||||
+
|
||||
+ @CalledByNative
|
||||
+ public void bookmarksExported(String bookmarksPath) {
|
||||
+ Context context = ContextUtils.getApplicationContext();
|
||||
@@ -230,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
|
||||
List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
|
||||
for (int i = 0; i < left.length; i++) {
|
||||
@@ -906,6 +960,8 @@ public class BookmarkBridge {
|
||||
@@ -905,6 +949,8 @@ public class BookmarkBridge {
|
||||
boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
|
||||
private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
|
||||
int index);
|
||||
@@ -270,7 +275,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
import org.chromium.chrome.browser.favicon.LargeIconBridge;
|
||||
import org.chromium.chrome.browser.native_page.BasicNativePage;
|
||||
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksReader;
|
||||
@@ -31,6 +32,7 @@ import org.chromium.chrome.browser.widget.selection.SelectableListLayout;
|
||||
@@ -32,6 +33,7 @@ import org.chromium.chrome.browser.widget.selection.SelectableListLayout;
|
||||
import org.chromium.chrome.browser.widget.selection.SelectableListToolbar.SearchDelegate;
|
||||
import org.chromium.chrome.browser.widget.selection.SelectionDelegate;
|
||||
import org.chromium.components.bookmarks.BookmarkId;
|
||||
@@ -278,7 +283,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
@@ -55,6 +57,7 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
@@ -56,6 +58,7 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
private Activity mActivity;
|
||||
private ViewGroup mMainView;
|
||||
private BookmarkModel mBookmarkModel;
|
||||
@@ -286,7 +291,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
private BookmarkUndoController mUndoController;
|
||||
private final ObserverList<BookmarkUIObserver> mUIObservers = new ObserverList<>();
|
||||
private BasicNativePage mNativePage;
|
||||
@@ -267,6 +270,13 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
@@ -275,6 +278,13 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -300,7 +305,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
* @return Current URL representing the UI state of bookmark manager. If no state has been shown
|
||||
* yet in this session, on phone return last used state stored in preference; on tablet
|
||||
* return the url previously set by {@link #updateForUrl(String)}.
|
||||
@@ -414,6 +424,16 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
@@ -422,6 +432,16 @@ public class BookmarkManager implements BookmarkDelegate, SearchDelegate,
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -324,14 +329,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
mManager = new BookmarkManager(
|
||||
activity, false, ((SnackbarManageable) activity).getSnackbarManager());
|
||||
mManager.setBasicNativePage(this);
|
||||
+ mManager.setWindow(activity.getWindowAndroid());
|
||||
+ mManager.setWindow(activity.getWindowAndroid());
|
||||
mManager.setTab(host.getActiveTab());
|
||||
mTitle = activity.getString(R.string.bookmarks);
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -224,6 +224,12 @@ CHAR-LIMIT guidelines:
|
||||
@@ -233,6 +233,12 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_SEARCH" desc="The label for a search button.">
|
||||
Search
|
||||
</message>
|
||||
@@ -347,7 +352,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -149,6 +149,10 @@ jumbo_split_static_library("browser") {
|
||||
@@ -165,6 +165,10 @@ jumbo_split_static_library("browser") {
|
||||
"bitmap_fetcher/bitmap_fetcher_service.h",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
|
||||
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
|
||||
@@ -358,7 +363,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
"bookmarks/bookmark_model_factory.cc",
|
||||
"bookmarks/bookmark_model_factory.h",
|
||||
"bookmarks/bookmark_stats.cc",
|
||||
@@ -2586,8 +2590,6 @@ jumbo_split_static_library("browser") {
|
||||
@@ -2797,8 +2801,6 @@ jumbo_split_static_library("browser") {
|
||||
"banners/app_banner_infobar_delegate_desktop.h",
|
||||
"banners/app_banner_manager_desktop.cc",
|
||||
"banners/app_banner_manager_desktop.h",
|
||||
@@ -367,7 +372,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
"certificate_viewer.h",
|
||||
"chrome_browser_field_trials_desktop.cc",
|
||||
"chrome_browser_field_trials_desktop.h",
|
||||
@@ -2678,8 +2680,6 @@ jumbo_split_static_library("browser") {
|
||||
@@ -2888,8 +2890,6 @@ jumbo_split_static_library("browser") {
|
||||
"importer/importer_uma.h",
|
||||
"importer/in_process_importer_bridge.cc",
|
||||
"importer/in_process_importer_bridge.h",
|
||||
@@ -379,13 +384,14 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
--- a/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/android/bookmarks/bookmark_bridge.cc
|
||||
@@ -9,18 +9,29 @@
|
||||
@@ -9,19 +9,30 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
+#include "base/android/content_uri_utils.h"
|
||||
#include "base/android/jni_array.h"
|
||||
#include "base/android/jni_string.h"
|
||||
#include "base/bind.h"
|
||||
+#include "base/android/path_utils.h"
|
||||
#include "base/containers/stack.h"
|
||||
#include "base/containers/stack_container.h"
|
||||
@@ -401,7 +407,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
#include "chrome/browser/profiles/incognito_helpers.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/profiles/profile_android.h"
|
||||
#include "chrome/browser/signin/signin_manager_factory.h"
|
||||
#include "chrome/browser/signin/identity_manager_factory.h"
|
||||
#include "chrome/browser/undo/bookmark_undo_service_factory.h"
|
||||
+#include "chrome/common/importer/imported_bookmark_entry.h"
|
||||
+#include "chrome/common/importer/importer_data_types.h"
|
||||
@@ -409,22 +415,21 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
#include "components/bookmarks/browser/bookmark_model.h"
|
||||
#include "components/bookmarks/browser/bookmark_utils.h"
|
||||
#include "components/bookmarks/browser/scoped_group_bookmark_actions.h"
|
||||
@@ -30,11 +41,14 @@
|
||||
@@ -31,10 +42,13 @@
|
||||
#include "components/bookmarks/managed/managed_bookmark_service.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
#include "components/query_parser/query_parser.h"
|
||||
+#include "components/search_engines/template_url.h"
|
||||
#include "components/signin/core/browser/signin_manager.h"
|
||||
#include "components/undo/bookmark_undo_service.h"
|
||||
#include "components/undo/undo_manager.h"
|
||||
+#include "components/url_formatter/url_fixer.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "jni/BookmarkBridge_jni.h"
|
||||
+#include "ui/android/window_android.h"
|
||||
#include "services/identity/public/cpp/identity_manager.h"
|
||||
|
||||
using base::android::AttachCurrentThread;
|
||||
using base::android::ConvertUTF8ToJavaString;
|
||||
@@ -53,6 +67,57 @@ using bookmarks::BookmarkPermanentNode;
|
||||
@@ -54,6 +68,57 @@ using bookmarks::BookmarkPermanentNode;
|
||||
using bookmarks::BookmarkType;
|
||||
using content::BrowserThread;
|
||||
|
||||
@@ -439,7 +444,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
+
|
||||
+ // Filter out the URLs with unsupported schemes.
|
||||
+ const char* const kInvalidSchemes[] = {"wyciwyg", "place"};
|
||||
+ for (size_t i = 0; i < arraysize(kInvalidSchemes); ++i) {
|
||||
+ for (size_t i = 0; i < base::size(kInvalidSchemes); ++i) {
|
||||
+ if (url.SchemeIs(kInvalidSchemes[i]))
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -482,7 +487,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
namespace {
|
||||
|
||||
class BookmarkTitleComparer {
|
||||
@@ -129,6 +194,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
@@ -130,6 +195,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
bookmark_model_->RemoveObserver(this);
|
||||
if (partner_bookmarks_shim_)
|
||||
partner_bookmarks_shim_->RemoveObserver(this);
|
||||
@@ -493,7 +498,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
|
||||
@@ -470,6 +539,152 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -475,6 +544,152 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -510,27 +515,25 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
+ select_file_dialog_ = ui::SelectFileDialog::Create(
|
||||
+ this, std::make_unique<ChromeSelectFilePolicy>(nullptr));
|
||||
+
|
||||
+ //NOTE: extension and description are not used on Android
|
||||
+ //NOTE: extension and description are not used on Android, thus not set
|
||||
+ ui::SelectFileDialog::FileTypeInfo file_type_info;
|
||||
+ file_type_info.extensions.resize(1);
|
||||
+ file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html"));
|
||||
+ file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm"));
|
||||
+ file_type_info.extension_description_overrides.push_back(base::ASCIIToUTF16("Netscape Bookmark"));
|
||||
+ file_type_info.allowed_paths =
|
||||
+ ui::SelectFileDialog::FileTypeInfo::NATIVE_OR_DRIVE_PATH;
|
||||
+
|
||||
+ const std::vector<base::string16> v_accept_types = { base::UTF8ToUTF16("text/html") };
|
||||
+
|
||||
+ // Android needs the original MIME types and an additional capture value.
|
||||
+ std::pair<std::vector<base::string16>, bool> accept_types =
|
||||
+ std::make_pair(v_accept_types, /* use_media_capture */ false);
|
||||
+
|
||||
+ select_file_dialog_->SelectFile(
|
||||
+ ui::SelectFileDialog::SELECT_OPEN_FILE,
|
||||
+ base::string16(),
|
||||
+ import_path_,
|
||||
+ export_path_,
|
||||
+ &file_type_info,
|
||||
+ 0,
|
||||
+ base::FilePath::StringType(),
|
||||
+ window,
|
||||
+ NULL);
|
||||
+
|
||||
+ //NOTE: this should be called after the actual import
|
||||
+ Java_BookmarkBridge_bookmarksImported(env, obj);
|
||||
+ &accept_types
|
||||
+ );
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::ExportBookmarks(JNIEnv* env,
|
||||
@@ -538,20 +541,20 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
+ DCHECK(IsLoaded());
|
||||
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
||||
+
|
||||
+ if (import_path_.empty()) {
|
||||
+ if (!base::android::GetDownloadsDirectory(&import_path_)) {
|
||||
+ if (export_path_.empty()) {
|
||||
+ if (!base::android::GetDownloadsDirectory(&export_path_)) {
|
||||
+ LOG(ERROR) << "Could not retrieve downloads directory for bookmarks export";
|
||||
+ return;
|
||||
+ }
|
||||
+ import_path_ = import_path_.Append(FILE_PATH_LITERAL("bookmarks.html"));
|
||||
+ export_path_ = export_path_.Append(FILE_PATH_LITERAL("bookmarks.html"));
|
||||
+ }
|
||||
+
|
||||
+ bookmark_html_writer::WriteBookmarks(profile_, import_path_, NULL);
|
||||
+ bookmark_html_writer::WriteBookmarks(profile_, export_path_, NULL);
|
||||
+
|
||||
+ Java_BookmarkBridge_bookmarksExported(env, obj, ConvertUTF8ToJavaString(env, export_path_.MaybeAsASCII()));
|
||||
+
|
||||
+ //NOTE: nothing will be written if write permission has not been granted before
|
||||
+ LOG(INFO) << "Bookmarks exported successfully in " << import_path_;
|
||||
+
|
||||
+ Java_BookmarkBridge_bookmarksExported(env, obj, ConvertUTF8ToJavaString(env, import_path_.MaybeAsASCII()));
|
||||
+ LOG(INFO) << "Bookmarks exported successfully to " << export_path_;
|
||||
+}
|
||||
+
|
||||
+// Attempts to create a TemplateURL from the provided data. |title| is optional.
|
||||
@@ -579,29 +582,29 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
+ file.Initialize(path, base::File::FLAG_OPEN | base::File::FLAG_READ);
|
||||
+ }
|
||||
+ if (!file.IsValid()) {
|
||||
+ LOG(ERROR) << "Cannot open bookmarks file for import";
|
||||
+ select_file_dialog_->ShowToast("Cannot open bookmarks file for import");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ auto fileLength = file.GetLength();
|
||||
+ if (-1 == fileLength) {
|
||||
+ LOG(ERROR) << "Cannot read bookmarks file length";
|
||||
+ select_file_dialog_->ShowToast("Cannot read bookmarks file length");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (fileLength > 10 * 1024 * 1024) {
|
||||
+ LOG(ERROR) << "Bookmarks file is too big";
|
||||
+ select_file_dialog_->ShowToast("Bookmark file is bigger than 10MB");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ std::vector<char> buffer(fileLength);
|
||||
+ if (-1 == file.ReadAtCurrentPos(buffer.data(), fileLength)) {
|
||||
+ LOG(ERROR) << "Could not read bookmarks file";
|
||||
+ select_file_dialog_->ShowToast("Could not read bookmarks file");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (buffer.empty()) {
|
||||
+ LOG(ERROR) << "Empty bookmarks file";
|
||||
+ select_file_dialog_->ShowToast("Empty bookmarks file");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
@@ -619,11 +622,11 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
+ &search_engines,
|
||||
+ nullptr);
|
||||
+
|
||||
+ // writing to profile will begin extensive changes and use the same bookmarks model for persisting changes
|
||||
+ auto *writer = new ProfileWriter(profile_);
|
||||
+
|
||||
+ if (!bookmarks.empty()) {
|
||||
+ writer->AddBookmarks(bookmarks, base::ASCIIToUTF16("Imported"));
|
||||
+ // adding bookmarks will begin extensive changes to the model
|
||||
+ writer->AddBookmarksWithModel(bookmark_model_, bookmarks, base::ASCIIToUTF16("Imported"));
|
||||
+ }
|
||||
+ if (!search_engines.empty()) {
|
||||
+ TemplateURLService::OwnedTemplateURLVector owned_template_urls;
|
||||
@@ -636,8 +639,10 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
|
||||
+ writer->AddKeywords(std::move(owned_template_urls), false);
|
||||
+ }
|
||||
+
|
||||
+ select_file_dialog_->ShowToast("Bookmarks import complete");
|
||||
+
|
||||
+ LOG(INFO) << "Imported " << bookmarks.size() << " bookmarks and " <<
|
||||
+ search_engines.size() << " search engines from " << import_path_;
|
||||
+ search_engines.size() << " search engines from " << path.MaybeAsASCII();
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::FileSelectionCanceled(void* params) {
|
||||
@@ -699,7 +704,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
|
||||
void ShimBeingDeleted(PartnerBookmarksShim* shim) override;
|
||||
|
||||
Profile* profile_;
|
||||
+ base::FilePath import_path_;
|
||||
+ base::FilePath export_path_;
|
||||
JavaObjectWeakGlobalRef weak_java_ref_;
|
||||
bookmarks::BookmarkModel* bookmark_model_; // weak
|
||||
bookmarks::ManagedBookmarkService* managed_bookmark_service_; // weak
|
||||
@@ -728,10 +733,50 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
|
||||
}
|
||||
|
||||
void ProfileWriter::AddHomepage(const GURL& home_page) {
|
||||
@@ -123,6 +125,16 @@ void ProfileWriter::AddBookmarks(
|
||||
return;
|
||||
|
||||
BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_);
|
||||
+ AddBookmarksWithModel(model, bookmarks, top_level_folder_name);
|
||||
+}
|
||||
+
|
||||
+void ProfileWriter::AddBookmarksWithModel(
|
||||
+ BookmarkModel* model,
|
||||
+ const std::vector<ImportedBookmarkEntry>& bookmarks,
|
||||
+ const base::string16& top_level_folder_name) {
|
||||
+ if (bookmarks.empty())
|
||||
+ return;
|
||||
+
|
||||
DCHECK(model->loaded());
|
||||
|
||||
// If the bookmark bar is currently empty, we should import directly to it.
|
||||
diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/profile_writer.h
|
||||
--- a/chrome/browser/importer/profile_writer.h
|
||||
+++ b/chrome/browser/importer/profile_writer.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "base/strings/string16.h"
|
||||
#include "base/time/time.h"
|
||||
#include "build/build_config.h"
|
||||
+#include "components/bookmarks/browser/bookmark_model.h"
|
||||
#include "components/favicon_base/favicon_usage_data.h"
|
||||
#include "components/history/core/browser/history_types.h"
|
||||
#include "components/search_engines/template_url_service.h"
|
||||
@@ -67,6 +68,11 @@ class ProfileWriter : public base::RefCountedThreadSafe<ProfileWriter> {
|
||||
const std::vector<ImportedBookmarkEntry>& bookmarks,
|
||||
const base::string16& top_level_folder_name);
|
||||
|
||||
+ virtual void AddBookmarksWithModel(
|
||||
+ bookmarks::BookmarkModel* model,
|
||||
+ const std::vector<ImportedBookmarkEntry>& bookmarks,
|
||||
+ const base::string16& top_level_folder_name);
|
||||
+
|
||||
virtual void AddFavicons(const favicon_base::FaviconUsageDataList& favicons);
|
||||
|
||||
// Adds the TemplateURLs in |template_urls| to the local store.
|
||||
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
||||
--- a/chrome/common/BUILD.gn
|
||||
+++ b/chrome/common/BUILD.gn
|
||||
@@ -442,6 +442,9 @@ static_library("common") {
|
||||
@@ -446,6 +446,9 @@ static_library("common") {
|
||||
sources += [
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
@@ -744,7 +789,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
||||
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
||||
--- a/chrome/utility/BUILD.gn
|
||||
+++ b/chrome/utility/BUILD.gn
|
||||
@@ -58,8 +58,6 @@ static_library("utility") {
|
||||
@@ -60,8 +60,6 @@ static_library("utility") {
|
||||
|
||||
if (!is_android) {
|
||||
sources += [
|
||||
@@ -753,8 +798,8 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
||||
"importer/bookmarks_file_importer.cc",
|
||||
"importer/bookmarks_file_importer.h",
|
||||
"importer/edge_database_reader_win.cc",
|
||||
@@ -162,6 +160,11 @@ static_library("utility") {
|
||||
]
|
||||
@@ -170,6 +168,11 @@ static_library("utility") {
|
||||
}
|
||||
}
|
||||
|
||||
+ sources += [
|
||||
@@ -871,6 +916,114 @@ diff --git a/chrome/utility/importer/bookmark_html_reader.h b/chrome/utility/imp
|
||||
// Returns true if |url| should be imported as a search engine, i.e. because it
|
||||
// has replacement terms. Chrome treats such bookmarks as search engines rather
|
||||
// than true bookmarks.
|
||||
diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
--- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
+++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
@@ -32,6 +32,7 @@ import org.chromium.base.task.PostTask;
|
||||
import org.chromium.base.task.TaskTraits;
|
||||
import org.chromium.ui.PhotoPickerListener;
|
||||
import org.chromium.ui.R;
|
||||
+import org.chromium.ui.widget.Toast;
|
||||
import org.chromium.ui.UiUtils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -51,6 +52,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
private static final String IMAGE_TYPE = "image/";
|
||||
private static final String VIDEO_TYPE = "video/";
|
||||
private static final String AUDIO_TYPE = "audio/";
|
||||
+ private static final String HTML_TYPE = "text/html";
|
||||
private static final String ALL_IMAGE_TYPES = IMAGE_TYPE + "*";
|
||||
private static final String ALL_VIDEO_TYPES = VIDEO_TYPE + "*";
|
||||
private static final String ALL_AUDIO_TYPES = AUDIO_TYPE + "*";
|
||||
@@ -129,6 +131,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
mFileTypes = fileTypes;
|
||||
}
|
||||
|
||||
+ @CalledByNative
|
||||
+ private void showToast(String message) {
|
||||
+ Toast.makeText(ContextUtils.getApplicationContext(), message, Toast.LENGTH_LONG).show();
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Creates and starts an intent based on the passed fileTypes and capture value.
|
||||
* @param fileTypes MIME types requested (i.e. "image/*")
|
||||
@@ -156,7 +163,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
List<String> missingPermissions = new ArrayList<>();
|
||||
String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
||||
boolean shouldUsePhotoPicker = shouldUsePhotoPicker();
|
||||
- if (shouldUsePhotoPicker) {
|
||||
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
|
||||
if (!window.hasPermission(storagePermission)) missingPermissions.add(storagePermission);
|
||||
} else {
|
||||
if (((mSupportsImageCapture && shouldShowImageTypes())
|
||||
@@ -183,7 +190,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
return;
|
||||
}
|
||||
|
||||
- if (shouldUsePhotoPicker
|
||||
+ if ((shouldUsePhotoPicker || shouldShowHtmlTypes())
|
||||
&& requestPermissions[i].equals(storagePermission)) {
|
||||
onFileNotSelected();
|
||||
return;
|
||||
@@ -331,6 +338,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
|
||||
}
|
||||
+ if (mimeTypes.size() == 0) return null;
|
||||
return mimeTypes;
|
||||
}
|
||||
|
||||
@@ -603,6 +611,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
return countAcceptTypesFor(specificType) > 0;
|
||||
}
|
||||
|
||||
+ private boolean shouldShowHtmlTypes() {
|
||||
+ return countAcceptTypesFor(HTML_TYPE) > 0;
|
||||
+ }
|
||||
+
|
||||
private boolean shouldShowImageTypes() {
|
||||
return shouldShowTypes(ALL_IMAGE_TYPES, IMAGE_TYPE);
|
||||
}
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h
|
||||
--- a/ui/shell_dialogs/select_file_dialog.h
|
||||
+++ b/ui/shell_dialogs/select_file_dialog.h
|
||||
@@ -192,6 +192,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
|
||||
void* params);
|
||||
bool HasMultipleFileTypeChoices();
|
||||
|
||||
+ virtual void ShowToast(const std::string& message) = 0;
|
||||
+
|
||||
protected:
|
||||
friend class base::RefCountedThreadSafe<SelectFileDialog>;
|
||||
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
--- a/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
+++ b/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
@@ -139,6 +139,12 @@ void SelectFileDialogImpl::SelectFileImpl(
|
||||
owning_window->GetJavaObject());
|
||||
}
|
||||
|
||||
+void SelectFileDialogImpl::ShowToast(const std::string& message) {
|
||||
+ JNIEnv* env = base::android::AttachCurrentThread();
|
||||
+
|
||||
+ Java_SelectFileDialog_showToast(env, java_object_, base::android::ConvertUTF8ToJavaString(env, message));
|
||||
+}
|
||||
+
|
||||
SelectFileDialogImpl::~SelectFileDialogImpl() {
|
||||
}
|
||||
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog_android.h b/ui/shell_dialogs/select_file_dialog_android.h
|
||||
--- a/ui/shell_dialogs/select_file_dialog_android.h
|
||||
+++ b/ui/shell_dialogs/select_file_dialog_android.h
|
||||
@@ -55,6 +55,8 @@ class SelectFileDialogImpl : public SelectFileDialog {
|
||||
gfx::NativeWindow owning_window,
|
||||
void* params) override;
|
||||
|
||||
+ void ShowToast(const std::string& message) override;
|
||||
+
|
||||
protected:
|
||||
~SelectFileDialogImpl() override;
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+29
-29
@@ -26,22 +26,22 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -55,6 +55,11 @@
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
|
||||
@@ -42,6 +42,11 @@
|
||||
android:key="contextual_search"
|
||||
android:title="@string/contextual_search_title"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ContextualSearchPreferenceFragment" />
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="allow_custom_tab_intents"
|
||||
+ android:title="@string/allow_custom_tab_intents_title"
|
||||
+ android:summary="@string/allow_custom_tab_intents_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<Preference
|
||||
android:key="sync_and_services_link_divider"
|
||||
android:layout="@layout/divider_preference"
|
||||
android:key="clear_browsing_data"
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
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
|
||||
@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
||||
@@ -42,6 +42,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
||||
import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
|
||||
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
@@ -54,47 +54,47 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
+ if (!ContextUtils.getAppSharedPreferences().getBoolean(PrivacyPreferences.PREF_ALLOW_CUSTOM_TAB_INTENTS, false)) return false;
|
||||
if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent)
|
||||
|| !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) {
|
||||
return false;
|
||||
// CCT is disabled in noTouch mode except for some Chrome-internal exceptions.
|
||||
if (FeatureUtilities.isNoTouchModeEnabled()
|
||||
&& !IntentHandler.wasIntentSenderChrome(intent)) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -42,6 +42,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
"safe_browsing_extended_reporting";
|
||||
private static final String PREF_SAFE_BROWSING_SCOUT_REPORTING =
|
||||
"safe_browsing_scout_reporting";
|
||||
@@ -39,6 +39,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
implements OnPreferenceChangeListener {
|
||||
private static final String PREF_NAVIGATION_ERROR = "navigation_error";
|
||||
private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
|
||||
+ public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
private static final String PREF_SAFE_BROWSING = "safe_browsing";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
@@ -135,6 +136,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
? PREF_SAFE_BROWSING_EXTENDED_REPORTING : PREF_SAFE_BROWSING_SCOUT_REPORTING;
|
||||
preferenceScreen.removePreference(findPreference(extended_reporting_pref_to_remove));
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
|
||||
@@ -100,6 +101,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
navigationErrorPref.setOnPreferenceChangeListener(this);
|
||||
navigationErrorPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
+ ChromeBaseCheckBoxPreference allowCustomTabIntentsPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_ALLOW_CUSTOM_TAB_INTENTS);
|
||||
+ allowCustomTabIntentsPref.setOnPreferenceChangeListener(this);
|
||||
+ allowCustomTabIntentsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
ChromeBaseCheckBoxPreference safeBrowsingPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
@@ -154,6 +160,10 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
|| PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled(
|
||||
(boolean) newValue);
|
||||
ChromeBaseCheckBoxPreference searchSuggestionsPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
|
||||
searchSuggestionsPref.setOnPreferenceChangeListener(this);
|
||||
@@ -122,6 +128,10 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
recordNetworkPredictionEnablingUMA((boolean) newValue);
|
||||
} else if (PREF_NAVIGATION_ERROR.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((boolean) newValue);
|
||||
+ } else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
+ sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
+ sharedPreferencesEditor.apply();
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
recordNetworkPredictionEnablingUMA((boolean) newValue);
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -3875,6 +3875,13 @@ However, you aren’t invisible. Going private doesn’t hide your browsing from
|
||||
@@ -4066,6 +4066,13 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
Browse
|
||||
</message>
|
||||
|
||||
@@ -25,9 +25,9 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2100,6 +2100,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
RecordUserAction.record("MobileMenuSettings");
|
||||
@@ -2150,6 +2150,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
} else if (id == R.id.show_menu) {
|
||||
if (FeatureUtilities.isNoTouchModeEnabled()) return false;
|
||||
showAppMenuForKeyboardEvent();
|
||||
+ } else if (id == R.id.exit_id) {
|
||||
+ ApplicationLifetime.terminate(false);
|
||||
@@ -37,7 +37,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
@@ -87,7 +87,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
|
||||
@@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
|
||||
|
||||
// Kick off a timer to kill the process after a delay, which fires only if the Activities
|
||||
// take too long to be finished.
|
||||
@@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -2992,6 +2992,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -3145,6 +3145,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR-LIMIT=27]">
|
||||
Settings
|
||||
</message>
|
||||
+38
-46
@@ -6,19 +6,19 @@ With the introduction of this flag it is possible to increase the maximum
|
||||
allowed connections per host; this can however be detrimental to devices
|
||||
with limited CPU/memory resources and it is disabled by default.
|
||||
---
|
||||
chrome/browser/about_flags.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../common/network_features.cc | 3 +++
|
||||
.../common/network_features.h | 4 ++++
|
||||
.../common/network_switch_list.h | 4 ++++
|
||||
net/socket/client_socket_pool_manager.cc | 16 ++++++++++++++++
|
||||
7 files changed, 42 insertions(+)
|
||||
chrome/browser/about_flags.cc | 8 ++++++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
.../common/network_features.cc | 3 +++
|
||||
.../common/network_features.h | 4 ++++
|
||||
.../common/network_switch_list.h | 4 ++++
|
||||
net/socket/client_socket_pool_manager.cc | 17 +++++++++++++++++
|
||||
7 files changed, 43 insertions(+)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -963,6 +963,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
@@ -652,6 +652,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
|
||||
net::kEffectiveConnectionType4G},
|
||||
};
|
||||
|
||||
@@ -30,22 +30,22 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
// Ensure that all effective connection types returned by Network Quality
|
||||
// Estimator (NQE) are also exposed via flags.
|
||||
static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
|
||||
@@ -2606,6 +2611,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kMaterialDesignIncognitoNTPName,
|
||||
flag_descriptions::kMaterialDesignIncognitoNTPDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(features::kMaterialDesignIncognitoNTP)},
|
||||
@@ -2204,6 +2209,9 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
flag_descriptions::kPassiveDocumentEventListenersName,
|
||||
flag_descriptions::kPassiveDocumentEventListenersDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(features::kPassiveDocumentEventListeners)},
|
||||
+ {"max-connections-per-host", flag_descriptions::kMaxConnectionsPerHostName,
|
||||
+ flag_descriptions::kMaxConnectionsPerHostDescription, kOsAll,
|
||||
+ MULTI_VALUE_TYPE(kMaxConnectionsPerHostChoices)},
|
||||
{"safe-search-url-reporting",
|
||||
flag_descriptions::kSafeSearchUrlReportingName,
|
||||
flag_descriptions::kSafeSearchUrlReportingDescription, kOsAll,
|
||||
{"document-passive-wheel-event-listeners",
|
||||
flag_descriptions::kPassiveDocumentWheelEventListenersName,
|
||||
flag_descriptions::kPassiveDocumentWheelEventListenersDescription, kOsAll,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -1142,6 +1142,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
|
||||
"If enabled, the Incognito New Tab page uses the new material design with "
|
||||
"a better readable text.";
|
||||
@@ -1273,6 +1273,10 @@ const char kLookalikeUrlNavigationSuggestionsDescription[] =
|
||||
const char kMarkHttpAsName[] = "Mark non-secure origins as non-secure";
|
||||
const char kMarkHttpAsDescription[] = "Change the UI treatment for HTTP pages";
|
||||
|
||||
+const char kMaxConnectionsPerHostName[] = "Maximum connections per host";
|
||||
+const char kMaxConnectionsPerHostDescription[] =
|
||||
@@ -57,9 +57,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -710,6 +710,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
|
||||
extern const char kMaterialDesignIncognitoNTPName[];
|
||||
extern const char kMaterialDesignIncognitoNTPDescription[];
|
||||
@@ -779,6 +779,9 @@ extern const char kMarkHttpAsWarning[];
|
||||
extern const char kMarkHttpAsWarningAndDangerousOnFormEdits[];
|
||||
extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
|
||||
|
||||
+extern const char kMaxConnectionsPerHostName[];
|
||||
+extern const char kMaxConnectionsPerHostDescription[];
|
||||
@@ -77,9 +77,9 @@ diff --git a/components/network_session_configurator/common/network_features.cc
|
||||
+const char kMaxConnectionsPerHostChoiceDefault[] = "6",
|
||||
+ kMaxConnectionsPerHostChoice15[] = "15";
|
||||
+
|
||||
const base::Feature kChannelID{"channel-id", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const char kDnsOverHttpsChoiceDefault[] = "Disabled",
|
||||
kDnsOverHttpsChoiceGoogle[] = "Google",
|
||||
kDnsOverHttpsChoiceCloudflare[] = "Cloudflare",
|
||||
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
|
||||
--- a/components/network_session_configurator/common/network_features.h
|
||||
+++ b/components/network_session_configurator/common/network_features.h
|
||||
@@ -91,46 +91,38 @@ diff --git a/components/network_session_configurator/common/network_features.h b
|
||||
+ kMaxConnectionsPerHostChoice6[],
|
||||
+ kMaxConnectionsPerHostChoice15[];
|
||||
+
|
||||
// Enables Channel ID.
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kChannelID;
|
||||
|
||||
// DNS over HTTPS server endpoint choices
|
||||
// (https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt).
|
||||
NETWORK_SESSION_CONFIGURATOR_EXPORT extern const base::Feature kDnsOverHttps;
|
||||
diff --git a/components/network_session_configurator/common/network_switch_list.h b/components/network_session_configurator/common/network_switch_list.h
|
||||
--- a/components/network_session_configurator/common/network_switch_list.h
|
||||
+++ b/components/network_session_configurator/common/network_switch_list.h
|
||||
@@ -21,6 +21,10 @@ NETWORK_SWITCH(kEnableUserAlternateProtocolPorts,
|
||||
|
||||
// Enables the QUIC protocol. This is a temporary testing flag.
|
||||
NETWORK_SWITCH(kEnableQuic, "enable-quic")
|
||||
|
||||
+// Allows specifying a higher number of maximum connections per host
|
||||
+// (15 instead of 6, mirroring the value Mozilla uses).
|
||||
+NETWORK_SWITCH(kMaxConnectionsPerHost, "max-connections-per-host")
|
||||
+
|
||||
// Enable use of experimental TCP sockets API for sending data in the
|
||||
// SYN packet.
|
||||
NETWORK_SWITCH(kEnableTcpFastOpen, "enable-tcp-fastopen")
|
||||
|
||||
// Ignores certificate-related errors.
|
||||
NETWORK_SWITCH(kIgnoreCertificateErrors, "ignore-certificate-errors")
|
||||
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
|
||||
@@ -6,8 +6,10 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
+#include "base/command_line.h"
|
||||
#include "base/logging.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
#include "net/base/load_flags.h"
|
||||
#include "net/http/http_proxy_client_socket_pool.h"
|
||||
#include "net/http/http_request_info.h"
|
||||
@@ -19,6 +21,7 @@
|
||||
#include "net/socket/ssl_client_socket_pool.h"
|
||||
#include "net/socket/transport_client_socket_pool.h"
|
||||
@@ -21,6 +21,10 @@
|
||||
#include "net/socket/ssl_connect_job.h"
|
||||
#include "net/socket/transport_connect_job.h"
|
||||
#include "net/ssl/ssl_config.h"
|
||||
+#include "components/network_session_configurator/common/network_switches.h"
|
||||
+
|
||||
+#include "base/command_line.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
|
||||
namespace net {
|
||||
|
||||
@@ -316,6 +319,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
||||
@@ -262,6 +266,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
||||
int ClientSocketPoolManager::max_sockets_per_group(
|
||||
HttpNetworkSession::SocketPoolType pool_type) {
|
||||
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
|
||||
+7
-23
@@ -4,33 +4,17 @@ Subject: Add flag to control video playback resume feature
|
||||
|
||||
Disable it by default on Android as it is everywhere else
|
||||
---
|
||||
chrome/browser/about_flags.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
media/base/media_switches.cc | 6 +-----
|
||||
4 files changed, 14 insertions(+), 5 deletions(-)
|
||||
3 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3439,6 +3439,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kUseGoogleLocalNtp)},
|
||||
#endif // !defined(OS_ANDROID)
|
||||
|
||||
+ {"resume-background-video",
|
||||
+ flag_descriptions::kResumeBackgroundVideoName,
|
||||
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
|
||||
+
|
||||
#if defined(OS_MACOSX)
|
||||
{"mac-rtl", flag_descriptions::kMacRTLName,
|
||||
flag_descriptions::kMacRTLDescription, kOsMac,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -759,6 +759,11 @@ const char kEnablePictureInPictureName[] = "Enable Picture-in-Picture.";
|
||||
const char kEnablePictureInPictureDescription[] =
|
||||
"Enable the Picture-in-Picture feature for videos.";
|
||||
@@ -860,6 +860,11 @@ const char kMemlogStackModeNative[] = "Native";
|
||||
const char kMemlogStackModeNativeWithThreadNames[] = "Native with thread names";
|
||||
const char kMemlogStackModePseudo[] = "Trace events";
|
||||
|
||||
+const char kResumeBackgroundVideoName[] = "Resume background video.";
|
||||
+const char kResumeBackgroundVideoDescription[] =
|
||||
@@ -43,7 +27,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -470,6 +470,9 @@ extern const char kOOPHPStackModePseudo[];
|
||||
@@ -517,6 +517,9 @@ extern const char kEnablePortalsDescription[];
|
||||
extern const char kEnablePictureInPictureName[];
|
||||
extern const char kEnablePictureInPictureDescription[];
|
||||
|
||||
@@ -56,7 +40,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
||||
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
--- a/media/base/media_switches.cc
|
||||
+++ b/media/base/media_switches.cc
|
||||
@@ -221,11 +221,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
|
||||
@@ -207,11 +207,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
|
||||
// when in background.
|
||||
const base::Feature kResumeBackgroundVideo {
|
||||
"resume-background-video",
|
||||
@@ -68,7 +52,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT
|
||||
};
|
||||
|
||||
// Display the Cast overlay button on the media controls.
|
||||
// Enable Media Capabilities with finch-parameters.
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+25
-25
@@ -6,7 +6,7 @@ Subject: Add flag to disable IPv6 probes
|
||||
chrome/browser/about_flags.cc | 5 +++++
|
||||
chrome/browser/flag_descriptions.cc | 4 ++++
|
||||
chrome/browser/flag_descriptions.h | 3 +++
|
||||
net/dns/host_resolver_impl.cc | 10 ++++++++--
|
||||
net/dns/host_resolver_manager.cc | 10 ++++++++--
|
||||
services/network/public/cpp/features.cc | 3 +++
|
||||
services/network/public/cpp/features.h | 2 ++
|
||||
6 files changed, 25 insertions(+), 2 deletions(-)
|
||||
@@ -14,9 +14,9 @@ Subject: Add flag to disable IPv6 probes
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3498,6 +3498,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
FEATURE_VALUE_TYPE(features::kEnableVirtualKeyboardUkm)},
|
||||
#endif // OS_CHROMEOS
|
||||
@@ -3006,6 +3006,11 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
kMarkHttpAsFeatureVariations,
|
||||
"HTTPReallyBadFinal")},
|
||||
|
||||
+ {"ipv6-probing",
|
||||
+ flag_descriptions::kIPv6ProbingName,
|
||||
@@ -24,28 +24,28 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
+ FEATURE_VALUE_TYPE(network::features::kIPv6Probing)},
|
||||
+
|
||||
#if !defined(OS_ANDROID)
|
||||
{"enable-picture-in-picture",
|
||||
flag_descriptions::kEnablePictureInPictureName,
|
||||
{"enable-web-authentication-testing-api",
|
||||
flag_descriptions::kEnableWebAuthenticationTestingAPIName,
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -763,6 +763,10 @@ const char kOOPHPStackModeNative[] = "Native";
|
||||
const char kOOPHPStackModeNativeWithThreadNames[] = "Native with thread names";
|
||||
const char kOOPHPStackModePseudo[] = "Trace events";
|
||||
@@ -2408,6 +2408,10 @@ const char kForegroundNotificationManagerDescription[] =
|
||||
const char kHomePageButtonName[] = "Force Enable Home Page Button";
|
||||
const char kHomePageButtonDescription[] = "Displays a home button if enabled.";
|
||||
|
||||
+const char kIPv6ProbingName[] = "Enable IPv6 probing.";
|
||||
+const char kIPv6ProbingDescription[] =
|
||||
+ "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.";
|
||||
+
|
||||
const char kEnablePictureInPictureName[] = "Enable Picture-in-Picture.";
|
||||
const char kEnablePictureInPictureDescription[] =
|
||||
"Enable the Picture-in-Picture feature for videos.";
|
||||
const char kHomepageTileName[] =
|
||||
"Enable Homepage tile shown in Suggested Tiles";
|
||||
const char kHomepageTileDescription[] =
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -473,6 +473,9 @@ extern const char kOOPHPStackModeNative[];
|
||||
extern const char kOOPHPStackModeNativeWithThreadNames[];
|
||||
extern const char kOOPHPStackModePseudo[];
|
||||
@@ -520,6 +520,9 @@ extern const char kEnableNewDownloadBackendDescription[];
|
||||
extern const char kEnablePortalsName[];
|
||||
extern const char kEnablePortalsDescription[];
|
||||
|
||||
+extern const char kIPv6ProbingName[];
|
||||
+extern const char kIPv6ProbingDescription[];
|
||||
@@ -53,18 +53,18 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
||||
extern const char kEnablePictureInPictureName[];
|
||||
extern const char kEnablePictureInPictureDescription[];
|
||||
|
||||
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
|
||||
--- a/net/dns/host_resolver_impl.cc
|
||||
+++ b/net/dns/host_resolver_impl.cc
|
||||
@@ -76,6 +76,7 @@
|
||||
#include "net/log/net_log_with_source.h"
|
||||
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
--- a/net/dns/host_resolver_manager.cc
|
||||
+++ b/net/dns/host_resolver_manager.cc
|
||||
@@ -84,6 +84,7 @@
|
||||
#include "net/socket/client_socket_factory.h"
|
||||
#include "net/socket/datagram_client_socket.h"
|
||||
#include "net/url_request/url_request_context.h"
|
||||
+#include "services/network/public/cpp/features.h"
|
||||
#include "url/url_canon_ip.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_MDNS)
|
||||
@@ -2719,8 +2720,13 @@ bool HostResolverImpl::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
@@ -2896,8 +2897,13 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
|
||||
bool cached = true;
|
||||
if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
|
||||
kIPv6ProbePeriodMs) {
|
||||
@@ -83,7 +83,7 @@ diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
|
||||
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
|
||||
--- a/services/network/public/cpp/features.cc
|
||||
+++ b/services/network/public/cpp/features.cc
|
||||
@@ -14,6 +14,9 @@ const base::Feature kExpectCTReporting{"ExpectCTReporting",
|
||||
@@ -16,6 +16,9 @@ const base::Feature kExpectCTReporting{"ExpectCTReporting",
|
||||
|
||||
const base::Feature kNetworkErrorLogging{"NetworkErrorLogging",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
@@ -91,8 +91,8 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
|
||||
+const base::Feature kIPv6Probing{"IPv6Probing",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
// Enables the network service.
|
||||
const base::Feature kNetworkService{"NetworkService",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
const base::Feature kNetworkService {
|
||||
"NetworkService",
|
||||
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
||||
--- a/services/network/public/cpp/features.h
|
||||
+++ b/services/network/public/cpp/features.h
|
||||
@@ -102,7 +102,7 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
+extern const base::Feature kIPv6Probing;
|
||||
+COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kOutOfBlinkCORS;
|
||||
extern const base::Feature kOutOfBlinkCors;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::Feature kReporting;
|
||||
--
|
||||
+23
-23
@@ -20,7 +20,7 @@ legacy acceleration events.
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -3005,6 +3005,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -2269,6 +2269,12 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-generic-sensor", flag_descriptions::kEnableGenericSensorName,
|
||||
flag_descriptions::kEnableGenericSensorDescription, kOsAll,
|
||||
FEATURE_VALUE_TYPE(features::kGenericSensor)},
|
||||
@@ -36,7 +36,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
||||
--- a/chrome/browser/flag_descriptions.cc
|
||||
+++ b/chrome/browser/flag_descriptions.cc
|
||||
@@ -551,6 +551,14 @@ const char kEnableGenericSensorDescription[] =
|
||||
@@ -631,6 +631,14 @@ const char kEnableGenericSensorDescription[] =
|
||||
"Accelerometer, LinearAccelerationSensor, Gyroscope, "
|
||||
"AbsoluteOrientationSensor and RelativeOrientationSensor interfaces.";
|
||||
|
||||
@@ -54,7 +54,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
|
||||
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
||||
--- a/chrome/browser/flag_descriptions.h
|
||||
+++ b/chrome/browser/flag_descriptions.h
|
||||
@@ -362,6 +362,12 @@ extern const char kEnableEnumeratingAudioDevicesDescription[];
|
||||
@@ -398,6 +398,12 @@ extern const char kEnforceTLS13DowngradeDescription[];
|
||||
extern const char kEnableGenericSensorName[];
|
||||
extern const char kEnableGenericSensorDescription[];
|
||||
|
||||
@@ -70,23 +70,23 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
|
||||
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
|
||||
--- a/content/child/runtime_features.cc
|
||||
+++ b/content/child/runtime_features.cc
|
||||
@@ -143,6 +143,9 @@ void SetRuntimeFeaturesDefaultsAndUpdateFromArgs(
|
||||
if (command_line.HasSwitch(switches::kDisableSharedWorkers))
|
||||
WebRuntimeFeatures::EnableSharedWorker(false);
|
||||
@@ -90,6 +90,9 @@ void SetIndividualRuntimeFeatures(
|
||||
base::FeatureList::IsEnabled(features::kSharedArrayBuffer) ||
|
||||
base::FeatureList::IsEnabled(features::kWebAssemblyThreads));
|
||||
|
||||
+ WebRuntimeFeatures::EnableDeviceMotion(base::FeatureList::IsEnabled(features::kDeviceMotion));
|
||||
+ WebRuntimeFeatures::EnableDeviceOrientation(base::FeatureList::IsEnabled(features::kDeviceOrientation));
|
||||
+
|
||||
if (command_line.HasSwitch(switches::kDisableSpeechAPI))
|
||||
WebRuntimeFeatures::EnableScriptedSpeech(false);
|
||||
if (command_line.HasSwitch(switches::kDisableSharedWorkers))
|
||||
WebRuntimeFeatures::EnableSharedWorker(false);
|
||||
|
||||
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
|
||||
--- a/content/public/common/content_features.cc
|
||||
+++ b/content/public/common/content_features.cc
|
||||
@@ -570,6 +570,16 @@ const base::Feature kWebRtcHideLocalIpsWithMdns{
|
||||
// https://wicg.github.io/webusb
|
||||
const base::Feature kWebUsb{"WebUSB", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
@@ -614,6 +614,16 @@ const base::Feature kExperimentalProductivityFeatures{
|
||||
// TODO(rouslan): Remove this.
|
||||
const base::Feature kWebPayments{"WebPayments",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+// Enables the device motion API used to track device acceleration;
|
||||
+// no user authorization or notifications happens when in use.
|
||||
+const base::Feature kDeviceMotion{"DeviceMotion",
|
||||
@@ -97,14 +97,14 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
|
||||
+const base::Feature kDeviceOrientation{"DeviceOrientation",
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+
|
||||
// Controls whether WebVR VSync-aligned render loop timing is enabled.
|
||||
const base::Feature kWebVrVsyncAlign{"WebVrVsyncAlign",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
// Makes WebRTC use ECDSA certs by default (i.e., when no cert type was
|
||||
// specified in JS).
|
||||
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
|
||||
--- a/content/public/common/content_features.h
|
||||
+++ b/content/public/common/content_features.h
|
||||
@@ -152,6 +152,8 @@ CONTENT_EXPORT extern const char kWebXrRenderPathParamValueGpuFence[];
|
||||
CONTENT_EXPORT extern const char kWebXrRenderPathParamValueSharedBuffer[];
|
||||
@@ -156,6 +156,8 @@ CONTENT_EXPORT extern const base::Feature kWarmUpNetworkProcess;
|
||||
CONTENT_EXPORT extern const base::Feature kWebNfc;
|
||||
#endif // defined(OS_ANDROID)
|
||||
|
||||
+CONTENT_EXPORT extern const base::Feature kDeviceMotion, kDeviceOrientation;
|
||||
@@ -115,19 +115,19 @@ diff --git a/content/public/common/content_features.h b/content/public/common/co
|
||||
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
|
||||
--- a/third_party/blink/public/platform/web_runtime_features.h
|
||||
+++ b/third_party/blink/public/platform/web_runtime_features.h
|
||||
@@ -85,6 +85,8 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableCSSFragmentIdentifiers(bool);
|
||||
@@ -95,6 +95,8 @@ class WebRuntimeFeatures {
|
||||
BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableKeyboardFocusableScrollers(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableDatabase(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableDeviceMotion(bool);
|
||||
+ BLINK_PLATFORM_EXPORT static void EnableDeviceOrientation(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableDecodeToYUV(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableDisplayCutoutAPI(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableFastMobileScrolling(bool);
|
||||
BLINK_PLATFORM_EXPORT static void EnableFallbackCursorMode(bool);
|
||||
diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
--- a/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
+++ b/third_party/blink/renderer/modules/modules_initializer.cc
|
||||
@@ -233,9 +233,12 @@ void ModulesInitializer::InitInspectorAgentSession(
|
||||
@@ -249,9 +249,12 @@ void ModulesInitializer::InitInspectorAgentSession(
|
||||
void ModulesInitializer::OnClearWindowObjectInMainWorld(
|
||||
Document& document,
|
||||
const Settings& settings) const {
|
||||
@@ -146,7 +146,7 @@ diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_p
|
||||
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
|
||||
@@ -136,6 +136,14 @@ void WebRuntimeFeatures::EnableDatabase(bool enable) {
|
||||
@@ -160,6 +160,14 @@ void WebRuntimeFeatures::EnableDatabase(bool enable) {
|
||||
RuntimeEnabledFeatures::SetDatabaseEnabled(enable);
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
|
||||
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
@@ -357,6 +357,14 @@
|
||||
@@ -425,6 +425,14 @@
|
||||
status: "stable",
|
||||
},
|
||||
{
|
||||
+7
-7
@@ -75,9 +75,9 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2195,6 +2195,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();
|
||||
currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
|
||||
@@ -2253,6 +2253,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
currentTab.getWebContents().getNavigationController().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();
|
||||
@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -1718,6 +1718,14 @@ public class ChromeTabbedActivity
|
||||
@@ -1818,6 +1818,14 @@ public class ChromeTabbedActivity
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
import org.chromium.chrome.browser.ShortcutHelper;
|
||||
import org.chromium.chrome.browser.UrlConstants;
|
||||
import org.chromium.chrome.browser.banners.AppBannerManager;
|
||||
@@ -209,6 +210,8 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -196,6 +197,8 @@ public class AppMenuPropertiesDelegate {
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
@@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
// Only display reader mode settings menu option if the current page is in reader mode.
|
||||
menu.findItem(R.id.reader_mode_prefs_id)
|
||||
.setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl()));
|
||||
@@ -448,6 +451,41 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -450,6 +453,41 @@ public class AppMenuPropertiesDelegate {
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -2977,6 +2977,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -3130,6 +3130,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR-LIMIT=27]">
|
||||
Find in page
|
||||
</message>
|
||||
+23
-23
@@ -13,7 +13,7 @@ Subject: Add option to not persist tabs across sessions
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -66,6 +66,9 @@
|
||||
@@ -67,6 +67,9 @@
|
||||
<!-- TODO(peconn): Add help section. -->
|
||||
<!-- <string name="help_context_suggestions">mobile_content_suggestions</string> -->
|
||||
|
||||
@@ -26,8 +26,8 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -18,6 +18,11 @@
|
||||
android:summary="@string/search_suggestions_summary"
|
||||
@@ -13,6 +13,11 @@
|
||||
android:summary="@string/navigation_error_summary"
|
||||
android:defaultValue="true" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="close_tabs_on_exit"
|
||||
@@ -35,13 +35,13 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
+ android:summary="@string/close_tabs_on_exit_summary"
|
||||
+ android:defaultValue="false" />
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
android:key="safe_browsing_extended_reporting"
|
||||
android:title="@string/safe_browsing_extended_reporting_title"
|
||||
android:summary="@string/safe_browsing_extended_reporting_summary" />
|
||||
android:key="search_suggestions"
|
||||
android:title="@string/search_suggestions_title"
|
||||
android:summary="@string/search_suggestions_summary"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -1030,8 +1030,10 @@ public class ChromeTabbedActivity
|
||||
@@ -1112,8 +1112,10 @@ public class ChromeTabbedActivity
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
@@ -69,10 +69,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
import android.view.MenuItem;
|
||||
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.BuildInfo;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
@@ -47,6 +49,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
@@ -43,6 +45,7 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
|
||||
@@ -80,35 +80,35 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
@@ -146,6 +149,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
@@ -67,6 +70,11 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
canMakePaymentPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
+ ChromeBaseCheckBoxPreference closeTabsOnExitPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
|
||||
+ closeTabsOnExitPref.setOnPreferenceChangeListener(this);
|
||||
+ closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -172,6 +180,12 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
ChromeBaseCheckBoxPreference networkPredictionPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_NETWORK_PREDICTIONS);
|
||||
networkPredictionPref.setChecked(prefServiceBridge.getNetworkPredictionEnabled());
|
||||
@@ -126,6 +134,12 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
recordNetworkPredictionEnablingUMA((boolean) newValue);
|
||||
+ } else if (PREF_CLOSE_TABS_ON_EXIT.equals(key)) {
|
||||
+// PrefServiceBridge.getInstance().setBoolean(
|
||||
+// Pref.CLOSE_TABS_ON_EXIT_ENABLED, (boolean) newValue);
|
||||
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
+ sharedPreferencesEditor.putBoolean(PREF_CLOSE_TABS_ON_EXIT, (boolean)newValue);
|
||||
+ sharedPreferencesEditor.apply();
|
||||
}
|
||||
|
||||
return true;
|
||||
} else if (PREF_NAVIGATION_ERROR.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((boolean) newValue);
|
||||
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
|
||||
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
|
||||
@@ -3765,6 +3765,12 @@ However, you aren’t invisible. Going private doesn’t hide your browsing from
|
||||
@@ -3934,6 +3934,12 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
|
||||
IMAGE
|
||||
</message>
|
||||
@@ -0,0 +1,209 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 18 Mar 2019 21:47:12 +0100
|
||||
Subject: Add option to use home page as NTP
|
||||
|
||||
Use about:blank as default homepage
|
||||
---
|
||||
.../android/java/res/xml/homepage_preferences.xml | 5 +++++
|
||||
.../partnercustomizations/HomepageManager.java | 24 ++++++++++++++++++++--
|
||||
.../browser/preferences/HomepagePreferences.java | 14 ++++++++++++-
|
||||
.../chrome/browser/tabmodel/TabCreatorManager.java | 11 ++++++++--
|
||||
.../java/strings/android_chrome_strings.grd | 3 +++
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 2 ++
|
||||
chrome/common/pref_names.cc | 4 ++++
|
||||
chrome/common/pref_names.h | 1 +
|
||||
8 files changed, 59 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
@@ -16,4 +16,9 @@
|
||||
android:title="@string/options_homepage_edit_label"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.HomepageEditor" />
|
||||
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeSwitchPreference
|
||||
+ android:key="ntp_is_homepage_switch"
|
||||
+ android:summaryOn="@string/options_ntp_is_homepage_label"
|
||||
+ android:summaryOff="@string/options_ntp_is_homepage_label" />
|
||||
+
|
||||
</PreferenceScreen>
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
@@ -32,6 +32,7 @@ public class HomepageManager {
|
||||
}
|
||||
|
||||
private static final String PREF_HOMEPAGE_ENABLED = "homepage";
|
||||
+ public static final String PREF_NTP_IS_HOMEPAGE = "newtabpage_is_homepage";
|
||||
private static final String PREF_HOMEPAGE_CUSTOM_URI = "homepage_custom_uri";
|
||||
private static final String PREF_HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
|
||||
|
||||
@@ -91,7 +92,8 @@ public class HomepageManager {
|
||||
*/
|
||||
public static boolean shouldCloseAppWithZeroTabs() {
|
||||
return HomepageManager.isHomepageEnabled()
|
||||
- && !NewTabPage.isNTPUrl(HomepageManager.getHomepageUri());
|
||||
+ && !NewTabPage.isNTPUrl(HomepageManager.getHomepageUri())
|
||||
+ && (HomepageManager.getHomepageUri() != UrlConstants.CHROME_BLANK_URL);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -111,7 +113,7 @@ public class HomepageManager {
|
||||
* @return The default homepage URI.
|
||||
*/
|
||||
public static String getDefaultHomepageUri() {
|
||||
- return UrlConstants.NTP_NON_NATIVE_URL;
|
||||
+ return UrlConstants.CHROME_BLANK_URL;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -125,6 +127,14 @@ public class HomepageManager {
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Returns the user preference for whether the New Tab Page is the homepage or not.
|
||||
+ *
|
||||
+ */
|
||||
+ public boolean getPrefNTPIsHomepageEnabled() {
|
||||
+ return mSharedPreferences.getBoolean(PREF_NTP_IS_HOMEPAGE, false);
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
* Sets the user preference for whether the homepage is enabled.
|
||||
*/
|
||||
public void setPrefHomepageEnabled(boolean enabled) {
|
||||
@@ -138,6 +148,16 @@ public class HomepageManager {
|
||||
}
|
||||
|
||||
/**
|
||||
+ * Sets the user preference for whether the new tab page is the homepage or not.
|
||||
+ */
|
||||
+ public void setPrefNTPIsHomepageEnabled(boolean enabled) {
|
||||
+ SharedPreferences.Editor sharedPreferencesEditor = mSharedPreferences.edit();
|
||||
+ sharedPreferencesEditor.putBoolean(PREF_NTP_IS_HOMEPAGE, enabled);
|
||||
+ sharedPreferencesEditor.apply();
|
||||
+ notifyHomepageUpdated();
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
* @return User specified homepage custom URI string.
|
||||
*/
|
||||
public String getPrefHomepageCustomUri() {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepagePreferences.java
|
||||
@@ -19,9 +19,10 @@ import org.chromium.chrome.browser.util.FeatureUtilities;
|
||||
public class HomepagePreferences extends PreferenceFragment {
|
||||
private static final String PREF_HOMEPAGE_SWITCH = "homepage_switch";
|
||||
private static final String PREF_HOMEPAGE_EDIT = "homepage_edit";
|
||||
+ private static final String PREF_NTP_HOMEPAGE_SWITCH = "ntp_is_homepage_switch";
|
||||
|
||||
private HomepageManager mHomepageManager;
|
||||
- private ChromeSwitchPreference mHomepageSwitch;
|
||||
+ private ChromeSwitchPreference mHomepageSwitch, mNTPIsHomepageSwitch;
|
||||
private Preference mHomepageEdit;
|
||||
|
||||
@Override
|
||||
@@ -47,6 +48,17 @@ public class HomepagePreferences extends PreferenceFragment {
|
||||
}
|
||||
});
|
||||
|
||||
+ mNTPIsHomepageSwitch = (ChromeSwitchPreference) findPreference(PREF_NTP_HOMEPAGE_SWITCH);
|
||||
+ boolean isHomepageNTPEnabled = mHomepageManager.getPrefNTPIsHomepageEnabled();
|
||||
+ mNTPIsHomepageSwitch.setChecked(isHomepageNTPEnabled);
|
||||
+ mNTPIsHomepageSwitch.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
+ @Override
|
||||
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
+ mHomepageManager.setPrefNTPIsHomepageEnabled((boolean) newValue);
|
||||
+ return true;
|
||||
+ }
|
||||
+ });
|
||||
+
|
||||
mHomepageEdit = findPreference(PREF_HOMEPAGE_EDIT);
|
||||
updateCurrentHomepageUrl();
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabCreatorManager.java
|
||||
@@ -10,6 +10,7 @@ import org.chromium.base.TraceEvent;
|
||||
import org.chromium.chrome.browser.UrlConstants;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabState;
|
||||
+import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.content_public.browser.WebContents;
|
||||
|
||||
@@ -85,12 +86,18 @@ public interface TabCreatorManager {
|
||||
}
|
||||
|
||||
/**
|
||||
- * Creates a new tab and loads the NTP.
|
||||
+ * Creates a new tab and loads the NTP or the homepage, depending on user preferences.
|
||||
*/
|
||||
public final void launchNTP() {
|
||||
try {
|
||||
+ String newTabURL;
|
||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ newTabURL = HomepageManager.getHomepageUri();
|
||||
+ } else {
|
||||
+ newTabURL = UrlConstants.NTP_URL;
|
||||
+ }
|
||||
TraceEvent.begin("TabCreator.launchNTP");
|
||||
- launchUrl(UrlConstants.NTP_URL, TabLaunchType.FROM_CHROME_UI);
|
||||
+ launchUrl(newTabURL, TabLaunchType.FROM_CHROME_UI);
|
||||
} finally {
|
||||
TraceEvent.end("TabCreator.launchNTP");
|
||||
}
|
||||
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
|
||||
@@ -677,6 +677,9 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_OPTIONS_HOMEPAGE_EDIT_LABEL" desc="The label for the edit text field that allows the user to change the URL that is opened when they tap on the home page button in the omnibox.">
|
||||
Open this page
|
||||
</message>
|
||||
+ <message name="IDS_OPTIONS_NTP_IS_HOMEPAGE_LABEL" desc="The label for switch that allows the user to toggle whether opening a new tab leads to the new tab page or the home page.">
|
||||
+ Use for new tabs
|
||||
+ </message>
|
||||
|
||||
<!-- Startup page preferences -->
|
||||
<message name="IDS_OPTIONS_STARTUP_PAGE_TITLE" desc="The title of the setting that allows users to manage the page that opens when they start Chrome.">
|
||||
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
|
||||
@@ -54,6 +54,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
GetHomeButtonAndHomePageIsNewTabPageFlags());
|
||||
registry->RegisterBooleanPref(prefs::kShowHomeButton, false,
|
||||
GetHomeButtonAndHomePageIsNewTabPageFlags());
|
||||
+ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
|
||||
+ GetHomeButtonAndHomePageIsNewTabPageFlags());
|
||||
|
||||
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
|
||||
bool reset_check_default = false;
|
||||
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
|
||||
--- a/chrome/common/pref_names.cc
|
||||
+++ b/chrome/common/pref_names.cc
|
||||
@@ -58,6 +58,10 @@ const char kForceEphemeralProfiles[] = "profile.ephemeral_mode";
|
||||
// A boolean specifying whether the New Tab page is the home page or not.
|
||||
const char kHomePageIsNewTabPage[] = "homepage_is_newtabpage";
|
||||
|
||||
+// A boolean specifying whether opening a new tab should open the Home page
|
||||
+// instead of the New Tab page.
|
||||
+const char kNewTabPageIsHomePage[] = "newtabpage_is_homepage";
|
||||
+
|
||||
// This is the URL of the page to load when opening new tabs.
|
||||
const char kHomePage[] = "homepage";
|
||||
|
||||
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
||||
--- a/chrome/common/pref_names.h
|
||||
+++ b/chrome/common/pref_names.h
|
||||
@@ -294,6 +294,7 @@ extern const char kParentAccessCodeConfig[];
|
||||
extern const char kDeviceWallpaperImageFilePath[];
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
extern const char kShowHomeButton[];
|
||||
+extern const char kNewTabPageIsHomePage[];
|
||||
extern const char kSpeechRecognitionFilterProfanities[];
|
||||
extern const char kAllowDeletingBrowserHistory[];
|
||||
#if !defined(OS_ANDROID)
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+27
-25
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/xml/website_preferences.xml b/chrome/androi
|
||||
--- a/chrome/android/java/res/xml/website_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/website_preferences.xml
|
||||
@@ -26,6 +26,13 @@
|
||||
android:summary="@string/allow_third_party_cookies_summary"
|
||||
android:summary="@string/block_third_party_cookies_summary"
|
||||
android:defaultValue="true"
|
||||
android:persistent="false" />
|
||||
+ <!-- A toggle for cookies to be saved only until session exit, only shown for the Cookies category. -->
|
||||
@@ -44,7 +44,7 @@ diff --git a/chrome/android/java/res/xml/website_preferences.xml b/chrome/androi
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
@@ -245,6 +245,10 @@ public class PrefServiceBridge {
|
||||
@@ -240,6 +240,10 @@ public class PrefServiceBridge {
|
||||
return nativeGetBlockThirdPartyCookiesEnabled();
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
|
||||
/**
|
||||
* @return Whether third-party cookie blocking is configured by policy
|
||||
*/
|
||||
@@ -638,6 +642,10 @@ public class PrefServiceBridge {
|
||||
@@ -625,6 +629,10 @@ public class PrefServiceBridge {
|
||||
nativeSetBlockThirdPartyCookiesEnabled(enabled);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
|
||||
public void setDoNotTrackEnabled(boolean enabled) {
|
||||
nativeSetDoNotTrackEnabled(enabled);
|
||||
}
|
||||
@@ -1086,6 +1094,7 @@ public class PrefServiceBridge {
|
||||
@@ -1073,6 +1081,7 @@ public class PrefServiceBridge {
|
||||
private native boolean nativeGetAutoplayEnabled();
|
||||
private native boolean nativeGetBackgroundSyncEnabled();
|
||||
private native boolean nativeGetBlockThirdPartyCookiesEnabled();
|
||||
@@ -74,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
|
||||
private native boolean nativeGetBlockThirdPartyCookiesManaged();
|
||||
private native boolean nativeGetRememberPasswordsEnabled();
|
||||
private native boolean nativeGetPasswordManagerAutoSigninEnabled();
|
||||
@@ -1132,6 +1141,7 @@ public class PrefServiceBridge {
|
||||
@@ -1119,6 +1128,7 @@ public class PrefServiceBridge {
|
||||
private native void nativeSetAutoplayEnabled(boolean enabled);
|
||||
private native void nativeSetAllowCookiesEnabled(boolean enabled);
|
||||
private native void nativeSetBackgroundSyncEnabled(boolean enabled);
|
||||
@@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
|
||||
@@ -110,6 +110,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -125,6 +125,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
|
||||
// Keys for category-specific preferences (toggle, link, button etc.), dynamically shown.
|
||||
public static final String THIRD_PARTY_COOKIES_TOGGLE_KEY = "third_party_cookies";
|
||||
@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
||||
public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate";
|
||||
public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more";
|
||||
private static final String ADD_EXCEPTION_KEY = "add_exception";
|
||||
@@ -438,6 +439,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -466,6 +467,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
|
||||
if (type == SiteSettingsCategory.Type.COOKIES) {
|
||||
updateThirdPartyCookiesCheckBox();
|
||||
@@ -101,16 +101,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
||||
} else if (type == SiteSettingsCategory.Type.NOTIFICATIONS) {
|
||||
updateNotificationsVibrateCheckBox();
|
||||
}
|
||||
@@ -476,6 +478,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -504,6 +506,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
int setting = (int) newValue;
|
||||
prefServiceBridge.setContentSetting(mCategory.getContentSettingsType(), setting);
|
||||
getInfoForOrigins();
|
||||
} else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
prefServiceBridge.setBlockThirdPartyCookiesEnabled(!((boolean) newValue));
|
||||
+ } else if (COOKIES_SESSION_ONLY_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
+ prefServiceBridge.setCookiesSessionOnlyEnabled((boolean) newValue);
|
||||
} else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
prefServiceBridge.setBlockThirdPartyCookiesEnabled(((boolean) newValue));
|
||||
} else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) {
|
||||
prefServiceBridge.setNotificationsVibrateEnabled((boolean) newValue);
|
||||
}
|
||||
@@ -738,6 +742,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -817,6 +821,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
TriStateSiteSettingsPreference triStateToggle =
|
||||
(TriStateSiteSettingsPreference) screen.findPreference(TRI_STATE_TOGGLE_KEY);
|
||||
Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY);
|
||||
@@ -119,21 +119,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
||||
Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
|
||||
Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY);
|
||||
PreferenceGroup allowedGroup = (PreferenceGroup) screen.findPreference(ALLOWED_GROUP);
|
||||
@@ -752,6 +758,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
screen.removePreference(binaryToggle);
|
||||
screen.removePreference(triStateToggle);
|
||||
@@ -848,6 +854,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
|
||||
if (hideSecondaryToggles) {
|
||||
screen.removePreference(thirdPartyCookies);
|
||||
+ screen.removePreference(cookiesSessionOnly);
|
||||
screen.removePreference(notificationsVibrate);
|
||||
screen.removePreference(explainProtectedMediaKey);
|
||||
screen.removePreference(allowedGroup);
|
||||
@@ -787,12 +794,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
configureBinaryToggle(binaryToggle, contentType);
|
||||
@@ -858,14 +865,17 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
return;
|
||||
}
|
||||
|
||||
- // Configure/hide the third-party cookie toggle, as needed.
|
||||
+ // Configure/hide the third-party cookie toggle and session-only cookie toggle, as needed.
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
|
||||
// We don't need this toggle in touchless. Refer to crbug/951850.
|
||||
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)
|
||||
&& !FeatureUtilities.isNoTouchModeEnabled()) {
|
||||
thirdPartyCookies.setOnPreferenceChangeListener(this);
|
||||
updateThirdPartyCookiesCheckBox();
|
||||
+ cookiesSessionOnly.setOnPreferenceChangeListener(this);
|
||||
@@ -144,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
||||
}
|
||||
|
||||
// Configure/hide the notifications vibrate toggle, as needed.
|
||||
@@ -878,6 +888,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
@@ -972,6 +982,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
|
||||
preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged());
|
||||
}
|
||||
|
||||
@@ -163,9 +165,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -882,6 +882,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_ALLOW_THIRD_PARTY_COOKIES_SUMMARY" desc="Summary text for Allow Third Party Cookies preference">
|
||||
Third-party websites can save and read cookie data
|
||||
@@ -927,6 +927,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_BLOCK_THIRD_PARTY_COOKIES_SUMMARY" desc="Summary text for Block Third Party Cookies preference">
|
||||
Prevent third-party websites from saving and reading cookie data
|
||||
</message>
|
||||
+ <message name="IDS_ALLOW_COOKIES_SESSION_ONLY_TITLE" desc="Title for Allow Cookies Session Only preference">
|
||||
+ Keep cookies only until you quit your browser
|
||||
@@ -179,7 +181,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
|
||||
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
|
||||
--- a/chrome/browser/android/preferences/pref_service_bridge.cc
|
||||
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc
|
||||
@@ -310,6 +310,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
|
||||
@@ -311,6 +311,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
|
||||
return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies);
|
||||
}
|
||||
|
||||
@@ -197,7 +199,7 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/
|
||||
static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj) {
|
||||
@@ -774,6 +785,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
|
||||
@@ -768,6 +779,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
|
||||
GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,769 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 18 Sep 2018 08:06:14 +0200
|
||||
Subject: Allow building without safebrowsing for Android
|
||||
|
||||
Fix build from scratch (issue found by nikolowry)
|
||||
---
|
||||
.../android/java/res/xml/privacy_preferences.xml | 8 -----
|
||||
.../preferences/privacy/PrivacyPreferences.java | 40 ----------------------
|
||||
.../chrome_browsing_data_remover_delegate.cc | 10 ------
|
||||
chrome/browser/chrome_content_browser_client.cc | 20 +----------
|
||||
.../file_type_policies_component_installer.cc | 2 ++
|
||||
.../download/chrome_download_manager_delegate.cc | 14 ++++++--
|
||||
.../download/chrome_download_manager_delegate.h | 6 ++++
|
||||
chrome/browser/download/download_item_model.cc | 10 ++++++
|
||||
chrome/browser/download/download_item_model.h | 4 +++
|
||||
chrome/browser/download/download_prefs.cc | 4 +++
|
||||
.../browser/download/download_target_determiner.cc | 22 ++++++++++++
|
||||
.../browser/download/download_target_determiner.h | 6 ++++
|
||||
chrome/browser/download/download_target_info.cc | 4 +++
|
||||
chrome/browser/download/download_target_info.h | 4 +++
|
||||
chrome/browser/download/download_ui_model.cc | 4 +++
|
||||
chrome/browser/download/download_ui_model.h | 4 +++
|
||||
.../chrome_resource_dispatcher_host_delegate.cc | 2 ++
|
||||
chrome/browser/net/chrome_network_delegate.cc | 35 ++-----------------
|
||||
18 files changed, 87 insertions(+), 112 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -18,14 +18,6 @@
|
||||
android:summary="@string/search_suggestions_summary"
|
||||
android:defaultValue="true" />
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing_scout_reporting"
|
||||
- android:title="@string/safe_browsing_scout_reporting_title"
|
||||
- android:summary="@string/safe_browsing_scout_reporting_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
- android:key="safe_browsing"
|
||||
- android:title="@string/safe_browsing_title"
|
||||
- android:summary="@string/safe_browsing_summary" />
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
android:key="network_predictions"
|
||||
android:title="@string/network_predictions_title"
|
||||
android:summary="@string/network_predictions_summary"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -39,9 +39,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
implements OnPreferenceChangeListener {
|
||||
private static final String PREF_NAVIGATION_ERROR = "navigation_error";
|
||||
private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
|
||||
- private static final String PREF_SAFE_BROWSING_SCOUT_REPORTING =
|
||||
- "safe_browsing_scout_reporting";
|
||||
- private static final String PREF_SAFE_BROWSING = "safe_browsing";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "network_predictions";
|
||||
@@ -79,8 +76,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
// Remove preferences that were migrated to SyncAndServicesPreferences.
|
||||
preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
|
||||
preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
|
||||
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
|
||||
|
||||
@@ -114,17 +109,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
}
|
||||
|
||||
- // Listen to changes to the Extended Reporting pref.
|
||||
- ChromeBaseCheckBoxPreference scoutReportingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING);
|
||||
- scoutReportingPref.setOnPreferenceChangeListener(this);
|
||||
- scoutReportingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
-
|
||||
- ChromeBaseCheckBoxPreference safeBrowsingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
- safeBrowsingPref.setOnPreferenceChangeListener(this);
|
||||
- safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
-
|
||||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -133,11 +117,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
String key = preference.getKey();
|
||||
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
|
||||
- } else if (PREF_SAFE_BROWSING.equals(key)) {
|
||||
- PrefServiceBridge.getInstance().setSafeBrowsingEnabled((boolean) newValue);
|
||||
- } else if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
- PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled(
|
||||
- (boolean) newValue);
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
recordNetworkPredictionEnablingUMA((boolean) newValue);
|
||||
@@ -189,19 +168,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
searchSuggestionsPref.setChecked(prefServiceBridge.isSearchSuggestEnabled());
|
||||
}
|
||||
|
||||
- CheckBoxPreference extendedReportingPref =
|
||||
- (CheckBoxPreference) findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING);
|
||||
- if (extendedReportingPref != null) {
|
||||
- extendedReportingPref.setChecked(
|
||||
- prefServiceBridge.isSafeBrowsingExtendedReportingEnabled());
|
||||
- }
|
||||
-
|
||||
- CheckBoxPreference safeBrowsingPref =
|
||||
- (CheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
|
||||
- if (safeBrowsingPref != null) {
|
||||
- safeBrowsingPref.setChecked(prefServiceBridge.isSafeBrowsingEnabled());
|
||||
- }
|
||||
-
|
||||
CheckBoxPreference canMakePaymentPref =
|
||||
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
if (canMakePaymentPref != null) {
|
||||
@@ -250,12 +216,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
return prefs.isSearchSuggestManaged();
|
||||
}
|
||||
- if (PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
|
||||
- return prefs.isSafeBrowsingExtendedReportingManaged();
|
||||
- }
|
||||
- if (PREF_SAFE_BROWSING.equals(key)) {
|
||||
- return prefs.isSafeBrowsingManaged();
|
||||
- }
|
||||
if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
return prefs.isNetworkPredictionManaged();
|
||||
}
|
||||
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
|
||||
@@ -252,16 +252,6 @@ bool DoesOriginMatchEmbedderMask(int origin_type_mask,
|
||||
return false;
|
||||
}
|
||||
|
||||
-// Callback for when cookies have been deleted. Invokes NotifyIfDone.
|
||||
-// Receiving |cookie_manager| as a parameter so that the receive pipe is
|
||||
-// not deleted before the response is received.
|
||||
-void OnClearedCookies(base::OnceClosure done,
|
||||
- network::mojom::CookieManagerPtr cookie_manager,
|
||||
- uint32_t num_deleted) {
|
||||
- DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
- std::move(done).Run();
|
||||
-}
|
||||
-
|
||||
} // namespace
|
||||
|
||||
ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate(
|
||||
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
|
||||
--- a/chrome/browser/chrome_content_browser_client.cc
|
||||
+++ b/chrome/browser/chrome_content_browser_client.cc
|
||||
@@ -118,7 +118,6 @@
|
||||
#include "chrome/browser/safe_browsing/certificate_reporting_service.h"
|
||||
#include "chrome/browser/safe_browsing/certificate_reporting_service_factory.h"
|
||||
#include "chrome/browser/safe_browsing/chrome_password_protection_service.h"
|
||||
-#include "chrome/browser/safe_browsing/safe_browsing_navigation_throttle.h"
|
||||
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
||||
#include "chrome/browser/safe_browsing/ui_manager.h"
|
||||
#include "chrome/browser/safe_browsing/url_checker_delegate_impl.h"
|
||||
@@ -4346,11 +4345,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
|
||||
PreviewsLitePageDecider::MaybeCreateThrottleFor(handle);
|
||||
if (previews_lite_page_throttle)
|
||||
throttles.push_back(std::move(previews_lite_page_throttle));
|
||||
- if (base::FeatureList::IsEnabled(safe_browsing::kCommittedSBInterstitials)) {
|
||||
- throttles.push_back(
|
||||
- std::make_unique<safe_browsing::SafeBrowsingNavigationThrottle>(
|
||||
- handle));
|
||||
- }
|
||||
|
||||
#if defined(OS_WIN) || defined(OS_MACOSX) || \
|
||||
(defined(OS_LINUX) && !defined(OS_CHROMEOS))
|
||||
@@ -5303,19 +5297,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
|
||||
content::ResourceContext* resource_context) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
||||
|
||||
- ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
|
||||
- if (!io_data->safe_browsing_enabled()->GetValue())
|
||||
- return nullptr;
|
||||
-
|
||||
- // |safe_browsing_service_| may be unavailable in tests.
|
||||
- if (safe_browsing_service_ && !safe_browsing_url_checker_delegate_) {
|
||||
- safe_browsing_url_checker_delegate_ =
|
||||
- base::MakeRefCounted<safe_browsing::UrlCheckerDelegateImpl>(
|
||||
- safe_browsing_service_->database_manager(),
|
||||
- safe_browsing_service_->ui_manager());
|
||||
- }
|
||||
-
|
||||
- return safe_browsing_url_checker_delegate_.get();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
base::Optional<std::string>
|
||||
diff --git a/chrome/browser/component_updater/file_type_policies_component_installer.cc b/chrome/browser/component_updater/file_type_policies_component_installer.cc
|
||||
--- a/chrome/browser/component_updater/file_type_policies_component_installer.cc
|
||||
+++ b/chrome/browser/component_updater/file_type_policies_component_installer.cc
|
||||
@@ -18,7 +18,9 @@
|
||||
#include "base/stl_util.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/version.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "components/component_updater/component_updater_paths.h"
|
||||
|
||||
using component_updater::ComponentUpdateService;
|
||||
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
|
||||
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
|
||||
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
|
||||
@@ -39,8 +39,10 @@
|
||||
#include "chrome/browser/download/save_package_file_picker.h"
|
||||
#include "chrome/browser/platform_util.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_protection_util.h"
|
||||
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
|
||||
+#endif
|
||||
#include "chrome/browser/ui/browser.h"
|
||||
#include "chrome/browser/ui/browser_finder.h"
|
||||
#include "chrome/browser/ui/chrome_pages.h"
|
||||
@@ -51,7 +53,9 @@
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
#include "chrome/common/pdf_util.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "chrome/grit/generated_resources.h"
|
||||
#include "components/download/public/common/download_interrupt_reasons.h"
|
||||
#include "components/download/public/common/download_item.h"
|
||||
@@ -107,8 +111,10 @@ using content::DownloadManager;
|
||||
using download::DownloadItem;
|
||||
using download::DownloadPathReservationTracker;
|
||||
using download::PathValidationResult;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
using safe_browsing::DownloadProtectionService;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -761,19 +767,19 @@ ChromeDownloadManagerDelegate::ApplicationClientIdForFileScanning() const {
|
||||
return std::string(chrome::kApplicationClientIDStringForAVScanning);
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadProtectionService*
|
||||
ChromeDownloadManagerDelegate::GetDownloadProtectionService() {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
-#if defined(FULL_SAFE_BROWSING)
|
||||
safe_browsing::SafeBrowsingService* sb_service =
|
||||
g_browser_process->safe_browsing_service();
|
||||
if (sb_service && sb_service->download_protection_service() &&
|
||||
profile_->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled)) {
|
||||
return sb_service->download_protection_service();
|
||||
}
|
||||
-#endif
|
||||
return nullptr;
|
||||
}
|
||||
+#endif
|
||||
|
||||
void ChromeDownloadManagerDelegate::NotifyExtensions(
|
||||
DownloadItem* download,
|
||||
@@ -1216,13 +1222,17 @@ void ChromeDownloadManagerDelegate::OnDownloadTargetDetermined(
|
||||
DownloadItemModel(item).SetShouldPreferOpeningInBrowser(true);
|
||||
#endif
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadItemModel(item).SetDangerLevel(target_info->danger_level);
|
||||
+#endif
|
||||
}
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
if (ShouldBlockFile(target_info->danger_type, item)) {
|
||||
target_info->result = download::DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED;
|
||||
// A dangerous type would take precendence over the blocking of the file.
|
||||
target_info->danger_type = download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS;
|
||||
}
|
||||
+#endif
|
||||
|
||||
callback.Run(target_info->target_path, target_info->target_disposition,
|
||||
target_info->danger_type, target_info->intermediate_path,
|
||||
diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
|
||||
--- a/chrome/browser/download/chrome_download_manager_delegate.h
|
||||
+++ b/chrome/browser/download/chrome_download_manager_delegate.h
|
||||
@@ -21,8 +21,10 @@
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/download/download_target_determiner_delegate.h"
|
||||
#include "chrome/browser/download/download_target_info.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_protection_service.h"
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_protection_util.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "components/download/public/common/download_path_reservation_tracker.h"
|
||||
@@ -134,8 +136,10 @@ class ChromeDownloadManagerDelegate
|
||||
DownloadPrefs* download_prefs() { return download_prefs_.get(); }
|
||||
|
||||
protected:
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
virtual safe_browsing::DownloadProtectionService*
|
||||
GetDownloadProtectionService();
|
||||
+#endif
|
||||
|
||||
// Show file picker for |download|.
|
||||
virtual void ShowFilePickerForDownload(
|
||||
@@ -201,9 +205,11 @@ class ChromeDownloadManagerDelegate
|
||||
const content::NotificationSource& source,
|
||||
const content::NotificationDetails& details) override;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Callback function after the DownloadProtectionService completes.
|
||||
void CheckClientDownloadDone(uint32_t download_id,
|
||||
safe_browsing::DownloadCheckResult result);
|
||||
+#endif
|
||||
|
||||
// Internal gateways for ShouldCompleteDownload().
|
||||
bool IsDownloadReadyForCompletion(
|
||||
diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc
|
||||
--- a/chrome/browser/download/download_item_model.cc
|
||||
+++ b/chrome/browser/download/download_item_model.cc
|
||||
@@ -22,9 +22,11 @@
|
||||
#include "chrome/browser/download/download_stats.h"
|
||||
#include "chrome/browser/download/offline_item_utils.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/browser/safe_browsing/download_protection/download_feedback_service.h"
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "chrome/grit/chromium_strings.h"
|
||||
#include "chrome/grit/generated_resources.h"
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
@@ -37,7 +39,9 @@
|
||||
|
||||
using base::TimeDelta;
|
||||
using download::DownloadItem;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -67,9 +71,11 @@ class DownloadItemModelData : public base::SupportsUserData::Data {
|
||||
// for the file type.
|
||||
bool should_prefer_opening_in_browser_;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Danger level of the file determined based on the file type and whether
|
||||
// there was a user action associated with the download.
|
||||
DownloadFileType::DangerLevel danger_level_;
|
||||
+#endif
|
||||
|
||||
// Whether the download is currently being revived.
|
||||
bool is_being_revived_;
|
||||
@@ -106,7 +112,9 @@ DownloadItemModelData::DownloadItemModelData()
|
||||
: should_show_in_shelf_(true),
|
||||
was_ui_notified_(false),
|
||||
should_prefer_opening_in_browser_(false),
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level_(DownloadFileType::NOT_DANGEROUS),
|
||||
+#endif
|
||||
is_being_revived_(false) {}
|
||||
|
||||
} // namespace
|
||||
@@ -368,6 +376,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) {
|
||||
data->should_prefer_opening_in_browser_ = preference;
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const {
|
||||
const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
|
||||
return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS;
|
||||
@@ -378,6 +387,7 @@ void DownloadItemModel::SetDangerLevel(
|
||||
DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
|
||||
data->danger_level_ = danger_level;
|
||||
}
|
||||
+#endif
|
||||
|
||||
bool DownloadItemModel::IsBeingRevived() const {
|
||||
const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
|
||||
diff --git a/chrome/browser/download/download_item_model.h b/chrome/browser/download/download_item_model.h
|
||||
--- a/chrome/browser/download/download_item_model.h
|
||||
+++ b/chrome/browser/download/download_item_model.h
|
||||
@@ -11,7 +11,9 @@
|
||||
#include "base/macros.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "chrome/browser/download/download_ui_model.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_item.h"
|
||||
|
||||
// Implementation of DownloadUIModel that wrappers around a |DownloadItem*|. As
|
||||
@@ -48,9 +50,11 @@ class DownloadItemModel : public DownloadUIModel,
|
||||
void SetWasUINotified(bool should_notify) override;
|
||||
bool ShouldPreferOpeningInBrowser() const override;
|
||||
void SetShouldPreferOpeningInBrowser(bool preference) override;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
safe_browsing::DownloadFileType::DangerLevel GetDangerLevel() const override;
|
||||
void SetDangerLevel(
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level) override;
|
||||
+#endif
|
||||
void OpenUsingPlatformHandler() override;
|
||||
bool IsBeingRevived() const override;
|
||||
void SetIsBeingRevived(bool is_being_revived) override;
|
||||
diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc
|
||||
--- a/chrome/browser/download/download_prefs.cc
|
||||
+++ b/chrome/browser/download/download_prefs.cc
|
||||
@@ -33,7 +33,9 @@
|
||||
#include "chrome/common/chrome_features.h"
|
||||
#include "chrome/common/chrome_paths.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "components/pref_registry/pref_registry_syncable.h"
|
||||
#include "components/prefs/pref_service.h"
|
||||
@@ -55,7 +57,9 @@
|
||||
using content::BrowserContext;
|
||||
using content::BrowserThread;
|
||||
using content::DownloadManager;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::FileTypePolicies;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
|
||||
--- a/chrome/browser/download/download_target_determiner.cc
|
||||
+++ b/chrome/browser/download/download_target_determiner.cc
|
||||
@@ -23,7 +23,9 @@
|
||||
#include "chrome/browser/history/history_service_factory.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/common/pref_names.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
#include "chrome/grit/generated_resources.h"
|
||||
#include "components/download/public/common/download_interrupt_reasons.h"
|
||||
#include "components/history/core/browser/history_service.h"
|
||||
@@ -59,13 +61,16 @@
|
||||
using content::BrowserThread;
|
||||
using download::DownloadItem;
|
||||
using download::DownloadPathReservationTracker;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
+#endif
|
||||
|
||||
namespace {
|
||||
|
||||
const base::FilePath::CharType kCrdownloadSuffix[] =
|
||||
FILE_PATH_LITERAL(".crdownload");
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Condenses the results from HistoryService::GetVisibleVisitCountToHost() to a
|
||||
// single bool. A host is considered visited before if prior visible visits were
|
||||
// found in history and the first such visit was earlier than the most recent
|
||||
@@ -79,6 +84,7 @@ void VisitCountsToVisitedBefore(
|
||||
found_visits && count > 0 &&
|
||||
(first_visit.LocalMidnight() < base::Time::Now().LocalMidnight()));
|
||||
}
|
||||
+#endif
|
||||
|
||||
#if defined(OS_WIN)
|
||||
// Keeps track of whether Adobe Reader is up to date.
|
||||
@@ -103,7 +109,9 @@ DownloadTargetDeterminer::DownloadTargetDeterminer(
|
||||
create_target_directory_(false),
|
||||
conflict_action_(conflict_action),
|
||||
danger_type_(download->GetDangerType()),
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level_(DownloadFileType::NOT_DANGEROUS),
|
||||
+#endif
|
||||
virtual_path_(initial_virtual_path),
|
||||
is_filetype_handled_safely_(false),
|
||||
#if defined(OS_ANDROID)
|
||||
@@ -259,8 +267,12 @@ DownloadTargetDeterminer::Result
|
||||
// |suggested_filename| and Content-Disposition header have higher priority
|
||||
// than the URL.
|
||||
bool safe_file_ext =
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
!safe_browsing::FileTypePolicies::GetInstance()->IsCheckedBinaryFile(
|
||||
generated_filename);
|
||||
+#else
|
||||
+ true;
|
||||
+#endif
|
||||
net::HttpContentDisposition content_disposition_header(
|
||||
download_->GetContentDisposition(), referrer_charset);
|
||||
bool should_replace_extension =
|
||||
@@ -749,6 +761,7 @@ DownloadTargetDeterminer::Result
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// First determine the danger level assuming that the user doesn't have any
|
||||
// prior visits to the referrer recoreded in history. The resulting danger
|
||||
// level would be ALLOW_ON_USER_GESTURE if the level depends on the visit
|
||||
@@ -785,6 +798,7 @@ DownloadTargetDeterminer::Result
|
||||
// invalid, then assume the referrer has not been visited before.
|
||||
if (danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS)
|
||||
danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
|
||||
+#endif
|
||||
return CONTINUE;
|
||||
}
|
||||
|
||||
@@ -792,11 +806,13 @@ void DownloadTargetDeterminer::CheckVisitedReferrerBeforeDone(
|
||||
bool visited_referrer_before) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
DCHECK_EQ(STATE_DETERMINE_INTERMEDIATE_PATH, next_state_);
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level_ = GetDangerLevel(
|
||||
visited_referrer_before ? VISITED_REFERRER : NO_VISITS_TO_REFERRER);
|
||||
if (danger_level_ != DownloadFileType::NOT_DANGEROUS &&
|
||||
danger_type_ == download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS)
|
||||
danger_type_ = download::DOWNLOAD_DANGER_TYPE_DANGEROUS_FILE;
|
||||
+#endif
|
||||
DoLoop();
|
||||
}
|
||||
|
||||
@@ -901,7 +917,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
|
||||
<< " Intermediate:" << intermediate_path_.AsUTF8Unsafe()
|
||||
<< " Confirmation reason:" << static_cast<int>(confirmation_reason_)
|
||||
<< " Danger type:" << danger_type_
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
<< " Danger level:" << danger_level_
|
||||
+#endif
|
||||
<< " Result:" << static_cast<int>(result);
|
||||
std::unique_ptr<DownloadTargetInfo> target_info(new DownloadTargetInfo);
|
||||
|
||||
@@ -913,7 +931,9 @@ void DownloadTargetDeterminer::ScheduleCallbackAndDeleteSelf(
|
||||
? DownloadItem::TARGET_DISPOSITION_PROMPT
|
||||
: DownloadItem::TARGET_DISPOSITION_OVERWRITE);
|
||||
target_info->danger_type = danger_type_;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
target_info->danger_level = danger_level_;
|
||||
+#endif
|
||||
target_info->intermediate_path = intermediate_path_;
|
||||
target_info->mime_type = mime_type_;
|
||||
target_info->is_filetype_handled_safely = is_filetype_handled_safely_;
|
||||
@@ -999,6 +1019,7 @@ bool DownloadTargetDeterminer::HasPromptedForPath() const {
|
||||
DownloadItem::TARGET_DISPOSITION_PROMPT);
|
||||
}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
|
||||
PriorVisitsToReferrer visits) const {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
@@ -1030,6 +1051,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
|
||||
|
||||
return DownloadFileType::NOT_DANGEROUS;
|
||||
}
|
||||
+#endif
|
||||
|
||||
void DownloadTargetDeterminer::OnDownloadDestroyed(
|
||||
DownloadItem* download) {
|
||||
diff --git a/chrome/browser/download/download_target_determiner.h b/chrome/browser/download/download_target_determiner.h
|
||||
--- a/chrome/browser/download/download_target_determiner.h
|
||||
+++ b/chrome/browser/download/download_target_determiner.h
|
||||
@@ -16,7 +16,9 @@
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/download/download_target_determiner_delegate.h"
|
||||
#include "chrome/browser/download/download_target_info.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "components/download/public/common/download_path_reservation_tracker.h"
|
||||
@@ -300,6 +302,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
|
||||
// operation.
|
||||
bool HasPromptedForPath() const;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Returns true if this download should show the "dangerous file" warning.
|
||||
// Various factors are considered, such as the type of the file, whether a
|
||||
// user action initiated the download, and whether the user has explicitly
|
||||
@@ -309,6 +312,7 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
|
||||
// to true if the download requires explicit user consent.
|
||||
safe_browsing::DownloadFileType::DangerLevel GetDangerLevel(
|
||||
PriorVisitsToReferrer visits) const;
|
||||
+#endif
|
||||
|
||||
// download::DownloadItem::Observer
|
||||
void OnDownloadDestroyed(download::DownloadItem* download) override;
|
||||
@@ -321,7 +325,9 @@ class DownloadTargetDeterminer : public download::DownloadItem::Observer {
|
||||
download::DownloadPathReservationTracker::FilenameConflictAction
|
||||
conflict_action_;
|
||||
download::DownloadDangerType danger_type_;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level_;
|
||||
+#endif
|
||||
base::FilePath virtual_path_;
|
||||
base::FilePath local_path_;
|
||||
base::FilePath intermediate_path_;
|
||||
diff --git a/chrome/browser/download/download_target_info.cc b/chrome/browser/download/download_target_info.cc
|
||||
--- a/chrome/browser/download/download_target_info.cc
|
||||
+++ b/chrome/browser/download/download_target_info.cc
|
||||
@@ -4,12 +4,16 @@
|
||||
|
||||
#include "chrome/browser/download/download_target_info.h"
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/file_type_policies.h"
|
||||
+#endif
|
||||
|
||||
DownloadTargetInfo::DownloadTargetInfo()
|
||||
: target_disposition(download::DownloadItem::TARGET_DISPOSITION_OVERWRITE),
|
||||
danger_type(download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS),
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
danger_level(safe_browsing::DownloadFileType::NOT_DANGEROUS),
|
||||
+#endif
|
||||
is_filetype_handled_safely(false),
|
||||
result(download::DOWNLOAD_INTERRUPT_REASON_NONE) {}
|
||||
|
||||
diff --git a/chrome/browser/download/download_target_info.h b/chrome/browser/download/download_target_info.h
|
||||
--- a/chrome/browser/download/download_target_info.h
|
||||
+++ b/chrome/browser/download/download_target_info.h
|
||||
@@ -8,7 +8,9 @@
|
||||
#include <string>
|
||||
|
||||
#include "base/files/file_path.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_danger_type.h"
|
||||
#include "components/download/public/common/download_interrupt_reasons.h"
|
||||
#include "components/download/public/common/download_item.h"
|
||||
@@ -32,6 +34,7 @@ struct DownloadTargetInfo {
|
||||
// Danger type of the download.
|
||||
download::DownloadDangerType danger_type;
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// The danger type of the download could be set to MAYBE_DANGEROUS_CONTENT if
|
||||
// the file type is handled by SafeBrowsing. However, if the SafeBrowsing
|
||||
// service is unable to verify whether the file is safe or not, we are on our
|
||||
@@ -57,6 +60,7 @@ struct DownloadTargetInfo {
|
||||
// SafeBrowsing may flag the file as being malicious, in which case the
|
||||
// malicious classification should take precedence.
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level;
|
||||
+#endif
|
||||
|
||||
// Suggested intermediate path. The downloaded bytes should be written to this
|
||||
// path until all the bytes are available and the user has accepted a
|
||||
diff --git a/chrome/browser/download/download_ui_model.cc b/chrome/browser/download/download_ui_model.cc
|
||||
--- a/chrome/browser/download/download_ui_model.cc
|
||||
+++ b/chrome/browser/download/download_ui_model.cc
|
||||
@@ -25,7 +25,9 @@
|
||||
|
||||
using base::TimeDelta;
|
||||
using download::DownloadItem;
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
using safe_browsing::DownloadFileType;
|
||||
+#endif
|
||||
using offline_items_collection::FailState;
|
||||
|
||||
namespace {
|
||||
@@ -389,12 +391,14 @@ bool DownloadUIModel::ShouldPreferOpeningInBrowser() const {
|
||||
|
||||
void DownloadUIModel::SetShouldPreferOpeningInBrowser(bool preference) {}
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
DownloadFileType::DangerLevel DownloadUIModel::GetDangerLevel() const {
|
||||
return DownloadFileType::NOT_DANGEROUS;
|
||||
}
|
||||
|
||||
void DownloadUIModel::SetDangerLevel(
|
||||
DownloadFileType::DangerLevel danger_level) {}
|
||||
+#endif
|
||||
|
||||
void DownloadUIModel::OpenUsingPlatformHandler() {}
|
||||
|
||||
diff --git a/chrome/browser/download/download_ui_model.h b/chrome/browser/download/download_ui_model.h
|
||||
--- a/chrome/browser/download/download_ui_model.h
|
||||
+++ b/chrome/browser/download/download_ui_model.h
|
||||
@@ -14,7 +14,9 @@
|
||||
#include "base/strings/string16.h"
|
||||
#include "build/build_config.h"
|
||||
#include "chrome/browser/profiles/profile_manager.h"
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
#include "chrome/common/safe_browsing/download_file_types.pb.h"
|
||||
+#endif
|
||||
#include "components/download/public/common/download_item.h"
|
||||
#include "components/offline_items_collection/core/offline_item.h"
|
||||
|
||||
@@ -172,6 +174,7 @@ class DownloadUIModel {
|
||||
// Change what's returned by ShouldPreferOpeningInBrowser to |preference|.
|
||||
virtual void SetShouldPreferOpeningInBrowser(bool preference);
|
||||
|
||||
+#if defined(FULL_SAFE_BROWSING)
|
||||
// Return the danger level determined during download target determination.
|
||||
// The value returned here is independent of the danger level as determined by
|
||||
// the Safe Browsing.
|
||||
@@ -180,6 +183,7 @@ class DownloadUIModel {
|
||||
// Change what's returned by GetDangerLevel().
|
||||
virtual void SetDangerLevel(
|
||||
safe_browsing::DownloadFileType::DangerLevel danger_level);
|
||||
+#endif
|
||||
|
||||
// Open the download using the platform handler for the download. The behavior
|
||||
// of this method will be different from DownloadItem::OpenDownload() if
|
||||
diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
||||
--- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
||||
+++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
|
||||
@@ -399,7 +399,9 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
|
||||
content::ResourceContext* resource_context,
|
||||
ResourceType resource_type,
|
||||
std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
|
||||
+#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
|
||||
ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
|
||||
+#endif // defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
|
||||
|
||||
// Insert safe browsing to decide if the resource is safe.
|
||||
content::ResourceThrottle* first_throttle = NULL;
|
||||
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
|
||||
--- a/chrome/browser/net/chrome_network_delegate.cc
|
||||
+++ b/chrome/browser/net/chrome_network_delegate.cc
|
||||
@@ -78,19 +78,6 @@ namespace {
|
||||
|
||||
bool g_access_to_all_files_enabled = false;
|
||||
|
||||
-// Gets called when the extensions finish work on the URL. If the extensions
|
||||
-// did not do a redirect (so |new_url| is empty) then we enforce the
|
||||
-// SafeSearch parameters. Otherwise we will get called again after the
|
||||
-// redirect and we enforce SafeSearch then.
|
||||
-void ForceGoogleSafeSearchCallbackWrapper(net::CompletionOnceCallback callback,
|
||||
- net::URLRequest* request,
|
||||
- GURL* new_url,
|
||||
- int rv) {
|
||||
- if (rv == net::OK && new_url->is_empty())
|
||||
- safe_search_util::ForceGoogleSafeSearch(request->url(), new_url);
|
||||
- std::move(callback).Run(rv);
|
||||
-}
|
||||
-
|
||||
bool IsAccessAllowedInternal(const base::FilePath& path,
|
||||
const base::FilePath& profile_path) {
|
||||
if (g_access_to_all_files_enabled)
|
||||
@@ -212,26 +199,8 @@ int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
GURL* new_url) {
|
||||
extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
|
||||
- // The non-redirect case is handled in GoogleURLLoaderThrottle.
|
||||
- bool force_safe_search =
|
||||
- (force_google_safe_search_ && force_google_safe_search_->GetValue() &&
|
||||
- request->is_redirecting());
|
||||
-
|
||||
- net::CompletionOnceCallback wrapped_callback = std::move(callback);
|
||||
-
|
||||
- if (force_safe_search) {
|
||||
- wrapped_callback = base::BindOnce(
|
||||
- &ForceGoogleSafeSearchCallbackWrapper, std::move(wrapped_callback),
|
||||
- base::Unretained(request), base::Unretained(new_url));
|
||||
- }
|
||||
-
|
||||
- int rv = extensions_delegate_->NotifyBeforeURLRequest(
|
||||
- request, std::move(wrapped_callback), new_url);
|
||||
-
|
||||
- if (force_safe_search && rv == net::OK && new_url->is_empty())
|
||||
- safe_search_util::ForceGoogleSafeSearch(request->url(), new_url);
|
||||
-
|
||||
- return rv;
|
||||
+ return extensions_delegate_->NotifyBeforeURLRequest(
|
||||
+ request, std::move(callback), new_url);
|
||||
}
|
||||
|
||||
int ChromeNetworkDelegate::OnBeforeStartTransaction(
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
From: AlexeyBarabash <alexey@brave.com>
|
||||
Date: Thu, 2 Nov 2017 18:21:16 +0200
|
||||
Subject: Allow playing audio in background
|
||||
|
||||
---
|
||||
chrome/browser/about_flags.cc | 4 ++++
|
||||
media/blink/webmediaplayer_impl.cc | 12 +++++++++++-
|
||||
media/blink/webmediaplayer_impl.h | 2 ++
|
||||
3 files changed, 17 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1400,6 +1400,10 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"debug-packed-apps", flag_descriptions::kDebugPackedAppName,
|
||||
flag_descriptions::kDebugPackedAppDescription, kOsDesktop,
|
||||
SINGLE_VALUE_TYPE(switches::kDebugPackedApps)},
|
||||
+ {"resume-background-video",
|
||||
+ flag_descriptions::kResumeBackgroundVideoName,
|
||||
+ flag_descriptions::kResumeBackgroundVideoDescription, kOsAll,
|
||||
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
|
||||
{"automatic-password-generation",
|
||||
flag_descriptions::kAutomaticPasswordGenerationName,
|
||||
flag_descriptions::kAutomaticPasswordGenerationDescription, kOsAll,
|
||||
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
|
||||
--- a/media/blink/webmediaplayer_impl.cc
|
||||
+++ b/media/blink/webmediaplayer_impl.cc
|
||||
@@ -961,6 +961,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
return pipeline_metadata_.has_audio;
|
||||
}
|
||||
|
||||
+bool WebMediaPlayerImpl::HasVideoNonEmptySize() const {
|
||||
+ DCHECK(main_task_runner_->BelongsToCurrentThread());
|
||||
+
|
||||
+ return pipeline_metadata_.has_video && pipeline_metadata_.natural_size.width() != 0 && pipeline_metadata_.natural_size.height() != 0;
|
||||
+}
|
||||
+
|
||||
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
|
||||
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
|
||||
DCHECK(main_task_runner_->BelongsToCurrentThread());
|
||||
@@ -3205,7 +3211,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||
// Audio only stream is allowed to play when in background.
|
||||
// TODO: We should check IsBackgroundOptimizationCandidate here. But we need
|
||||
// to move the logic of checking video frames out of that function.
|
||||
- if (!HasVideo())
|
||||
+
|
||||
+ //pipeline_metadata_.has_video is true for MediaPlayerRenderer,
|
||||
+ //see media/base/pipeline_metadata.h. This is a workaround to allow audio
|
||||
+ //streams be played in background.
|
||||
+ if (!HasVideoNonEmptySize())
|
||||
return false;
|
||||
|
||||
if (!is_background_video_playback_enabled_)
|
||||
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
|
||||
--- a/media/blink/webmediaplayer_impl.h
|
||||
+++ b/media/blink/webmediaplayer_impl.h
|
||||
@@ -142,6 +142,8 @@ class MEDIA_BLINK_EXPORT WebMediaPlayerImpl
|
||||
// True if the loaded media has a playable video/audio track.
|
||||
bool HasVideo() const override;
|
||||
bool HasAudio() const override;
|
||||
+ // True is has video and it's frame size is not zero
|
||||
+ bool HasVideoNonEmptySize() const;
|
||||
|
||||
void EnabledAudioTracksChanged(
|
||||
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds)
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ Disable prefs::kSigninAllowedOnNextStartup by default. The setting can be found
|
||||
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
|
||||
@@ -175,7 +175,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
@@ -126,7 +126,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
|
||||
registry->RegisterBooleanPref(prefs::kAccountConsistencyMirrorRequired,
|
||||
false);
|
||||
#endif
|
||||
+1
-1
@@ -9,7 +9,7 @@ Subject: Always allow partner customisation
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
@@ -242,14 +242,14 @@ public class PartnerBrowserCustomizations {
|
||||
@@ -244,14 +244,14 @@ public class PartnerBrowserCustomizations {
|
||||
@Override
|
||||
protected Void doInBackground() {
|
||||
try {
|
||||
+2
-2
@@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration
|
||||
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
|
||||
--- a/chrome/browser/net/system_network_context_manager.cc
|
||||
+++ b/chrome/browser/net/system_network_context_manager.cc
|
||||
@@ -216,7 +216,7 @@ void OnAuthPrefsChanged(PrefService* local_state,
|
||||
@@ -228,7 +228,7 @@ void OnAuthPrefsChanged(PrefService* local_state,
|
||||
// Android this includes checking the Android version in the field trial.
|
||||
bool ShouldEnableAsyncDns() {
|
||||
bool feature_can_be_enabled = true;
|
||||
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
|
||||
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
|
||||
--- a/components/cronet/url_request_context_config.cc
|
||||
+++ b/components/cronet/url_request_context_config.cc
|
||||
@@ -476,7 +476,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
@@ -544,7 +544,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
|
||||
effective_experimental_options->Remove(it.key(), nullptr);
|
||||
continue;
|
||||
}
|
||||
@@ -0,0 +1,234 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 17 Mar 2019 20:51:11 +0100
|
||||
Subject: Always show home page settings
|
||||
|
||||
Remove the "Force Enable Home Page Button" flag, which was bugged, and always
|
||||
display home page settings.
|
||||
This allows removing the home page button and restoring it from settings.
|
||||
---
|
||||
.../browser/init/ProcessInitializationHandler.java | 12 --------
|
||||
.../partnercustomizations/HomepageManager.java | 17 ++---------
|
||||
.../preferences/ChromePreferenceManager.java | 7 -----
|
||||
.../browser/preferences/MainPreferences.java | 12 +++-----
|
||||
.../chrome/browser/util/FeatureUtilities.java | 34 ----------------------
|
||||
chrome/browser/about_flags.cc | 3 --
|
||||
chrome/browser/android/chrome_feature_list.cc | 4 ---
|
||||
chrome/browser/android/chrome_feature_list.h | 1 -
|
||||
8 files changed, 7 insertions(+), 83 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
|
||||
@@ -338,18 +338,6 @@ public class ProcessInitializationHandler {
|
||||
deferredStartupHandler.addDeferredTask(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
- if (HomepageManager.shouldShowHomepageSetting()) {
|
||||
- RecordHistogram.recordBooleanHistogram("Settings.ShowHomeButtonPreferenceState",
|
||||
- HomepageManager.isHomepageEnabled());
|
||||
- RecordHistogram.recordBooleanHistogram("Settings.HomePageIsCustomized",
|
||||
- !HomepageManager.getInstance().getPrefHomepageUseDefaultUri());
|
||||
- }
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- deferredStartupHandler.addDeferredTask(new Runnable() {
|
||||
- @Override
|
||||
- public void run() {
|
||||
// Starts syncing with GSA.
|
||||
AppHooks.get().createGsaHelper().startSync();
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
@@ -83,10 +83,7 @@ public class HomepageManager {
|
||||
* @return Whether or not homepage is enabled.
|
||||
*/
|
||||
public static boolean isHomepageEnabled() {
|
||||
- if (FeatureUtilities.isHomePageButtonForceEnabled()) {
|
||||
- return getInstance().getPrefHomepageEnabled();
|
||||
- }
|
||||
- return false;
|
||||
+ return getInstance().getPrefHomepageEnabled();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -98,13 +95,6 @@ public class HomepageManager {
|
||||
}
|
||||
|
||||
/**
|
||||
- * @return Whether or not homepage setting should be shown.
|
||||
- */
|
||||
- public static boolean shouldShowHomepageSetting() {
|
||||
- return FeatureUtilities.isHomePageButtonForceEnabled();
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
* @return Homepage URI string, if it's enabled. Null otherwise or uninitialized.
|
||||
*/
|
||||
public static String getHomepageUri() {
|
||||
@@ -118,8 +108,7 @@ public class HomepageManager {
|
||||
}
|
||||
|
||||
/**
|
||||
- * @return The default homepage URI if the homepage is partner provided or the new tab page
|
||||
- * if the homepage button is force enabled via flag.
|
||||
+ * @return The default homepage URI.
|
||||
*/
|
||||
public static String getDefaultHomepageUri() {
|
||||
return UrlConstants.NTP_NON_NATIVE_URL;
|
||||
@@ -132,7 +121,7 @@ public class HomepageManager {
|
||||
* @see #isHomepageEnabled
|
||||
*/
|
||||
public boolean getPrefHomepageEnabled() {
|
||||
- return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, true);
|
||||
+ return mSharedPreferences.getBoolean(PREF_HOMEPAGE_ENABLED, false);
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
|
||||
@@ -147,13 +147,6 @@ public class ChromePreferenceManager {
|
||||
private static final String CHROME_MODERN_DESIGN_ENABLED_KEY = "chrome_modern_design_enabled";
|
||||
|
||||
/**
|
||||
- * Whether or not the home page button is force enabled.
|
||||
- * Default value is false.
|
||||
- */
|
||||
- public static final String HOME_PAGE_BUTTON_FORCE_ENABLED_KEY =
|
||||
- "home_page_button_force_enabled";
|
||||
-
|
||||
- /**
|
||||
* Whether or not the homepage tile will be shown.
|
||||
* Default value is false.
|
||||
*/
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
@@ -208,15 +208,11 @@ public class MainPreferences extends PreferenceFragment
|
||||
updateSyncAndServicesPreference();
|
||||
updateSearchEnginePreference();
|
||||
|
||||
- if (HomepageManager.shouldShowHomepageSetting()) {
|
||||
- Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
|
||||
- if (FeatureUtilities.isNewTabPageButtonEnabled()) {
|
||||
- homepagePref.setTitle(R.string.options_startup_page_title);
|
||||
- }
|
||||
- setOnOffSummary(homepagePref, HomepageManager.getInstance().getPrefHomepageEnabled());
|
||||
- } else {
|
||||
- removePreferenceIfPresent(PREF_HOMEPAGE);
|
||||
+ Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
|
||||
+ if (FeatureUtilities.isNewTabPageButtonEnabled()) {
|
||||
+ homepagePref.setTitle(R.string.options_startup_page_title);
|
||||
}
|
||||
+ setOnOffSummary(homepagePref, HomepageManager.getInstance().getPrefHomepageEnabled());
|
||||
|
||||
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)
|
||||
&& FeatureUtilities.areContextualSuggestionsEnabled(getActivity())
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
|
||||
@@ -74,7 +74,6 @@ public class FeatureUtilities {
|
||||
private static Boolean sHasRecognitionIntentHandler;
|
||||
|
||||
private static Boolean sIsSoleEnabled;
|
||||
- private static Boolean sIsHomePageButtonForceEnabled;
|
||||
private static Boolean sIsHomepageTileEnabled;
|
||||
private static Boolean sIsNewTabPageButtonEnabled;
|
||||
private static Boolean sIsBottomToolbarEnabled;
|
||||
@@ -196,7 +195,6 @@ public class FeatureUtilities {
|
||||
cacheSoleEnabled();
|
||||
cacheCommandLineOnNonRootedEnabled();
|
||||
FirstRunUtils.cacheFirstRunPrefs();
|
||||
- cacheHomePageButtonForceEnabled();
|
||||
cacheHomepageTileEnabled();
|
||||
cacheNewTabPageButtonEnabled();
|
||||
cacheBottomToolbarEnabled();
|
||||
@@ -232,38 +230,6 @@ public class FeatureUtilities {
|
||||
return Build.VERSION.SDK_INT > Build.VERSION_CODES.M;
|
||||
}
|
||||
|
||||
- /**
|
||||
- * Cache whether or not the home page button is force enabled so on next startup, the value can
|
||||
- * be made available immediately.
|
||||
- */
|
||||
- public static void cacheHomePageButtonForceEnabled() {
|
||||
- if (PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled()) return;
|
||||
- ChromePreferenceManager.getInstance().writeBoolean(
|
||||
- ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY,
|
||||
- ChromeFeatureList.isEnabled(ChromeFeatureList.HOME_PAGE_BUTTON_FORCE_ENABLED));
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * @return Whether or not the home page button is force enabled.
|
||||
- */
|
||||
- public static boolean isHomePageButtonForceEnabled() {
|
||||
- if (sIsHomePageButtonForceEnabled == null) {
|
||||
- ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance();
|
||||
-
|
||||
- sIsHomePageButtonForceEnabled = prefManager.readBoolean(
|
||||
- ChromePreferenceManager.HOME_PAGE_BUTTON_FORCE_ENABLED_KEY, false);
|
||||
- }
|
||||
- return sIsHomePageButtonForceEnabled;
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Resets whether the home page button is enabled for tests. After this is called, the next
|
||||
- * call to #isHomePageButtonForceEnabled() will retrieve the value from shared preferences.
|
||||
- */
|
||||
- public static void resetHomePageButtonForceEnabledForTests() {
|
||||
- sIsHomePageButtonForceEnabled = null;
|
||||
- }
|
||||
-
|
||||
private static void cacheServiceManagerForBackgroundPrefetch() {
|
||||
boolean backgroundPrefetchInReducedMode = ChromeFeatureList.isEnabled(
|
||||
ChromeFeatureList.SERVICE_MANAGER_FOR_BACKGROUND_PREFETCH);
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1576,9 +1576,6 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-chrome-duet", flag_descriptions::kChromeDuetName,
|
||||
flag_descriptions::kChromeDuetDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kChromeDuetFeature)},
|
||||
- {"force-enable-home-page-button", flag_descriptions::kHomePageButtonName,
|
||||
- flag_descriptions::kHomePageButtonDescription, kOsAndroid,
|
||||
- FEATURE_VALUE_TYPE(chrome::android::kHomePageButtonForceEnabled)},
|
||||
{"enable-ntp-button", flag_descriptions::kNtpButtonName,
|
||||
flag_descriptions::kNtpButtonDescription, kOsAndroid,
|
||||
FEATURE_VALUE_TYPE(chrome::android::kNTPButton)},
|
||||
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/android/chrome_feature_list.cc
|
||||
@@ -140,7 +140,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
|
||||
&kExploreSites,
|
||||
&kHandleMediaIntents,
|
||||
&kHideUserDataFromIncognitoNotifications,
|
||||
- &kHomePageButtonForceEnabled,
|
||||
&kHomepageTile,
|
||||
&kHorizontalTabSwitcherAndroid,
|
||||
&kImmersiveUiMode,
|
||||
@@ -405,9 +404,6 @@ const base::Feature kHandleMediaIntents{"HandleMediaIntents",
|
||||
const base::Feature kHideUserDataFromIncognitoNotifications{
|
||||
"HideUserDataFromIncognitoNotifications", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
-const base::Feature kHomePageButtonForceEnabled{
|
||||
- "HomePageButtonForceEnabled", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
-
|
||||
const base::Feature kHomepageTile{"HomepageTile",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h
|
||||
--- a/chrome/browser/android/chrome_feature_list.h
|
||||
+++ b/chrome/browser/android/chrome_feature_list.h
|
||||
@@ -70,7 +70,6 @@ extern const base::Feature kExploreSites;
|
||||
extern const base::Feature kForegroundNotificationManager;
|
||||
extern const base::Feature kHandleMediaIntents;
|
||||
extern const base::Feature kHideUserDataFromIncognitoNotifications;
|
||||
-extern const base::Feature kHomePageButtonForceEnabled;
|
||||
extern const base::Feature kHomepageTile;
|
||||
extern const base::Feature kHorizontalTabSwitcherAndroid;
|
||||
extern const base::Feature kImmersiveUiMode;
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+16
-6
@@ -1,16 +1,26 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 27 Jun 2018 11:02:38 +0200
|
||||
Subject: Change default homepage to new tab page
|
||||
Subject: Always use new tab page for default home page
|
||||
|
||||
Disable any partner-provided home page.
|
||||
Ignore any partner-provided home page.
|
||||
---
|
||||
.../chrome/browser/partnercustomizations/HomepageManager.java | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
.../chrome/browser/partnercustomizations/HomepageManager.java | 10 +++-------
|
||||
1 file changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/partnercustomizations/HomepageManager.java
|
||||
@@ -102,8 +102,7 @@ public class HomepageManager {
|
||||
@@ -83,8 +83,7 @@ public class HomepageManager {
|
||||
* @return Whether or not homepage is enabled.
|
||||
*/
|
||||
public static boolean isHomepageEnabled() {
|
||||
- if (PartnerBrowserCustomizations.isHomepageProviderAvailableAndEnabled()
|
||||
- || FeatureUtilities.isHomePageButtonForceEnabled()) {
|
||||
+ if (FeatureUtilities.isHomePageButtonForceEnabled()) {
|
||||
return getInstance().getPrefHomepageEnabled();
|
||||
}
|
||||
return false;
|
||||
@@ -102,8 +101,7 @@ public class HomepageManager {
|
||||
* @return Whether or not homepage setting should be shown.
|
||||
*/
|
||||
public static boolean shouldShowHomepageSetting() {
|
||||
@@ -20,7 +30,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/partnercustomiz
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -124,9 +123,7 @@ public class HomepageManager {
|
||||
@@ -124,9 +122,7 @@ public class HomepageManager {
|
||||
* if the homepage button is force enabled via flag.
|
||||
*/
|
||||
public static String getDefaultHomepageUri() {
|
||||
+14
-14
@@ -16,16 +16,16 @@ diff --git a/third_party/blink/renderer/modules/webaudio/analyser_node.idl b/thi
|
||||
|
||||
// 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);
|
||||
- [HighEntropy, Measure] void getFloatFrequencyData(Float32Array array);
|
||||
- [HighEntropy, Measure] void getByteFrequencyData(Uint8Array array);
|
||||
+ //[HighEntropy, Measure] void getFloatFrequencyData(Float32Array array);
|
||||
+ //[HighEntropy, Measure] void getByteFrequencyData(Uint8Array array);
|
||||
|
||||
// Real-time waveform data
|
||||
- void getFloatTimeDomainData(Float32Array array);
|
||||
- void getByteTimeDomainData(Uint8Array array);
|
||||
+ //void getFloatTimeDomainData(Float32Array array);
|
||||
+ //void getByteTimeDomainData(Uint8Array array);
|
||||
- [HighEntropy, Measure] void getFloatTimeDomainData(Float32Array array);
|
||||
- [HighEntropy, Measure] void getByteTimeDomainData(Uint8Array array);
|
||||
+ //[HighEntropy, Measure] void getFloatTimeDomainData(Float32Array array);
|
||||
+ //[HighEntropy, Measure] 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
|
||||
@@ -34,23 +34,23 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir
|
||||
|
||||
// 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);
|
||||
- [HighEntropy, Measure, RaisesException] Float32Array getChannelData(unsigned long channelIndex);
|
||||
- [HighEntropy, Measure, RaisesException] void copyFromChannel(Float32Array destination, long channelNumber, optional unsigned long startInChannel = 0);
|
||||
+ //[HighEntropy, Measure, RaisesException] Float32Array getChannelData(unsigned long channelIndex);
|
||||
+ //[HighEntropy, Measure, 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
|
||||
@@ -320,6 +320,7 @@ void AudioContext::StopRendering() {
|
||||
@@ -333,6 +333,7 @@ void AudioContext::StopRendering() {
|
||||
double AudioContext::baseLatency() const {
|
||||
DCHECK(IsMainThread());
|
||||
DCHECK(destination());
|
||||
+ return 0.04;
|
||||
|
||||
// TODO(hongchan): Due to the incompatible constructor between
|
||||
// AudioDestinationNode and DefaultAudioDestinationNode, casting directly from
|
||||
// AudioDestinationNode and RealtimeAudioDestinationNode, casting directly
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+5
-5
@@ -9,7 +9,7 @@ Subject: Battery API: return nothing
|
||||
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) {
|
||||
@@ -44,45 +44,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
|
||||
}
|
||||
|
||||
bool BatteryManager::charging() {
|
||||
@@ -49,13 +49,13 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
|
||||
- return;
|
||||
-
|
||||
- if (battery_status_.Charging() != old_status.Charging())
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::chargingchange));
|
||||
- DispatchEvent(*Event::Create(event_type_names::kChargingchange));
|
||||
- if (battery_status_.charging_time() != old_status.charging_time())
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::chargingtimechange));
|
||||
- DispatchEvent(*Event::Create(event_type_names::kChargingtimechange));
|
||||
- if (battery_status_.discharging_time() != old_status.discharging_time())
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::dischargingtimechange));
|
||||
- DispatchEvent(*Event::Create(event_type_names::kDischargingtimechange));
|
||||
- if (battery_status_.Level() != old_status.Level())
|
||||
- DispatchEvent(*Event::Create(EventTypeNames::levelchange));
|
||||
- DispatchEvent(*Event::Create(event_type_names::kLevelchange));
|
||||
}
|
||||
|
||||
void BatteryManager::RegisterWithDispatcher() {
|
||||
+334
-153
@@ -10,23 +10,130 @@ Add menu option to toggle global Adblock preference
|
||||
Allow toggling Chromium's "ads enabled" content settings option together with Bromite adblock engine.
|
||||
Perform adblock interception in StartJob to address lagging issues
|
||||
New mechanism for adblocking based on Brave's adblocking hook
|
||||
Add support for Webview content blocking
|
||||
---
|
||||
android_webview/browser/net/aw_network_delegate.cc | 71 ++++
|
||||
android_webview/browser/net/aw_network_delegate.h | 3 +
|
||||
chrome/android/java/res/menu/custom_tabs_menu.xml | 12 +
|
||||
chrome/android/java/res/menu/main_menu.xml | 11 +
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 8 +
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 8 +
|
||||
.../browser/appmenu/AppMenuPropertiesDelegate.java | 38 +++
|
||||
.../browser/appmenu/AppMenuPropertiesDelegate.java | 38 ++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 2 +
|
||||
.../java/strings/android_chrome_strings.grd | 11 +
|
||||
chrome/browser/net/chrome_network_delegate.cc | 83 ++++--
|
||||
chrome/browser/net/chrome_network_delegate.cc | 86 +++++
|
||||
.../subresource_filter_content_settings_manager.cc | 1 +
|
||||
net/BUILD.gn | 7 +
|
||||
net/url_request/adblock_intercept.cc | 325 +++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 24 ++
|
||||
12 files changed, 510 insertions(+), 20 deletions(-)
|
||||
net/url_request/adblock_intercept.cc | 389 +++++++++++++++++++++
|
||||
net/url_request/adblock_intercept.h | 35 ++
|
||||
14 files changed, 682 insertions(+)
|
||||
create mode 100644 net/url_request/adblock_intercept.cc
|
||||
create mode 100644 net/url_request/adblock_intercept.h
|
||||
|
||||
diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webview/browser/net/aw_network_delegate.cc
|
||||
--- a/android_webview/browser/net/aw_network_delegate.cc
|
||||
+++ b/android_webview/browser/net/aw_network_delegate.cc
|
||||
@@ -20,9 +20,11 @@
|
||||
#include "net/base/proxy_server.h"
|
||||
#include "net/http/http_response_headers.h"
|
||||
#include "net/proxy_resolution/proxy_info.h"
|
||||
+#include "net/url_request/adblock_intercept.h"
|
||||
#include "net/url_request/url_request.h"
|
||||
|
||||
using content::BrowserThread;
|
||||
+using content::ResourceRequestInfo;
|
||||
|
||||
namespace android_webview {
|
||||
|
||||
@@ -49,6 +51,75 @@ AwNetworkDelegate::AwNetworkDelegate() {}
|
||||
AwNetworkDelegate::~AwNetworkDelegate() {
|
||||
}
|
||||
|
||||
+#define TRANSPARENT1PXGIF "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
||||
+#define EMPTYJS "data:text/javascript;base64,Cg=="
|
||||
+#define EMPTYCSS "data:text/css;base64,Cg=="
|
||||
+
|
||||
+static bool requestIntercepted(net::URLRequest* request, GURL* new_url) {
|
||||
+ bool block = false, isValidUrl;
|
||||
+
|
||||
+ // skip invalid URLs and browser-initiated requests (which have no initiator)
|
||||
+ auto initiator = request->initiator();
|
||||
+ isValidUrl = request->url().is_valid() && initiator.has_value();
|
||||
+ std::string scheme = request->url().scheme();
|
||||
+ if (isValidUrl && scheme.length()) {
|
||||
+ std::transform(scheme.begin(), scheme.end(), scheme.begin(), ::tolower);
|
||||
+ if ("http" != scheme && "https" != scheme) {
|
||||
+ isValidUrl = false;
|
||||
+ }
|
||||
+ }
|
||||
+ ResourceRequestInfo* info;
|
||||
+ if (isValidUrl) {
|
||||
+ info = ResourceRequestInfo::ForRequest(request);
|
||||
+ }
|
||||
+
|
||||
+ // there are no per-site nor global ad/content settings when using the SystemWebView
|
||||
+ bool adblock_enabled = true;
|
||||
+ if (isValidUrl && info) {
|
||||
+ auto resource_type = info->GetResourceType();
|
||||
+
|
||||
+ if (adblock_enabled
|
||||
+ && content::ResourceType::kMainFrame != resource_type
|
||||
+ && net::adblock_intercept(request->url(), initiator->host(), resource_type)) {
|
||||
+ block = true;
|
||||
+ }
|
||||
+
|
||||
+ if (block) {
|
||||
+ switch (resource_type) {
|
||||
+ case content::ResourceType::kImage:
|
||||
+ case content::ResourceType::kFavicon:
|
||||
+ *new_url = GURL(TRANSPARENT1PXGIF);
|
||||
+ break;
|
||||
+ case content::ResourceType::kScript:
|
||||
+ *new_url = GURL(EMPTYJS);
|
||||
+ break;
|
||||
+ case content::ResourceType::kStylesheet:
|
||||
+ *new_url = GURL(EMPTYCSS);
|
||||
+ break;
|
||||
+ default:
|
||||
+ *new_url = GURL("");
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ } // valid URL and info
|
||||
+ return false;
|
||||
+}
|
||||
+#undef TRANSPARENT1PXGIF
|
||||
+#undef EMPTYJS
|
||||
+#undef EMPTYCSS
|
||||
+
|
||||
+int AwNetworkDelegate::OnBeforeURLRequest(net::URLRequest* request,
|
||||
+ net::CompletionOnceCallback callback,
|
||||
+ GURL* new_url) {
|
||||
+ if (request) {
|
||||
+ // most requests will be modified rather than intercepted
|
||||
+ if (requestIntercepted(request, new_url))
|
||||
+ return net::ERR_BLOCKED_BY_ADMINISTRATOR;
|
||||
+ } // request
|
||||
+
|
||||
+ return net::OK;
|
||||
+}
|
||||
+
|
||||
int AwNetworkDelegate::OnBeforeStartTransaction(
|
||||
net::URLRequest* request,
|
||||
net::CompletionOnceCallback callback,
|
||||
diff --git a/android_webview/browser/net/aw_network_delegate.h b/android_webview/browser/net/aw_network_delegate.h
|
||||
--- a/android_webview/browser/net/aw_network_delegate.h
|
||||
+++ b/android_webview/browser/net/aw_network_delegate.h
|
||||
@@ -22,6 +22,9 @@ class AwNetworkDelegate : public net::NetworkDelegateImpl {
|
||||
|
||||
private:
|
||||
// NetworkDelegate implementation.
|
||||
+ int OnBeforeURLRequest(net::URLRequest* request,
|
||||
+ net::CompletionOnceCallback callback,
|
||||
+ GURL* new_url) override;
|
||||
int OnBeforeStartTransaction(net::URLRequest* request,
|
||||
net::CompletionOnceCallback callback,
|
||||
net::HttpRequestHeaders* headers) override;
|
||||
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
|
||||
@@ -73,7 +180,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2205,6 +2205,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2263,6 +2263,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
@@ -91,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
|
||||
@@ -1676,6 +1676,14 @@ public class ChromeTabbedActivity
|
||||
@@ -1776,6 +1776,14 @@ public class ChromeTabbedActivity
|
||||
reportNewTabShortcutUsed(true);
|
||||
getTabCreator(true).launchNTP();
|
||||
}
|
||||
@@ -109,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
|
||||
@@ -208,6 +208,8 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -195,6 +195,8 @@ public class AppMenuPropertiesDelegate {
|
||||
&& !TextUtils.isEmpty(url);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem);
|
||||
|
||||
@@ -118,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
@@ -486,6 +488,42 @@ public class AppMenuPropertiesDelegate {
|
||||
@@ -488,6 +490,42 @@ public class AppMenuPropertiesDelegate {
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,7 +283,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
||||
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
--- a/chrome/android/java/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/android/java/strings/android_chrome_strings.grd
|
||||
@@ -2997,6 +2997,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
@@ -3150,6 +3150,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></ph>reset sync<p
|
||||
<message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
|
||||
Turn on Request desktop site
|
||||
</message>
|
||||
@@ -205,7 +312,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
||||
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
|
||||
#include "chrome/browser/custom_handlers/protocol_handler_registry.h"
|
||||
#include "chrome/browser/net/chrome_extensions_network_delegate.h"
|
||||
@@ -60,6 +61,7 @@
|
||||
@@ -59,6 +60,7 @@
|
||||
#if defined(OS_ANDROID)
|
||||
#include "base/android/path_utils.h"
|
||||
#include "chrome/browser/io_thread.h"
|
||||
@@ -213,41 +320,20 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
||||
#endif
|
||||
|
||||
#if defined(OS_CHROMEOS)
|
||||
@@ -207,34 +209,75 @@ void ChromeNetworkDelegate::set_cookie_settings(
|
||||
@@ -193,10 +195,94 @@ void ChromeNetworkDelegate::set_cookie_settings(
|
||||
cookie_settings_ = cookie_settings;
|
||||
}
|
||||
|
||||
+#define TRANSPARENT1PXGIF "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
|
||||
+#define EMPTYJS "data:text/javascript;base64,Cg=="
|
||||
+#define EMPTYCSS "data:text/css;base64,Cg=="
|
||||
+
|
||||
int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
net::URLRequest* request,
|
||||
net::CompletionOnceCallback callback,
|
||||
GURL* new_url) {
|
||||
- extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
-
|
||||
- // The non-redirect case is handled in GoogleURLLoaderThrottle.
|
||||
- bool force_safe_search =
|
||||
- (force_google_safe_search_ && force_google_safe_search_->GetValue() &&
|
||||
- request->is_redirecting());
|
||||
-
|
||||
- net::CompletionOnceCallback wrapped_callback = std::move(callback);
|
||||
-
|
||||
- if (force_safe_search) {
|
||||
- wrapped_callback = base::BindOnce(
|
||||
- &ForceGoogleSafeSearchCallbackWrapper, std::move(wrapped_callback),
|
||||
- base::Unretained(request), base::Unretained(new_url));
|
||||
- }
|
||||
|
||||
- int rv = extensions_delegate_->NotifyBeforeURLRequest(
|
||||
- request, std::move(wrapped_callback), new_url);
|
||||
-
|
||||
- if (force_safe_search && rv == net::OK && new_url->is_empty())
|
||||
- safe_search_util::ForceGoogleSafeSearch(request->url(), new_url);
|
||||
+#if defined(OS_ANDROID)
|
||||
+ if (request) {
|
||||
+static bool requestIntercepted(net::URLRequest* request, GURL* new_url) {
|
||||
+ bool block = false, isValidUrl;
|
||||
+
|
||||
+ isValidUrl = request->url().is_valid();
|
||||
+ // skip invalid URLs and browser-initiated requests (which have no initiator)
|
||||
+ auto initiator = request->initiator();
|
||||
+ isValidUrl = request->url().is_valid() && initiator.has_value();
|
||||
+ std::string scheme = request->url().scheme();
|
||||
+ if (isValidUrl && scheme.length()) {
|
||||
+ std::transform(scheme.begin(), scheme.end(), scheme.begin(), ::tolower);
|
||||
@@ -255,7 +341,10 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
||||
+ isValidUrl = false;
|
||||
+ }
|
||||
+ }
|
||||
+ const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request);
|
||||
+ ResourceRequestInfo* info;
|
||||
+ if (isValidUrl) {
|
||||
+ info = ResourceRequestInfo::ForRequest(request);
|
||||
+ }
|
||||
+
|
||||
+ bool adblock_enabled = false;
|
||||
+ if (isValidUrl && info) {
|
||||
@@ -278,37 +367,54 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ auto resource_type = info->GetResourceType();
|
||||
+
|
||||
+ if (adblock_enabled
|
||||
+ && content::RESOURCE_TYPE_MAIN_FRAME != info->GetResourceType()
|
||||
+ && net::adblock_intercept(request->url(),
|
||||
+ request->initiator()->host(),
|
||||
+ info->GetResourceType())) {
|
||||
+ && content::ResourceType::kMainFrame != resource_type
|
||||
+ && net::adblock_intercept(request->url(), initiator->host(), resource_type)) {
|
||||
+ block = true;
|
||||
+ }
|
||||
+
|
||||
+ if (block) {
|
||||
+ if (content::RESOURCE_TYPE_IMAGE == info->GetResourceType()) {
|
||||
+ *new_url = GURL(TRANSPARENT1PXGIF);
|
||||
+ } else {
|
||||
+ *new_url = GURL("");
|
||||
+ switch (resource_type) {
|
||||
+ case content::ResourceType::kImage:
|
||||
+ case content::ResourceType::kFavicon:
|
||||
+ *new_url = GURL(TRANSPARENT1PXGIF);
|
||||
+ break;
|
||||
+ case content::ResourceType::kScript:
|
||||
+ *new_url = GURL(EMPTYJS);
|
||||
+ break;
|
||||
+ case content::ResourceType::kStylesheet:
|
||||
+ *new_url = GURL(EMPTYCSS);
|
||||
+ break;
|
||||
+ default:
|
||||
+ *new_url = GURL("");
|
||||
+ return true;
|
||||
+ }
|
||||
+ return net::ERR_BLOCKED_BY_ADMINISTRATOR;
|
||||
+ }
|
||||
+ } // valid URL and info
|
||||
+ } // request
|
||||
+#endif // OS_ANDROID
|
||||
|
||||
- return rv;
|
||||
+ extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
+ return extensions_delegate_->NotifyBeforeURLRequest(
|
||||
+ request, std::move(callback), new_url);
|
||||
}
|
||||
|
||||
+ return false;
|
||||
+}
|
||||
+#undef TRANSPARENT1PXGIF
|
||||
+#undef EMPTYJS
|
||||
+#undef EMPTYCSS
|
||||
+
|
||||
int ChromeNetworkDelegate::OnBeforeStartTransaction(
|
||||
int ChromeNetworkDelegate::OnBeforeURLRequest(
|
||||
net::URLRequest* request,
|
||||
net::CompletionOnceCallback callback,
|
||||
GURL* new_url) {
|
||||
+
|
||||
+#if defined(OS_ANDROID)
|
||||
+ if (request) {
|
||||
+ // most requests will be modified rather than intercepted
|
||||
+ if (requestIntercepted(request, new_url))
|
||||
+ return net::ERR_BLOCKED_BY_ADMINISTRATOR;
|
||||
+ } // request
|
||||
+#endif // OS_ANDROID
|
||||
+
|
||||
extensions_delegate_->ForwardStartRequestStatus(request);
|
||||
|
||||
return extensions_delegate_->NotifyBeforeURLRequest(
|
||||
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
|
||||
@@ -323,7 +429,7 @@ diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settin
|
||||
diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
--- a/net/BUILD.gn
|
||||
+++ b/net/BUILD.gn
|
||||
@@ -1731,6 +1731,13 @@ component("net") {
|
||||
@@ -1797,6 +1797,13 @@ component("net") {
|
||||
"url_request/websocket_handshake_userdata_key.h",
|
||||
]
|
||||
|
||||
@@ -336,13 +442,29 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
+
|
||||
if (enable_reporting) {
|
||||
sources += [
|
||||
"network_error_logging/network_error_logging_delegate.cc",
|
||||
"network_error_logging/network_error_logging_service.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,325 @@
|
||||
+#include "url/gurl.h"
|
||||
@@ -0,0 +1,389 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+#include "adblock_intercept.h"
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
+#include <cstddef>
|
||||
@@ -354,7 +476,6 @@ new file mode 100644
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+#include "content/public/common/resource_type.h"
|
||||
+#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
||||
+#include <android/log.h>
|
||||
+
|
||||
@@ -374,7 +495,8 @@ new file mode 100644
|
||||
+// 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) {
|
||||
+static bool is_first_party(const char *l_host, int len, const char *l_url_host,
|
||||
+ int b_len) {
|
||||
+ size_t tld_length;
|
||||
+
|
||||
+#ifdef ADB_TESTER
|
||||
@@ -393,15 +515,14 @@ new file mode 100644
|
||||
+ return false;
|
||||
+#endif
|
||||
+
|
||||
+ int len = strlen(l_host);
|
||||
+ char *tld = l_host + len - tld_length;
|
||||
+ const 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;
|
||||
+ const char *domain = l_host;
|
||||
+ for (; i >= 0; i--) {
|
||||
+ if (l_host[i] == '.') {
|
||||
+ int p_len = top_i - i;
|
||||
@@ -425,7 +546,6 @@ new file mode 100644
|
||||
+#endif
|
||||
+
|
||||
+ // Check if supplied URL host matches, including the dot.
|
||||
+ int b_len = strlen(l_url_host);
|
||||
+ if (b_len < len) {
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -438,26 +558,38 @@ new file mode 100644
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+static char *strtolower(const char *str) {
|
||||
+ int len = strlen(str);
|
||||
+ char *ret = (char *)malloc(len + 1);
|
||||
+ ret[len] = '\0';
|
||||
+static char *strtolower(const char *str, int len, bool &should_free) {
|
||||
+ char *ret = NULL;
|
||||
+ for (int i = 0; i < len; i++) {
|
||||
+ if ((65 <= str[i]) && (str[i] <= 90)) {
|
||||
+ // first time a difference is found, allocate buffer and copy previous
|
||||
+ // characters (if any)
|
||||
+ if (ret == NULL) {
|
||||
+ ret = (char *)malloc(len + 1);
|
||||
+ if (i != 0)
|
||||
+ memcpy(ret, str, i);
|
||||
+ }
|
||||
+ // convert character to lower case
|
||||
+ ret[i] = str[i] + 32;
|
||||
+ } else {
|
||||
+ ret[i] = str[i];
|
||||
+ if (ret != NULL)
|
||||
+ ret[i] = str[i];
|
||||
+ }
|
||||
+ }
|
||||
+ return ret;
|
||||
+
|
||||
+ if (ret != NULL) {
|
||||
+ ret[len] = '\0';
|
||||
+ should_free = true;
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ // return source, unchanged
|
||||
+ return (char *)str;
|
||||
+}
|
||||
+
|
||||
+static char *strtosep(const char *str) {
|
||||
+ int len = strlen(str);
|
||||
+static char *strtosep(const char *str, int len) {
|
||||
+ 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] == '=')) {
|
||||
@@ -466,6 +598,9 @@ new file mode 100644
|
||||
+ ret[i + 1] = str[i];
|
||||
+ }
|
||||
+ }
|
||||
+ // the index 'len' character is set by the previous loop
|
||||
+ ret[len + 1] = '^';
|
||||
+ ret[len + 2] = '\0';
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
@@ -552,9 +687,9 @@ new file mode 100644
|
||||
+ return match_domain;
|
||||
+}
|
||||
+
|
||||
+static bool url_match_party(adblock_entry *entry, const GURL &url,
|
||||
+ const std::string &origin_host, bool &checked_fp,
|
||||
+ bool &fp) {
|
||||
+static bool url_match_party(adblock_entry *entry, const char *l_origin_host,
|
||||
+ int origin_host_len, const char *l_url_host,
|
||||
+ int url_host_len, bool &checked_fp, bool &fp) {
|
||||
+ bool wanted_fp;
|
||||
+ if ((entry->flags & ADBLOCK_FLAG_THIRD_PARTY) != 0) {
|
||||
+ wanted_fp = false;
|
||||
@@ -565,104 +700,139 @@ new file mode 100644
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ if (origin_host.empty()) {
|
||||
+ if (origin_host_len == 0) {
|
||||
+ // 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);
|
||||
+ fp = is_first_party(l_origin_host, origin_host_len, l_url_host,
|
||||
+ url_host_len);
|
||||
+
|
||||
+ checked_fp = true;
|
||||
+#ifdef ADB_TESTER
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG,
|
||||
+ "is_first_party(\"%s\", \"%s\") = %s", l_host,
|
||||
+ "is_first_party(\"%s\", \"%s\") = %s", l_origin_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
|
||||
+#ifndef ADB_TESTER
|
||||
+, content::ResourceType resource_type
|
||||
+static bool resource_type_match(adblock_entry *entry,
|
||||
+ content::ResourceType resource_type) {
|
||||
+ bool exclude;
|
||||
+ if ((entry->flags & ADBLOCK_FLAG_RESOURCE_TYPE_IN) != 0) {
|
||||
+ exclude = false;
|
||||
+ } else if ((entry->flags & ADBLOCK_FLAG_RESOURCE_TYPE_NOT_IN) != 0) {
|
||||
+ exclude = true;
|
||||
+ } else {
|
||||
+ // no resource type matching
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ // use a bitwise trick to test for the current resource type
|
||||
+ bool found = (entry->flags & (int(resource_type) << 16));
|
||||
+ if (!exclude)
|
||||
+ return found;
|
||||
+ return !found;
|
||||
+}
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host,
|
||||
+ content::ResourceType resource_type) {
|
||||
+ // these are verified on caller when not testing
|
||||
+#ifdef ADB_TESTER
|
||||
+ if (!url.is_valid() || !url.SchemeIsHTTPOrHTTPS()) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+#endif
|
||||
+) {
|
||||
+ 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);
|
||||
+
|
||||
+ bool free1 = false, free2 = false, free3 = false, free4 = false;
|
||||
+ int url_len = url.spec().size();
|
||||
+ const char *c_url = url.spec().c_str();
|
||||
+ char *c_url_lower = strtolower(c_url, url_len, free1);
|
||||
+ char *c_url_sep = strtosep(c_url, url_len);
|
||||
+ char *c_url_lower_sep = strtolower(c_url_sep, url_len + 2, free4);
|
||||
+
|
||||
+ // might be empty in case of no host
|
||||
+ const char *origin_host_cstr = origin_host.c_str();
|
||||
+ int origin_host_len = origin_host.size(), url_host_len = url.host().size();
|
||||
+
|
||||
+ // lower-case version of origin and url hosts
|
||||
+ const char *c_origin_host_lower =
|
||||
+ strtolower(origin_host_cstr, origin_host_len, free2),
|
||||
+ *c_url_host_lower =
|
||||
+ strtolower(url.host().c_str(), url_host_len, free3);
|
||||
+
|
||||
+#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());
|
||||
+ __android_log_print(ANDROID_LOG_INFO, LOG_TAG, "[%s with host '%s'] [%s]",
|
||||
+ c_url, url.host().c_str(), origin_host_cstr);
|
||||
+#endif
|
||||
+
|
||||
+ bool checked_fp = false, fp = false;
|
||||
+ bool checked_fp = false, fp = false;
|
||||
+
|
||||
+ bool intercept = false;
|
||||
+ for (int i = 0; i < ADBLOCK_ENTRY_COUNT; i++) {
|
||||
+ adblock_entry *entry = &ADBLOCK_ENTRIES[i];
|
||||
+ 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;
|
||||
+ // 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 for resource type
|
||||
+ if (!resource_type_match(entry, resource_type))
|
||||
+ continue;
|
||||
+
|
||||
+ // check on the URL matcher
|
||||
+ if (!url_matches(c_url, c_url_sep, c_url_lower, c_url_lower_sep, entry))
|
||||
+ continue;
|
||||
+ // check for domain matches, a quick branch out if not matching
|
||||
+ if (!url_match_domain(entry, origin_host))
|
||||
+ continue;
|
||||
+
|
||||
+ // finally check first/third-party
|
||||
+ if (!url_match_party(entry, url, origin_host, checked_fp, fp))
|
||||
+ 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, c_origin_host_lower, origin_host_len,
|
||||
+ c_url_host_lower, url_host_len, 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);
|
||||
+ }
|
||||
+ 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
|
||||
+ intercept = !intercept;
|
||||
+ } // for each entry
|
||||
+
|
||||
+ free(c_url_sep);
|
||||
+ if (free3)
|
||||
+ free((void *)c_url_host_lower);
|
||||
+ if (free2)
|
||||
+ free((void *)c_origin_host_lower);
|
||||
+ free(c_url_sep);
|
||||
+ if (free1)
|
||||
+ free(c_url_lower);
|
||||
+ if (free4)
|
||||
+ free(c_url_lower_sep);
|
||||
+
|
||||
+ if (intercept) {
|
||||
+ 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");
|
||||
+ __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;
|
||||
+}
|
||||
+
|
||||
@@ -671,15 +841,29 @@ diff --git a/net/url_request/adblock_intercept.h b/net/url_request/adblock_inter
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/net/url_request/adblock_intercept.h
|
||||
@@ -0,0 +1,24 @@
|
||||
@@ -0,0 +1,35 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+#ifndef NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+#define NET_URL_REQUEST_ADBLOCK_INTERCEPT_H_
|
||||
+
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+#ifndef ADB_TESTER
|
||||
+#include "content/public/common/resource_type.h"
|
||||
+#endif
|
||||
+#include "url/gurl.h"
|
||||
+
|
||||
+namespace net {
|
||||
+
|
||||
@@ -687,11 +871,8 @@ new file mode 100644
|
||||
+int adblock_rules_count();
|
||||
+#endif
|
||||
+
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host
|
||||
+#ifndef ADB_TESTER
|
||||
+, content::ResourceType resource_type
|
||||
+#endif
|
||||
+);
|
||||
+int adblock_intercept(const GURL &url, const std::string &origin_host,
|
||||
+ content::ResourceType resource_type);
|
||||
+
|
||||
+} // namespace net
|
||||
+
|
||||
+8
-8
@@ -27,10 +27,10 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
|
||||
|
||||
-#include "base/rand_util.h"
|
||||
-
|
||||
#include "third_party/blink/public/common/features.h"
|
||||
#include "third_party/blink/public/platform/platform.h"
|
||||
#include "third_party/blink/public/platform/task_type.h"
|
||||
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
|
||||
@@ -788,7 +786,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
@@ -799,7 +797,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
GetState().GetTextAlign(), text);
|
||||
|
||||
// scale text metrics by 3/1000000th
|
||||
@@ -46,7 +46,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.
|
||||
|
||||
WebGLDebugRendererInfo* WebGLDebugRendererInfo::Create(
|
||||
WebGLRenderingContextBase* context) {
|
||||
- return new WebGLDebugRendererInfo(context);
|
||||
- return MakeGarbageCollected<WebGLDebugRendererInfo>(context);
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.
|
||||
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
|
||||
--- a/third_party/blink/renderer/platform/BUILD.gn
|
||||
+++ b/third_party/blink/renderer/platform/BUILD.gn
|
||||
@@ -1432,7 +1432,9 @@ jumbo_component("platform") {
|
||||
@@ -1435,7 +1435,9 @@ jumbo_component("platform") {
|
||||
"//third_party/blink/renderer:non_test_config",
|
||||
]
|
||||
|
||||
@@ -82,7 +82,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b
|
||||
#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
|
||||
#include "third_party/blink/renderer/platform/image-encoders/image_encoder.h"
|
||||
#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
@@ -128,6 +130,9 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type,
|
||||
@@ -127,6 +129,9 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type,
|
||||
const SkPixmap& pixmap) const {
|
||||
DCHECK(is_valid_);
|
||||
|
||||
@@ -108,11 +108,11 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
|
||||
#include "third_party/skia/include/core/SkCanvas.h"
|
||||
#include "third_party/skia/include/core/SkImage.h"
|
||||
#include "third_party/skia/include/core/SkPaint.h"
|
||||
+#include "third_party/skia/src/core/SkColorData.h"
|
||||
+#include "third_party/skia/include/private/SkColorData.h"
|
||||
#include "third_party/skia/include/core/SkSurface.h"
|
||||
#include "third_party/skia/include/gpu/GrContext.h"
|
||||
|
||||
@@ -176,10 +179,163 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
#include "v8/include/v8.h"
|
||||
@@ -152,10 +155,163 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
|
||||
DCHECK(read_pixels_successful ||
|
||||
!sk_image->bounds().intersect(SkIRect::MakeXYWH(
|
||||
rect.X(), rect.Y(), info.width(), info.height())));
|
||||
@@ -0,0 +1,32 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Thu, 12 Oct 2017 08:15:17 +0200
|
||||
Subject: Disable NTP remote suggestions by default
|
||||
|
||||
---
|
||||
components/ntp_snippets/features.cc | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
|
||||
--- a/components/ntp_snippets/features.cc
|
||||
+++ b/components/ntp_snippets/features.cc
|
||||
@@ -41,7 +41,7 @@ const base::Feature* const kAllFeatures[] = {
|
||||
&kRemoteSuggestionsBackendFeature};
|
||||
|
||||
const base::Feature kArticleSuggestionsFeature{
|
||||
- "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ "NTPArticleSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kRemoteSuggestionsEmulateM58FetchingSchedule{
|
||||
"RemoteSuggestionsEmulateM58FetchingSchedule",
|
||||
@@ -71,7 +71,7 @@ const char kNotificationsDailyLimit[] = "daily_limit";
|
||||
const char kNotificationsIgnoredLimitParam[] = "ignored_limit";
|
||||
|
||||
const base::Feature kKeepPrefetchedContentSuggestions{
|
||||
- "KeepPrefetchedContentSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ "KeepPrefetchedContentSuggestions", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kContentSuggestionsDebugLog{
|
||||
"ContentSuggestionsDebugLog", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 26 Nov 2017 23:11:56 +0100
|
||||
Subject: Disable Omaha update checks
|
||||
|
||||
Do not consider Jelly Bean unsupported
|
||||
---
|
||||
.../android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java | 2 +-
|
||||
.../java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java | 2 +-
|
||||
chrome/browser/android/chrome_feature_list.cc | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
|
||||
@@ -134,7 +134,7 @@ public class OmahaBase {
|
||||
|
||||
/** See {@link #sIsDisabled}. */
|
||||
static boolean isDisabled() {
|
||||
- return sIsDisabled;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
|
||||
@@ -42,7 +42,7 @@ public class VersionNumberGetter {
|
||||
private static VersionNumberGetter sInstanceForTests;
|
||||
|
||||
/** If false, OmahaClient will never report that a newer version is available. */
|
||||
- private static boolean sEnableUpdateDetection = true;
|
||||
+ private static boolean sEnableUpdateDetection = false;
|
||||
|
||||
protected VersionNumberGetter() { }
|
||||
|
||||
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/android/chrome_feature_list.cc
|
||||
@@ -428,7 +428,7 @@ const base::Feature kIntentBlockExternalFormRedirectsNoGesture{
|
||||
base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kJellyBeanSupported{"JellyBeanSupported",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kLanguagesPreference{"LanguagesPreference",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ Subject: Disable WebRTC by default
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -85,10 +85,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -82,10 +82,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
false);
|
||||
#endif
|
||||
// TODO(guoweis): Remove next 2 options at M50.
|
||||
@@ -0,0 +1,23 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 23 Nov 2016 09:26:51 -0500
|
||||
Subject: Disable contextual search by default
|
||||
|
||||
---
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -153,7 +153,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterStringPref(
|
||||
prefs::kContextualSearchEnabled,
|
||||
- std::string(),
|
||||
+ "false",
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
#endif // defined(OS_ANDROID)
|
||||
registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true);
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 27 Oct 2017 15:53:37 +0200
|
||||
Subject: Disable data saver
|
||||
|
||||
---
|
||||
.../datareduction/DataReductionPreferenceFragment.java | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPreferenceFragment.java
|
||||
@@ -50,10 +50,10 @@ public class DataReductionPreferenceFragment extends PreferenceFragment {
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.data_reduction_preferences);
|
||||
getActivity().setTitle(DataReductionBrandingResourceProvider.getDataSaverBrandedString(
|
||||
R.string.data_reduction_title));
|
||||
- boolean isEnabled = DataReductionProxySettings.getInstance().isDataReductionProxyEnabled();
|
||||
- mIsEnabled = !isEnabled;
|
||||
- mWasEnabledAtCreation = isEnabled;
|
||||
- updatePreferences(isEnabled);
|
||||
+
|
||||
+ mIsEnabled = false;
|
||||
+ mWasEnabledAtCreation = false;
|
||||
+ updatePreferences(false);
|
||||
|
||||
setHasOptionsMenu(true);
|
||||
|
||||
@@ -153,6 +153,7 @@ public class DataReductionPreferenceFragment extends PreferenceFragment {
|
||||
}
|
||||
|
||||
private void createDataReductionSwitch(boolean isEnabled) {
|
||||
+ if (false) {
|
||||
final ChromeSwitchPreference dataReductionSwitch =
|
||||
new ChromeSwitchPreference(getActivity(), null);
|
||||
dataReductionSwitch.setKey(PREF_DATA_REDUCTION_SWITCH);
|
||||
@@ -180,5 +181,6 @@ public class DataReductionPreferenceFragment extends PreferenceFragment {
|
||||
// (e.g. the switch will say "On" when data reduction is really turned off), so
|
||||
// .setChecked() should be called after .addPreference()
|
||||
dataReductionSwitch.setChecked(isEnabled);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 20 May 2019 23:14:36 +0200
|
||||
Subject: Disable dynamic module loading
|
||||
|
||||
---
|
||||
chrome/android/chrome_java_sources.gni | 13 ----------
|
||||
.../browser/customtabs/CustomTabActivity.java | 18 -------------
|
||||
.../customtabs/CustomTabIntentDataProvider.java | 17 ++----------
|
||||
.../browser/customtabs/CustomTabsConnection.java | 30 ----------------------
|
||||
.../CustomTabActivityComponent.java | 4 ---
|
||||
5 files changed, 2 insertions(+), 80 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -479,19 +479,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/customtabs/content/TabCreationMode.java",
|
||||
"java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java",
|
||||
"java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityModule.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityDelegate.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityDelegatePostMessageBackend.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityHostImpl.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleConstants.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleCoordinator.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleNavigationEventObserver.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModulePageLoadObserver.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/DynamicModuleToolbarController.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleEntryPoint.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleHostImpl.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleLoader.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleMetrics.java",
|
||||
- "java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ObjectWrapper.java",
|
||||
"java/src/org/chromium/chrome/browser/database/SQLiteCursor.java",
|
||||
"java/src/org/chromium/chrome/browser/datareduction/DataReductionBrandingResourceProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/datareduction/DataReductionMainMenuItem.java",
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
@@ -62,7 +62,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvid
|
||||
import org.chromium.chrome.browser.customtabs.content.TabCreationMode;
|
||||
import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityComponent;
|
||||
import org.chromium.chrome.browser.customtabs.dependency_injection.CustomTabActivityModule;
|
||||
-import org.chromium.chrome.browser.customtabs.dynamicmodule.DynamicModuleCoordinator;
|
||||
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
|
||||
import org.chromium.chrome.browser.firstrun.FirstRunSignInProcessor;
|
||||
import org.chromium.chrome.browser.gsa.GSAState;
|
||||
@@ -133,9 +132,6 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
|
||||
|
||||
private final CustomTabsConnection mConnection = CustomTabsConnection.getInstance();
|
||||
|
||||
- @Nullable
|
||||
- private DynamicModuleCoordinator mDynamicModuleCoordinator;
|
||||
-
|
||||
private ActivityTabTaskDescriptionHelper mTaskDescriptionHelper;
|
||||
|
||||
private CustomTabNightModeStateController mNightModeStateController;
|
||||
@@ -315,12 +311,6 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
|
||||
public void finishNativeInitialization() {
|
||||
if (!mIntentDataProvider.isInfoPage()) FirstRunSignInProcessor.start(this);
|
||||
|
||||
- // Try to initialize dynamic module early to enqueue navigation events
|
||||
- // @see DynamicModuleNavigationEventObserver
|
||||
- if (mIntentDataProvider.isDynamicModuleEnabled()) {
|
||||
- mDynamicModuleCoordinator = getComponent().resolveDynamicModuleCoordinator();
|
||||
- }
|
||||
-
|
||||
LayoutManager layoutDriver = new LayoutManager(getCompositorViewHolder());
|
||||
initializeCompositorContent(layoutDriver, findViewById(R.id.url_bar),
|
||||
(ViewGroup) findViewById(android.R.id.content),
|
||||
@@ -461,10 +451,6 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
|
||||
WebContents webContents = tab == null ? null : tab.getWebContents();
|
||||
mConnection.resetPostMessageHandlerForSession(
|
||||
mIntentDataProvider.getSession(), webContents);
|
||||
-
|
||||
- if (mDynamicModuleCoordinator != null) {
|
||||
- mDynamicModuleCoordinator.resetPostMessageHandlersForCurrentSession(null);
|
||||
- }
|
||||
}
|
||||
|
||||
private void initalizePreviewsObserver() {
|
||||
@@ -926,10 +912,6 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
|
||||
if (mIntentDataProvider.isTrustedWebActivity()) {
|
||||
component.resolveTrustedWebActivityCoordinator();
|
||||
}
|
||||
- if (mConnection.shouldHideTopBarOnModuleManagedUrlsForSession(
|
||||
- mIntentDataProvider.getSession())) {
|
||||
- component.resolveDynamicModuleToolbarController();
|
||||
- }
|
||||
|
||||
return component;
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.ChromeVersionInfo;
|
||||
import org.chromium.chrome.browser.IntentHandler;
|
||||
import org.chromium.chrome.browser.UrlConstants;
|
||||
import org.chromium.chrome.browser.browserservices.BrowserSessionDataProvider;
|
||||
-import org.chromium.chrome.browser.customtabs.dynamicmodule.ModuleMetrics;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
import org.chromium.chrome.browser.util.ColorUtils;
|
||||
@@ -826,20 +825,8 @@ public class CustomTabIntentDataProvider extends BrowserSessionDataProvider {
|
||||
// even receive the extras for using the feature.
|
||||
if (componentName == null) return false;
|
||||
|
||||
- if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CCT_MODULE)) {
|
||||
- Log.w(TAG, "The %s feature is disabled.", ChromeFeatureList.CCT_MODULE);
|
||||
- ModuleMetrics.recordLoadResult(ModuleMetrics.LoadResult.FEATURE_DISABLED);
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- ExternalAuthUtils authUtils = ChromeApplication.getComponent().resolveExternalAuthUtils();
|
||||
- if (!authUtils.isGoogleSigned(componentName.getPackageName())) {
|
||||
- Log.w(TAG, "The %s package is not Google-signed.", componentName.getPackageName());
|
||||
- ModuleMetrics.recordLoadResult(ModuleMetrics.LoadResult.NOT_GOOGLE_SIGNED);
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- return true;
|
||||
+ Log.w(TAG, "The %s feature is disabled.", ChromeFeatureList.CCT_MODULE);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||
@@ -57,8 +57,6 @@ import org.chromium.chrome.browser.WarmupManager;
|
||||
import org.chromium.chrome.browser.browserservices.BrowserSessionContentUtils;
|
||||
import org.chromium.chrome.browser.browserservices.Origin;
|
||||
import org.chromium.chrome.browser.browserservices.PostMessageHandler;
|
||||
-import org.chromium.chrome.browser.customtabs.dynamicmodule.ModuleLoader;
|
||||
-import org.chromium.chrome.browser.customtabs.dynamicmodule.ModuleMetrics;
|
||||
import org.chromium.chrome.browser.device.DeviceClassManager;
|
||||
import org.chromium.chrome.browser.init.ChainedTasks;
|
||||
import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
|
||||
@@ -214,7 +212,6 @@ public class CustomTabsConnection {
|
||||
|
||||
private volatile ChainedTasks mWarmupTasks;
|
||||
|
||||
- private @Nullable ModuleLoader mModuleLoader;
|
||||
/**
|
||||
* <strong>DO NOT CALL</strong>
|
||||
* Public to be instanciable from {@link ChromeApplication}. This is however
|
||||
@@ -1323,7 +1320,6 @@ public class CustomTabsConnection {
|
||||
if (ChromeApplication.isSevereMemorySignal(level)) {
|
||||
getInstance().mClientManager.cleanupUnusedSessions();
|
||||
}
|
||||
- if (getInstance().mModuleLoader != null) getInstance().mModuleLoader.onTrimMemory(level);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -1464,32 +1460,6 @@ public class CustomTabsConnection {
|
||||
CustomTabsSessionToken session, String url, String origin, int referrerPolicy,
|
||||
@DetachedResourceRequestMotivation int motivation);
|
||||
|
||||
- public ModuleLoader getModuleLoader(ComponentName componentName, @Nullable String assetName) {
|
||||
- if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CCT_MODULE_DEX_LOADING)) {
|
||||
- assetName = null;
|
||||
- }
|
||||
-
|
||||
- if (mModuleLoader != null) {
|
||||
- boolean isComponentNameChanged =
|
||||
- !componentName.equals(mModuleLoader.getComponentName());
|
||||
- boolean isAssetNameChanged =
|
||||
- !TextUtils.equals(assetName, mModuleLoader.getDexAssetName());
|
||||
- ModuleLoader.ModuleApkVersion newModuleApkVersion =
|
||||
- ModuleLoader.ModuleApkVersion.getModuleVersion(componentName.getPackageName());
|
||||
- boolean isModuleVersionChanged =
|
||||
- !mModuleLoader.getModuleApkVersion().equals(newModuleApkVersion);
|
||||
-
|
||||
- if (isComponentNameChanged || isAssetNameChanged || isModuleVersionChanged) {
|
||||
- mModuleLoader.destroyModule(ModuleMetrics.DestructionReason.MODULE_LOADER_CHANGED);
|
||||
- mModuleLoader = null;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (mModuleLoader == null) mModuleLoader = new ModuleLoader(componentName, assetName);
|
||||
-
|
||||
- return mModuleLoader;
|
||||
- }
|
||||
-
|
||||
@CalledByNative
|
||||
public static void notifyClientOfDetachedRequestCompletion(
|
||||
CustomTabsSessionToken session, String url, int status) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dependency_injection/CustomTabActivityComponent.java
|
||||
@@ -16,8 +16,6 @@ import org.chromium.chrome.browser.customtabs.content.CustomTabActivityNavigatio
|
||||
import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabController;
|
||||
import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabFactory;
|
||||
import org.chromium.chrome.browser.customtabs.content.CustomTabActivityTabProvider;
|
||||
-import org.chromium.chrome.browser.customtabs.dynamicmodule.DynamicModuleCoordinator;
|
||||
-import org.chromium.chrome.browser.customtabs.dynamicmodule.DynamicModuleToolbarController;
|
||||
import org.chromium.chrome.browser.dependency_injection.ActivityScope;
|
||||
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
|
||||
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
|
||||
@@ -33,8 +31,6 @@ import dagger.Subcomponent;
|
||||
@ActivityScope
|
||||
public interface CustomTabActivityComponent extends ChromeActivityComponent {
|
||||
TrustedWebActivityCoordinator resolveTrustedWebActivityCoordinator();
|
||||
- DynamicModuleToolbarController resolveDynamicModuleToolbarController();
|
||||
- DynamicModuleCoordinator resolveDynamicModuleCoordinator();
|
||||
|
||||
TabObserverRegistrar resolveTabObserverRegistrar();
|
||||
CustomTabTopBarDelegate resolveTobBarDelegate();
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+4
-4
@@ -10,7 +10,7 @@ Subject: Disable fetching of all field trials
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
|
||||
@@ -103,9 +103,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -106,9 +106,7 @@ public abstract class ChromeFeatureList {
|
||||
*/
|
||||
public static int getFieldTrialParamByFeatureAsInt(
|
||||
String featureName, String paramName, int defaultValue) {
|
||||
@@ -21,7 +21,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureLi
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -122,9 +120,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -125,9 +123,7 @@ public abstract class ChromeFeatureList {
|
||||
*/
|
||||
public static double getFieldTrialParamByFeatureAsDouble(
|
||||
String featureName, String paramName, double defaultValue) {
|
||||
@@ -32,7 +32,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureLi
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -141,9 +137,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -144,9 +140,7 @@ public abstract class ChromeFeatureList {
|
||||
*/
|
||||
public static boolean getFieldTrialParamByFeatureAsBoolean(
|
||||
String featureName, String paramName, boolean defaultValue) {
|
||||
@@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureLi
|
||||
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
|
||||
--- a/components/variations/service/variations_service.cc
|
||||
+++ b/components/variations/service/variations_service.cc
|
||||
@@ -232,17 +232,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
@@ -240,17 +240,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
|
||||
// Variations seed fetching is only enabled in official Chrome builds, if a URL
|
||||
// is specified on the command line, and for testing.
|
||||
bool IsFetchingEnabled() {
|
||||
@@ -0,0 +1,91 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 20 Feb 2019 21:41:26 +0100
|
||||
Subject: Disable metrics collection for NTP tiles
|
||||
|
||||
---
|
||||
.../android/ntp/most_visited_sites_bridge.cc | 21 ---------------------
|
||||
components/ntp_tiles/BUILD.gn | 3 ---
|
||||
2 files changed, 24 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
--- a/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
+++ b/chrome/browser/android/ntp/most_visited_sites_bridge.cc
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "chrome/browser/profiles/profile_android.h"
|
||||
#include "components/favicon_base/favicon_types.h"
|
||||
#include "components/history/core/browser/history_service.h"
|
||||
-#include "components/ntp_tiles/metrics.h"
|
||||
#include "components/ntp_tiles/most_visited_sites.h"
|
||||
#include "components/ntp_tiles/section_type.h"
|
||||
#include "components/rappor/rappor_service_impl.h"
|
||||
@@ -45,7 +44,6 @@ using ntp_tiles::NTPTilesVector;
|
||||
using ntp_tiles::SectionType;
|
||||
using ntp_tiles::TileTitleSource;
|
||||
using ntp_tiles::TileSource;
|
||||
-using ntp_tiles::TileVisualType;
|
||||
|
||||
namespace {
|
||||
|
||||
@@ -240,7 +238,6 @@ void MostVisitedSitesBridge::RecordPageImpression(
|
||||
JNIEnv* env,
|
||||
const JavaParamRef<jobject>& obj,
|
||||
jint jtiles_count) {
|
||||
- ntp_tiles::metrics::RecordPageImpression(jtiles_count);
|
||||
}
|
||||
|
||||
void MostVisitedSitesBridge::RecordTileImpression(
|
||||
@@ -253,18 +250,6 @@ void MostVisitedSitesBridge::RecordTileImpression(
|
||||
jint jsource,
|
||||
jlong jdata_generation_time_ms,
|
||||
const JavaParamRef<jstring>& jurl) {
|
||||
- GURL url(ConvertJavaStringToUTF8(env, jurl));
|
||||
- TileTitleSource title_source = static_cast<TileTitleSource>(jtitle_source);
|
||||
- TileSource source = static_cast<TileSource>(jsource);
|
||||
- TileVisualType visual_type = static_cast<TileVisualType>(jvisual_type);
|
||||
- favicon_base::IconType icon_type =
|
||||
- static_cast<favicon_base::IconType>(jicon_type);
|
||||
-
|
||||
- ntp_tiles::metrics::RecordTileImpression(
|
||||
- ntp_tiles::NTPTileImpression(
|
||||
- jindex, source, title_source, visual_type, icon_type,
|
||||
- base::Time::FromJavaTime(jdata_generation_time_ms), url),
|
||||
- g_browser_process->rappor_service());
|
||||
}
|
||||
|
||||
void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
|
||||
@@ -275,12 +260,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
|
||||
jint title_source,
|
||||
jint source,
|
||||
jlong jdata_generation_time_ms) {
|
||||
- ntp_tiles::metrics::RecordTileClick(ntp_tiles::NTPTileImpression(
|
||||
- index, static_cast<TileSource>(source),
|
||||
- static_cast<TileTitleSource>(title_source),
|
||||
- static_cast<TileVisualType>(tile_type), favicon_base::IconType::kInvalid,
|
||||
- base::Time::FromJavaTime(jdata_generation_time_ms),
|
||||
- /*url_for_rappor=*/GURL()));
|
||||
}
|
||||
|
||||
static jlong JNI_MostVisitedSitesBridge_Init(
|
||||
diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn
|
||||
--- a/components/ntp_tiles/BUILD.gn
|
||||
+++ b/components/ntp_tiles/BUILD.gn
|
||||
@@ -20,8 +20,6 @@ static_library("ntp_tiles") {
|
||||
"icon_cacher.h",
|
||||
"icon_cacher_impl.cc",
|
||||
"icon_cacher_impl.h",
|
||||
- "metrics.cc",
|
||||
- "metrics.h",
|
||||
"most_visited_sites.cc",
|
||||
"most_visited_sites.h",
|
||||
"ntp_tile.cc",
|
||||
@@ -91,7 +89,6 @@ source_set("unit_tests") {
|
||||
"custom_links_manager_impl_unittest.cc",
|
||||
"custom_links_store_unittest.cc",
|
||||
"icon_cacher_impl_unittest.cc",
|
||||
- "metrics_unittest.cc",
|
||||
"most_visited_sites_unittest.cc",
|
||||
"popular_sites_impl_unittest.cc",
|
||||
]
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
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/browser_process_impl.cc | 2 +-
|
||||
chrome/browser/profiles/profile_io_data.cc | 2 --
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
|
||||
--- a/chrome/browser/browser_process_impl.cc
|
||||
+++ b/chrome/browser/browser_process_impl.cc
|
||||
@@ -963,7 +963,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
#endif // defined(OS_CHROMEOS)
|
||||
|
||||
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
|
||||
- GoogleUpdateSettings::GetCollectStatsConsent());
|
||||
+ false);
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterBooleanPref(
|
||||
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
|
||||
@@ -54,8 +54,6 @@
|
||||
#include "components/cookie_config/cookie_store_util.h"
|
||||
#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data.h"
|
||||
#include "components/dom_distiller/core/url_constants.h"
|
||||
-#include "components/metrics/metrics_pref_names.h"
|
||||
-#include "components/metrics/metrics_service.h"
|
||||
#include "components/net_log/chrome_net_log.h"
|
||||
#include "components/policy/core/common/cloud/policy_header_service.h"
|
||||
#include "components/policy/core/common/cloud/user_cloud_policy_manager.h"
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+11
-8
@@ -1,16 +1,17 @@
|
||||
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
|
||||
Subject: Disable omission of URL elements in Omnibox
|
||||
|
||||
Disable all omissions (already shadowed by first flag)
|
||||
Disable all omissions because they are used throughout the code without
|
||||
a corresponding user option to individually disable their usage.
|
||||
---
|
||||
components/url_formatter/url_formatter.cc | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
components/url_formatter/url_formatter.cc | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 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
|
||||
@@ -410,12 +410,12 @@ IDNConversionStatus IDNToUnicodeOneComponent(const base::char16* comp,
|
||||
@@ -424,13 +424,13 @@ bool IDNToUnicodeOneComponent(const base::char16* comp,
|
||||
} // namespace
|
||||
|
||||
const FormatUrlType kFormatUrlOmitNothing = 0;
|
||||
@@ -18,15 +19,17 @@ diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatte
|
||||
-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 kFormatUrlTrimAfterHost = 1 << 6;
|
||||
-const FormatUrlType kFormatUrlOmitFileScheme = 1 << 7;
|
||||
+const FormatUrlType kFormatUrlOmitUsernamePassword = 0 << 0;
|
||||
+const FormatUrlType kFormatUrlOmitHTTP = 0 << 1;
|
||||
+const FormatUrlType kFormatUrlOmitTrailingSlashOnBareHostname = 0 << 2;
|
||||
+const FormatUrlType kFormatUrlOmitHTTPS = 0 << 3;
|
||||
+const FormatUrlType kFormatUrlExperimentalElideAfterHost = 0 << 4;
|
||||
+const FormatUrlType kFormatUrlOmitTrivialSubdomains = 0 << 5;
|
||||
const FormatUrlType kFormatUrlTrimAfterHost = 1 << 6;
|
||||
+const FormatUrlType kFormatUrlTrimAfterHost = 0 << 6;
|
||||
+const FormatUrlType kFormatUrlOmitFileScheme = 0 << 7;
|
||||
const FormatUrlType kFormatUrlOmitMailToScheme = 1 << 8;
|
||||
|
||||
const FormatUrlType kFormatUrlOmitDefaults =
|
||||
--
|
||||
+1
-1
@@ -9,7 +9,7 @@ Subject: Disable plugins enumeration
|
||||
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
--- a/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
|
||||
@@ -1294,10 +1294,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
|
||||
@@ -1255,10 +1255,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
|
||||
}
|
||||
|
||||
PluginData* LocalFrame::GetPluginData() const {
|
||||
@@ -0,0 +1,28 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 8 Jan 2019 08:54:50 +0100
|
||||
Subject: Disable previews by default
|
||||
|
||||
---
|
||||
components/previews/core/previews_features.cc | 7 +------
|
||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/components/previews/core/previews_features.cc b/components/previews/core/previews_features.cc
|
||||
--- a/components/previews/core/previews_features.cc
|
||||
+++ b/components/previews/core/previews_features.cc
|
||||
@@ -14,12 +14,7 @@ namespace features {
|
||||
// are enabled are controlled by other features.
|
||||
const base::Feature kPreviews {
|
||||
"Previews",
|
||||
-#if defined(OS_ANDROID) || defined(OS_LINUX)
|
||||
- // Previews allowed for Android (but also allow on Linux for dev/debug).
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#else // !defined(OS_ANDROID) || defined(OS_LINUX)
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#endif // defined(OS_ANDROID) || defined(OS_LINUX)
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT
|
||||
};
|
||||
|
||||
// Enables the Offline previews on android slow connections.
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+95
-16
@@ -5,11 +5,11 @@ Subject: Disable promos displayed in bookmarks manager
|
||||
Remove personalized signin promo view from
|
||||
bookmarks, never reach signin thresholds.
|
||||
---
|
||||
.../personalized_signin_promo_view_bookmarks.xml | 30 ----------------------
|
||||
.../browser/bookmarks/BookmarkItemsAdapter.java | 23 ++---------------
|
||||
.../browser/signin/SigninPromoController.java | 19 ++------------
|
||||
chrome/android/java_sources.gni | 1 -
|
||||
4 files changed, 4 insertions(+), 69 deletions(-)
|
||||
.../personalized_signin_promo_view_bookmarks.xml | 30 -------------
|
||||
.../browser/bookmarks/BookmarkItemsAdapter.java | 23 +---------
|
||||
.../browser/bookmarks/BookmarkPromoHeader.java | 52 +---------------------
|
||||
.../browser/signin/SigninPromoController.java | 19 +-------
|
||||
4 files changed, 5 insertions(+), 119 deletions(-)
|
||||
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
|
||||
diff --git a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml b/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
|
||||
@@ -124,6 +124,96 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
}
|
||||
|
||||
private void populateTopLevelFoldersList() {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
|
||||
@@ -17,7 +17,6 @@ import android.view.ViewGroup;
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
import org.chromium.chrome.R;
|
||||
-import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView;
|
||||
import org.chromium.chrome.browser.signin.ProfileDataCache;
|
||||
import org.chromium.chrome.browser.signin.SigninAccessPoint;
|
||||
import org.chromium.chrome.browser.signin.SigninManager;
|
||||
@@ -131,18 +130,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
}
|
||||
|
||||
/**
|
||||
- * @return Personalized signin promo header {@link ViewHolder} instance that can be used with
|
||||
- * {@link RecyclerView}.
|
||||
- */
|
||||
- ViewHolder createPersonalizedSigninPromoHolder(ViewGroup parent) {
|
||||
- View view = LayoutInflater.from(mContext).inflate(
|
||||
- R.layout.personalized_signin_promo_view_bookmarks, parent, false);
|
||||
-
|
||||
- // ViewHolder is abstract and it cannot be instantiated directly.
|
||||
- return new ViewHolder(view) {};
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
* @return Sync promo header {@link ViewHolder} instance that can be used with
|
||||
* {@link RecyclerView}.
|
||||
*/
|
||||
@@ -153,42 +140,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
return new ViewHolder(view) {};
|
||||
}
|
||||
|
||||
- /**
|
||||
- * Configures the personalized signin promo and records promo impressions.
|
||||
- * @param view The view to be configured.
|
||||
- */
|
||||
- void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) {
|
||||
- SigninPromoUtil.setupPromoViewFromCache(mSigninPromoController, mProfileDataCache, view,
|
||||
- this::setPersonalizedSigninPromoDeclined);
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Detaches the previously configured {@link PersonalizedSigninPromoView}.
|
||||
- */
|
||||
- void detachPersonalizePromoView() {
|
||||
- if (mSigninPromoController != null) mSigninPromoController.detach();
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Saves that the personalized signin promo was declined and updates the UI.
|
||||
- */
|
||||
- private void setPersonalizedSigninPromoDeclined() {
|
||||
- SharedPreferences.Editor sharedPreferencesEditor =
|
||||
- ContextUtils.getAppSharedPreferences().edit();
|
||||
- sharedPreferencesEditor.putBoolean(PREF_PERSONALIZED_SIGNIN_PROMO_DECLINED, true);
|
||||
- sharedPreferencesEditor.apply();
|
||||
- mPromoState = calculatePromoState();
|
||||
- triggerPromoUpdate();
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * @return Whether the user declined the personalized signin promo.
|
||||
- */
|
||||
- private boolean wasPersonalizedSigninPromoDeclined() {
|
||||
- return ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
- PREF_PERSONALIZED_SIGNIN_PROMO_DECLINED, false);
|
||||
- }
|
||||
-
|
||||
private @PromoState int calculatePromoState() {
|
||||
if (sPromoStateForTests != null) {
|
||||
return sPromoStateForTests;
|
||||
@@ -202,7 +153,7 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
boolean impressionLimitReached = !SigninPromoController.hasNotReachedImpressionLimit(
|
||||
SigninAccessPoint.BOOKMARK_MANAGER);
|
||||
if (!mSignInManager.isSignInAllowed() || !SigninPromoController.isSignInPromoAllowed()
|
||||
- || impressionLimitReached || wasPersonalizedSigninPromoDeclined()) {
|
||||
+ || impressionLimitReached) {
|
||||
return PromoState.PROMO_NONE;
|
||||
}
|
||||
return PromoState.PROMO_SIGNIN_PERSONALIZED;
|
||||
@@ -250,7 +201,6 @@ class BookmarkPromoHeader implements AndroidSyncSettingsObserver, SignInStateObs
|
||||
}
|
||||
|
||||
private void triggerPromoUpdate() {
|
||||
- detachPersonalizePromoView();
|
||||
mPromoHeaderChangeAction.run();
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
|
||||
@@ -153,17 +243,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPr
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
--- a/chrome/android/java_sources.gni
|
||||
+++ b/chrome/android/java_sources.gni
|
||||
@@ -140,7 +140,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",
|
||||
- "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkRow.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIObserver.java",
|
||||
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java",
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+5
-5
@@ -12,10 +12,10 @@ Subject: Disable references to fonts.googleapis.com
|
||||
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
|
||||
+++ b/components/dom_distiller/content/browser/dom_distiller_viewer_source.cc
|
||||
@@ -310,7 +310,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
@@ -309,7 +309,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
|
||||
}
|
||||
|
||||
std::string DomDistillerViewerSource::GetContentSecurityPolicyStyleSrc()
|
||||
const {
|
||||
std::string DomDistillerViewerSource::GetContentSecurityPolicyStyleSrc() const {
|
||||
- return "style-src 'self' https://fonts.googleapis.com;";
|
||||
+ return "style-src 'self';";
|
||||
}
|
||||
@@ -36,8 +36,8 @@ diff --git a/components/dom_distiller/core/html/preview.html b/components/dom_di
|
||||
diff --git a/components/dom_distiller/core/javascript/dom_distiller_viewer.js b/components/dom_distiller/core/javascript/dom_distiller_viewer.js
|
||||
--- a/components/dom_distiller/core/javascript/dom_distiller_viewer.js
|
||||
+++ b/components/dom_distiller/core/javascript/dom_distiller_viewer.js
|
||||
@@ -120,7 +120,7 @@ function maybeSetWebFont() {
|
||||
if (distiller_on_ios) return;
|
||||
@@ -123,7 +123,7 @@ function maybeSetWebFont() {
|
||||
return;
|
||||
|
||||
var e = document.createElement('link');
|
||||
- e.href = 'https://fonts.googleapis.com/css?family=Roboto';
|
||||
@@ -0,0 +1,25 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Tue, 25 Dec 2018 16:19:51 -0500
|
||||
Subject: Disable seed-based field trials
|
||||
|
||||
---
|
||||
components/variations/service/variations_field_trial_creator.cc | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/components/variations/service/variations_field_trial_creator.cc b/components/variations/service/variations_field_trial_creator.cc
|
||||
--- a/components/variations/service/variations_field_trial_creator.cc
|
||||
+++ b/components/variations/service/variations_field_trial_creator.cc
|
||||
@@ -536,8 +536,10 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
|
||||
#endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
|
||||
bool used_seed = false;
|
||||
if (!used_testing_config) {
|
||||
+#if defined(FIELDTRIAL_SEED_ENABLED)
|
||||
used_seed = CreateTrialsFromSeed(std::move(low_entropy_provider),
|
||||
feature_list.get(), safe_seed_manager);
|
||||
+#endif
|
||||
}
|
||||
|
||||
platform_field_trials->SetupFeatureControllingFieldTrials(used_seed,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,341 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 12 Jun 2018 14:23:07 +0200
|
||||
Subject: Disable signin and data saver preferences
|
||||
|
||||
Never show the data saver promo snackbar
|
||||
---
|
||||
chrome/android/java/res/xml/main_preferences.xml | 20 -----
|
||||
.../android/java/res/xml/privacy_preferences.xml | 7 --
|
||||
.../browser/preferences/MainPreferences.java | 92 +---------------------
|
||||
.../preferences/privacy/PrivacyPreferences.java | 17 ----
|
||||
.../java/strings/android_chrome_strings.grd | 6 --
|
||||
5 files changed, 1 insertion(+), 141 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -7,21 +7,6 @@
|
||||
android:orderingFromXml="false">
|
||||
|
||||
<PreferenceCategory
|
||||
- android:key="account_section"
|
||||
- android:order="0"
|
||||
- android:title="@string/prefs_section_account"/>
|
||||
- <org.chromium.chrome.browser.preferences.SignInPreference
|
||||
- android:key="sign_in"
|
||||
- android:order="1"
|
||||
- android:title="@string/sign_in_to_chrome"/>
|
||||
- <org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
- android:key="sync_and_services"
|
||||
- android:order="2"
|
||||
- android:layout="@layout/account_management_account_row"
|
||||
- android:title="@string/prefs_sync_and_services"
|
||||
- android:fragment="org.chromium.chrome.browser.preferences.SyncAndServicesPreferences"/>
|
||||
-
|
||||
- <PreferenceCategory
|
||||
android:key="basics_section"
|
||||
android:order="3"
|
||||
android:title="@string/prefs_section_basics"/>
|
||||
@@ -95,11 +80,6 @@
|
||||
android:key="languages"
|
||||
android:order="17"
|
||||
android:title="@string/prefs_languages"/>
|
||||
- <org.chromium.chrome.browser.preferences.datareduction.DataReductionPreference
|
||||
- android:fragment="org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferenceFragment"
|
||||
- android:key="data_reduction"
|
||||
- android:order="18"
|
||||
- android:title="@string/data_reduction_title"/>
|
||||
<org.chromium.chrome.browser.preferences.ChromeBasePreference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.download.DownloadPreferences"
|
||||
android:key="downloads"
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -55,11 +55,4 @@
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
|
||||
- <Preference
|
||||
- android:key="sync_and_services_link_divider"
|
||||
- android:layout="@layout/divider_preference"
|
||||
- android:selectable="false"/>
|
||||
- <org.chromium.chrome.browser.preferences.TextMessagePreference
|
||||
- android:key="sync_and_services_link"
|
||||
- tools:summary="@string/privacy_sync_and_services_link"/>
|
||||
</PreferenceScreen>
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
|
||||
@@ -17,17 +17,13 @@ import org.chromium.base.VisibleForTesting;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.contextual_suggestions.ContextualSuggestionsEnabledStateUtils;
|
||||
-import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
import org.chromium.chrome.browser.night_mode.NightModeUtils;
|
||||
import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
|
||||
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
|
||||
import org.chromium.chrome.browser.preferences.autofill_assistant.AutofillAssistantPreferences;
|
||||
-import org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferenceFragment;
|
||||
import org.chromium.chrome.browser.preferences.developer.DeveloperPreferences;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrl;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
||||
-import org.chromium.chrome.browser.signin.SigninManager;
|
||||
-import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
import org.chromium.chrome.browser.util.FeatureUtilities;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -37,11 +33,7 @@ import java.util.Map;
|
||||
* The main settings screen, shown when the user first opens Settings.
|
||||
*/
|
||||
public class MainPreferences extends PreferenceFragment
|
||||
- implements TemplateUrlService.LoadListener, ProfileSyncService.SyncStateChangedListener,
|
||||
- SigninManager.SignInStateObserver {
|
||||
- public static final String PREF_ACCOUNT_SECTION = "account_section";
|
||||
- public static final String PREF_SIGN_IN = "sign_in";
|
||||
- public static final String PREF_SYNC_AND_SERVICES = "sync_and_services";
|
||||
+ implements TemplateUrlService.LoadListener {
|
||||
public static final String PREF_SEARCH_ENGINE = "search_engine";
|
||||
public static final String PREF_SAVED_PASSWORDS = "saved_passwords";
|
||||
public static final String PREF_CONTEXTUAL_SUGGESTIONS = "contextual_suggestions";
|
||||
@@ -61,7 +53,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
|
||||
private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private final Map<String, Preference> mAllPreferences = new HashMap<>();
|
||||
- private SignInPreference mSignInPreference;
|
||||
|
||||
public MainPreferences() {
|
||||
setHasOptionsMenu(true);
|
||||
@@ -77,33 +68,16 @@ public class MainPreferences extends PreferenceFragment
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
- mSignInPreference.onPreferenceFragmentDestroyed();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
- if (SigninManager.get().isSigninSupported()) {
|
||||
- SigninManager.get().addSignInStateObserver(this);
|
||||
- mSignInPreference.registerForUpdates();
|
||||
- }
|
||||
- ProfileSyncService syncService = ProfileSyncService.get();
|
||||
- if (syncService != null) {
|
||||
- syncService.addSyncStateChangedListener(this);
|
||||
- }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
- if (SigninManager.get().isSigninSupported()) {
|
||||
- SigninManager.get().removeSignInStateObserver(this);
|
||||
- mSignInPreference.unregisterForUpdates();
|
||||
- }
|
||||
- ProfileSyncService syncService = ProfileSyncService.get();
|
||||
- if (syncService != null) {
|
||||
- syncService.removeSyncStateChangedListener(this);
|
||||
- }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -116,17 +90,9 @@ public class MainPreferences extends PreferenceFragment
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.main_preferences);
|
||||
cachePreferences();
|
||||
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
- mSignInPreference.setOnStateChangedCallback(this::onSignInPreferenceStateChanged);
|
||||
- } else {
|
||||
- getPreferenceScreen().removePreference(findPreference(PREF_ACCOUNT_SECTION));
|
||||
- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES));
|
||||
- }
|
||||
-
|
||||
updatePasswordsPreference();
|
||||
|
||||
setManagedPreferenceDelegateForPreference(PREF_SEARCH_ENGINE);
|
||||
- setManagedPreferenceDelegateForPreference(PREF_DATA_REDUCTION);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
// If we are on Android O+ the Notifications preference should lead to the Android
|
||||
@@ -190,7 +156,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
Preference preference = getPreferenceScreen().getPreference(index);
|
||||
mAllPreferences.put(preference.getKey(), preference);
|
||||
}
|
||||
- mSignInPreference = (SignInPreference) mAllPreferences.get(PREF_SIGN_IN);
|
||||
}
|
||||
|
||||
private void setManagedPreferenceDelegateForPreference(String key) {
|
||||
@@ -199,13 +164,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
}
|
||||
|
||||
private void updatePreferences() {
|
||||
- if (SigninManager.get().isSigninSupported()) {
|
||||
- addPreferenceIfAbsent(PREF_SIGN_IN);
|
||||
- } else {
|
||||
- removePreferenceIfPresent(PREF_SIGN_IN);
|
||||
- }
|
||||
-
|
||||
- updateSyncAndServicesPreference();
|
||||
updateSearchEnginePreference();
|
||||
|
||||
Preference homepagePref = addPreferenceIfAbsent(PREF_HOMEPAGE);
|
||||
@@ -235,10 +193,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
} else {
|
||||
removePreferenceIfPresent(PREF_DEVELOPER);
|
||||
}
|
||||
-
|
||||
- ChromeBasePreference dataReduction =
|
||||
- (ChromeBasePreference) findPreference(PREF_DATA_REDUCTION);
|
||||
- dataReduction.setSummary(DataReductionPreferenceFragment.generateSummary(getResources()));
|
||||
}
|
||||
|
||||
private Preference addPreferenceIfAbsent(String key) {
|
||||
@@ -252,15 +206,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
if (preference != null) getPreferenceScreen().removePreference(preference);
|
||||
}
|
||||
|
||||
- private void updateSyncAndServicesPreference() {
|
||||
- if (!ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) return;
|
||||
-
|
||||
- ChromeBasePreference syncAndServices =
|
||||
- (ChromeBasePreference) findPreference(PREF_SYNC_AND_SERVICES);
|
||||
- syncAndServices.setIcon(SyncPreferenceUtils.getSyncStatusIcon(getActivity()));
|
||||
- syncAndServices.setSummary(SyncPreferenceUtils.getSyncStatusSummary(getActivity()));
|
||||
- }
|
||||
-
|
||||
private void updateSearchEnginePreference() {
|
||||
if (!TemplateUrlService.getInstance().isLoaded()) {
|
||||
ChromeBasePreference searchEnginePref =
|
||||
@@ -292,28 +237,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
pref.setSummary(getResources().getString(isOn ? R.string.text_on : R.string.text_off));
|
||||
}
|
||||
|
||||
- // SigninManager.SignInStateObserver implementation.
|
||||
- @Override
|
||||
- public void onSignedIn() {
|
||||
- // After signing in or out of a managed account, preferences may change or become enabled
|
||||
- // or disabled.
|
||||
- new Handler().post(() -> updatePreferences());
|
||||
- }
|
||||
-
|
||||
- @Override
|
||||
- public void onSignedOut() {
|
||||
- updatePreferences();
|
||||
- }
|
||||
-
|
||||
- private void onSignInPreferenceStateChanged() {
|
||||
- // Remove "Account" section header if the personalized sign-in promo is shown.
|
||||
- if (mSignInPreference.getState() == SignInPreference.State.PERSONALIZED_PROMO) {
|
||||
- removePreferenceIfPresent(PREF_ACCOUNT_SECTION);
|
||||
- } else {
|
||||
- addPreferenceIfAbsent(PREF_ACCOUNT_SECTION);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
// TemplateUrlService.LoadListener implementation.
|
||||
@Override
|
||||
public void onTemplateUrlServiceLoaded() {
|
||||
@@ -321,11 +244,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
updateSearchEnginePreference();
|
||||
}
|
||||
|
||||
- @Override
|
||||
- public void syncStateChanged() {
|
||||
- updateSyncAndServicesPreference();
|
||||
- }
|
||||
-
|
||||
@VisibleForTesting
|
||||
ManagedPreferenceDelegate getManagedPreferenceDelegateForTest() {
|
||||
return mManagedPreferenceDelegate;
|
||||
@@ -335,9 +253,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
return new ManagedPreferenceDelegate() {
|
||||
@Override
|
||||
public boolean isPreferenceControlledByPolicy(Preference preference) {
|
||||
- if (PREF_DATA_REDUCTION.equals(preference.getKey())) {
|
||||
- return DataReductionProxySettings.getInstance().isDataReductionProxyManaged();
|
||||
- }
|
||||
if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
|
||||
return TemplateUrlService.getInstance().isDefaultSearchManaged();
|
||||
}
|
||||
@@ -346,11 +261,6 @@ public class MainPreferences extends PreferenceFragment
|
||||
|
||||
@Override
|
||||
public boolean isPreferenceClickDisabledByPolicy(Preference preference) {
|
||||
- if (PREF_DATA_REDUCTION.equals(preference.getKey())) {
|
||||
- DataReductionProxySettings settings = DataReductionProxySettings.getInstance();
|
||||
- return settings.isDataReductionProxyManaged()
|
||||
- && !settings.isDataReductionProxyEnabled();
|
||||
- }
|
||||
if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
|
||||
return TemplateUrlService.getInstance().isDefaultSearchManaged();
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -27,7 +27,6 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
||||
import org.chromium.chrome.browser.preferences.PreferenceUtils;
|
||||
import org.chromium.chrome.browser.preferences.PreferencesLauncher;
|
||||
-import org.chromium.chrome.browser.preferences.SyncAndServicesPreferences;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog;
|
||||
import org.chromium.ui.text.NoUnderlineClickableSpan;
|
||||
@@ -49,9 +48,6 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
- private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER =
|
||||
- "sync_and_services_link_divider";
|
||||
- private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
|
||||
private static final String PREF_USAGE_STATS = "usage_stats_reporting";
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
@@ -100,22 +96,9 @@ public class PrivacyPreferences extends PreferenceFragment
|
||||
networkPredictionPref.setOrder(canMakePaymentPref.getOrder());
|
||||
preferenceScreen.addPreference(networkPredictionPref);
|
||||
|
||||
- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
|
||||
- NoUnderlineClickableSpan linkSpan =
|
||||
- new NoUnderlineClickableSpan(getResources(), view -> {
|
||||
- PreferencesLauncher.launchSettingsPage(getActivity(),
|
||||
- SyncAndServicesPreferences.class,
|
||||
- SyncAndServicesPreferences.createArguments(false));
|
||||
- });
|
||||
- syncAndServicesLink.setSummary(
|
||||
- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
|
||||
- new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
|
||||
-
|
||||
updateSummaries();
|
||||
return;
|
||||
}
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
|
||||
ChromeBaseCheckBoxPreference navigationErrorPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR);
|
||||
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
|
||||
@@ -324,9 +324,6 @@ CHAR-LIMIT guidelines:
|
||||
</message>
|
||||
|
||||
<!-- Sign-in, sync and personalization preferences -->
|
||||
- <message name="IDS_PREFS_SECTION_ACCOUNT" desc="Title for the group of account-related entries in Settings. [CHAR-LIMIT=32]">
|
||||
- Account
|
||||
- </message>
|
||||
<message name="IDS_SIGN_IN_TO_CHROME" desc="Title for the button to sign in to Chrome using one's Google account. [CHAR-LIMIT=27]">
|
||||
Sign in to Chrome
|
||||
</message>
|
||||
@@ -409,9 +406,6 @@ CHAR-LIMIT guidelines:
|
||||
<message name="IDS_URL_KEYED_ANONYMIZED_DATA_SUMMARY" desc="Summary for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
|
||||
Sends URLs of pages you visit to Google
|
||||
</message>
|
||||
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK" desc="The text for Privacy preferences that is shown after all preference rows.">
|
||||
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK"><link></ph>Sync and Google services<ph name="END_LINK"></link></ph>
|
||||
- </message>
|
||||
<message name="IDS_USAGE_AND_CRASH_REPORTS_TITLE" desc="Title for a preference that enables sending usage statistics and crash reports.">
|
||||
Help improve Chrome's features and performance
|
||||
</message>
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 12 Jun 2018 15:09:26 +0200
|
||||
Subject: Disable signin/data reduction promos
|
||||
|
||||
---
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 28 ++--------------------
|
||||
1 file changed, 2 insertions(+), 26 deletions(-)
|
||||
|
||||
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
|
||||
@@ -702,34 +702,10 @@ public class ChromeTabbedActivity
|
||||
}
|
||||
|
||||
ChromePreferenceManager preferenceManager = ChromePreferenceManager.getInstance();
|
||||
- // Promos can only be shown when we start with ACTION_MAIN intent and
|
||||
- // after FRE is complete. Native initialization can finish before the FRE flow is
|
||||
- // complete, and this will only show promos on the second opportunity. This is
|
||||
- // because the FRE is shown on the first opportunity, and we don't want to show such
|
||||
- // content back to back.
|
||||
- //
|
||||
- // TODO(tedchoc): Unify promo dialog logic as the search engine promo dialog checks
|
||||
- // might not have completed at this point and we could show multiple
|
||||
- // promos.
|
||||
- boolean isShowingPromo = mLocaleManager.hasShownSearchEnginePromoThisSession();
|
||||
- // Promo dialogs in multiwindow mode are broken on some devices: http://crbug.com/354696
|
||||
- boolean isLegacyMultiWindow = MultiWindowUtils.getInstance().isLegacyMultiWindow(this);
|
||||
- if (!isShowingPromo && !mIntentWithEffect && FirstRunStatus.getFirstRunFlowComplete()
|
||||
- && preferenceManager.readBoolean(
|
||||
- ChromePreferenceManager.PROMOS_SKIPPED_ON_FIRST_START, false)
|
||||
- && !VrModuleProvider.getDelegate().isInVr()
|
||||
- // VrModuleProvider.getDelegate().isInVr may not return true at this point even
|
||||
- // though Chrome is about to enter VR, so we need to also check whether we're
|
||||
- // launching into VR.
|
||||
- && !VrModuleProvider.getIntentDelegate().isLaunchingIntoVr(this, getIntent())
|
||||
- && !isLegacyMultiWindow) {
|
||||
- isShowingPromo = maybeShowPromo();
|
||||
- } else {
|
||||
- preferenceManager.writeBoolean(
|
||||
+ preferenceManager.writeBoolean(
|
||||
ChromePreferenceManager.PROMOS_SKIPPED_ON_FIRST_START, true);
|
||||
- }
|
||||
|
||||
- ToolbarButtonInProductHelpController.create(this, isShowingPromo);
|
||||
+ ToolbarButtonInProductHelpController.create(this, false);
|
||||
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.INTEREST_FEED_CONTENT_SUGGESTIONS)) {
|
||||
// We call getFeedAppLifecycle() here to ensure the app lifecycle is created so that
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,507 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 14 Apr 2019 12:08:27 +0200
|
||||
Subject: Disable unused permissions
|
||||
|
||||
Disable sync adaptive and invalidation services from manifest
|
||||
|
||||
Prevents authorization prompt for Play services on reboot
|
||||
|
||||
Fixes building with debug symbols:
|
||||
|
||||
ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
|
||||
>>> referenced by invalidation_service_util.cc:17 (../../components/invalidation/impl/invalidation_service_util.cc:17)
|
||||
>>> impl/invalidation_service_util.o:(invalidation::ParseNotifierOptions(base::CommandLine const&)) in archive obj/components/invalidation/impl/libimpl.a
|
||||
|
||||
Fixup more permission removal
|
||||
---
|
||||
chrome/android/BUILD.gn | 4 +-
|
||||
chrome/android/java/AndroidManifest.xml | 27 -----
|
||||
.../chromium/chrome/browser/ChromeActivity.java | 34 ------
|
||||
.../invalidation/impl/invalidation_service_util.cc | 21 ----
|
||||
.../invalidation/impl/invalidation_service_util.h | 6 +-
|
||||
.../signin/SystemAccountManagerDelegate.java | 38 +------
|
||||
.../components/sync/AndroidSyncSettings.java | 24 +---
|
||||
.../chromium/net/HttpNegotiateAuthenticator.java | 122 +--------------------
|
||||
.../chromoting/base/OAuthTokenFetcher.java | 2 -
|
||||
9 files changed, 13 insertions(+), 265 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -1060,8 +1060,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 = [ "manifest_package=$manifest_package" ]
|
||||
@@ -1072,7 +1071,6 @@ jinja_template_resources("chrome_test_apk_template_resources") {
|
||||
"java/res_template/xml/file_paths.xml",
|
||||
"java/res_template/xml/launchershortcuts.xml",
|
||||
"java/res_template/xml/searchable.xml",
|
||||
- "java/res_template/xml/syncadapter.xml",
|
||||
]
|
||||
res_dir = "java/res_template"
|
||||
|
||||
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
|
||||
@@ -44,22 +44,16 @@ by a child template that "extends" this file.
|
||||
{% if target_sdk_version|int > 27 or target_sdk_version == "Q" %}
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
{% endif %}
|
||||
- <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
- <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.NFC"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
- <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/>
|
||||
- <uses-permission android:name="android.permission.READ_SYNC_STATS"/>
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
||||
- <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
|
||||
<uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
- <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/>
|
||||
{% set enable_vr = enable_vr|default(0) %}
|
||||
{% if enable_vr == "true" %}
|
||||
<!-- Indicates use of Android's VR-mode, available only on Android N+. -->
|
||||
@@ -97,8 +91,6 @@ by a child template that "extends" this file.
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
|
||||
|
||||
- <uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
|
||||
-
|
||||
{% block extra_uses_permissions %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -975,16 +967,6 @@ by a child template that "extends" this file.
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
- <!-- Sync adapter for browser invalidation. -->
|
||||
- <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>
|
||||
-
|
||||
<!-- Broadcast receiver that will be notified of account changes -->
|
||||
<receiver android:name="org.chromium.chrome.browser.services.AccountsChangedReceiver">
|
||||
<intent-filter>
|
||||
@@ -1090,15 +1072,6 @@ by a child template that "extends" this file.
|
||||
<service android:name="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender"
|
||||
android:exported="false"/>
|
||||
|
||||
- <!-- Notification service for sync. -->
|
||||
- <meta-data android:name="ipc.invalidation.ticl.listener_service_class"
|
||||
- android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
|
||||
- <service android:name="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"
|
||||
- android:exported="false">
|
||||
- <intent-filter>
|
||||
- <action android:name="com.google.ipc.invalidation.AUTH_TOKEN_REQUEST"/>
|
||||
- </intent-filter>
|
||||
- </service>
|
||||
<service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
|
||||
android:exported="false"/>
|
||||
<service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"
|
||||
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
|
||||
@@ -131,8 +131,6 @@ import org.chromium.chrome.browser.share.ShareMenuActionHandler;
|
||||
import org.chromium.chrome.browser.snackbar.BottomContainer;
|
||||
import org.chromium.chrome.browser.snackbar.SnackbarManager;
|
||||
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
|
||||
-import org.chromium.chrome.browser.sync.ProfileSyncService;
|
||||
-import org.chromium.chrome.browser.sync.SyncController;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabFullscreenHandler;
|
||||
import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager;
|
||||
@@ -283,9 +281,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@SuppressLint("NewApi")
|
||||
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
|
||||
|
||||
- // Observes when sync becomes ready to create the mContextReporter.
|
||||
- private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
|
||||
-
|
||||
@Nullable
|
||||
private ChromeFullscreenManager mFullscreenManager;
|
||||
|
||||
@@ -964,28 +959,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
private void createContextReporterIfNeeded() {
|
||||
if (!mStarted) return; // Sync state reporting should work only in started state.
|
||||
if (mContextReporter != null || getActivityTab() == null) return;
|
||||
-
|
||||
- final SyncController syncController = SyncController.get(this);
|
||||
- final ProfileSyncService syncService = ProfileSyncService.get();
|
||||
-
|
||||
- if (syncController != null && syncController.isSyncingUrlsWithKeystorePassphrase()) {
|
||||
- assert syncService != null;
|
||||
- mContextReporter = AppHooks.get().createGsaHelper().getContextReporter(this);
|
||||
-
|
||||
- if (mSyncStateChangedListener != null) {
|
||||
- syncService.removeSyncStateChangedListener(mSyncStateChangedListener);
|
||||
- mSyncStateChangedListener = null;
|
||||
- }
|
||||
-
|
||||
- return;
|
||||
- } else {
|
||||
- ContextReporter.reportSyncStatus(syncService);
|
||||
- }
|
||||
-
|
||||
- if (mSyncStateChangedListener == null && syncService != null) {
|
||||
- mSyncStateChangedListener = () -> createContextReporterIfNeeded();
|
||||
- syncService.addSyncStateChangedListener(mSyncStateChangedListener);
|
||||
- }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1054,13 +1027,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
if (GSAState.getInstance(this).isGsaAvailable() && !SysUtils.isLowEndDevice()) {
|
||||
GSAAccountChangeListener.getInstance().disconnect();
|
||||
}
|
||||
- if (mSyncStateChangedListener != null) {
|
||||
- ProfileSyncService syncService = ProfileSyncService.get();
|
||||
- if (syncService != null) {
|
||||
- syncService.removeSyncStateChangedListener(mSyncStateChangedListener);
|
||||
- }
|
||||
- mSyncStateChangedListener = null;
|
||||
- }
|
||||
if (mContextReporter != null) mContextReporter.disable();
|
||||
|
||||
super.onStopWithNative();
|
||||
diff --git a/components/invalidation/impl/invalidation_service_util.cc b/components/invalidation/impl/invalidation_service_util.cc
|
||||
--- a/components/invalidation/impl/invalidation_service_util.cc
|
||||
+++ b/components/invalidation/impl/invalidation_service_util.cc
|
||||
@@ -12,27 +12,6 @@
|
||||
|
||||
namespace invalidation {
|
||||
|
||||
-notifier::NotifierOptions ParseNotifierOptions(
|
||||
- const base::CommandLine& command_line) {
|
||||
- notifier::NotifierOptions notifier_options;
|
||||
-
|
||||
- if (command_line.HasSwitch(switches::kSyncNotificationHostPort)) {
|
||||
- notifier_options.xmpp_host_port =
|
||||
- net::HostPortPair::FromString(
|
||||
- command_line.GetSwitchValueASCII(
|
||||
- switches::kSyncNotificationHostPort));
|
||||
- DVLOG(1) << "Using " << notifier_options.xmpp_host_port.ToString()
|
||||
- << " for test sync notification server.";
|
||||
- }
|
||||
-
|
||||
- notifier_options.allow_insecure_connection =
|
||||
- command_line.HasSwitch(switches::kSyncAllowInsecureXmppConnection);
|
||||
- DVLOG_IF(1, notifier_options.allow_insecure_connection)
|
||||
- << "Allowing insecure XMPP connections.";
|
||||
-
|
||||
- return notifier_options;
|
||||
-}
|
||||
-
|
||||
std::string GenerateInvalidatorClientId() {
|
||||
// Generate a GUID with 128 bits worth of base64-encoded randomness.
|
||||
// This format is similar to that of sync's cache_guid.
|
||||
diff --git a/components/invalidation/impl/invalidation_service_util.h b/components/invalidation/impl/invalidation_service_util.h
|
||||
--- a/components/invalidation/impl/invalidation_service_util.h
|
||||
+++ b/components/invalidation/impl/invalidation_service_util.h
|
||||
@@ -5,7 +5,7 @@
|
||||
#ifndef COMPONENTS_INVALIDATION_IMPL_INVALIDATION_SERVICE_UTIL_H_
|
||||
#define COMPONENTS_INVALIDATION_IMPL_INVALIDATION_SERVICE_UTIL_H_
|
||||
|
||||
-#include "jingle/notifier/base/notifier_options.h"
|
||||
+#include <string>
|
||||
|
||||
namespace base {
|
||||
class CommandLine;
|
||||
@@ -13,10 +13,6 @@ class CommandLine;
|
||||
|
||||
namespace invalidation {
|
||||
|
||||
-// Parses the given command line for notifier options.
|
||||
-notifier::NotifierOptions ParseNotifierOptions(
|
||||
- const base::CommandLine& command_line);
|
||||
-
|
||||
// Generates a unique client ID for the invalidator.
|
||||
std::string GenerateInvalidatorClientId();
|
||||
|
||||
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
|
||||
@@ -167,16 +167,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
|
||||
@Override
|
||||
public boolean hasFeatures(Account account, String[] features) {
|
||||
- if (!hasGetAccountsPermission()) {
|
||||
- return false;
|
||||
- }
|
||||
- try {
|
||||
- return mAccountManager.hasFeatures(account, features, null, null).getResult();
|
||||
- } catch (AuthenticatorException | IOException e) {
|
||||
- Log.e(TAG, "Error while checking features: ", e);
|
||||
- } catch (OperationCanceledException e) {
|
||||
- Log.e(TAG, "Checking features was cancelled. This should not happen.");
|
||||
- }
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -216,32 +206,10 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
public void updateCredentials(
|
||||
Account account, Activity activity, final Callback<Boolean> callback) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
- if (!hasManageAccountsPermission()) {
|
||||
- if (callback != null) {
|
||||
- ThreadUtils.postOnUiThread(() -> callback.onResult(false));
|
||||
- }
|
||||
- return;
|
||||
+ if (callback != null) {
|
||||
+ ThreadUtils.postOnUiThread(() -> callback.onResult(false));
|
||||
}
|
||||
-
|
||||
- AccountManagerCallback<Bundle> realCallback = future -> {
|
||||
- Bundle bundle = null;
|
||||
- try {
|
||||
- bundle = future.getResult();
|
||||
- } catch (AuthenticatorException | IOException e) {
|
||||
- Log.e(TAG, "Error while update credentials: ", e);
|
||||
- } catch (OperationCanceledException e) {
|
||||
- Log.w(TAG, "Updating credentials was cancelled.");
|
||||
- }
|
||||
- boolean success =
|
||||
- bundle != null && bundle.getString(AccountManager.KEY_ACCOUNT_TYPE) != null;
|
||||
- if (callback != null) {
|
||||
- callback.onResult(success);
|
||||
- }
|
||||
- };
|
||||
- // Android 4.4 throws NullPointerException if null is passed
|
||||
- Bundle emptyOptions = new Bundle();
|
||||
- mAccountManager.updateCredentials(
|
||||
- account, "android", emptyOptions, activity, realCallback, null);
|
||||
+ return;
|
||||
}
|
||||
|
||||
protected boolean hasGetAccountsPermission() {
|
||||
diff --git a/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java b/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java
|
||||
--- a/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java
|
||||
+++ b/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java
|
||||
@@ -212,13 +212,7 @@ public class AndroidSyncSettings {
|
||||
|
||||
private void setChromeSyncEnabled(boolean value) {
|
||||
synchronized (mLock) {
|
||||
- updateSyncability(null);
|
||||
- if (value == mChromeSyncEnabled || mAccount == null) return;
|
||||
- mChromeSyncEnabled = value;
|
||||
-
|
||||
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
|
||||
- mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mContractAuthority, value);
|
||||
- StrictMode.setThreadPolicy(oldPolicy);
|
||||
+ mChromeSyncEnabled = false;
|
||||
}
|
||||
notifyObservers();
|
||||
}
|
||||
@@ -299,19 +293,9 @@ public class AndroidSyncSettings {
|
||||
boolean oldChromeSyncEnabled = mChromeSyncEnabled;
|
||||
boolean oldMasterSyncEnabled = mMasterSyncEnabled;
|
||||
|
||||
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
|
||||
- if (mAccount != null) {
|
||||
- mIsSyncable =
|
||||
- mSyncContentResolverDelegate.getIsSyncable(mAccount, mContractAuthority)
|
||||
- == 1;
|
||||
- mChromeSyncEnabled = mSyncContentResolverDelegate.getSyncAutomatically(
|
||||
- mAccount, mContractAuthority);
|
||||
- } else {
|
||||
- mIsSyncable = false;
|
||||
- mChromeSyncEnabled = false;
|
||||
- }
|
||||
- mMasterSyncEnabled = mSyncContentResolverDelegate.getMasterSyncAutomatically();
|
||||
- StrictMode.setThreadPolicy(oldPolicy);
|
||||
+ mIsSyncable = false;
|
||||
+ mChromeSyncEnabled = false;
|
||||
+ mMasterSyncEnabled = false;
|
||||
|
||||
return oldChromeSyncEnabled != mChromeSyncEnabled
|
||||
|| oldMasterSyncEnabled != mMasterSyncEnabled;
|
||||
diff --git a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
|
||||
--- a/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
|
||||
+++ b/net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java
|
||||
@@ -96,50 +96,7 @@ public class HttpNegotiateAuthenticator {
|
||||
|
||||
@Override
|
||||
public void run(AccountManagerFuture<Account[]> future) {
|
||||
- Account[] accounts;
|
||||
- try {
|
||||
- accounts = future.getResult();
|
||||
- } catch (OperationCanceledException | AuthenticatorException | IOException e) {
|
||||
- Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to retrieve accounts.", e);
|
||||
- nativeSetResult(mRequestData.nativeResultObject, NetError.ERR_UNEXPECTED, null);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (accounts.length == 0) {
|
||||
- Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: No account provided for the kerberos "
|
||||
- + "authentication. Please verify the configuration policies and "
|
||||
- + "that the CONTACTS runtime permission is granted. ");
|
||||
- nativeSetResult(mRequestData.nativeResultObject,
|
||||
- NetError.ERR_MISSING_AUTH_CREDENTIALS, null);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (accounts.length > 1) {
|
||||
- Log.w(TAG, "ERR_MISSING_AUTH_CREDENTIALS: Found %d accounts eligible for the "
|
||||
- + "kerberos authentication. Please fix the configuration by "
|
||||
- + "providing a single account.",
|
||||
- accounts.length);
|
||||
- nativeSetResult(mRequestData.nativeResultObject,
|
||||
- NetError.ERR_MISSING_AUTH_CREDENTIALS, null);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (lacksPermission(ContextUtils.getApplicationContext(),
|
||||
- "android.permission.USE_CREDENTIALS", true)) {
|
||||
- // Protecting the AccountManager#getAuthToken call.
|
||||
- // API < 23 Requires the USE_CREDENTIALS permission or throws an exception.
|
||||
- // API >= 23 USE_CREDENTIALS permission is removed
|
||||
- Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: USE_CREDENTIALS permission not "
|
||||
- + "granted. Aborting authentication.");
|
||||
- nativeSetResult(mRequestData.nativeResultObject,
|
||||
- NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null);
|
||||
- return;
|
||||
- }
|
||||
- mRequestData.account = accounts[0];
|
||||
- mRequestData.accountManager.getAuthToken(mRequestData.account,
|
||||
- mRequestData.authTokenType, mRequestData.options, true /* notifyAuthFailure */,
|
||||
- new GetTokenCallback(mRequestData),
|
||||
- new Handler(ThreadUtils.getUiThreadLooper()));
|
||||
+ // account-based authentication removed for privacy-violations concerns
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,41 +109,7 @@ public class HttpNegotiateAuthenticator {
|
||||
|
||||
@Override
|
||||
public void run(AccountManagerFuture<Bundle> future) {
|
||||
- Bundle result;
|
||||
- try {
|
||||
- result = future.getResult();
|
||||
- } catch (OperationCanceledException | AuthenticatorException | IOException e) {
|
||||
- Log.w(TAG, "ERR_UNEXPECTED: Error while attempting to obtain a token.", e);
|
||||
- nativeSetResult(mRequestData.nativeResultObject, NetError.ERR_UNEXPECTED, null);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- if (result.containsKey(AccountManager.KEY_INTENT)) {
|
||||
- final Context appContext = ContextUtils.getApplicationContext();
|
||||
-
|
||||
- // We wait for a broadcast that should be sent once the user is done interacting
|
||||
- // with the notification
|
||||
- // TODO(dgn) We currently hang around if the notification is swiped away, until
|
||||
- // a LOGIN_ACCOUNTS_CHANGED_ACTION filter is received. It might be for something
|
||||
- // unrelated then we would wait again here. Maybe we should limit the number of
|
||||
- // retries in some way?
|
||||
- BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
|
||||
-
|
||||
- @Override
|
||||
- public void onReceive(Context context, Intent intent) {
|
||||
- appContext.unregisterReceiver(this);
|
||||
- mRequestData.accountManager.getAuthToken(mRequestData.account,
|
||||
- mRequestData.authTokenType, mRequestData.options,
|
||||
- true /* notifyAuthFailure */, new GetTokenCallback(mRequestData),
|
||||
- null);
|
||||
- }
|
||||
-
|
||||
- };
|
||||
- appContext.registerReceiver(broadcastReceiver,
|
||||
- new IntentFilter(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION));
|
||||
- } else {
|
||||
- processResult(result, mRequestData);
|
||||
- }
|
||||
+ // ditto
|
||||
}
|
||||
}
|
||||
|
||||
@@ -299,22 +222,7 @@ public class HttpNegotiateAuthenticator {
|
||||
*/
|
||||
private void requestTokenWithoutActivity(
|
||||
Context ctx, RequestData requestData, String[] features) {
|
||||
- if (lacksPermission(ctx, Manifest.permission.GET_ACCOUNTS, true /* onlyPreM */)) {
|
||||
- // Protecting the AccountManager#getAccountsByTypeAndFeatures call.
|
||||
- // API < 23 Requires the GET_ACCOUNTS permission or throws an exception.
|
||||
- // API >= 23 Requires the GET_ACCOUNTS permission (CONTACTS permission group) or
|
||||
- // returns only the accounts whose authenticator has a signature that
|
||||
- // matches our app. Working with this restriction and not requesting
|
||||
- // the permission is a valid use case in the context of WebView, so we
|
||||
- // don't require it on M+
|
||||
- Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: GET_ACCOUNTS permission not "
|
||||
- + "granted. Aborting authentication.");
|
||||
- nativeSetResult(requestData.nativeResultObject,
|
||||
- NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null);
|
||||
- return;
|
||||
- }
|
||||
- requestData.accountManager.getAccountsByTypeAndFeatures(mAccountType, features,
|
||||
- new GetAccountsCallback(requestData), new Handler(ThreadUtils.getUiThreadLooper()));
|
||||
+ // ditto
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -333,29 +241,7 @@ public class HttpNegotiateAuthenticator {
|
||||
*/
|
||||
private void requestTokenWithActivity(
|
||||
Context ctx, Activity activity, RequestData requestData, String[] features) {
|
||||
- boolean isPreM = Build.VERSION.SDK_INT < Build.VERSION_CODES.M;
|
||||
- String permission = isPreM
|
||||
- ? "android.permission.MANAGE_ACCOUNTS"
|
||||
- : Manifest.permission.GET_ACCOUNTS;
|
||||
-
|
||||
- // Check if the AccountManager#getAuthTokenByFeatures call can be made.
|
||||
- // API < 23 Requires the MANAGE_ACCOUNTS permission.
|
||||
- // API >= 23 Requires the GET_ACCOUNTS permission to behave properly. When it's not granted,
|
||||
- // accounts not managed by the current application can't be retrieved. Depending
|
||||
- // on the authenticator implementation, it might prompt to create an account, but
|
||||
- // that won't be saved. This would be a bad user experience, so we also consider
|
||||
- // it a failure case.
|
||||
- if (lacksPermission(ctx, permission, isPreM)) {
|
||||
- Log.e(TAG, "ERR_MISCONFIGURED_AUTH_ENVIRONMENT: %s permission not granted. "
|
||||
- + "Aborting authentication", permission);
|
||||
- nativeSetResult(requestData.nativeResultObject,
|
||||
- NetError.ERR_MISCONFIGURED_AUTH_ENVIRONMENT, null);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- requestData.accountManager.getAuthTokenByFeatures(mAccountType, requestData.authTokenType,
|
||||
- features, activity, null, requestData.options, new GetTokenCallback(requestData),
|
||||
- new Handler(ThreadUtils.getUiThreadLooper()));
|
||||
+ // ditto
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
|
||||
--- a/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
|
||||
+++ b/remoting/android/java/src/org/chromium/chromoting/base/OAuthTokenFetcher.java
|
||||
@@ -93,7 +93,6 @@ public class OAuthTokenFetcher {
|
||||
|
||||
/** Begins fetching a token. Should be called on the main thread. */
|
||||
public void fetch() {
|
||||
- fetchImpl(null);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,7 +101,6 @@ public class OAuthTokenFetcher {
|
||||
* @param expiredToken A previously-fetched token which has expired.
|
||||
*/
|
||||
public void clearAndFetch(String expiredToken) {
|
||||
- fetchImpl(expiredToken);
|
||||
}
|
||||
|
||||
private void fetchImpl(final String expiredToken) {
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 10 Nov 2018 19:47:39 +0100
|
||||
Subject: Do not grant notifications to default search engine
|
||||
|
||||
Block gelocation by default instead of granting it for non-enterprise use cases (almost the totality of users)
|
||||
---
|
||||
.../search_permissions/search_permissions_service.cc | 18 +++++-------------
|
||||
chrome/common/chrome_features.cc | 2 +-
|
||||
2 files changed, 6 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/android/search_permissions/search_permissions_service.cc b/chrome/browser/android/search_permissions/search_permissions_service.cc
|
||||
--- a/chrome/browser/android/search_permissions/search_permissions_service.cc
|
||||
+++ b/chrome/browser/android/search_permissions/search_permissions_service.cc
|
||||
@@ -333,11 +333,7 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
return;
|
||||
}
|
||||
|
||||
- // If we get to here, the DSE is not disabled by enterprise policy. If it was
|
||||
- // previously enterprise controlled, we initialize the setting to BLOCK since
|
||||
- // we don't know what the user's setting was previously.
|
||||
- bool was_enterprise_controlled =
|
||||
- pref_service_->GetBoolean(prefs::kDSEWasDisabledByPolicy);
|
||||
+ // If we get to here, the DSE is not disabled by enterprise policy.
|
||||
pref_service_->ClearPref(prefs::kDSEWasDisabledByPolicy);
|
||||
|
||||
// Initialize the pref for geolocation if it hasn't been initialized yet.
|
||||
@@ -370,10 +366,8 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
pref_service_->ClearPref(prefs::kDSEGeolocationSettingDeprecated);
|
||||
} else if (dse_geolocation_setting == CONTENT_SETTING_ASK) {
|
||||
// If the user hasn't explicitly allowed or blocked geolocation for the
|
||||
- // DSE, initialize it to allowed.
|
||||
- dse_geolocation_setting = was_enterprise_controlled
|
||||
- ? CONTENT_SETTING_BLOCK
|
||||
- : CONTENT_SETTING_ALLOW;
|
||||
+ // DSE, initialize it to disallowed.
|
||||
+ dse_geolocation_setting = CONTENT_SETTING_BLOCK;
|
||||
}
|
||||
|
||||
// Update the content setting with the auto-grants for the DSE.
|
||||
@@ -398,11 +392,9 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
|
||||
GetContentSetting(dse_origin, CONTENT_SETTINGS_TYPE_NOTIFICATIONS);
|
||||
ContentSetting dse_notifications_setting = notifications_setting_to_restore;
|
||||
// If the user hasn't explicitly allowed or blocked notifications for the
|
||||
- // DSE, initialize it to allowed.
|
||||
+ // DSE, initialize it to disallowed.
|
||||
if (dse_notifications_setting == CONTENT_SETTING_ASK) {
|
||||
- dse_notifications_setting = was_enterprise_controlled
|
||||
- ? CONTENT_SETTING_BLOCK
|
||||
- : CONTENT_SETTING_ALLOW;
|
||||
+ dse_notifications_setting = CONTENT_SETTING_BLOCK;
|
||||
}
|
||||
|
||||
// Update the content setting with the auto-grants for the DSE.
|
||||
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
--- a/chrome/common/chrome_features.cc
|
||||
+++ b/chrome/common/chrome_features.cc
|
||||
@@ -242,7 +242,7 @@ const char kDisallowUnsafeHttpDownloadsParamName[] = "MimeTypeList";
|
||||
#if defined(OS_ANDROID)
|
||||
// Enable changing default downloads storage location on Android.
|
||||
const base::Feature kDownloadsLocationChange{"DownloadsLocationChange",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
#endif
|
||||
|
||||
// Show the number of open incognito windows besides incognito icon on the
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 20 Jan 2019 06:20:10 +0100
|
||||
Subject: Do not ignore download location prompt setting
|
||||
|
||||
Upstream has decided that it works as intended (https://bugs.chromium.org/p/chromium/issues/detail?id=916606)
|
||||
but users would like to decide where to save a file even when there is no SD card available;
|
||||
do not skip the prompt in such cases.
|
||||
---
|
||||
.../download/DownloadLocationDialogBridge.java | 71 +++++++---------------
|
||||
1 file changed, 21 insertions(+), 50 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
|
||||
@@ -31,9 +31,6 @@ public class DownloadLocationDialogBridge implements ModalDialogProperties.Contr
|
||||
private PropertyModel mDialogModel;
|
||||
private DownloadLocationCustomView mCustomView;
|
||||
private ModalDialogManager mModalDialogManager;
|
||||
- private long mTotalBytes;
|
||||
- private @DownloadLocationDialogType int mDialogType;
|
||||
- private String mSuggestedPath;
|
||||
private Context mContext;
|
||||
|
||||
private DownloadLocationDialogBridge(long nativeDownloadLocationDialogBridge) {
|
||||
@@ -66,12 +63,28 @@ public class DownloadLocationDialogBridge implements ModalDialogProperties.Contr
|
||||
|
||||
mModalDialogManager = activity.getModalDialogManager();
|
||||
mContext = activity;
|
||||
- mTotalBytes = totalBytes;
|
||||
- mDialogType = dialogType;
|
||||
- mSuggestedPath = suggestedPath;
|
||||
|
||||
- DownloadDirectoryProvider.getInstance().getAllDirectoriesOptions(
|
||||
- (ArrayList<DirectoryOption> dirs) -> { onDirectoryOptionsRetrieved(dirs); });
|
||||
+ // Already showing the dialog.
|
||||
+ if (mDialogModel != null) return;
|
||||
+
|
||||
+ // Actually show the dialog.
|
||||
+ mCustomView = (DownloadLocationCustomView) LayoutInflater.from(mContext).inflate(
|
||||
+ R.layout.download_location_dialog, null);
|
||||
+ mCustomView.initialize(dialogType, new File(suggestedPath));
|
||||
+
|
||||
+ Resources resources = mContext.getResources();
|
||||
+ mDialogModel =
|
||||
+ new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
|
||||
+ .with(ModalDialogProperties.CONTROLLER, this)
|
||||
+ .with(ModalDialogProperties.TITLE, getTitle(totalBytes, dialogType))
|
||||
+ .with(ModalDialogProperties.CUSTOM_VIEW, mCustomView)
|
||||
+ .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources,
|
||||
+ R.string.duplicate_download_infobar_download_button)
|
||||
+ .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
|
||||
+ R.string.cancel)
|
||||
+ .build();
|
||||
+
|
||||
+ mModalDialogManager.showDialog(mDialogModel, ModalDialogManager.ModalDialogType.APP);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -104,48 +117,6 @@ public class DownloadLocationDialogBridge implements ModalDialogProperties.Contr
|
||||
mCustomView = null;
|
||||
}
|
||||
|
||||
- /**
|
||||
- * Called after retrieved the download directory options.
|
||||
- * @param dirs An list of available download directories.
|
||||
- */
|
||||
- private void onDirectoryOptionsRetrieved(ArrayList<DirectoryOption> dirs) {
|
||||
- // If there is only one directory available, don't show the default dialog, and set the
|
||||
- // download directory to default. Dialog will still show for other types of dialogs, like
|
||||
- // name conflict or disk error.
|
||||
- if (dirs.size() == 1 && mDialogType == DownloadLocationDialogType.DEFAULT) {
|
||||
- final DirectoryOption dir = dirs.get(0);
|
||||
- if (dir.type == DirectoryOption.DownloadLocationDirectoryType.DEFAULT) {
|
||||
- assert(!TextUtils.isEmpty(dir.location));
|
||||
- PrefServiceBridge.getInstance().setDownloadAndSaveFileDefaultDirectory(
|
||||
- dir.location);
|
||||
- nativeOnComplete(mNativeDownloadLocationDialogBridge, mSuggestedPath);
|
||||
- }
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- // Already showing the dialog.
|
||||
- if (mDialogModel != null) return;
|
||||
-
|
||||
- // Actually show the dialog.
|
||||
- mCustomView = (DownloadLocationCustomView) LayoutInflater.from(mContext).inflate(
|
||||
- R.layout.download_location_dialog, null);
|
||||
- mCustomView.initialize(mDialogType, new File(mSuggestedPath));
|
||||
-
|
||||
- Resources resources = mContext.getResources();
|
||||
- mDialogModel =
|
||||
- new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
|
||||
- .with(ModalDialogProperties.CONTROLLER, this)
|
||||
- .with(ModalDialogProperties.TITLE, getTitle(mTotalBytes, mDialogType))
|
||||
- .with(ModalDialogProperties.CUSTOM_VIEW, mCustomView)
|
||||
- .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources,
|
||||
- R.string.duplicate_download_infobar_download_button)
|
||||
- .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
|
||||
- R.string.cancel)
|
||||
- .build();
|
||||
-
|
||||
- mModalDialogManager.showDialog(mDialogModel, ModalDialogManager.ModalDialogType.APP);
|
||||
- }
|
||||
-
|
||||
private String getTitle(long totalBytes, @DownloadLocationDialogType int dialogType) {
|
||||
switch (dialogType) {
|
||||
case DownloadLocationDialogType.LOCATION_FULL:
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ Subject: Do not store passwords by default
|
||||
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
|
||||
--- a/components/password_manager/core/browser/password_manager.cc
|
||||
+++ b/components/password_manager/core/browser/password_manager.cc
|
||||
@@ -363,10 +363,10 @@ void RecordParsingOnSavingDifference(
|
||||
@@ -354,10 +354,10 @@ bool IsOnlyNewParserEnabled() {
|
||||
void PasswordManager::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -0,0 +1,58 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Thu, 22 Dec 2016 07:15:34 -0500
|
||||
Subject: Enable -fwrapv in Clang for non-UBSan builds
|
||||
|
||||
Using -fwrapv (notably only when not using signed integer overflow checking -
|
||||
since it will override it and result in not performing checks) is just common
|
||||
sense since it eliminates the chance of security vulnerabilities being
|
||||
introduced by optimizations based on signed overflow being undefined.
|
||||
That has happened before, and those optimizations don't even add up to a 0.1%
|
||||
performance increase for this kind of software. It's not worth having.
|
||||
The Linux kernel passes -fwrapv and also -fno-strict-aliasing to disable those
|
||||
dangerous optimizations (since there is so much incorrect code they can break).
|
||||
In fact, it is easy to point to dozens of known examples of invalid code that
|
||||
could potentially be broken by those optimizations.
|
||||
|
||||
It is not acceptable for projects to be using optimizations that are known to
|
||||
be broken with a bunch of code in their tree.
|
||||
They put barely any effort into even fixing the known cases.
|
||||
Chromium has blacklists for UBSan for 'false positives' (none of which are
|
||||
actually false positives, but rather "undefined, but not a bug beyond
|
||||
potentially being broken by optimizations or even code generation without
|
||||
them") and also for components too full of these bugs for them to currently
|
||||
want to bother with it. That includes a bunch of signed overflow issues
|
||||
(there is sadly no detection for aliasing violations, which are fairly common,
|
||||
but not that common).
|
||||
|
||||
Ideally, -fwrapv could be always passed, but unfortunately the way it is
|
||||
implemented has silly interactions with other switches.
|
||||
The reason it would still make sense to pass it is because due to their UBSan
|
||||
blacklists, they get far from full coverage with it, so -fwrapv would still
|
||||
be better than nothing where it's not being used.
|
||||
|
||||
Since -fwrapv makes signed integer overflow well-defined, Clang will disable
|
||||
the UBSan checks for signed integer overflow, including in the
|
||||
production-oriented trapping mode used for hardening.
|
||||
|
||||
Excerpt from https://github.com/bromite/bromite/issues/226
|
||||
---
|
||||
build/config/compiler/BUILD.gn | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -262,6 +262,10 @@ config("compiler") {
|
||||
}
|
||||
}
|
||||
|
||||
+ if (is_clang && !is_ubsan && !is_ubsan_security) {
|
||||
+ cflags += [ "-fwrapv" ]
|
||||
+ }
|
||||
+
|
||||
# Linker warnings.
|
||||
if (fatal_linker_warnings && !(is_chromeos && current_cpu == "arm") &&
|
||||
!(is_android && use_order_profiling) && !is_mac && !is_ios &&
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+4
-4
@@ -10,15 +10,15 @@ Set #enable-history-entry-requires-user-gesture to enabled by default
|
||||
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
--- a/chrome/browser/about_flags.cc
|
||||
+++ b/chrome/browser/about_flags.cc
|
||||
@@ -1510,7 +1510,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
@@ -1133,7 +1133,7 @@ const FeatureEntry kFeatureEntries[] = {
|
||||
{"enable-history-entry-requires-user-gesture",
|
||||
flag_descriptions::kHistoryRequiresUserGestureName,
|
||||
flag_descriptions::kHistoryRequiresUserGestureDescription, kOsAll,
|
||||
- SINGLE_VALUE_TYPE(switches::kHistoryEntryRequiresUserGesture)},
|
||||
+ SINGLE_DISABLE_VALUE_TYPE(switches::kHistoryEntryRequiresUserGesture)},
|
||||
{"disable-pushstate-throttle",
|
||||
flag_descriptions::kDisablePushStateThrottleName,
|
||||
flag_descriptions::kDisablePushStateThrottleDescription, kOsAll,
|
||||
{"enable-history-manipulation-intervention",
|
||||
flag_descriptions::kHistoryManipulationIntervention,
|
||||
flag_descriptions::kHistoryManipulationInterventionDescription, kOsAll,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 14 Apr 2019 12:02:57 +0200
|
||||
Subject: Enable night mode menu entry by default
|
||||
|
||||
---
|
||||
chrome/browser/android/chrome_feature_list.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
|
||||
--- a/chrome/browser/android/chrome_feature_list.cc
|
||||
+++ b/chrome/browser/android/chrome_feature_list.cc
|
||||
@@ -230,7 +230,7 @@ const base::Feature kAdjustWebApkInstallationSpace = {
|
||||
"AdjustWebApkInstallationSpace", base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kAndroidNightMode{"AndroidNightMode",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
|
||||
const base::Feature kAndroidNightModeCCT{"AndroidNightModeCCT",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Fri, 15 Mar 2019 10:05:14 +0100
|
||||
Subject: Enable secure DNS mode by default in DnsTransaction
|
||||
|
||||
---
|
||||
net/dns/host_resolver_manager.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
--- a/net/dns/host_resolver_manager.cc
|
||||
+++ b/net/dns/host_resolver_manager.cc
|
||||
@@ -1001,7 +1001,7 @@ class HostResolverManager::DnsTask : public base::SupportsWeakPtr<DnsTask> {
|
||||
std::unique_ptr<DnsTransaction> CreateTransaction(
|
||||
DnsQueryType dns_query_type) {
|
||||
DCHECK_NE(DnsQueryType::UNSPECIFIED, dns_query_type);
|
||||
- SecureDnsMode secure_dns_mode = SecureDnsMode::AUTOMATIC;
|
||||
+ SecureDnsMode secure_dns_mode = SecureDnsMode::SECURE;
|
||||
// Downgrade to OFF mode if the query name for this attempt matches one of
|
||||
// the DoH server names. This is needed to prevent infinite recursion.
|
||||
DCHECK(client_->GetConfig());
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 17 Mar 2019 19:09:00 +0100
|
||||
Subject: Enable site per process isolation for devices with enough memory
|
||||
|
||||
---
|
||||
chrome/common/chrome_features.cc | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
|
||||
--- a/chrome/common/chrome_features.cc
|
||||
+++ b/chrome/common/chrome_features.cc
|
||||
@@ -558,11 +558,7 @@ const base::Feature kShowTrustedPublisherURL{"ShowTrustedPublisherURL",
|
||||
// browser_features, as they are only used on the browser side.
|
||||
const base::Feature kSitePerProcess {
|
||||
"site-per-process",
|
||||
-#if defined(OS_ANDROID)
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#else
|
||||
base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#endif
|
||||
};
|
||||
|
||||
// Controls a mode for dynamically process-isolating sites where the user has
|
||||
@@ -584,7 +580,7 @@ const base::Feature kSiteIsolationForPasswordSites{
|
||||
// base::SysInfo::AmountOfPhysicalMemoryMB().
|
||||
const base::Feature kSitePerProcessOnlyForHighMemoryClients{
|
||||
"site-per-process-only-for-high-memory-clients",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT};
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT};
|
||||
const char kSitePerProcessOnlyForHighMemoryClientsParamName[] =
|
||||
"site-per-process-low-memory-cutoff-mb";
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -9,9 +9,9 @@ Subject: Fix crash when accessing page info / site settings
|
||||
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
|
||||
--- a/chrome/browser/permissions/permission_manager.cc
|
||||
+++ b/chrome/browser/permissions/permission_manager.cc
|
||||
@@ -677,6 +677,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
GURL canonical_requesting_origin =
|
||||
GetCanonicalOrigin(requesting_origin, embedding_origin);
|
||||
@@ -695,6 +695,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
|
||||
if (status != CONTENT_SETTING_DEFAULT)
|
||||
return PermissionResult(status, PermissionStatusSource::UNSPECIFIED);
|
||||
PermissionContextBase* context = GetPermissionContext(permission);
|
||||
+ if (context == nullptr) {
|
||||
+ return PermissionResult(CONTENT_SETTING_BLOCK, PermissionStatusSource::UNSPECIFIED);
|
||||
@@ -0,0 +1,32 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Sun, 13 Aug 2017 19:33:04 -0400
|
||||
Subject: Hide passwords manager link
|
||||
|
||||
---
|
||||
.../chrome/browser/preferences/password/SavePasswordsPreferences.java | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/password/SavePasswordsPreferences.java
|
||||
@@ -251,7 +251,7 @@ public class SavePasswordsPreferences
|
||||
return;
|
||||
}
|
||||
|
||||
- displayManageAccountLink();
|
||||
+ //displayManageAccountLink();
|
||||
|
||||
PreferenceGroup passwordParent;
|
||||
if (mSearchQuery == null) {
|
||||
@@ -326,7 +326,7 @@ public class SavePasswordsPreferences
|
||||
return;
|
||||
}
|
||||
|
||||
- displayManageAccountLink();
|
||||
+ //displayManageAccountLink();
|
||||
|
||||
PreferenceCategory profileCategory = new PreferenceCategory(getActivity());
|
||||
profileCategory.setKey(PREF_KEY_CATEGORY_EXCEPTIONS);
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -9,12 +9,12 @@ Subject: Hide send reports checkbox
|
||||
diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
--- a/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
+++ b/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
@@ -71,7 +71,7 @@
|
||||
@@ -70,7 +70,7 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:lineSpacingMultiplier="1.4"
|
||||
android:text="@string/fre_send_report_check"
|
||||
- android:textAppearance="@style/BlackBodyDefault" />
|
||||
+ android:textAppearance="@style/BlackBodyDefault" android:visibility = "gone" />
|
||||
- android:textAppearance="@style/TextAppearance.BlackBodyDefault" />
|
||||
+ android:textAppearance="@style/TextAppearance.BlackBodyDefault" android:visibility="gone" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
+54
-22
File diff suppressed because one or more lines are too long
+64
-43
@@ -3,28 +3,28 @@ Date: Thu, 12 Oct 2017 08:09:24 +0200
|
||||
Subject: Modify default preferences
|
||||
|
||||
---
|
||||
chrome/browser/background/background_mode_manager.cc | 2 +-
|
||||
chrome/browser/chrome_content_browser_client.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 | 5 +----
|
||||
components/autofill/core/common/autofill_prefs.cc | 6 +++---
|
||||
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
|
||||
components/safe_browsing/common/safe_browsing_prefs.cc | 4 ++--
|
||||
extensions/common/extension.cc | 8 --------
|
||||
16 files changed, 20 insertions(+), 35 deletions(-)
|
||||
chrome/browser/background/background_mode_manager.cc | 2 +-
|
||||
chrome/browser/chrome_content_browser_client.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.cc | 2 +-
|
||||
chrome/browser/net/prediction_options.h | 2 +-
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
.../settings/reset_page/reset_profile_dialog.html | 2 +-
|
||||
chrome/browser/signin/signin_promo.cc | 2 +-
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 4 ++--
|
||||
chrome/browser/ui/navigation_correction_tab_observer.cc | 2 +-
|
||||
.../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 | 14 ++++----------
|
||||
components/autofill/core/common/autofill_prefs.cc | 6 +++---
|
||||
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
|
||||
components/safe_browsing/common/safe_browsing_prefs.cc | 4 ++--
|
||||
extensions/common/extension.cc | 8 --------
|
||||
16 files changed, 22 insertions(+), 40 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
|
||||
@@ -351,7 +351,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
@@ -352,7 +352,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
|
||||
registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
|
||||
#endif
|
||||
@@ -36,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
|
||||
@@ -1055,7 +1055,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
@@ -1139,7 +1139,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
|
||||
void ChromeContentBrowserClient::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
|
||||
@@ -48,9 +48,9 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
|
||||
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
|
||||
@@ -30,7 +30,7 @@ NetworkPredictionStatus CanPrefetchAndPrerender(
|
||||
return NetworkPredictionStatus::ENABLED;
|
||||
@@ -32,7 +32,7 @@ NetworkPredictionStatus CanPrefetchAndPrerender(
|
||||
}
|
||||
return NetworkPredictionStatus::DISABLED_DUE_TO_NETWORK;
|
||||
default:
|
||||
- DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options);
|
||||
+ //DCHECK_EQ(NETWORK_PREDICTION_NEVER, network_prediction_options);
|
||||
@@ -72,7 +72,7 @@ diff --git a/chrome/browser/net/prediction_options.h b/chrome/browser/net/predic
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -138,7 +138,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
@@ -148,7 +148,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
|
||||
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSearchSuggestEnabled,
|
||||
@@ -84,7 +84,7 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil
|
||||
diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
--- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
+++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
@@ -45,7 +45,7 @@
|
||||
@@ -52,7 +52,7 @@
|
||||
</paper-button>
|
||||
</div>
|
||||
<div slot="footer">
|
||||
@@ -96,13 +96,11 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
|
||||
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
|
||||
--- a/chrome/browser/signin/signin_promo.cc
|
||||
+++ b/chrome/browser/signin/signin_promo.cc
|
||||
@@ -353,8 +353,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
|
||||
@@ -172,7 +172,7 @@ bool IsAutoCloseEnabledInEmbeddedURL(const GURL& url) {
|
||||
|
||||
void RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterIntegerPref(prefs::kSignInPromoStartupCount, 0);
|
||||
- registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, false);
|
||||
- registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kSignInPromoUserSkipped, true);
|
||||
+ registry->RegisterBooleanPref(prefs::kSignInPromoShowOnFirstRunAllowed, false);
|
||||
registry->RegisterBooleanPref(prefs::kSignInPromoShowNTPBubble, false);
|
||||
registry->RegisterIntegerPref(prefs::kDiceSigninUserMenuPromoCount, 0);
|
||||
@@ -110,7 +108,7 @@ diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signi
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -68,11 +68,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -66,11 +66,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
|
||||
registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -127,12 +125,12 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
|
||||
diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
--- a/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
+++ b/chrome/browser/ui/navigation_correction_tab_observer.cc
|
||||
@@ -56,7 +56,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {
|
||||
@@ -55,7 +55,7 @@ NavigationCorrectionTabObserver::~NavigationCorrectionTabObserver() {}
|
||||
// static
|
||||
void NavigationCorrectionTabObserver::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* prefs) {
|
||||
prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled,
|
||||
- true,
|
||||
+ false,
|
||||
- prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, true,
|
||||
+ prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
}
|
||||
|
||||
@@ -165,24 +163,47 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
|
||||
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_manager.cc
|
||||
@@ -290,10 +290,7 @@ bool AutofillManager::ShouldShowCreditCardSigninPromo(
|
||||
bool AutofillManager::ShouldParseForms(const std::vector<FormData>& forms,
|
||||
const base::TimeTicks timestamp) {
|
||||
@@ -360,10 +360,7 @@ bool AutofillManager::ShouldParseForms(const std::vector<FormData>& forms,
|
||||
bool enabled = IsAutofillEnabled();
|
||||
sync_state_ = personal_data_ ? personal_data_->GetSyncSigninState()
|
||||
: AutofillSyncSigninState::kNumSyncStates;
|
||||
- if (!has_logged_autofill_enabled_) {
|
||||
- AutofillMetrics::LogIsAutofillEnabledAtPageLoad(enabled);
|
||||
- AutofillMetrics::LogIsAutofillEnabledAtPageLoad(enabled, sync_state_);
|
||||
- has_logged_autofill_enabled_ = true;
|
||||
- }
|
||||
+ has_logged_autofill_enabled_ = true;
|
||||
|
||||
return enabled;
|
||||
}
|
||||
@@ -626,10 +623,7 @@ void AutofillManager::OnQueryFormFieldAutofillImpl(
|
||||
// suggestions available.
|
||||
// TODO(mathp): Differentiate between number of suggestions available
|
||||
// (current metric) and number shown to the user.
|
||||
- if (!has_logged_address_suggestions_count_) {
|
||||
- AutofillMetrics::LogAddressSuggestionsCount(suggestions.size());
|
||||
- has_logged_address_suggestions_count_ = true;
|
||||
- }
|
||||
+ has_logged_address_suggestions_count_ = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1234,8 +1228,8 @@ void AutofillManager::Reset() {
|
||||
#if defined(OS_ANDROID) || defined(OS_IOS)
|
||||
autofill_assistant_.Reset();
|
||||
#endif
|
||||
- has_logged_autofill_enabled_ = false;
|
||||
- has_logged_address_suggestions_count_ = false;
|
||||
+ has_logged_autofill_enabled_ = true;
|
||||
+ has_logged_address_suggestions_count_ = true;
|
||||
did_show_suggestions_ = false;
|
||||
user_did_type_ = false;
|
||||
user_did_autofill_ = false;
|
||||
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
|
||||
--- a/components/autofill/core/common/autofill_prefs.cc
|
||||
+++ b/components/autofill/core/common/autofill_prefs.cc
|
||||
@@ -91,10 +91,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kAutofillBillingCustomerNumber, 0.0,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
|
||||
@@ -130,10 +130,10 @@ const char kAutocompleteLastVersionRetentionPolicy[] =
|
||||
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
// Synced prefs. Used for cross-device choices, e.g., credit card Autofill.
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kAutofillEnabledDeprecated, true,
|
||||
+ prefs::kAutofillEnabledDeprecated, false,
|
||||
@@ -193,7 +214,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kAutofillLastVersionDeduped, 0,
|
||||
@@ -103,7 +103,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -146,7 +146,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kAutofillLastVersionDisusedAddressesDeleted, 0,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -205,7 +226,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
|
||||
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
|
||||
--- a/components/bookmarks/browser/bookmark_utils.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_utils.cc
|
||||
@@ -441,12 +441,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
|
||||
@@ -440,12 +440,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
|
||||
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowBookmarkBar,
|
||||
@@ -223,7 +244,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
|
||||
@@ -229,9 +229,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
@@ -149,9 +149,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
|
||||
registry->RegisterBooleanPref(
|
||||
@@ -238,7 +259,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
|
||||
@@ -367,14 +367,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
@@ -382,14 +382,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
if (is_theme())
|
||||
return false;
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ Subject: Never fetch popular sites
|
||||
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
|
||||
+++ b/components/ntp_tiles/popular_sites_impl.cc
|
||||
@@ -291,6 +291,12 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download,
|
||||
@@ -287,6 +287,12 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download,
|
||||
DCHECK(!callback_);
|
||||
callback_ = callback;
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ Subject: Never send any crash upload data
|
||||
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
--- a/chrome/browser/tracing/crash_service_uploader.cc
|
||||
+++ b/chrome/browser/tracing/crash_service_uploader.cc
|
||||
@@ -126,6 +126,9 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
@@ -127,6 +127,9 @@ void TraceCrashServiceUploader::DoUpload(
|
||||
std::unique_ptr<const base::DictionaryValue> metadata,
|
||||
const UploadProgressCallback& progress_callback,
|
||||
UploadDoneCallback done_callback) {
|
||||
+1
-1
@@ -9,7 +9,7 @@ Subject: Offer builtin autocomplete for chrome://flags
|
||||
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
@@ -242,6 +242,8 @@ std::vector<base::string16>
|
||||
@@ -234,6 +234,8 @@ std::vector<base::string16>
|
||||
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
std::vector<base::string16> builtins_to_provide;
|
||||
builtins_to_provide.push_back(
|
||||
+5
-5
@@ -9,10 +9,10 @@ Subject: Open YouTube links in Bromite
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
|
||||
@@ -386,6 +386,13 @@ public class ExternalNavigationHandler {
|
||||
return OverrideUrlLoadingResult.NO_OVERRIDE;
|
||||
@@ -400,6 +400,13 @@ public class ExternalNavigationHandler {
|
||||
}
|
||||
|
||||
// TODO(changwan): check if we need to handle URL even when external intent is off.
|
||||
+ // Force to open YouTube urls in Bromite
|
||||
+ String intentPackageName = intent.getPackage();
|
||||
+ if (intentPackageName != null && intentPackageName.equals("com.google.android.youtube")) {
|
||||
@@ -20,9 +20,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext
|
||||
+ return OverrideUrlLoadingResult.NO_OVERRIDE;
|
||||
+ }
|
||||
+
|
||||
// Sanitize the Intent, ensuring web pages can not bypass browser
|
||||
// security (only access to BROWSABLE activities).
|
||||
intent.addCategory(Intent.CATEGORY_BROWSABLE);
|
||||
if (CommandLine.getInstance().hasSwitch(
|
||||
ChromeSwitches.DISABLE_EXTERNAL_INTENT_REQUESTS)) {
|
||||
Log.w(TAG, "External intent handling is disabled by a command-line flag.");
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ Originally from http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromi
|
||||
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
|
||||
--- a/chrome/common/chrome_content_client.cc
|
||||
+++ b/chrome/common/chrome_content_client.cc
|
||||
@@ -538,7 +538,7 @@ void ChromeContentClient::AddContentDecryptionModules(
|
||||
@@ -520,7 +520,7 @@ void ChromeContentClient::AddContentDecryptionModules(
|
||||
base::FilePath cdm_path;
|
||||
content::CdmCapability capability;
|
||||
if (IsWidevineAvailable(&cdm_path, &capability)) {
|
||||
@@ -0,0 +1,101 @@
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Thu, 2 Apr 2015 12:44:23 +0200
|
||||
Subject: Remove EV certificates
|
||||
|
||||
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.
|
||||
---
|
||||
net/cert/ev_root_ca_metadata.cc | 13 +++++++++----
|
||||
net/cert/ev_root_ca_metadata.h | 6 ++----
|
||||
2 files changed, 11 insertions(+), 8 deletions(-)
|
||||
|
||||
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
|
||||
+++ b/net/cert/ev_root_ca_metadata.cc
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
#include "net/cert/ev_root_ca_metadata.h"
|
||||
|
||||
-#if defined(USE_NSS_CERTS)
|
||||
+#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
#include <cert.h>
|
||||
#include <pkcs11n.h>
|
||||
#include <secerr.h>
|
||||
@@ -19,7 +19,7 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/strings/string_piece.h"
|
||||
#include "net/der/input.h"
|
||||
-#if defined(USE_NSS_CERTS)
|
||||
+#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
#include "crypto/nss_util.h"
|
||||
#elif defined(PLATFORM_USES_CHROMIUM_EV_METADATA) || defined(OS_WIN)
|
||||
#include "third_party/boringssl/src/include/openssl/bytestring.h"
|
||||
@@ -763,7 +763,7 @@ EVRootCAMetadata* EVRootCAMetadata::GetInstance() {
|
||||
return g_ev_root_ca_metadata.Pointer();
|
||||
}
|
||||
|
||||
-#if defined(USE_NSS_CERTS)
|
||||
+#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
|
||||
namespace {
|
||||
// Converts a DER-encoded OID (without leading tag and length) to a SECOidTag.
|
||||
@@ -1045,6 +1045,11 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) {
|
||||
// metadata.
|
||||
//
|
||||
|
||||
+bool EVRootCAMetadata::IsCaBrowserForumEvOid(PolicyOID policy_oid) {
|
||||
+ LOG(WARNING) << "Not implemented";
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
bool EVRootCAMetadata::IsEVPolicyOID(PolicyOID policy_oid) const {
|
||||
LOG(WARNING) << "Not implemented";
|
||||
return false;
|
||||
@@ -1084,7 +1089,7 @@ bool EVRootCAMetadata::RemoveEVCA(const SHA256HashValue& fingerprint) {
|
||||
|
||||
EVRootCAMetadata::EVRootCAMetadata() {
|
||||
// Constructs the object from the raw metadata in kEvRootCaMetadata.
|
||||
-#if defined(USE_NSS_CERTS)
|
||||
+#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
crypto::EnsureNSSInit();
|
||||
|
||||
for (const auto& ev_root : kEvRootCaMetadata) {
|
||||
diff --git a/net/cert/ev_root_ca_metadata.h b/net/cert/ev_root_ca_metadata.h
|
||||
--- a/net/cert/ev_root_ca_metadata.h
|
||||
+++ b/net/cert/ev_root_ca_metadata.h
|
||||
@@ -24,7 +24,7 @@
|
||||
defined(OS_FUCHSIA)
|
||||
// When not defined, the EVRootCAMetadata singleton is a dumb placeholder
|
||||
// implementation that will fail all EV lookup operations.
|
||||
-#define PLATFORM_USES_CHROMIUM_EV_METADATA
|
||||
+//#define PLATFORM_USES_CHROMIUM_EV_METADATA
|
||||
#endif
|
||||
|
||||
namespace base {
|
||||
@@ -68,12 +68,10 @@ class NET_EXPORT_PRIVATE EVRootCAMetadata {
|
||||
bool HasEVPolicyOIDGivenBytes(const SHA256HashValue& fingerprint,
|
||||
const der::Input& policy_oid) const;
|
||||
|
||||
-#if defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
// Returns true if |policy_oid| is for 2.23.140.1.1 (CA/Browser Forum's
|
||||
// Extended Validation Policy). This is used as a hack by the
|
||||
// platform-specific CertVerifyProcs when doing EV verification.
|
||||
static bool IsCaBrowserForumEvOid(PolicyOID policy_oid);
|
||||
-#endif
|
||||
|
||||
// AddEVCA adds an EV CA to the list of known EV CAs with the given policy.
|
||||
// |policy| is expressed as a string of dotted numbers. It returns true on
|
||||
@@ -90,7 +88,7 @@ class NET_EXPORT_PRIVATE EVRootCAMetadata {
|
||||
EVRootCAMetadata();
|
||||
~EVRootCAMetadata();
|
||||
|
||||
-#if defined(USE_NSS_CERTS)
|
||||
+#if defined(USE_NSS_CERTS) && defined(PLATFORM_USES_CHROMIUM_EV_METADATA)
|
||||
using PolicyOIDMap = std::map<SHA256HashValue, std::vector<PolicyOID>>;
|
||||
|
||||
// RegisterOID registers |policy|, a policy OID in dotted string form, and
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+101
-11
@@ -1,6 +1,6 @@
|
||||
From: Serg <serg.zhukovsky@gmail.com>
|
||||
Date: Wed, 22 Mar 2017 19:10:30 -0400
|
||||
Subject: Remove Sync and Translate menu
|
||||
Subject: Remove background sync and translate menu options
|
||||
|
||||
---
|
||||
.../java/res/drawable-hdpi/settings_translate.png | Bin 399 -> 0 bytes
|
||||
@@ -20,20 +20,111 @@ Subject: Remove Sync and Translate menu
|
||||
diff --git a/chrome/android/java/res/drawable-hdpi/settings_translate.png b/chrome/android/java/res/drawable-hdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 8067680e81c6ffa1a003c579411173827a3a9f96..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 399
|
||||
zcmV;A0dW3_P)<h;3K|Lk000e1NJLTq001Na001Ni1ONa4O9@aD00042Nkl<ZcwWuc
|
||||
zJxjwt0LJme7er{c_yr2Oml}2V3s~G9aP6!}z(tU5et?4AT-<~%x+sFhO}e^tsU(Y=
|
||||
z0hgddd^pNsLc+Z{l>hP^9KR_C@$!FaVIla45F@WCMg$)o)DW3mQKSdON+{NY%D^rw
|
||||
zQ6|u}ti|NX7$R7iF@)z*9c+qa0?AUm<7d7%a4MD+^aKw>u^zc5))3o43mLu<Vh_0s
|
||||
z^onI1i*NbG31VmP*$I~u^o9@~3%Mjy{|2j}Ph4OPO<b`i*Ms^ERzc?^JnUm8&>5G;
|
||||
z8!SRo0o`C5w_HXQp+hq2?!?{u8c0%8C3Jue>()aulqxVESiz93aydblXyA)AxSXIZ
|
||||
z^u+3MIY49igeSZ=wug@XJ`tWQp%m)~(480Xl-fZ9?!ILEyg9Ig+E_v&p@gTlA*4tf
|
||||
tij`2N2SrL~qywpbE;5V|EcpMCd%u4DGPZTzo=E@z002ovPDHLkV1m$asKNjM
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-mdpi/settings_translate.png b/chrome/android/java/res/drawable-mdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 3b9b4cd482d36a60d4ff0a110b0bcefabe4c1060..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 284
|
||||
zcmV+%0ptFOP)<h;3K|Lk000e1NJLTq000;O000;W1ONa4N`Cco0002vNkl<ZcwV*C
|
||||
zy$-=p90hPI21^H{kVr7~0h$;*gq(zkcms==tbG8pC$M2)sTe$f#Kz1feE^(W(wipt
|
||||
z>YqeTIHw=KscAEhFY_CKhZ7#j@Qh~#`t~HT1AWt&iOFYBic(;rl@5Y9UG&&#fH`9r
|
||||
zbqhPT0Nhc-8hg~aB!JnVj0zT9La;<0Ijq#SJr@m*036I22Uj!E;6TtuAD4*o-y97Z
|
||||
ziWuYbs-FagXn-mvsLH_>O?Hzl1RVtIfGq+yWZ%bGZULC0h?xp|DgiD=uf=xl!2Uvo
|
||||
icHkLEh=B&e`~;qlBW{m=6s{@&0000<MNUMnLSTX)y>C|l
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xhdpi/settings_translate.png b/chrome/android/java/res/drawable-xhdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 131a57394ca30dcff4bebcb2471bbbf0e1ac134e..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 547
|
||||
zcmV+;0^I$HP)<h;3K|Lk000e1NJLTq001xm001xu1ONa4{R=S+0005%Nkl<ZcwX(-
|
||||
zziU%b9ER~X&>vK2=pT?4!CJ8B5V|`lSO?MdsRak2|3E2<Ew~ov3nC6K4yBGdHyIT=
|
||||
z*iKQTa&gEaRP2_R<9E1(_FiJ{F<-%<Je=X3K5*}FI12x`^1wNOsFIKphLn;}MY&1<
|
||||
zRa%6SwW!7e2_d2+9!QG-C&)S}0;KUkhyudj0~b#<hpahU{YD2gq>+I}uBO%C0%8~2
|
||||
zqX2{ZjJTXFC*U;?c-ddi5s!R<4~S{LXX_djTCRX~3-JV7yh7Y2cms!wTkrY83}bwB
|
||||
z2dpi`B^D8n3HSqaSVYzpI`{+pWDRAl*>VMX>`+5Y@YI?>wsz=YK)L(kPe6xV>d0E+
|
||||
zF#Fw0h$>%W?u)^|9b`@O%&0zU>qXpsF&Oy9RW@l8a&@DCv<Q46cvb|~;{k3U>t;Ei
|
||||
z!kb9ohzhbQ9F+l#U_I(XZ6fPFVyg@=tm03vA!hhtr^YXT;4QKq66}a~{=i*iH3)XZ
|
||||
zJ#V1R7-E(l!Okq>w0(hXWNl<?1F`K3EFkM3TL*{*PoRnN1<~{aRuPk2Kh<Oqt6sn{
|
||||
zQ;3x_<Vp}z9QyzXvi8mZd)X7f1*jwDbN5@1`5@{JK-uDfGz#d(14$IH9}C1i5_>Gi
|
||||
l0_C5%UG`c2pI-Xsz;EN&!BMZ3jZy#r002ovPDHLkV1l>+@2da+
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xxhdpi/settings_translate.png b/chrome/android/java/res/drawable-xxhdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 55878e697b1afed1b4f039a561dc6212e24fc024..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 793
|
||||
zcmV+!1LpjRP)<h;3K|Lk000e1NJLTq002k;002k`1ONa4|Kxkj0008uNkl<ZcwX(=
|
||||
z%}Z2a6vy!qU&7QD6$CjgbzuaFrMYX-gy1F-TYN#>*(&T0P^f5;ixxw==!FDzQOmLj
|
||||
zW)TU|$~Iz9Aez>~5MeSGNzOdU;V@i=JI&0U$NLB~{9rb}%fp9z&%hk!M$92gIe;pl
|
||||
z3Wyj9l9(csBteWw5h(;j9dXi_fJqal&Mqj9DKT-2AY!CT2BnGF10^sPlCTEKJIX71
|
||||
z)JmT5wgxg*K&DJUmwnQupf11mfI$K*D&+>^c2@3W<t}H1aS^@Zph5Z5CZJigaScjR
|
||||
zMTBa$!Uuig{eHe=HE-q67$$tsm>kf|A8$jyfS$PkZE!?L6P{+3Y9btC#|6l6Q$SJA
|
||||
zJsJ|?2*wTQCyfHQr_G#j>iOXcWOyKi8a`n7&M5)i$G8LSaX}DgSmV5K&hghJ$naGk
|
||||
zn|yMVCHFr+W;};YV_bu_81R4w*m4VcMRV41&CGcb!S=Xdpk;b9jBZ}iok8`oEP#^s
|
||||
zxZ*(HxIwJ~nwTJkA;knuN_trO9#=T%BSV6b(8Ic?TcZbSdt70l>n4JR)6DpO>*nq3
|
||||
zafN}FIj#?Cl$~5NU<H)S4chdQct;y?eqjzexj|EYm%9W-*|Z3FLPYa42uQ+JQr19S
|
||||
z8PKI*ASGG4OG`vN`5X|W4{pi=YD6F%bO`8HV30TDOK#3CCj|0{M*=#@u3OM^=^OdI
|
||||
zpGG0Qa0|L3{jfB{0*bi=tx_fZf;0;Ps$$h0XjBJU8y)O1SD-zjI?&qaU`I*00lm%)
|
||||
zv^JT+e&Yso%`?y%9qc|Apbcs~1Fg})u4N;9(71N~84n-S`d?6M*r0iB`k2m2pEmR1
|
||||
zf(Er&%x+lJW-v@pl6q-6F+S;(uAXFgph;~W`+^>8I~g9RU77~AeL>qaNZ%d;C_u^s
|
||||
zlss&pgcZ=5Jy6WbGCgY#WaDr39a`*x^u>dcIQ=590n!A0HN&vZEG?C{V=ABuDD3<L
|
||||
X<=DewY$H`b00000NkvXXu0mjfrJ!K8
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png b/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png
|
||||
deleted file mode 100644
|
||||
index 058b50b84dd216d983e9dea2ea264b39773ac318..0000000000000000000000000000000000000000
|
||||
GIT binary patch
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
literal 1038
|
||||
zcmV+p1o8WcP)<h;3K|Lk000e1NJLTq003YB003YJ1ONa4NRhv@000BkNkl<ZcwX(>
|
||||
zK}Zx)90u@NR77ZDqzI8+I%LtIBq1>CB9(`rB#V~#N{sTXQQ#UFR4mj+L_yL)FVdw5
|
||||
zWziyt2t7o(5K@$fpoFMU*4D8)xU9Pq43Ec~9k(6b`LAza_%8CfJov%x+j;ZfQFNEb
|
||||
z12`KG-~l{<2LKCHgb{}Zy~t>YBMcRaBe4w#ApzaNBoHbkpa(iZdP)TdK_^P66aW<o
|
||||
zGC%?<Js=F7FkyN?+%{m2FFR)&5T^%dqyUW`ppydhRRcUgbKdOZfPML2wf+F5xOe~$
|
||||
za5X2_a&lcrfC1Ws*OwkpL^d<PXBoFq``hX^=<WnOVSo$r0_HGoWCB?$0G$l*T3*0U
|
||||
zRIr6&7Qk=#4L}fCncqTZ7+{YDaF5Y0%Y7~MjxY7x)Mrs=v_5>56u{HU0Q*gCKWkg%
|
||||
zzZ!iHpXGBfgAJ^klo-HsmH{^5htXtkfHkMxaUPh*CPp}jjBvX|#jNB2o*};A4dL$x
|
||||
zZaR^jWPl1(GQd%H9Vr*E#k6n`zua~vj+y|s+;yl=;Uat{fDf0DatmMzyH{Mi0aNk=
|
||||
z7SV+=VZjqPArQ*Yg+(*KsriBvfHVeB1BIss!$v=x(+(m{a9cQ39AFtk*a}5R2a=qY
|
||||
zM2G2rH)-YzYX!{XHtL`Vsl}LuIEGp%Af7L*1<;Mkoc-n;k}EEs#5wq==L@R`yh6DE
|
||||
zXe@BOIf?tU^9B0=>sf0D9wH09K(eHO_}X@%^EiwcGSJsOT46u}y38pI7<D_Kr9^-i
|
||||
zP=vg64xr$P1wcPDKIJ5!8q?%}`J8W;O8jyTpdd(2xC138cbx<%s3v|R?c{)Z)Ej_Z
|
||||
zjsbXDFiNzkzJbCM<!8IM&H##xEx>u<B=-&9*y*m*Er37RzyZxh(`*3z`0Eb9fWRFv
|
||||
zHG}Q|Gzy#Ng3&CnO?9su03QYHao!$h%_sQ*-2z~Qw<D~%AUhz1jU1q2iT6uT*&Xkc
|
||||
z+<->{wR6Q0;bXZ0hXla52{6vu7MTGve7a+uW@Zs&Q??m-0eu3rC-3h{ugD5mMnC|3
|
||||
zumC<VKmZvz0Z(nO@k~y@G24JP83D5>w+*PktbBkdCkD`$Cjm}~$_Loa0g=4O2nTGJ
|
||||
z4KN`LLB8h&d>4i%6LJCCIpB!UT62U0+GPT0sN#Uwe*rNLsDdUBpr7+<3XGr9!nmqm
|
||||
z9zX*J^g=I?UJhtjCjd!2fc<E02gFGMDSAMd6fjK>P)UbW5mEs8p!*B_)Bwsy8PjNj
|
||||
zLJc5zn3UxUnxN1F9DJOYCxvN5;D?e6@Sf=Q03N^tcmNOZ5BbKcjE%x^TL1t607*qo
|
||||
IM6N<$g2Gw1A^-pY
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
index d5ae426f7d7b..a01b1144639c 100644
|
||||
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
|
||||
@@ -50,9 +50,9 @@
|
||||
@@ -63,7 +154,6 @@ index d5ae426f7d7b..a01b1144639c 100644
|
||||
<!-- TODO(finnur): Move this over to the new Usage screen, once it exists. -->
|
||||
<org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
index 95a1c127a28f..e8b87fcefb3f 100644
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
|
||||
@@ -39,7 +39,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
@@ -87,19 +177,19 @@ index 95a1c127a28f..e8b87fcefb3f 100644
|
||||
} else {
|
||||
// If both Autoplay and Protected Content menus are available, they'll be tucked under
|
||||
// the Media key. Otherwise, we can remove the Media menu entry.
|
||||
@@ -109,11 +107,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
|
||||
getPreferenceScreen().removePreference(findPreference(Type.CLIPBOARD));
|
||||
@@ -103,11 +101,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (!SiteSettingsCategory.adsCategoryEnabled()) {
|
||||
getPreferenceScreen().removePreference(findPreference(Type.ADS));
|
||||
}
|
||||
- // The new Languages Preference *feature* is an advanced version of this translate
|
||||
- // preference. Once Languages Preference is enabled, remove this setting.
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
|
||||
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
|
||||
- }
|
||||
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.GENERIC_SENSOR_EXTRA_CLASSES)) {
|
||||
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SENSOR_CONTENT_SETTING)) {
|
||||
getPreferenceScreen().removePreference(findPreference(Type.SENSORS));
|
||||
}
|
||||
@@ -123,10 +116,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
@@ -121,10 +114,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
private void updatePreferenceStates() {
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
|
||||
@@ -110,16 +200,16 @@ index 95a1c127a28f..e8b87fcefb3f 100644
|
||||
// Preferences that navigate to Website Settings.
|
||||
List<Integer> websitePrefs = new ArrayList<Integer>();
|
||||
if (mMediaSubMenu) {
|
||||
@@ -143,7 +132,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
@@ -141,7 +130,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
if (!mProtectedContentMenuAvailable) {
|
||||
websitePrefs.add(Type.AUTOPLAY);
|
||||
}
|
||||
- websitePrefs.add(Type.BACKGROUND_SYNC);
|
||||
+// websitePrefs.add(Type.BACKGROUND_SYNC);
|
||||
websitePrefs.add(Type.CAMERA);
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
|
||||
if (!FeatureUtilities.isNoTouchModeEnabled()) {
|
||||
websitePrefs.add(Type.CLIPBOARD);
|
||||
@@ -246,11 +235,4 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
@@ -239,11 +228,4 @@ public class SiteSettingsPreferences extends PreferenceFragment
|
||||
preference.getTitle().toString());
|
||||
return false;
|
||||
}
|
||||
+2
-2
@@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
|
||||
@@ -2124,15 +2124,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2177,15 +2177,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
final Tab currentTab = getActivityTab();
|
||||
|
||||
@@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
|
||||
@@ -1314,7 +1314,7 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
|
||||
@@ -752,7 +752,7 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
|
||||
public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
|
||||
// Disable creating new tabs, bookmark, history, print, help, focus_url, etc.
|
||||
if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id
|
||||
@@ -0,0 +1,180 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 15 May 2019 17:08:35 +0200
|
||||
Subject: Remove recent tabs signin
|
||||
|
||||
---
|
||||
.../chrome/browser/signin/SigninManager.java | 74 ++--------------------
|
||||
1 file changed, 7 insertions(+), 67 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
@@ -29,11 +29,7 @@ import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
|
||||
import org.chromium.chrome.browser.externalauth.UserRecoverableErrorHandler;
|
||||
-import org.chromium.components.signin.AccountIdProvider;
|
||||
import org.chromium.components.signin.AccountManagerFacade;
|
||||
-import org.chromium.components.signin.AccountTrackerService;
|
||||
-import org.chromium.components.signin.ChromeSigninController;
|
||||
-import org.chromium.components.sync.AndroidSyncSettings;
|
||||
import org.chromium.content_public.browser.UiThreadTaskTraits;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -49,7 +45,7 @@ import java.util.List;
|
||||
* <p/>
|
||||
* See chrome/browser/signin/signin_manager_android.h for more details.
|
||||
*/
|
||||
-public class SigninManager implements AccountTrackerService.OnSystemAccountsSeededListener {
|
||||
+public class SigninManager {
|
||||
private static final String TAG = "SigninManager";
|
||||
|
||||
/**
|
||||
@@ -182,8 +178,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
|
||||
private final long mNativeSigninManagerAndroid;
|
||||
private final Context mContext;
|
||||
- private final AccountTrackerService mAccountTrackerService;
|
||||
- private final AndroidSyncSettings mAndroidSyncSettings;
|
||||
private final ObserverList<SignInStateObserver> mSignInStateObservers = new ObserverList<>();
|
||||
private final ObserverList<SignInAllowedObserver> mSignInAllowedObservers =
|
||||
new ObserverList<>();
|
||||
@@ -227,26 +221,18 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
}
|
||||
|
||||
private SigninManager() {
|
||||
- this(ContextUtils.getApplicationContext(),
|
||||
- IdentityServicesProvider.getAccountTrackerService(), AndroidSyncSettings.get());
|
||||
+ this(ContextUtils.getApplicationContext());
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
- SigninManager(Context context, AccountTrackerService accountTrackerService,
|
||||
- AndroidSyncSettings androidSyncSettings) {
|
||||
+ SigninManager(Context context) {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
assert context != null;
|
||||
- assert accountTrackerService != null;
|
||||
- assert androidSyncSettings != null;
|
||||
mContext = context;
|
||||
- mAccountTrackerService = accountTrackerService;
|
||||
- mAndroidSyncSettings = androidSyncSettings;
|
||||
|
||||
mNativeSigninManagerAndroid = SigninManagerJni.get().init(this);
|
||||
mSigninAllowedByPolicy =
|
||||
SigninManagerJni.get().isSigninAllowedByPolicy(this, mNativeSigninManagerAndroid);
|
||||
-
|
||||
- mAccountTrackerService.addSystemAccountsSeededListener(this);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -282,8 +268,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
* Returns true if signin can be started now.
|
||||
*/
|
||||
public boolean isSignInAllowed() {
|
||||
- return !mFirstRunCheckIsPending && mSignInState == null && mSigninAllowedByPolicy
|
||||
- && ChromeSigninController.get().getSignedInUser() == null && isSigninSupported();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -298,15 +283,14 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
* Google Play Services installed.
|
||||
*/
|
||||
public boolean isSigninSupported() {
|
||||
- return !ApiCompatibilityUtils.isDemoUser(mContext)
|
||||
- && !ExternalAuthUtils.getInstance().isGooglePlayServicesMissing(mContext);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Whether force sign-in is enabled by policy.
|
||||
*/
|
||||
public boolean isForceSigninEnabled() {
|
||||
- return SigninManagerJni.get().isForceSigninEnabled(this, mNativeSigninManagerAndroid);
|
||||
+ return false;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -340,27 +324,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
}
|
||||
|
||||
/**
|
||||
- * Continue pending sign in after system accounts have been seeded into AccountTrackerService.
|
||||
- */
|
||||
- @Override
|
||||
- public void onSystemAccountsSeedingComplete() {
|
||||
- if (mSignInState != null && mSignInState.mBlockedOnAccountSeeding) {
|
||||
- mSignInState.mBlockedOnAccountSeeding = false;
|
||||
- progressSignInFlowCheckPolicy();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
- * Clear pending sign in when system accounts in AccountTrackerService were refreshed.
|
||||
- */
|
||||
- @Override
|
||||
- public void onSystemAccountsChanged() {
|
||||
- if (mSignInState != null) {
|
||||
- abortSignIn();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /**
|
||||
* Starts the sign-in flow, and executes the callback when finished.
|
||||
*
|
||||
* If an activity is provided, it is considered an "interactive" sign-in and the user can be
|
||||
@@ -415,19 +378,7 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
}
|
||||
|
||||
private void progressSignInFlowSeedSystemAccounts() {
|
||||
- if (mAccountTrackerService.checkAndSeedSystemAccounts()) {
|
||||
- progressSignInFlowCheckPolicy();
|
||||
- } else if (AccountIdProvider.getInstance().canBeUsed()) {
|
||||
- mSignInState.mBlockedOnAccountSeeding = true;
|
||||
- } else {
|
||||
- Activity activity = mSignInState.mActivity;
|
||||
- UserRecoverableErrorHandler errorHandler = activity != null
|
||||
- ? new UserRecoverableErrorHandler.ModalDialog(activity, !isForceSigninEnabled())
|
||||
- : new UserRecoverableErrorHandler.SystemNotification();
|
||||
- ExternalAuthUtils.getInstance().canUseGooglePlayServices(errorHandler);
|
||||
- Log.w(TAG, "Cancelling the sign-in process as Google Play services is unavailable");
|
||||
- abortSignIn();
|
||||
- }
|
||||
+ mSignInState.mBlockedOnAccountSeeding = true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -493,12 +444,6 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
SigninManagerJni.get().onSignInCompleted(
|
||||
this, mNativeSigninManagerAndroid, mSignInState.mAccount.name);
|
||||
|
||||
- // Cache the signed-in account name. This must be done after the native call, otherwise
|
||||
- // sync tries to start without being signed in natively and crashes.
|
||||
- ChromeSigninController.get().setSignedInAccountName(mSignInState.mAccount.name);
|
||||
- mAndroidSyncSettings.updateAccount(mSignInState.mAccount);
|
||||
- mAndroidSyncSettings.enableChromeSync();
|
||||
-
|
||||
if (mSignInState.mCallback != null) {
|
||||
mSignInState.mCallback.onSignInComplete();
|
||||
}
|
||||
@@ -674,16 +619,11 @@ public class SigninManager implements AccountTrackerService.OnSystemAccountsSeed
|
||||
// Should be set at beginning of sign-out flow.
|
||||
assert mSignOutState != null;
|
||||
|
||||
- ChromeSigninController.get().setSignedInAccountName(null);
|
||||
- mAndroidSyncSettings.updateAccount(null);
|
||||
-
|
||||
if (mSignOutState.mManagementDomain != null) {
|
||||
wipeProfileData();
|
||||
} else {
|
||||
wipeGoogleServiceWorkerCaches();
|
||||
}
|
||||
-
|
||||
- mAccountTrackerService.invalidateAccountSeedStatus(true);
|
||||
}
|
||||
|
||||
private void wipeProfileData() {
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sun, 26 Nov 2017 11:40:05 +0100
|
||||
Subject: Restore classic new tab page
|
||||
|
||||
---
|
||||
chrome/browser/search/search.cc | 13 +------------
|
||||
1 file changed, 1 insertion(+), 12 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
|
||||
--- a/chrome/browser/search/search.cc
|
||||
+++ b/chrome/browser/search/search.cc
|
||||
@@ -160,16 +160,6 @@ bool IsURLAllowedForSupervisedUser(const GURL& url, Profile* profile) {
|
||||
return true;
|
||||
}
|
||||
|
||||
-bool ShouldShowLocalNewTab(Profile* profile) {
|
||||
-#if !defined(OS_ANDROID)
|
||||
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
|
||||
- return command_line->HasSwitch(switches::kForceLocalNtp) ||
|
||||
- (base::FeatureList::IsEnabled(features::kUseGoogleLocalNtp) &&
|
||||
- profile && DefaultSearchProviderIsGoogle(profile));
|
||||
-#endif
|
||||
- return false;
|
||||
-}
|
||||
-
|
||||
bool ShouldDelayRemoteNTP(const GURL& search_provider_url, Profile* profile) {
|
||||
#if defined(OS_CHROMEOS)
|
||||
// On Chrome OS, if the session hasn't merged yet, we need to avoid loading
|
||||
@@ -196,8 +186,7 @@ struct NewTabURLDetails {
|
||||
|
||||
const GURL local_url(chrome::kChromeSearchLocalNtpUrl);
|
||||
|
||||
- if (ShouldShowLocalNewTab(profile))
|
||||
- return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);
|
||||
+ return NewTabURLDetails(local_url, NEW_TAB_URL_VALID);
|
||||
|
||||
const TemplateURL* template_url =
|
||||
GetDefaultSearchProviderTemplateURL(profile);
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,413 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Tue, 29 Jan 2019 01:02:07 +0100
|
||||
Subject: Rollback android:minSdkVersion from 19 (KitKat) to 17 (JellyBean)
|
||||
|
||||
Use v4 ArrayMap for compatibility with v17
|
||||
|
||||
This reverts commit 9a48587dbd1988cf5066b454e7d09ae35d124366.
|
||||
---
|
||||
.../test/embedded_test_server/java/AndroidManifest.xml | 2 +-
|
||||
.../tools/automated_ui_tests/java/AndroidManifest.xml | 2 +-
|
||||
base/android/jni_generator/AndroidManifest.xml | 2 +-
|
||||
build/android/AndroidManifest.xml | 2 +-
|
||||
build/android/gradle/android.jinja | 2 +-
|
||||
chrome/android/BUILD.gn | 6 +++---
|
||||
.../trustedwebactivityui/splashscreen/SplashImageHolder.java | 2 +-
|
||||
.../splashscreen/SplashScreenController.java | 10 +++++-----
|
||||
.../android/chrome_public_test_support/AndroidManifest.xml | 2 +-
|
||||
components/cronet/android/sample/AndroidManifest.xml | 3 +--
|
||||
components/cronet/android/sample/javatests/AndroidManifest.xml | 3 +--
|
||||
.../cronet/android/test/javaperftests/AndroidManifest.xml | 3 +--
|
||||
components/cronet/android/test/javatests/AndroidManifest.xml | 3 +--
|
||||
.../test/android/browsertests_apk/AndroidManifest.xml.jinja2 | 2 +-
|
||||
.../shell/android/browsertests_apk/AndroidManifest.xml.jinja2 | 2 +-
|
||||
content/shell/android/javatests/AndroidManifest.xml | 2 +-
|
||||
.../shell/android/linker_test_apk/AndroidManifest.xml.jinja2 | 2 +-
|
||||
content/shell/android/shell_apk/AndroidManifest.xml.jinja2 | 2 +-
|
||||
docs/android_build_instructions.md | 2 +-
|
||||
mojo/public/java/system/javatests/AndroidManifest.xml | 2 +-
|
||||
net/android/unittest_support/AndroidManifest.xml | 2 +-
|
||||
net/test/android/javatests/AndroidManifest.xml | 2 +-
|
||||
remoting/android/java/AndroidManifest.xml.jinja2 | 2 +-
|
||||
remoting/android/javatests/AndroidManifest.xml.jinja2 | 2 +-
|
||||
testing/android/driver/java/AndroidManifest.xml | 2 +-
|
||||
testing/android/native_test/java/AndroidManifest.xml.jinja2 | 2 +-
|
||||
tools/android/audio_focus_grabber/java/AndroidManifest.xml | 2 +-
|
||||
tools/android/push_apps_to_background/AndroidManifest.xml | 4 ++--
|
||||
28 files changed, 35 insertions(+), 39 deletions(-)
|
||||
|
||||
diff --git a/android_webview/test/embedded_test_server/java/AndroidManifest.xml b/android_webview/test/embedded_test_server/java/AndroidManifest.xml
|
||||
--- a/android_webview/test/embedded_test_server/java/AndroidManifest.xml
|
||||
+++ b/android_webview/test/embedded_test_server/java/AndroidManifest.xml
|
||||
@@ -8,7 +8,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.chromium.android_webview.test.support">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
||||
diff --git a/android_webview/tools/automated_ui_tests/java/AndroidManifest.xml b/android_webview/tools/automated_ui_tests/java/AndroidManifest.xml
|
||||
--- a/android_webview/tools/automated_ui_tests/java/AndroidManifest.xml
|
||||
+++ b/android_webview/tools/automated_ui_tests/java/AndroidManifest.xml
|
||||
@@ -10,7 +10,7 @@
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" >
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
diff --git a/base/android/jni_generator/AndroidManifest.xml b/base/android/jni_generator/AndroidManifest.xml
|
||||
--- a/base/android/jni_generator/AndroidManifest.xml
|
||||
+++ b/base/android/jni_generator/AndroidManifest.xml
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.jni.generator">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="24" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="24" />
|
||||
<application></application>
|
||||
|
||||
</manifest>
|
||||
diff --git a/build/android/AndroidManifest.xml b/build/android/AndroidManifest.xml
|
||||
--- a/build/android/AndroidManifest.xml
|
||||
+++ b/build/android/AndroidManifest.xml
|
||||
@@ -15,6 +15,6 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.dummy">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="24" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="24" />
|
||||
|
||||
</manifest>
|
||||
diff --git a/build/android/gradle/android.jinja b/build/android/gradle/android.jinja
|
||||
--- a/build/android/gradle/android.jinja
|
||||
+++ b/build/android/gradle/android.jinja
|
||||
@@ -51,7 +51,7 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
- minSdkVersion 19
|
||||
+ minSdkVersion 17
|
||||
targetSdkVersion {{ target_sdk_version }}
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -67,7 +67,7 @@ jinja_template("chrome_public_android_manifest") {
|
||||
output = chrome_public_android_manifest
|
||||
variables = chrome_public_jinja_variables
|
||||
variables += [
|
||||
- "min_sdk_version=19",
|
||||
+ "min_sdk_version=17",
|
||||
"target_sdk_version=$android_sdk_version",
|
||||
]
|
||||
}
|
||||
@@ -1849,7 +1849,7 @@ jinja_template("chrome_public_test_apk_manifest") {
|
||||
variables = default_chrome_public_jinja_variables
|
||||
variables += [
|
||||
"manifest_package=$test_manifest_package",
|
||||
- "min_sdk_version=19",
|
||||
+ "min_sdk_version=17",
|
||||
"target_sdk_version=$android_sdk_version",
|
||||
]
|
||||
}
|
||||
@@ -1860,7 +1860,7 @@ jinja_template("chrome_public_test_vr_apk_manifest") {
|
||||
output = chrome_public_test_vr_apk_manifest
|
||||
variables = chrome_public_jinja_variables
|
||||
variables += [
|
||||
- "min_sdk_version=19",
|
||||
+ "min_sdk_version=17",
|
||||
"target_sdk_version=$android_sdk_version",
|
||||
]
|
||||
}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashImageHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashImageHolder.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashImageHolder.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashImageHolder.java
|
||||
@@ -7,7 +7,7 @@ package org.chromium.chrome.browser.browserservices.trustedwebactivityui.splashs
|
||||
import android.graphics.Bitmap;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.customtabs.CustomTabsSessionToken;
|
||||
-import android.util.ArrayMap;
|
||||
+import android.support.v4.util.ArrayMap;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashScreenController.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashScreenController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashScreenController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/trustedwebactivityui/splashscreen/SplashScreenController.java
|
||||
@@ -119,11 +119,11 @@ public class SplashScreenController implements InflationObserver, Destroyable {
|
||||
Method method = Activity.class.getDeclaredMethod("convertFromTranslucent");
|
||||
method.setAccessible(true);
|
||||
method.invoke(mActivity);
|
||||
- } catch (ReflectiveOperationException e) {
|
||||
- // Method not found or threw an exception.
|
||||
- mUmaRecorder.recordTranslucencyRemovalFailed();
|
||||
- assert false : "Failed to remove activity translucency reflectively";
|
||||
- Log.e(TAG, "Failed to remove activity translucency reflectively");
|
||||
+ } catch (Exception e) {
|
||||
+ // Method not found or threw an exception.
|
||||
+ mUmaRecorder.recordTranslucencyRemovalFailed();
|
||||
+ assert false : "Failed to remove activity translucency reflectively";
|
||||
+ Log.e(TAG, "Failed to remove activity translucency reflectively:", e);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/chrome/test/android/chrome_public_test_support/AndroidManifest.xml b/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
|
||||
--- a/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
|
||||
+++ b/chrome/test/android/chrome_public_test_support/AndroidManifest.xml
|
||||
@@ -5,7 +5,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.chromium.chrome.tests.support">
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="22" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="22" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<application>
|
||||
<service android:name="org.chromium.chrome.browser.media.TestMediaRouteProviderService"
|
||||
diff --git a/components/cronet/android/sample/AndroidManifest.xml b/components/cronet/android/sample/AndroidManifest.xml
|
||||
--- a/components/cronet/android/sample/AndroidManifest.xml
|
||||
+++ b/components/cronet/android/sample/AndroidManifest.xml
|
||||
@@ -9,8 +9,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.cronet_sample_apk">
|
||||
|
||||
- <!-- //components/cronet still needs to support Jelly Bean. See crbug.com/922656 -->
|
||||
- <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<application android:name="CronetSampleApplication"
|
||||
diff --git a/components/cronet/android/sample/javatests/AndroidManifest.xml b/components/cronet/android/sample/javatests/AndroidManifest.xml
|
||||
--- a/components/cronet/android/sample/javatests/AndroidManifest.xml
|
||||
+++ b/components/cronet/android/sample/javatests/AndroidManifest.xml
|
||||
@@ -8,8 +8,7 @@
|
||||
doesn't ignore this. -->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.cronet_sample_apk.tests">
|
||||
- <!-- //components/cronet still needs to support Jelly Bean. See crbug.com/922656 -->
|
||||
- <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
|
||||
<!-- We add an application tag here just so that we can indicate that this
|
||||
package needs to link against the android.test library, which is
|
||||
diff --git a/components/cronet/android/test/javaperftests/AndroidManifest.xml b/components/cronet/android/test/javaperftests/AndroidManifest.xml
|
||||
--- a/components/cronet/android/test/javaperftests/AndroidManifest.xml
|
||||
+++ b/components/cronet/android/test/javaperftests/AndroidManifest.xml
|
||||
@@ -1,8 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.net">
|
||||
- <!-- //components/cronet still needs to support Jelly Bean. See crbug.com/922656 -->
|
||||
- <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
diff --git a/components/cronet/android/test/javatests/AndroidManifest.xml b/components/cronet/android/test/javatests/AndroidManifest.xml
|
||||
--- a/components/cronet/android/test/javatests/AndroidManifest.xml
|
||||
+++ b/components/cronet/android/test/javatests/AndroidManifest.xml
|
||||
@@ -6,8 +6,7 @@
|
||||
-->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.net.tests">
|
||||
- <!-- //components/cronet still needs to support Jelly Bean. See crbug.com/922656 -->
|
||||
- <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="24" />
|
||||
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
diff --git a/components/test/android/browsertests_apk/AndroidManifest.xml.jinja2 b/components/test/android/browsertests_apk/AndroidManifest.xml.jinja2
|
||||
--- a/components/test/android/browsertests_apk/AndroidManifest.xml.jinja2
|
||||
+++ b/components/test/android/browsertests_apk/AndroidManifest.xml.jinja2
|
||||
@@ -9,7 +9,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.components_browsertests_apk">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
diff --git a/content/shell/android/browsertests_apk/AndroidManifest.xml.jinja2 b/content/shell/android/browsertests_apk/AndroidManifest.xml.jinja2
|
||||
--- a/content/shell/android/browsertests_apk/AndroidManifest.xml.jinja2
|
||||
+++ b/content/shell/android/browsertests_apk/AndroidManifest.xml.jinja2
|
||||
@@ -9,7 +9,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.content_browsertests_apk">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
diff --git a/content/shell/android/javatests/AndroidManifest.xml b/content/shell/android/javatests/AndroidManifest.xml
|
||||
--- a/content/shell/android/javatests/AndroidManifest.xml
|
||||
+++ b/content/shell/android/javatests/AndroidManifest.xml
|
||||
@@ -6,7 +6,7 @@
|
||||
doesn't ignore this. -->
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.content_shell_apk.tests">
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
|
||||
<!-- We add an application tag here just so that we can indicate that this
|
||||
package needs to link against the android.test library, which is
|
||||
diff --git a/content/shell/android/linker_test_apk/AndroidManifest.xml.jinja2 b/content/shell/android/linker_test_apk/AndroidManifest.xml.jinja2
|
||||
--- a/content/shell/android/linker_test_apk/AndroidManifest.xml.jinja2
|
||||
+++ b/content/shell/android/linker_test_apk/AndroidManifest.xml.jinja2
|
||||
@@ -9,7 +9,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.chromium_linker_test_apk">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
diff --git a/content/shell/android/shell_apk/AndroidManifest.xml.jinja2 b/content/shell/android/shell_apk/AndroidManifest.xml.jinja2
|
||||
--- a/content/shell/android/shell_apk/AndroidManifest.xml.jinja2
|
||||
+++ b/content/shell/android/shell_apk/AndroidManifest.xml.jinja2
|
||||
@@ -9,7 +9,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.content_shell_apk">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.CAMERA"/>
|
||||
diff --git a/docs/android_build_instructions.md b/docs/android_build_instructions.md
|
||||
--- a/docs/android_build_instructions.md
|
||||
+++ b/docs/android_build_instructions.md
|
||||
@@ -184,7 +184,7 @@ the version of Android running on a device. Chrome uses this feature to target
|
||||
3 different versions using 3 different ninja targets:
|
||||
|
||||
1. `chrome_public_apk` (ChromePublic.apk)
|
||||
- * `minSdkVersion=19` (KitKat).
|
||||
+ * `minSdkVersion=17` (Jelly Bean).
|
||||
* Stores libchrome.so compressed within the APK.
|
||||
* Uses [Crazy Linker](https://cs.chromium.org/chromium/src/base/android/linker/BUILD.gn?rcl=6bb29391a86f2be58c626170156cbfaa2cbc5c91&l=9).
|
||||
* Shipped only for Android < 21, but still works fine on Android >= 21.
|
||||
diff --git a/mojo/public/java/system/javatests/AndroidManifest.xml b/mojo/public/java/system/javatests/AndroidManifest.xml
|
||||
--- a/mojo/public/java/system/javatests/AndroidManifest.xml
|
||||
+++ b/mojo/public/java/system/javatests/AndroidManifest.xml
|
||||
@@ -8,7 +8,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.chromium.mojo.tests">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="21" />
|
||||
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" />
|
||||
|
||||
<uses-permission android:name="android.permission.INJECT_EVENTS"
|
||||
tools:ignore="ProtectedPermissions"/>
|
||||
diff --git a/net/android/unittest_support/AndroidManifest.xml b/net/android/unittest_support/AndroidManifest.xml
|
||||
--- a/net/android/unittest_support/AndroidManifest.xml
|
||||
+++ b/net/android/unittest_support/AndroidManifest.xml
|
||||
@@ -10,7 +10,7 @@ found in the LICENSE file.
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
|
||||
diff --git a/net/test/android/javatests/AndroidManifest.xml b/net/test/android/javatests/AndroidManifest.xml
|
||||
--- a/net/test/android/javatests/AndroidManifest.xml
|
||||
+++ b/net/test/android/javatests/AndroidManifest.xml
|
||||
@@ -8,7 +8,7 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="org.chromium.net.test.support">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
|
||||
diff --git a/remoting/android/java/AndroidManifest.xml.jinja2 b/remoting/android/java/AndroidManifest.xml.jinja2
|
||||
--- a/remoting/android/java/AndroidManifest.xml.jinja2
|
||||
+++ b/remoting/android/java/AndroidManifest.xml.jinja2
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="{{ APK_PACKAGE_NAME }}">
|
||||
- <uses-sdk android:minSdkVersion="19"
|
||||
+ <uses-sdk android:minSdkVersion="14"
|
||||
android:targetSdkVersion="28"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
|
||||
diff --git a/remoting/android/javatests/AndroidManifest.xml.jinja2 b/remoting/android/javatests/AndroidManifest.xml.jinja2
|
||||
--- a/remoting/android/javatests/AndroidManifest.xml.jinja2
|
||||
+++ b/remoting/android/javatests/AndroidManifest.xml.jinja2
|
||||
@@ -11,7 +11,7 @@
|
||||
<!-- We add an application tag here just so that we can indicate that this
|
||||
package needs to link against the android.test library, which is
|
||||
needed when building test cases. -->
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.RUN_INSTRUMENTATION" />
|
||||
<application>
|
||||
<uses-library android:name="android.test.runner" />
|
||||
diff --git a/testing/android/driver/java/AndroidManifest.xml b/testing/android/driver/java/AndroidManifest.xml
|
||||
--- a/testing/android/driver/java/AndroidManifest.xml
|
||||
+++ b/testing/android/driver/java/AndroidManifest.xml
|
||||
@@ -10,7 +10,7 @@ found in the LICENSE file.
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
|
||||
<application android:label="OnDeviceInstrumentationDriver" />
|
||||
diff --git a/testing/android/native_test/java/AndroidManifest.xml.jinja2 b/testing/android/native_test/java/AndroidManifest.xml.jinja2
|
||||
--- a/testing/android/native_test/java/AndroidManifest.xml.jinja2
|
||||
+++ b/testing/android/native_test/java/AndroidManifest.xml.jinja2
|
||||
@@ -10,7 +10,7 @@ found in the LICENSE file.
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0">
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||
diff --git a/tools/android/audio_focus_grabber/java/AndroidManifest.xml b/tools/android/audio_focus_grabber/java/AndroidManifest.xml
|
||||
--- a/tools/android/audio_focus_grabber/java/AndroidManifest.xml
|
||||
+++ b/tools/android/audio_focus_grabber/java/AndroidManifest.xml
|
||||
@@ -8,7 +8,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.chromium.tools.audio_focus_grabber" >
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
|
||||
<application
|
||||
android:label="@string/app_name" >
|
||||
diff --git a/tools/android/push_apps_to_background/AndroidManifest.xml b/tools/android/push_apps_to_background/AndroidManifest.xml
|
||||
--- a/tools/android/push_apps_to_background/AndroidManifest.xml
|
||||
+++ b/tools/android/push_apps_to_background/AndroidManifest.xml
|
||||
@@ -10,7 +10,7 @@
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" >
|
||||
|
||||
- <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
|
||||
+ <uses-sdk android:minSdkVersion="17" android:targetSdkVersion="23" />
|
||||
|
||||
<application
|
||||
android:icon="@drawable/ic_launcher"
|
||||
@@ -26,4 +26,4 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
</application>
|
||||
-</manifest>
|
||||
\ No newline at end of file
|
||||
+</manifest>
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+3
-3
@@ -56,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
|
||||
@@ -74,7 +74,7 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
@@ -75,7 +75,7 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
}
|
||||
});
|
||||
|
||||
@@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd
|
||||
int paddingStart = getResources().getDimensionPixelSize(
|
||||
R.dimen.fre_tos_checkbox_padding);
|
||||
ViewCompat.setPaddingRelative(mSendReportCheckBox,
|
||||
@@ -86,8 +86,10 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
@@ -87,8 +87,10 @@ public class ToSAndUMAFirstRunFragment extends Fragment implements FirstRunFragm
|
||||
mSendReportCheckBox.setChecked(FirstRunActivity.DEFAULT_METRICS_AND_CRASH_REPORTING);
|
||||
} else {
|
||||
mSendReportCheckBox.setVisibility(View.GONE);
|
||||
@@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAnd
|
||||
+ mSendReportCheckBox.setVisibility(View.GONE);
|
||||
mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
NoUnderlineClickableSpan clickableTermsSpan = new NoUnderlineClickableSpan((view1) -> {
|
||||
Resources resources = getResources();
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 26 Dec 2018 10:20:24 -0500
|
||||
Subject: Switch to -fstack-protector-strong
|
||||
|
||||
This compiler option is already used for ChromeOS, but not yet on other
|
||||
platforms because there is push back against enabling an option resulting in
|
||||
~1-2% lower performance and ~2-3% larger binaries.
|
||||
|
||||
The size increase on Android is something they care a lot about since some
|
||||
devices have very little storage space. That also means ever so slightly
|
||||
higher memory/cache usage but not by the full 2-3%.
|
||||
---
|
||||
build/config/compiler/BUILD.gn | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
|
||||
--- a/build/config/compiler/BUILD.gn
|
||||
+++ b/build/config/compiler/BUILD.gn
|
||||
@@ -253,16 +253,12 @@ config("compiler") {
|
||||
cflags += [ "-fstack-protector" ]
|
||||
}
|
||||
} else if ((is_posix && !is_chromeos && !is_nacl) || is_fuchsia) {
|
||||
- # TODO(phajdan.jr): Use -fstack-protector-strong when our gcc supports it.
|
||||
- # See also https://crbug.com/533294
|
||||
- cflags += [ "--param=ssp-buffer-size=4" ]
|
||||
-
|
||||
# The x86 toolchain currently has problems with stack-protector.
|
||||
if (is_android && current_cpu == "x86") {
|
||||
cflags += [ "-fno-stack-protector" ]
|
||||
} else if (current_os != "aix") {
|
||||
# Not available on aix.
|
||||
- cflags += [ "-fstack-protector" ]
|
||||
+ cflags += [ "-fstack-protector-strong" ]
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 21 Feb 2018 00:32:09 +0100
|
||||
Subject: Use 4 tile rows, never show logo
|
||||
|
||||
---
|
||||
.../java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java | 6 +++---
|
||||
.../chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java | 2 +-
|
||||
.../src/org/chromium/chrome/browser/suggestions/SiteSection.java | 2 +-
|
||||
chrome/browser/engagement/important_sites_util.cc | 2 +-
|
||||
components/history/core/browser/top_sites_impl.h | 2 +-
|
||||
5 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
|
||||
@@ -117,7 +117,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
/** Observer for overview mode. */
|
||||
private EmptyOverviewModeObserver mOverviewObserver;
|
||||
|
||||
- private boolean mSearchProviderHasLogo = true;
|
||||
+ private boolean mSearchProviderHasLogo = false;
|
||||
private boolean mSearchProviderIsGoogle;
|
||||
|
||||
private boolean mInitialized;
|
||||
@@ -542,7 +542,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
&& mInitialized) {
|
||||
return;
|
||||
}
|
||||
- mSearchProviderHasLogo = hasLogo;
|
||||
+ mSearchProviderHasLogo = false;
|
||||
mSearchProviderIsGoogle = isGoogle;
|
||||
|
||||
updateTileGridPadding();
|
||||
@@ -834,7 +834,7 @@ public class NewTabPageLayout extends LinearLayout implements TileGroup.Observer
|
||||
}
|
||||
|
||||
private static int getMaxTileRows() {
|
||||
- return 2;
|
||||
+ return 4;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/MostVisitedSitesBridge.java
|
||||
@@ -27,7 +27,7 @@ public class MostVisitedSitesBridge
|
||||
* Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if
|
||||
* the UI supports it, getting more can raise unexpected issues.
|
||||
*/
|
||||
- public static final int MAX_TILE_COUNT = 12;
|
||||
+ public static final int MAX_TILE_COUNT = 12 * 2;
|
||||
|
||||
private long mNativeMostVisitedSitesBridge;
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SiteSection.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SiteSection.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SiteSection.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SiteSection.java
|
||||
@@ -110,7 +110,7 @@ public class SiteSection extends OptionalLeaf implements TileGroup.Observer {
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.EXPLORE_SITES)) {
|
||||
return 1;
|
||||
}
|
||||
- return 2;
|
||||
+ return 4;
|
||||
}
|
||||
|
||||
@LayoutRes
|
||||
diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc
|
||||
--- a/chrome/browser/engagement/important_sites_util.cc
|
||||
+++ b/chrome/browser/engagement/important_sites_util.cc
|
||||
@@ -58,7 +58,7 @@ static const int kTimesIgnoredForBlacklist = 3;
|
||||
// These are the maximum # of bookmarks we can use as signals. If the user has
|
||||
// <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all
|
||||
// bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks.
|
||||
-static const int kMaxBookmarks = 5;
|
||||
+static const int kMaxBookmarks = 4 * 4 + 2;
|
||||
|
||||
// We need this to be a macro, as the histogram macros cache their pointers
|
||||
// after the first call, so when we change the uma name we check fail if we're
|
||||
diff --git a/components/history/core/browser/top_sites_impl.h b/components/history/core/browser/top_sites_impl.h
|
||||
--- a/components/history/core/browser/top_sites_impl.h
|
||||
+++ b/components/history/core/browser/top_sites_impl.h
|
||||
@@ -55,7 +55,7 @@ class TopSitesImpl : public TopSites, public HistoryServiceObserver {
|
||||
using CanAddURLToHistoryFn = base::Callback<bool(const GURL&)>;
|
||||
|
||||
// How many top sites to store in the cache.
|
||||
- static constexpr size_t kTopSitesNumber = 10;
|
||||
+ static constexpr size_t kTopSitesNumber = 4 * 4 + 2;
|
||||
|
||||
TopSitesImpl(PrefService* pref_service,
|
||||
HistoryService* history_service,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Thu, 26 Jan 2017 01:30:12 -0500
|
||||
Subject: Use 64-bit WebView processes
|
||||
|
||||
64-bit processes introduce 10% or so higher memory consumption.
|
||||
The reason for preferring 64-bit processes is providing substantially better
|
||||
exploit mitigations at the expense of slightly more memory usage.
|
||||
|
||||
In addition to the standard mitigations, it also enables usage of
|
||||
https://github.com/AndroidHardening/hardened_malloc (where available).
|
||||
|
||||
It will provide high entropy ASLR (24-bit to 32-bit depending on whether the
|
||||
kernel uses 3 or 4 level page tables rather than 16-bit for 32-bit processes),
|
||||
high entropy stack canaries (56/64-bit instead of 24/32-bit depending on
|
||||
whether a zero byte is used) and also features like pointer authentication and
|
||||
memory tagging when those are made available in the future.
|
||||
|
||||
The reason why upstream started preferring 32-bit processes is to save memory,
|
||||
particularly since saving memory makes it feasible to use finer-grained
|
||||
sandboxing.
|
||||
---
|
||||
android_webview/apk/java/AndroidManifest.xml | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/android_webview/apk/java/AndroidManifest.xml b/android_webview/apk/java/AndroidManifest.xml
|
||||
--- a/android_webview/apk/java/AndroidManifest.xml
|
||||
+++ b/android_webview/apk/java/AndroidManifest.xml
|
||||
@@ -28,7 +28,6 @@
|
||||
android:icon="@{{manifest_package|default('com.android.webview')}}:drawable/icon_webview"
|
||||
android:name="{{ application_name|default('com.android.webview.chromium.WebViewApplication') }}"
|
||||
android:multiArch="true"
|
||||
- android:use32bitAbi="true"
|
||||
android:extractNativeLibs="{{ trichrome_library is not defined }}">
|
||||
{# This part is shared between stand-alone WebView and Monochrome #}
|
||||
{% macro common(manifest_package, webview_lib) %}
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 21 Mar 2018 14:15:28 +0100
|
||||
Subject: User Agent: anonymize
|
||||
|
||||
Use a fixed device name and Chrome product version with the goal of not
|
||||
disclosing the specific build of Bromite.
|
||||
---
|
||||
.../browser/ui/android/android_about_app_info.cc | 4 ++-
|
||||
components/version_info/version_info.cc | 13 +++++++-
|
||||
content/common/user_agent.cc | 37 +++++++++++++++++-----
|
||||
content/public/common/user_agent.h | 2 +-
|
||||
4 files changed, 45 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/android/android_about_app_info.cc b/chrome/browser/ui/android/android_about_app_info.cc
|
||||
--- a/chrome/browser/ui/android/android_about_app_info.cc
|
||||
+++ b/chrome/browser/ui/android/android_about_app_info.cc
|
||||
@@ -20,6 +20,8 @@ std::string AndroidAboutAppInfo::GetGmsInfo() {
|
||||
}
|
||||
|
||||
std::string AndroidAboutAppInfo::GetOsInfo() {
|
||||
+ int32_t major_version = 4, minor_version, bugfix_version;
|
||||
+ base::SysInfo::OperatingSystemVersionNumbers(&major_version, &minor_version, &bugfix_version);
|
||||
return base::SysInfo::OperatingSystemVersion() +
|
||||
- content::GetAndroidOSInfo(/*include_android_build_number=*/true);
|
||||
+ content::GetAndroidOSInfo(/*include_android_build_number=*/true, major_version);
|
||||
}
|
||||
diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
|
||||
--- a/components/version_info/version_info.cc
|
||||
+++ b/components/version_info/version_info.cc
|
||||
@@ -8,13 +8,24 @@
|
||||
#include "base/no_destructor.h"
|
||||
#include "base/strings/string_number_conversions.h"
|
||||
#include "base/version.h"
|
||||
+#include "base/system/sys_info.h"
|
||||
#include "build/build_config.h"
|
||||
#include "components/version_info/version_info_values.h"
|
||||
|
||||
namespace version_info {
|
||||
|
||||
std::string GetProductNameAndVersionForUserAgent() {
|
||||
- return "Chrome/" + GetVersionNumber();
|
||||
+ int32_t major, minor, bugfix;
|
||||
+ base::SysInfo::OperatingSystemVersionNumbers(&major,
|
||||
+ &minor,
|
||||
+ &bugfix);
|
||||
+ switch (major) {
|
||||
+ case 4:
|
||||
+ return "Chrome/69.0.3497.100";
|
||||
+ }
|
||||
+
|
||||
+ // version 5 and above
|
||||
+ return "Chrome/71.0.3578.99";
|
||||
}
|
||||
|
||||
std::string GetProductName() {
|
||||
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
|
||||
--- a/content/common/user_agent.cc
|
||||
+++ b/content/common/user_agent.cc
|
||||
@@ -85,7 +85,7 @@ std::string BuildOSCpuInfo(bool include_android_build_number) {
|
||||
}
|
||||
#elif defined(OS_ANDROID)
|
||||
std::string android_version_str = base::SysInfo::OperatingSystemVersion();
|
||||
- std::string android_info_str = GetAndroidOSInfo(include_android_build_number);
|
||||
+ std::string android_info_str = GetAndroidOSInfo(include_android_build_number, os_major_version);
|
||||
#elif (defined(OS_POSIX) && !defined(OS_MACOSX)) || defined(OS_FUCHSIA)
|
||||
// Should work on any Posix system.
|
||||
struct utsname unixinfo;
|
||||
@@ -153,18 +153,39 @@ std::string BuildUserAgentFromProductAndExtraOSInfo(
|
||||
return BuildUserAgentFromOSAndProduct(os_info, product);
|
||||
}
|
||||
|
||||
-std::string GetAndroidOSInfo(bool include_android_build_number) {
|
||||
+std::string GetAndroidOSInfo(bool include_android_build_number, int32_t os_major_version) {
|
||||
std::string android_info_str;
|
||||
|
||||
- // Send information about the device.
|
||||
+ // Send spoofed 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 (!android_device_name.empty() && "REL" == android_build_codename) {
|
||||
- android_info_str += "; " + android_device_name;
|
||||
- semicolon_inserted = true;
|
||||
+ std::string android_device_name;
|
||||
+
|
||||
+ // Send information about the device and build ID.
|
||||
+ // Use a common device/build ID based on Android major version.
|
||||
+ switch (os_major_version) {
|
||||
+ default: // version 9 and above
|
||||
+ android_device_name = "ONEPLUS A6000";
|
||||
+ break;
|
||||
+ case 8:
|
||||
+ android_device_name = "FIG-LX3";
|
||||
+ break;
|
||||
+ case 7:
|
||||
+ android_device_name = "SM-G610M";
|
||||
+ break;
|
||||
+ case 6:
|
||||
+ android_device_name = "SM-J700M";
|
||||
+ break;
|
||||
+ case 5:
|
||||
+ android_device_name = "XT1033";
|
||||
+ break;
|
||||
+ case 4:
|
||||
+ android_device_name = "ZTE Blade C370";
|
||||
+ break;
|
||||
}
|
||||
|
||||
+ android_info_str += "; " + android_device_name;
|
||||
+ semicolon_inserted = true;
|
||||
+
|
||||
// Append the build ID.
|
||||
if (base::FeatureList::IsEnabled(kAndroidUserAgentStringContainsBuildId) ||
|
||||
include_android_build_number) {
|
||||
diff --git a/content/public/common/user_agent.h b/content/public/common/user_agent.h
|
||||
--- a/content/public/common/user_agent.h
|
||||
+++ b/content/public/common/user_agent.h
|
||||
@@ -37,7 +37,7 @@ CONTENT_EXPORT std::string BuildUserAgentFromProductAndExtraOSInfo(
|
||||
bool include_android_build_number);
|
||||
|
||||
// Helper function to generate just the OS info.
|
||||
-CONTENT_EXPORT std::string GetAndroidOSInfo(bool include_android_build_number);
|
||||
+CONTENT_EXPORT std::string GetAndroidOSInfo(bool include_android_build_number, int32_t os_major_version);
|
||||
#endif
|
||||
|
||||
// Builds a full user agent string given a string describing the OS and a
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Thu, 11 Sep 2014 16:37:32 +0200
|
||||
Subject: autofill: disable autofill download manager
|
||||
|
||||
Disables the autofill download manager (trk:158).
|
||||
---
|
||||
.../autofill/core/browser/autofill_download_manager.cc | 13 ++++++++++++-
|
||||
components/autofill/core/browser/autofill_manager.cc | 18 ------------------
|
||||
2 files changed, 12 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_download_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_download_manager.cc
|
||||
@@ -60,7 +60,6 @@ constexpr std::pair<int, int> kAutofillExperimentRanges[] = {
|
||||
{3314445, 3314448}, {3314854, 3314883},
|
||||
};
|
||||
|
||||
-const size_t kMaxQueryGetSize = 1400; // 1.25KB
|
||||
const size_t kAutofillDownloadManagerMaxFormCacheSize = 16;
|
||||
const size_t kMaxFieldsPerQueryRequest = 100;
|
||||
|
||||
@@ -448,6 +447,7 @@ bool GetUploadPayloadForApi(const AutofillUploadContents& upload,
|
||||
return upload_request.SerializeToString(payload);
|
||||
}
|
||||
|
||||
+/*
|
||||
// Gets an API method URL given its type (query or upload) and an optional
|
||||
// resource ID.
|
||||
// Example usage:
|
||||
@@ -470,6 +470,7 @@ std::string GetAPIMethodUrl(AutofillDownloadManager::RequestType type,
|
||||
}
|
||||
return base::StrCat({api_method_url, "/", resource_id});
|
||||
}
|
||||
+*/
|
||||
|
||||
} // namespace
|
||||
|
||||
@@ -643,6 +644,7 @@ void AutofillDownloadManager::ClearUploadHistory(PrefService* pref_service) {
|
||||
|
||||
std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
const FormRequestData& request_data) const {
|
||||
+#if 0
|
||||
std::string method("POST");
|
||||
std::string query_str;
|
||||
|
||||
@@ -665,12 +667,17 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
|
||||
GURL url = autofill_server_url_
|
||||
.Resolve(RequestTypeToString(request_data.request_type))
|
||||
.ReplaceComponents(replacements);
|
||||
+#else
|
||||
+ std::string method("GET");
|
||||
+ GURL url = GURL("about:blank");
|
||||
+#endif
|
||||
return std::make_tuple(std::move(url), std::move(method));
|
||||
}
|
||||
|
||||
std::tuple<GURL, std::string>
|
||||
AutofillDownloadManager::GetRequestURLAndMethodForApi(
|
||||
const FormRequestData& request_data) const {
|
||||
+#if 0
|
||||
// ID of the resource to add to the API request URL. Nothing will be added if
|
||||
// |resource_id| is empty.
|
||||
std::string resource_id;
|
||||
@@ -699,6 +706,10 @@ AutofillDownloadManager::GetRequestURLAndMethodForApi(
|
||||
(request_data.request_type == AutofillDownloadManager::REQUEST_QUERY)
|
||||
? "GET"
|
||||
: "POST";
|
||||
+#else
|
||||
+ std::string method("GET");
|
||||
+ GURL url = GURL("about:blank");
|
||||
+#endif
|
||||
return std::make_tuple(std::move(url), std::move(method));
|
||||
}
|
||||
|
||||
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
|
||||
--- a/components/autofill/core/browser/autofill_manager.cc
|
||||
+++ b/components/autofill/core/browser/autofill_manager.cc
|
||||
@@ -176,19 +176,6 @@ void LogDeveloperEngagementUkm(ukm::UkmRecorder* ukm_recorder,
|
||||
}
|
||||
}
|
||||
|
||||
-std::string GetAPIKeyForUrl(version_info::Channel channel) {
|
||||
- // First look if we can get API key from command line flag.
|
||||
- const base::CommandLine& command_line =
|
||||
- *base::CommandLine::ForCurrentProcess();
|
||||
- if (command_line.HasSwitch(switches::kAutofillAPIKey))
|
||||
- return command_line.GetSwitchValueASCII(switches::kAutofillAPIKey);
|
||||
-
|
||||
- // Get the API key from Chrome baked keys.
|
||||
- if (channel == version_info::Channel::STABLE)
|
||||
- return google_apis::GetAPIKey();
|
||||
- return google_apis::GetNonStableAPIKey();
|
||||
-}
|
||||
-
|
||||
} // namespace
|
||||
|
||||
AutofillManager::FillingContext::FillingContext() = default;
|
||||
@@ -1277,11 +1264,6 @@ AutofillManager::AutofillManager(
|
||||
weak_ptr_factory_(this) {
|
||||
DCHECK(driver);
|
||||
DCHECK(client_);
|
||||
- if (enable_download_manager == ENABLE_AUTOFILL_DOWNLOAD_MANAGER) {
|
||||
- version_info::Channel channel = client_->GetChannel();
|
||||
- download_manager_.reset(
|
||||
- new AutofillDownloadManager(driver, this, GetAPIKeyForUrl(channel)));
|
||||
- }
|
||||
CountryNames::SetLocaleString(app_locale_);
|
||||
// Since we want Downstream to still work in incognito, only overwrite the
|
||||
// PDM's sync service if this is not an incognito AutofillManager. However, if
|
||||
--
|
||||
2.11.0
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
From: Jan Engelhardt <jengelh@inai.de>
|
||||
Date: Mon, 15 Sep 2014 10:58:42 +0200
|
||||
Subject: dns: send IPv6 connectivity probes to RIPE DNS
|
||||
|
||||
Short of disabling the code (we may do that in a subsequent patch
|
||||
anyway), avoid sending to Google.
|
||||
|
||||
Increase probe period from 1s to 15s
|
||||
---
|
||||
net/dns/host_resolver_manager.cc | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
--- a/net/dns/host_resolver_manager.cc
|
||||
+++ b/net/dns/host_resolver_manager.cc
|
||||
@@ -118,12 +118,12 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
|
||||
|
||||
// Time between IPv6 probes, i.e. for how long results of each IPv6 probe are
|
||||
// cached.
|
||||
-const int kIPv6ProbePeriodMs = 1000;
|
||||
+const int kIPv6ProbePeriodMs = 15000;
|
||||
|
||||
-// Google DNS address used for IPv6 probes.
|
||||
-const uint8_t kIPv6ProbeAddress[] = {0x20, 0x01, 0x48, 0x60, 0x48, 0x60,
|
||||
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
- 0x00, 0x00, 0x88, 0x88};
|
||||
+// RIPE NCC k.root-servers.net. 2001:7fd::1 (anycasted)
|
||||
+const uint8_t kIPv6ProbeAddress[] =
|
||||
+ { 0x20, 0x01, 0x07, 0xfd, 0x00, 0x00, 0x00, 0x00,
|
||||
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 };
|
||||
|
||||
enum DnsResolveStatus {
|
||||
RESOLVE_STATUS_DNS_SUCCESS = 0,
|
||||
--
|
||||
2.11.0
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ References: https://github.com/iridium-browser/iridium-browser/issues/28
|
||||
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
|
||||
--- a/extensions/common/extension.cc
|
||||
+++ b/extensions/common/extension.cc
|
||||
@@ -379,9 +379,12 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
@@ -394,9 +394,12 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
|
||||
}
|
||||
|
||||
bool Extension::ShouldExposeViaManagementAPI() const {
|
||||
+33
-33
@@ -25,26 +25,26 @@ See also: http://www.gsd.inesc-id.pt/~mpc/pubs/fingerprinting-trustcom2016.pdf
|
||||
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
|
||||
--- a/third_party/blink/renderer/core/dom/document.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/document.cc
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "base/auto_reset.h"
|
||||
#include "base/macros.h"
|
||||
#include "base/optional.h"
|
||||
+#include "base/rand_util.h"
|
||||
#include "cc/input/overscroll_behavior.h"
|
||||
#include "cc/input/scroll_snap_data.h"
|
||||
#include "services/metrics/public/cpp/mojo_ukm_recorder.h"
|
||||
#include "services/metrics/public/cpp/ukm_builders.h"
|
||||
#include "services/metrics/public/cpp/ukm_source_id.h"
|
||||
@@ -725,6 +726,10 @@ Document::Document(const DocumentInit& initializer,
|
||||
}
|
||||
DCHECK(fetcher_);
|
||||
|
||||
@@ -738,6 +739,10 @@ Document::Document(const DocumentInit& initializer,
|
||||
// also depend on the url NOT getting immediately set in opened windows.
|
||||
// See fast/dom/early-frame-url.html
|
||||
// and fast/dom/location-new-window-no-crash.html, respectively.
|
||||
+ // add X/Y noise factors that will be used to mitigate fingerprinting
|
||||
+ shuffleFactorX_ = base::RandDouble();
|
||||
+ shuffleFactorY_ = base::RandDouble();
|
||||
+
|
||||
root_scroller_controller_ = RootScrollerController::Create(*this);
|
||||
|
||||
// We depend on the url getting immediately set in subframes, but we
|
||||
@@ -790,6 +795,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope,
|
||||
// FIXME: Can/should we unify this behavior?
|
||||
if (initializer.ShouldSetURL()) {
|
||||
SetURL(initializer.Url());
|
||||
@@ -797,6 +802,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope,
|
||||
Position::BeforeNode(*shadow_host));
|
||||
}
|
||||
|
||||
@@ -62,7 +62,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
|
||||
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
|
||||
--- a/third_party/blink/renderer/core/dom/document.h
|
||||
+++ b/third_party/blink/renderer/core/dom/document.h
|
||||
@@ -427,6 +427,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
@@ -392,6 +392,9 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
|
||||
}
|
||||
|
||||
@@ -70,21 +70,21 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
|
||||
+ double GetShuffleFactorY();
|
||||
+
|
||||
String visibilityState() const;
|
||||
mojom::PageVisibilityState GetPageVisibilityState() const;
|
||||
bool IsPageVisible() const;
|
||||
bool hidden() const;
|
||||
@@ -1780,6 +1783,8 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
|
||||
double start_time_;
|
||||
|
||||
@@ -1814,6 +1817,8 @@ class CORE_EXPORT Document : public ContainerNode,
|
||||
Vector<AXContext*> ax_contexts_;
|
||||
Member<AXObjectCache> ax_object_cache_;
|
||||
Member<DocumentMarkerController> markers_;
|
||||
+ double shuffleFactorX_, shuffleFactorY_;
|
||||
+
|
||||
TraceWrapperMember<ScriptRunner> script_runner_;
|
||||
|
||||
HeapVector<Member<ScriptElementBase>> current_script_stack_;
|
||||
bool update_focus_appearance_after_layout_ = false;
|
||||
|
||||
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
|
||||
@@ -1363,6 +1363,15 @@ DOMRectList* Element::getClientRects() {
|
||||
@@ -1321,6 +1321,15 @@ DOMRectList* Element::getClientRects() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
|
||||
quads, *element_layout_object);
|
||||
@@ -100,7 +100,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
||||
return DOMRectList::Create(quads);
|
||||
}
|
||||
|
||||
@@ -1380,6 +1389,13 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
@@ -1338,6 +1347,13 @@ DOMRect* Element::getBoundingClientRect() {
|
||||
DCHECK(element_layout_object);
|
||||
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
|
||||
*element_layout_object);
|
||||
@@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
|
||||
diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
|
||||
--- a/third_party/blink/renderer/core/dom/range.cc
|
||||
+++ b/third_party/blink/renderer/core/dom/range.cc
|
||||
@@ -1606,11 +1606,27 @@ DOMRectList* Range::getClientRects() const {
|
||||
@@ -1643,11 +1643,27 @@ DOMRectList* Range::getClientRects() const {
|
||||
Vector<FloatQuad> quads;
|
||||
GetBorderAndTextQuads(quads);
|
||||
|
||||
@@ -149,9 +149,9 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
|
||||
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
|
||||
@@ -38,6 +38,24 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
|
||||
return 0;
|
||||
}
|
||||
@@ -45,6 +45,24 @@ void TextMetrics::Trace(Visitor* visitor) {
|
||||
|
||||
TextMetrics::TextMetrics() : baselines_(Baselines::Create()) {}
|
||||
|
||||
+void TextMetrics::Shuffle(const double factor) {
|
||||
+ // x-direction
|
||||
@@ -166,9 +166,9 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third
|
||||
+ actual_bounding_box_descent_ *= factor;
|
||||
+ em_height_ascent_ *= factor;
|
||||
+ em_height_descent_ *= factor;
|
||||
+ baselines_.setAlphabetic(baselines_.alphabetic() * factor);
|
||||
+ baselines_.setHanging(baselines_.hanging() * factor);
|
||||
+ baselines_.setIdeographic(baselines_.ideographic() * factor);
|
||||
+ baselines_->setAlphabetic(baselines_->alphabetic() * factor);
|
||||
+ baselines_->setHanging(baselines_->hanging() * factor);
|
||||
+ baselines_->setIdeographic(baselines_->ideographic() * factor);
|
||||
+}
|
||||
+
|
||||
void TextMetrics::Update(const Font& font,
|
||||
@@ -177,9 +177,9 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third
|
||||
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
||||
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
||||
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
|
||||
@@ -68,6 +68,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
|
||||
@@ -71,6 +71,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
|
||||
|
||||
static float GetFontBaseline(const TextBaseline&, const SimpleFontData&);
|
||||
void Trace(Visitor*) override;
|
||||
|
||||
+ void Shuffle(const double factor);
|
||||
+
|
||||
@@ -195,10 +195,10 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
|
||||
|
||||
+#include "base/rand_util.h"
|
||||
+
|
||||
#include "third_party/blink/public/common/features.h"
|
||||
#include "third_party/blink/public/platform/platform.h"
|
||||
#include "third_party/blink/public/platform/task_type.h"
|
||||
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
|
||||
@@ -782,8 +784,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
@@ -793,8 +795,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
|
||||
else
|
||||
direction = ToTextDirection(GetState().GetDirection(), canvas());
|
||||
|
||||
@@ -11,9 +11,9 @@ Subject: kill Auth
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
|
||||
@@ -8,10 +8,6 @@ import android.accounts.Account;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
@@ -10,10 +10,6 @@ import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
-import com.google.android.gms.auth.AccountChangeEvent;
|
||||
-import com.google.android.gms.auth.GoogleAuthException;
|
||||
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHe
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
@@ -71,23 +67,7 @@ public class SigninHelper {
|
||||
@@ -74,23 +70,7 @@ public class SigninHelper {
|
||||
@Override
|
||||
public List<String> getAccountChangeEvents(
|
||||
Context context, int index, String accountName) {
|
||||
@@ -86,7 +86,7 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
|
||||
import com.google.android.gms.common.ConnectionResult;
|
||||
import com.google.android.gms.common.GoogleApiAvailability;
|
||||
|
||||
@@ -117,48 +114,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
@@ -116,48 +113,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
// so don't report any accounts if Google Play Services are out of date.
|
||||
checkCanUseGooglePlayServices();
|
||||
|
||||
@@ -138,7 +138,7 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -198,17 +165,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
@@ -187,17 +154,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
|
||||
@SuppressLint("MissingPermission")
|
||||
@Override
|
||||
public void createAddAccountIntent(Callback<Intent> callback) {
|
||||
@@ -3,55 +3,63 @@ Date: Fri, 22 Jun 2018 17:11:38 +0200
|
||||
Subject: kill GCM
|
||||
|
||||
---
|
||||
build/secondary/third_party/android_tools/BUILD.gn | 3 -
|
||||
chrome/android/BUILD.gn | 1 -
|
||||
chrome/android/chrome_java_sources.gni | 5 -
|
||||
chrome/android/java/AndroidManifest.xml | 62 ---------
|
||||
.../chrome/browser/BackgroundSyncLauncher.java | 97 --------------
|
||||
.../chrome/browser/ChromeBackgroundService.java | 1 -
|
||||
.../invalidation/InvalidationController.java | 13 --
|
||||
.../invalidation/InvalidationController.java | 8 --
|
||||
.../browser/ntp/snippets/SnippetsLauncher.java | 44 -------
|
||||
.../browser/services/gcm/GCMBackgroundTask.java | 2 -
|
||||
.../browser/services/gcm/GCMBackgroundTask.java | 2 +-
|
||||
.../gcm/InvalidationGcmUpstreamSender.java | 15 ---
|
||||
chrome/android/java_sources.gni | 2 -
|
||||
components/background_task_scheduler/BUILD.gn | 1 -
|
||||
.../BackgroundTaskSchedulerGcmNetworkManager.java | 146 +--------------------
|
||||
components/gcm_driver/android/BUILD.gn | 1 -
|
||||
components/gcm_driver/instance_id/android/BUILD.gn | 1 -
|
||||
.../gcm_driver/instance_id/InstanceIDBridge.java | 31 +----
|
||||
.../gcm_driver/instance_id/InstanceIDBridge.java | 40 +-----
|
||||
components/sync/android/BUILD.gn | 1 -
|
||||
third_party/cacheinvalidation/BUILD.gn | 6 -
|
||||
.../client/contrib/MultiplexingGcmListener.java | 92 +------------
|
||||
.../android2/channel/AndroidNetworkChannel.java | 18 +--
|
||||
19 files changed, 14 insertions(+), 523 deletions(-)
|
||||
18 files changed, 15 insertions(+), 526 deletions(-)
|
||||
|
||||
diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn
|
||||
--- a/build/secondary/third_party/android_tools/BUILD.gn
|
||||
+++ b/build/secondary/third_party/android_tools/BUILD.gn
|
||||
@@ -53,9 +53,6 @@ if (enable_java_templates) {
|
||||
testonly = true
|
||||
java_files = [ "//third_party/android_tools/sdk/extras/chromium/support/src/org/chromium/android/support/PackageManagerWrapper.java" ]
|
||||
}
|
||||
- android_java_prebuilt("android_gcm_java") {
|
||||
- jar_path = "//third_party/android_tools/sdk/extras/google/gcm/gcm-client/dist/gcm.jar"
|
||||
- }
|
||||
android_java_prebuilt("emma_device_java") {
|
||||
jar_path = "//third_party/android_tools/sdk/tools/lib/emma_device.jar"
|
||||
include_java_resources = true
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
+++ b/chrome/android/BUILD.gn
|
||||
@@ -308,7 +308,6 @@ android_library("chrome_java") {
|
||||
@@ -343,7 +343,6 @@ android_library("chrome_java") {
|
||||
"//third_party/android_deps:com_google_protobuf_protobuf_lite_java",
|
||||
"//third_party/android_deps:javax_inject_javax_inject_java",
|
||||
"//third_party/android_media:android_media_java",
|
||||
- "//third_party/android_sdk:android_gcm_java",
|
||||
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
|
||||
- "//third_party/android_tools:android_gcm_java",
|
||||
"//third_party/blink/public:android_mojo_bindings_java",
|
||||
"//third_party/blink/public:blink_headers_java",
|
||||
"//third_party/blink/public/mojom:android_mojo_bindings_java",
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -22,7 +22,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/ChromeActivity.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeApplication.java",
|
||||
- "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
|
||||
@@ -1427,10 +1426,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
|
||||
"java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
|
||||
"java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
|
||||
"java/src/org/chromium/chrome/browser/sessions/SessionTabHelper.java",
|
||||
"java/src/org/chromium/chrome/browser/share/OptionalShareTargetsManager.java",
|
||||
"java/src/org/chromium/chrome/browser/share/ShareActivity.java",
|
||||
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
|
||||
--- a/chrome/android/java/AndroidManifest.xml
|
||||
+++ b/chrome/android/java/AndroidManifest.xml
|
||||
@@ -78,22 +78,17 @@ by a child template that "extends" this file.
|
||||
@@ -72,22 +72,17 @@ by a child template that "extends" this file.
|
||||
<permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
|
||||
<permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
|
||||
<permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
|
||||
@@ -73,8 +81,8 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
||||
- <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
|
||||
|
||||
<uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
|
||||
@@ -912,43 +907,6 @@ by a child template that "extends" this file.
|
||||
{% block extra_uses_permissions %}
|
||||
@@ -1034,47 +1029,8 @@ by a child template that "extends" this file.
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
|
||||
android:hardwareAccelerated="false" />
|
||||
|
||||
@@ -115,11 +123,6 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
||||
- <service android:name="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender"
|
||||
- android:exported="false"/>
|
||||
-
|
||||
<!-- Notification service for sync. -->
|
||||
<meta-data android:name="ipc.invalidation.ticl.listener_service_class"
|
||||
android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
|
||||
@@ -960,8 +918,6 @@ by a child template that "extends" this file.
|
||||
</service>
|
||||
<service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
|
||||
android:exported="false"/>
|
||||
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"
|
||||
@@ -127,7 +130,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
|
||||
<receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
|
||||
android:exported="false"/>
|
||||
<receiver android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"
|
||||
@@ -988,24 +944,6 @@ by a child template that "extends" this file.
|
||||
@@ -1101,24 +1057,6 @@ by a child template that "extends" this file.
|
||||
android:exported="false"
|
||||
android:permission="android.permission.BIND_JOB_SERVICE"/>
|
||||
|
||||
@@ -175,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
/**
|
||||
* Disables the automatic use of the GCMNetworkManager. When disabled, the methods which
|
||||
* interact with GCM can still be used, but will not be called automatically on creation, or by
|
||||
@@ -124,30 +118,6 @@ public class BackgroundSyncLauncher {
|
||||
@@ -123,30 +117,6 @@ public class BackgroundSyncLauncher {
|
||||
@VisibleForTesting
|
||||
@CalledByNative
|
||||
protected void launchBrowserIfStopped(final boolean shouldLaunch, final long minDelayMs) {
|
||||
@@ -206,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -159,7 +129,6 @@ public class BackgroundSyncLauncher {
|
||||
@@ -158,7 +128,6 @@ public class BackgroundSyncLauncher {
|
||||
}
|
||||
|
||||
protected BackgroundSyncLauncher() {
|
||||
@@ -214,7 +217,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
launchBrowserIfStopped(false, 0);
|
||||
}
|
||||
|
||||
@@ -188,72 +157,6 @@ public class BackgroundSyncLauncher {
|
||||
@@ -187,72 +156,6 @@ public class BackgroundSyncLauncher {
|
||||
return !sGCMEnabled;
|
||||
}
|
||||
|
||||
@@ -290,7 +293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncL
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
|
||||
@@ -106,7 +106,6 @@ public class ChromeBackgroundService extends GcmTaskService {
|
||||
@@ -113,7 +113,6 @@ public class ChromeBackgroundService extends GcmTaskService {
|
||||
|
||||
@VisibleForTesting
|
||||
protected void rescheduleBackgroundSyncTasksOnUpgrade() {
|
||||
@@ -310,22 +313,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/In
|
||||
import org.chromium.base.ApplicationState;
|
||||
import org.chromium.base.ApplicationStatus;
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -198,18 +196,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
|
||||
@@ -193,13 +191,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
|
||||
* Registers for Google Cloud Messaging (GCM) for Invalidations.
|
||||
*/
|
||||
private void ensureGcmIsInitialized() {
|
||||
- if (mGcmInitialized) return;
|
||||
mGcmInitialized = true;
|
||||
- new AsyncTask<Void>() {
|
||||
- @Override
|
||||
- protected Void doInBackground() {
|
||||
- boolean useGcmUpstream = true;
|
||||
- AndroidGcmController.get(ContextUtils.getApplicationContext())
|
||||
- .initializeGcm(useGcmUpstream);
|
||||
- return null;
|
||||
- }
|
||||
- }
|
||||
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
- PostTask.postTask(TaskTraits.BEST_EFFORT_MAY_BLOCK, () -> {
|
||||
- boolean useGcmUpstream = true;
|
||||
- AndroidGcmController.get(ContextUtils.getApplicationContext())
|
||||
- .initializeGcm(useGcmUpstream);
|
||||
- });
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -425,28 +423,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/Sn
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
|
||||
@@ -39,8 +39,6 @@ public class GCMBackgroundTask implements BackgroundTask {
|
||||
Log.e(TAG, "The received bundle containing message data could not be validated.");
|
||||
@@ -41,7 +41,7 @@ public class GCMBackgroundTask implements BackgroundTask {
|
||||
return false;
|
||||
}
|
||||
-
|
||||
- ChromeGcmListenerService.dispatchMessageToDriver(context, new GCMMessage(extras));
|
||||
|
||||
- ChromeGcmListenerService.dispatchMessageToDriver(context, message);
|
||||
+ //ChromeGcmListenerService.dispatchMessageToDriver(context, message);
|
||||
return false;
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
|
||||
@@ -12,7 +12,6 @@ import android.os.Parcel;
|
||||
import android.support.annotation.MainThread;
|
||||
@@ -13,7 +13,6 @@ import android.support.annotation.MainThread;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
|
||||
-import com.google.android.gms.gcm.GoogleCloudMessaging;
|
||||
import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -96,20 +95,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
* This function runs on a thread from the AsyncTask.THREAD_POOL_EXECUTOR.
|
||||
@@ -87,20 +86,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
|
||||
* This function runs on a thread pool executor thread.
|
||||
*/
|
||||
private void sendUpstreamMessage(String to, Bundle data, String token, Context context) {
|
||||
- // Add the OAuth2 token to the bundle. The token should have the prefix Bearer added to it.
|
||||
@@ -466,25 +464,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/In
|
||||
}
|
||||
|
||||
private boolean isMessageWithinLimit(Bundle data) {
|
||||
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
--- a/chrome/android/java_sources.gni
|
||||
+++ b/chrome/android/java_sources.gni
|
||||
@@ -27,7 +27,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/ChromeActivity.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeApplication.java",
|
||||
- "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeFeatureList.java",
|
||||
@@ -1345,7 +1344,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
|
||||
"java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
|
||||
"java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
|
||||
- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
|
||||
"java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java",
|
||||
"java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
|
||||
"java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
|
||||
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
|
||||
--- a/components/background_task_scheduler/BUILD.gn
|
||||
+++ b/components/background_task_scheduler/BUILD.gn
|
||||
@@ -604,11 +583,11 @@ diff --git a/components/background_task_scheduler/android/java/src/org/chromium/
|
||||
- @TaskInfo.NetworkType int networkType) {
|
||||
- switch (networkType) {
|
||||
- // This is correct: GcmNM ANY means no network is guaranteed.
|
||||
- case TaskInfo.NETWORK_TYPE_NONE:
|
||||
- case TaskInfo.NetworkType.NONE:
|
||||
- return Task.NETWORK_STATE_ANY;
|
||||
- case TaskInfo.NETWORK_TYPE_ANY:
|
||||
- case TaskInfo.NetworkType.ANY:
|
||||
- return Task.NETWORK_STATE_CONNECTED;
|
||||
- case TaskInfo.NETWORK_TYPE_UNMETERED:
|
||||
- case TaskInfo.NetworkType.UNMETERED:
|
||||
- return Task.NETWORK_STATE_UNMETERED;
|
||||
- default:
|
||||
- assert false;
|
||||
@@ -678,14 +657,14 @@ diff --git a/components/gcm_driver/android/BUILD.gn b/components/gcm_driver/andr
|
||||
deps = [
|
||||
"//base:base_java",
|
||||
"//content/public/android:content_java",
|
||||
- "//third_party/android_tools:android_gcm_java",
|
||||
- "//third_party/android_sdk:android_gcm_java",
|
||||
"//third_party/jsr-305:jsr_305_javalib",
|
||||
]
|
||||
|
||||
diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn
|
||||
--- a/components/gcm_driver/instance_id/android/BUILD.gn
|
||||
+++ b/components/gcm_driver/instance_id/android/BUILD.gn
|
||||
@@ -26,7 +26,6 @@ android_library("instance_id_driver_java") {
|
||||
@@ -27,7 +27,6 @@ android_library("instance_id_driver_java") {
|
||||
|
||||
java_files = [
|
||||
"java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java",
|
||||
@@ -696,7 +675,7 @@ diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm
|
||||
diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
|
||||
--- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
|
||||
+++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
|
||||
@@ -32,7 +32,6 @@ public class InstanceIDBridge {
|
||||
@@ -26,7 +26,6 @@ public class InstanceIDBridge {
|
||||
* Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be
|
||||
* initialized on a background thread.
|
||||
*/
|
||||
@@ -704,7 +683,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
|
||||
private static boolean sBlockOnAsyncTasksForTesting;
|
||||
|
||||
@@ -108,7 +107,7 @@ public class InstanceIDBridge {
|
||||
@@ -71,7 +70,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<String>() {
|
||||
@Override
|
||||
protected String doBackgroundWork() {
|
||||
@@ -713,7 +692,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(String id) {
|
||||
@@ -123,7 +122,7 @@ public class InstanceIDBridge {
|
||||
@@ -86,7 +85,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Long>() {
|
||||
@Override
|
||||
protected Long doBackgroundWork() {
|
||||
@@ -722,12 +701,15 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Long creationTime) {
|
||||
@@ -148,12 +147,7 @@ public class InstanceIDBridge {
|
||||
@@ -111,15 +110,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<String>() {
|
||||
@Override
|
||||
protected String doBackgroundWork() {
|
||||
- try {
|
||||
- storeLazinessInformation(authorizedEntity, isLazy);
|
||||
- LazySubscriptionsManager.storeLazinessInformation(
|
||||
- LazySubscriptionsManager.buildSubscriptionUniqueId(
|
||||
- mSubtype, authorizedEntity),
|
||||
- isLazy);
|
||||
- return mInstanceID.getToken(authorizedEntity, scope, extras);
|
||||
- } catch (IOException ex) {
|
||||
- return "";
|
||||
@@ -736,21 +718,27 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(String token) {
|
||||
@@ -169,12 +163,7 @@ public class InstanceIDBridge {
|
||||
@@ -135,18 +126,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Boolean>() {
|
||||
@Override
|
||||
protected Boolean doBackgroundWork() {
|
||||
- try {
|
||||
- mInstanceID.deleteToken(authorizedEntity, scope);
|
||||
- String subscriptionId = LazySubscriptionsManager.buildSubscriptionUniqueId(
|
||||
- mSubtype, authorizedEntity);
|
||||
- if (LazySubscriptionsManager.isSubscriptionLazy(subscriptionId)) {
|
||||
- LazySubscriptionsManager.deletePersistedMessagesForSubscriptionId(
|
||||
- subscriptionId);
|
||||
- }
|
||||
- return true;
|
||||
- } catch (IOException ex) {
|
||||
- return false;
|
||||
- }
|
||||
+ return true;
|
||||
+ return false;
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Boolean success) {
|
||||
@@ -189,12 +178,7 @@ public class InstanceIDBridge {
|
||||
@@ -161,12 +141,7 @@ public class InstanceIDBridge {
|
||||
new BridgeAsyncTask<Boolean>() {
|
||||
@Override
|
||||
protected Boolean doBackgroundWork() {
|
||||
@@ -764,7 +752,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com
|
||||
}
|
||||
@Override
|
||||
protected void sendResultToNative(Boolean success) {
|
||||
@@ -233,11 +217,6 @@ public class InstanceIDBridge {
|
||||
@@ -205,11 +180,6 @@ public class InstanceIDBridge {
|
||||
@Override
|
||||
@SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native.
|
||||
protected Result doInBackground() {
|
||||
@@ -782,8 +770,8 @@ diff --git a/components/sync/android/BUILD.gn b/components/sync/android/BUILD.gn
|
||||
@@ -11,7 +11,6 @@ android_library("sync_java") {
|
||||
"//components/signin/core/browser/android:java",
|
||||
"//net/android:net_java",
|
||||
"//third_party/android_deps:android_support_annotations_java",
|
||||
- "//third_party/android_tools:android_gcm_java",
|
||||
"//third_party/android_deps:com_android_support_support_annotations_java",
|
||||
- "//third_party/android_sdk:android_gcm_java",
|
||||
"//third_party/cacheinvalidation:cacheinvalidation_javalib",
|
||||
"//third_party/cacheinvalidation:cacheinvalidation_proto_java",
|
||||
"//third_party/jsr-305:jsr_305_javalib",
|
||||
@@ -794,7 +782,7 @@ diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidat
|
||||
"$google_play_services_package:google_play_services_iid_java",
|
||||
"$google_play_services_package:google_play_services_tasks_java",
|
||||
"//third_party/android_protobuf:protobuf_nano_javalib",
|
||||
- "//third_party/android_tools:android_gcm_java",
|
||||
- "//third_party/android_sdk:android_gcm_java",
|
||||
]
|
||||
|
||||
java_files = [
|
||||
+1
-1
@@ -10,7 +10,7 @@ Subject: kill Location, fall back to system
|
||||
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
|
||||
--- a/services/device/geolocation/BUILD.gn
|
||||
+++ b/services/device/geolocation/BUILD.gn
|
||||
@@ -131,7 +131,6 @@ if (is_android) {
|
||||
@@ -137,7 +137,6 @@ if (is_android) {
|
||||
"android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
|
||||
"android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java",
|
||||
"android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",
|
||||
+12
-13
@@ -3,29 +3,28 @@ Date: Fri, 22 Jun 2018 17:16:07 +0200
|
||||
Subject: kill TOS and metrics opt-out
|
||||
|
||||
---
|
||||
chrome/android/java/res/layout/fre_tosanduma.xml | 3 ++-
|
||||
chrome/android/java/res/values/dimens.xml | 1 -
|
||||
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java | 2 +-
|
||||
3 files changed, 3 insertions(+), 3 deletions(-)
|
||||
chrome/android/java/res/layout/fre_tosanduma.xml | 2 +-
|
||||
chrome/android/java/res/values/dimens.xml | 1 -
|
||||
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java | 2 +-
|
||||
3 files changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
--- a/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
+++ b/chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
@@ -63,7 +63,8 @@
|
||||
@@ -62,7 +62,7 @@
|
||||
android:layout_marginBottom="@dimen/fre_vertical_spacing"
|
||||
android:gravity="center"
|
||||
android:lineSpacingMultiplier="1.4"
|
||||
- android:textAppearance="@style/BlackBodyDefault" />
|
||||
+ android:textAppearance="@style/BlackBodyDefault"
|
||||
+ android:visibility="gone" />
|
||||
- android:textAppearance="@style/TextAppearance.BlackBodyDefault" />
|
||||
+ android:textAppearance="@style/TextAppearance.BlackBodyDefault" android:visibility="gone" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/send_report_checkbox"
|
||||
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
|
||||
--- a/chrome/android/java/res/values/dimens.xml
|
||||
+++ b/chrome/android/java/res/values/dimens.xml
|
||||
@@ -181,7 +181,6 @@
|
||||
<dimen name="fre_stacked_button_margin">8dp</dimen>
|
||||
@@ -191,7 +191,6 @@
|
||||
<dimen name="fre_button_padding">12dp</dimen>
|
||||
<dimen name="fre_margin">24dp</dimen>
|
||||
<dimen name="fre_image_height">120dp</dimen>
|
||||
- <dimen name="fre_tos_checkbox_padding">12dp</dimen>
|
||||
@@ -35,9 +34,9 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
|
||||
@@ -36,7 +36,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
|
||||
public static final String EXTRA_FIRST_RUN_ACTIVITY_RESULT = "Extra.FreActivityResult";
|
||||
public static final String EXTRA_FIRST_RUN_COMPLETE = "Extra.FreComplete";
|
||||
@@ -38,7 +38,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
|
||||
static final String SHOW_SEARCH_ENGINE_PAGE = "ShowSearchEnginePage";
|
||||
static final String SHOW_SIGNIN_PAGE = "ShowSignIn";
|
||||
|
||||
- public static final boolean DEFAULT_METRICS_AND_CRASH_REPORTING = true;
|
||||
+ public static final boolean DEFAULT_METRICS_AND_CRASH_REPORTING = false;
|
||||
@@ -22,10 +22,10 @@ diff --git a/chrome/android/java/res/xml/languages_preferences.xml b/chrome/andr
|
||||
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
|
||||
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.metrics.UmaUtils;
|
||||
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.datareduction.DataReductionPromoUtils;
|
||||
import org.chromium.chrome.browser.datareduction.DataReductionProxyUma;
|
||||
import org.chromium.chrome.browser.metrics.UmaUtils;
|
||||
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
|
||||
import org.chromium.chrome.browser.preferences.datareduction.DataReductionPromoUtils;
|
||||
import org.chromium.chrome.browser.preferences.datareduction.DataReductionProxyUma;
|
||||
+import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
||||
import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
|
||||
@@ -0,0 +1,98 @@
|
||||
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 | 31 +++++++++++++++++++------
|
||||
2 files changed, 27 insertions(+), 10 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
|
||||
@@ -150,11 +150,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
|
||||
@@ -16,11 +16,16 @@ config("config") {
|
||||
# HAVE_NEON and __chromeos__ are needed for enabling NEON on ChromeOS
|
||||
# devices.
|
||||
defines += [
|
||||
- "HAVE_NEON",
|
||||
"__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 += [
|
||||
@@ -125,8 +130,12 @@ if (use_assembler) {
|
||||
|
||||
source_set("common") {
|
||||
sources = openh264_common_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
- sources += openh264_common_sources_asm_arm
|
||||
+ if (is_chromeos || is_android) {
|
||||
+ if (target_cpu == "arm") {
|
||||
+ sources += openh264_common_sources_asm_arm
|
||||
+ } else if (target_cpu == "arm64") {
|
||||
+ sources += openh264_common_sources_asm_arm64
|
||||
+ }
|
||||
}
|
||||
include_dirs = openh264_common_include_dirs
|
||||
|
||||
@@ -151,8 +160,12 @@ source_set("common") {
|
||||
|
||||
source_set("processing") {
|
||||
sources = openh264_processing_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
- sources += openh264_processing_sources_asm_arm
|
||||
+ if (is_chromeos || is_android) {
|
||||
+ if (target_cpu == "arm") {
|
||||
+ sources += openh264_processing_sources_asm_arm
|
||||
+ } else if (target_cpu == "arm64") {
|
||||
+ sources += openh264_processing_sources_asm_arm64
|
||||
+ }
|
||||
}
|
||||
include_dirs = openh264_processing_include_dirs
|
||||
|
||||
@@ -170,8 +183,12 @@ source_set("processing") {
|
||||
|
||||
source_set("encoder") {
|
||||
sources = openh264_encoder_sources
|
||||
- if (is_chromeos && target_cpu == "arm") {
|
||||
- sources += openh264_encoder_sources_asm_arm
|
||||
+ if (is_chromeos || is_android) {
|
||||
+ if (target_cpu == "arm") {
|
||||
+ sources += openh264_encoder_sources_asm_arm
|
||||
+ } else if (target_cpu == "arm64") {
|
||||
+ sources += openh264_encoder_sources_asm_arm64
|
||||
+ }
|
||||
}
|
||||
include_dirs = openh264_encoder_include_dirs
|
||||
|
||||
--
|
||||
2.11.0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user