merge with master

This commit is contained in:
Carmelo Messina 2021-10-19 09:28:48 +02:00
commit 9bcbcb513f
149 changed files with 9600 additions and 6089 deletions

View file

@ -1,3 +1,30 @@
# 94.0.4606.94
* Bromite auto-update feature, disabled by default (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/706)
* add site setting for images (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1339)
* use SM-G960U as model provided via client hints and Javascript
* drop patches already merged upstream
# 93.0.4577.110
* set enable_reporting to false (thanks to @nikolowry)
* backported patches for security issues https://crbug.com/1245578 and https://crbug.com/1251787
* disable AGSA by default
* disable UA client hint for model
* disable lock icon in address bar by default
* enable share intent (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1062)
* allow forcing external links to open in incognito (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/728)
* avoid double restart for default tab groups flags status
# 93.0.4577.83
* dropped patch for FLoC (already disabled by upstream)
* dropped patch for build with system sysroots
* disable tab groups by default (needs restart)
* added 'services/network/public/mojom' to ad blocker patch to avoid a build error
# 92.0.4515.176
* use upstream feature to prevent default search engine permissions grants
* slightly improve error message for gateway attacks prevention error
# 92.0.4515.134
# 92.0.4515.125
@ -25,7 +52,6 @@
# 91.0.4472.102
* fix opening new tabs from links in always-incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1154)
* allow saving pages in incognito mode (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/1182)
# 91.0.4472.97
* add flag for omnibox autocomplete filtering (fixes https://github.com/bromite/bromite/issues/1152)

View file

@ -63,6 +63,12 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
* disable RTCGetCurrentBrowsingContextMedia by default
* disable FLoC by default
* disable feeds
* disable reporting of certificate errors
* use pre-defined phone model for client hints and Javascript
* site settings to disable images
* allow forcing external links to open in incognito
* disable AGSA by default
* allow disabling JIT
## Features not related to privacy
* import/export bookmarks
@ -85,6 +91,10 @@ ETH donations address: `0xf47ff39223d828f99fec5ab53bd068c5c0522042`
* disable video autoplay by default, reintroduce site settings
* mobile/desktop user agent customization
* accessibility preference to force tablet UI
* use Alt+D to focus address bar
* allow sharing to Bromite
* browser automatic updates
* UI for crash information collection
You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md).
@ -131,6 +141,8 @@ Each tag corresponds to a Chromium Stable release tag.
Bromite is currently built for ARM, ARM64 and x86 and for the Android SDK versions 19 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.
You can automatically receive notifications about new updates (and install them) by enabling the auto updater functionality, see [related wiki page](https://github.com/bromite/bromite/wiki/AutomaticUpdates).
All official releases are also available through the [official third-party F-Droid repository](https://www.bromite.org/fdroid).
## Integrity and authenticity

View file

@ -6,6 +6,7 @@ debuggable_apks=false
dfmify_dev_ui=false
disable_android_lint=true
disable_autofill_assistant_dfm=true
disable_fieldtrial_testing_config=true
disable_tab_ui_dfm=true
enable_av1_decoder=true
enable_dav1d_decoder=true
@ -19,11 +20,10 @@ enable_nacl_nonsfi=false
enable_platform_dolby_vision=true
enable_platform_hevc=true
enable_remoting=false
enable_reporting=true
enable_reporting=false
enable_vr=false
exclude_unwind_tables=false
ffmpeg_branding="Chrome"
fieldtrial_testing_like_official_build=true
icu_use_data_file=true
is_component_build=false
is_debug=false

View file

@ -1 +1 @@
92.0.4515.134
94.0.4606.94

View file

@ -2,7 +2,6 @@ Disable-third-party-cookies-by-default.patch
AV1-codec-support.patch
Switch-to-fstack-protector-strong.patch
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
DCScan-Fix-builds-with-system-sysroots.patch
Restore-classic-new-tab-page.patch
Always-use-new-tab-page-for-default-home-page.patch
Always-allow-partner-customisation.patch
@ -35,7 +34,6 @@ Skip-the-first-run-and-metrics.patch
Disable-all-promo-dialogs.patch
Remove-signin-and-data-saver-integrations.patch
Hide-passwords-manager-link.patch
Disable-Omaha-update-checks.patch
Disable-update-scheduler.patch
Add-English-only-search-engine.patch
Add-DuckDuckGo-Lite-search-engine.patch
@ -76,7 +74,7 @@ Remove-SMS-integration.patch
Do-not-compile-QR-code-sharing.patch
Allow-website-sign-in-without-account-sign-in.patch
Offer-builtin-autocomplete-for-chrome-flags.patch
Do-not-grant-notifications-to-default-search-engine.patch
Disable-search-engine-DSE-automatic-permission.patch
Add-flag-to-disable-IPv6-probes.patch
Add-a-proxy-configuration-page.patch
Use-4-tile-rows-never-show-logo.patch
@ -145,8 +143,6 @@ Remove-offline-measurement-background-task.patch
User-agent-customization.patch
Add-AllowUserCertificates-flag.patch
Add-IsCleartextPermitted-flag.patch
Disable-RTCGetCurrentBrowsingContextMedia-by-default.patch
Disable-FLoC-by-default.patch
Unexpire-tab-groups-flags.patch
Add-flag-for-omnibox-autocomplete-filtering.patch
Enable-IntentBlockExternalFormRedirectsNoGesture-by-default.patch
@ -155,9 +151,15 @@ Logcat-crash-reports-UI.patch
Add-support-for-ISupportHelpAndFeedback.patch
JIT-less-toggle.patch
API-level-21-prevent-crash-on-download.patch
Add-vibration-flag.patch
Add-flag-to-disable-vibration.patch
mime_util-force-text-x-suse-ymp-to-be-downloaded.patch
Disable-UA-client-hint.patch
Override-UA-client-hint-for-model.patch
Disable-AGSA-by-default.patch
Allow-building-without-enable_reporting.patch
Disable-lock-icon-in-address-bar-by-default.patch
Force-open-external-links-in-incognito.patch
Enable-share-intent.patch
Site-setting-for-images.patch
Bromite-auto-updater.patch
Automated-domain-substitution.patch
add-support-for-prefs-addon.patch
experimental-user-scripts-support.patch

View file

@ -1,5 +1,4 @@
AV1-codec-support.patch
Switch-to-fstack-protector-strong.patch
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
DCScan-Fix-builds-with-system-sysroots.patch
Disable-feeds-support-by-default.patch

View file

@ -45,7 +45,7 @@ diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_
// C++11 static local variable initialization is
// thread-safe.
@@ -30,8 +32,12 @@ AndroidImageReader& AndroidImageReader::GetInstance() {
return *instance;
return instance;
}
+void AndroidImageReader::DisableSupport() {
@ -82,7 +82,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1922,7 +1922,7 @@
@@ -2017,7 +2017,7 @@
{
"name": "enable-image-reader",
"owners": [ "vikassoni", "liberato" ],
@ -94,7 +94,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -3188,6 +3188,22 @@
@@ -3191,6 +3191,22 @@
"dont_delete_source_texture_for_egl_image"
]
},
@ -120,7 +120,7 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
@@ -50,6 +50,11 @@ bool IsDeviceBlocked(const char* field, const std::string& block_list) {
@@ -51,6 +51,11 @@ bool IsDeviceBlocked(const char* field, const std::string& block_list) {
} // namespace
#if defined(OS_ANDROID)
@ -182,7 +182,7 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -503,6 +503,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
@@ -517,6 +517,11 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
}
}
@ -205,7 +205,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
#include "base/android/scoped_hardware_buffer_fence_sync.h"
#include "base/bind.h"
#include "base/feature_list.h"
@@ -49,7 +50,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
@@ -50,7 +51,15 @@ std::unique_ptr<ui::ScopedMakeCurrent> MakeCurrent(
}
TextureOwner::Mode GetTextureOwnerMode() {
@ -225,7 +225,7 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
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
@@ -627,6 +627,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
@@ -668,6 +668,10 @@ const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",
// Note: Has no effect if kMediaDrmPreprovisioning feature is disabled.
const base::Feature kMediaDrmPreprovisioningAtStartup{
"MediaDrmPreprovisioningAtStartup", base::FEATURE_ENABLED_BY_DEFAULT};
@ -239,7 +239,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -205,6 +205,7 @@ MEDIA_EXPORT extern const base::Feature kVp9kSVCHWDecoding;
@@ -219,6 +219,7 @@ MEDIA_EXPORT extern const base::Feature kForceHardwareAudioDecoders;
MEDIA_EXPORT extern const base::Feature kAllowNonSecureOverlays;
MEDIA_EXPORT extern const base::Feature kMediaControlsExpandGesture;
MEDIA_EXPORT extern const base::Feature kMediaDrmPersistentLicense;

View file

@ -24,7 +24,7 @@ Report AV1 as playable on Android
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
@@ -81,7 +81,7 @@ if (enable_libaom) {
@@ -82,7 +82,7 @@ if (enable_libaom) {
sources += aom_dsp_encoder_asm_sse2_x86_64
sources += aom_dsp_encoder_asm_ssse3_x86_64
}
@ -33,7 +33,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
include_dirs = libaom_include_dirs
}
@@ -192,7 +192,7 @@ if (enable_libaom) {
@@ -193,7 +193,7 @@ if (enable_libaom) {
configs += [ "//build/config/compiler:no_chromium_code" ]
if (current_cpu == "arm") {
configs -= [ "//build/config/compiler:compiler_arm_fpu" ]
@ -42,7 +42,7 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
}
configs += [ ":libaom_config" ]
@@ -242,6 +242,8 @@ if (enable_libaom) {
@@ -256,6 +256,8 @@ if (enable_libaom) {
if (current_cpu == "arm64" || cpu_arch_full == "arm-neon" ||
cpu_arch_full == "arm-neon-cpu-detect") {
deps += [ ":libaom_intrinsics_neon" ]
@ -54,9 +54,9 @@ diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
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
@@ -629,6 +629,11 @@ aom_mem_sources = [
@@ -634,6 +634,11 @@ aom_mem_sources = [
aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/emms.asm" ]
aom_ports_asm_x86 = [ "//third_party/libaom/source/libaom/aom_ports/float.asm" ]
+aom_ports_arm_sources = [
+ "//third_party/libaom/source/libaom/aom_ports/arm_cpudetect.c",
@ -75,9 +75,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
CONFIG_PARTITION_SEARCH_ORDER equ 0
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_COMMAND equ 0
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RT_ML_PARTITIONING 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
@ -87,9 +87,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/a
#define CONFIG_PARTITION_SEARCH_ORDER 0
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_COMMAND 0
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RT_ML_PARTITIONING 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
@ -99,9 +99,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.a
CONFIG_PARTITION_SEARCH_ORDER equ 0
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_COMMAND equ 0
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RT_ML_PARTITIONING 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
@ -111,9 +111,9 @@ diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_config.h
#define CONFIG_PARTITION_SEARCH_ORDER 0
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_COMMAND 0
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RT_ML_PARTITIONING 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
@ -123,9 +123,9 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.asm b/
CONFIG_PARTITION_SEARCH_ORDER equ 0
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_COMMAND equ 0
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RT_ML_PARTITIONING 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
@ -135,9 +135,9 @@ diff --git a/third_party/libaom/source/config/linux/arm/config/aom_config.h b/th
#define CONFIG_PARTITION_SEARCH_ORDER 0
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_COMMAND 0
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RT_ML_PARTITIONING 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
@ -147,9 +147,9 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.asm
CONFIG_PARTITION_SEARCH_ORDER equ 0
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_COMMAND equ 0
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RT_ML_PARTITIONING 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
@ -159,9 +159,9 @@ diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_config.h b/
#define CONFIG_PARTITION_SEARCH_ORDER 0
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_COMMAND 0
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RT_ML_PARTITIONING 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
@ -171,9 +171,9 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.as
CONFIG_PARTITION_SEARCH_ORDER equ 0
-CONFIG_PIC equ 0
+CONFIG_PIC equ 1
CONFIG_RD_COMMAND equ 0
CONFIG_RD_DEBUG equ 0
CONFIG_REALTIME_ONLY equ 1
CONFIG_RT_ML_PARTITIONING 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
@ -183,9 +183,9 @@ diff --git a/third_party/libaom/source/config/linux/generic/config/aom_config.h
#define CONFIG_PARTITION_SEARCH_ORDER 0
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_COMMAND 0
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RT_ML_PARTITIONING 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
@ -195,9 +195,9 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.asm b/
%define CONFIG_PARTITION_SEARCH_ORDER 0
-%define CONFIG_PIC 0
+%define CONFIG_PIC 1
%define CONFIG_RD_COMMAND 0
%define CONFIG_RD_DEBUG 0
%define CONFIG_REALTIME_ONLY 1
%define CONFIG_RT_ML_PARTITIONING 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
@ -207,9 +207,9 @@ diff --git a/third_party/libaom/source/config/linux/x64/config/aom_config.h b/th
#define CONFIG_PARTITION_SEARCH_ORDER 0
-#define CONFIG_PIC 0
+#define CONFIG_PIC 1
#define CONFIG_RD_COMMAND 0
#define CONFIG_RD_DEBUG 0
#define CONFIG_REALTIME_ONLY 1
#define CONFIG_RT_ML_PARTITIONING 0
--
2.17.1

View file

@ -18,7 +18,7 @@ Subject: Add AllowUserCertificates flag
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -211,6 +211,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
@@ -223,6 +223,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
import org.chromium.content_public.browser.SelectionPopupController;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.common.ContentSwitches;
@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.printing.PrintManagerDelegateImpl;
import org.chromium.printing.PrintingController;
import org.chromium.printing.PrintingControllerImpl;
@@ -879,6 +880,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -976,6 +977,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
UpdateMenuItemHelper.getInstance().onStart();
ChromeActivitySessionTracker.getInstance().onStartWithNative();
ChromeCachedFlags.getInstance().cacheNativeFlags();
@ -38,18 +38,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/flags/ChromeCachedFlags.java
@@ -65,6 +65,7 @@ public class ChromeCachedFlags {
// clang-format off
List<String> featuresToCache = Arrays.asList(
+ ChromeFeatureList.ALLOW_USER_CERTIFICATES,
ChromeFeatureList.ANDROID_PARTNER_CUSTOMIZATION_PHENOTYPE,
ChromeFeatureList.APP_MENU_MOBILE_SITE_OPTION,
ChromeFeatureList.APP_TO_WEB_ATTRIBUTION,
@@ -88,6 +88,7 @@ public class ChromeCachedFlags {
add(ChromeFeatureList.EARLY_LIBRARY_LOAD);
add(ChromeFeatureList.ELASTIC_OVERSCROLL);
add(ChromeFeatureList.IMMERSIVE_UI_MODE);
+ add(ChromeFeatureList.ALLOW_USER_CERTIFICATES);
add(ChromeFeatureList.INSTANT_START);
add(ChromeFeatureList.INSTANCE_SWITCHER);
add(ChromeFeatureList.INTEREST_FEED_V2);
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
@@ -2805,6 +2805,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2781,6 +2781,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kCSSContainerQueriesDescription, kOsAll,
FEATURE_VALUE_TYPE(blink::features::kCSSContainerQueries)},
#if defined(OS_ANDROID)
@ -91,16 +91,16 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -127,6 +127,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -139,6 +139,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&feed::kFeedInteractiveRefresh,
&feed::kInterestFeedContentSuggestions,
&feed::kInterestFeedNoticeCardAutoDismiss,
&feed::kInterestFeedSpinnerAlwaysAnimate,
+ &kAllowUserCertificates,
&feed::kInterestFeedV1ClicksAndViewsConditionalUpload,
&feed::kInterestFeedV2,
&feed::kInterestFeedV2Autoplay,
@@ -350,6 +351,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomization{
"AdaptiveButtonInTopToolbarCustomization",
@@ -373,6 +374,9 @@ const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2{
"AdaptiveButtonInTopToolbarCustomizationV2",
base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kAllowUserCertificates = {
@ -119,29 +119,29 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
+extern const base::Feature kAllowUserCertificates;
// Alphabetical:
extern const base::Feature kAdaptiveButtonInTopToolbar;
extern const base::Feature kAdaptiveButtonInTopToolbarCustomization;
extern const base::Feature kAdaptiveButtonInTopToolbarCustomizationV2;
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
@@ -47,6 +47,7 @@ public class CachedFeatureFlags {
@@ -48,6 +48,7 @@ public class CachedFeatureFlags {
*/
private static Map<String, Boolean> sDefaults = new HashMap<String, Boolean>() {
{
+ put(ChromeFeatureList.ALLOW_USER_CERTIFICATES, false);
put(ChromeFeatureList.ANDROID_PARTNER_CUSTOMIZATION_PHENOTYPE, true);
put(ChromeFeatureList.BOOKMARK_BOTTOM_SHEET, false);
put(ChromeFeatureList.CHROME_STARTUP_DELEGATE, false);
private static Map<String, Boolean> sDefaults =
ImmutableMap.<String, Boolean>builder()
+ .put(ChromeFeatureList.ALLOW_USER_CERTIFICATES, false)
.put(ChromeFeatureList.ANDROID_PARTNER_CUSTOMIZATION_PHENOTYPE, true)
.put(ChromeFeatureList.BOOKMARK_BOTTOM_SHEET, false)
.put(ChromeFeatureList.CONDITIONAL_TAB_STRIP_ANDROID, false)
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -203,6 +203,7 @@ public abstract class ChromeFeatureList {
@@ -211,6 +211,7 @@ public abstract class ChromeFeatureList {
}
/* Alphabetical: */
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION =
"AdaptiveButtonInTopToolbarCustomization";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 =
"AdaptiveButtonInTopToolbarCustomizationV2";
diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
--- a/net/android/java/src/org/chromium/net/X509Util.java
+++ b/net/android/java/src/org/chromium/net/X509Util.java

View file

@ -9,7 +9,7 @@ Subject: Add Alt+D hotkey to focus address bar
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
@@ -147,6 +147,8 @@ public class KeyboardShortcuts {
@@ -156,6 +156,8 @@ public class KeyboardShortcuts {
KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);

View file

@ -13,7 +13,7 @@ disable from all its searches RLZ and field experiments querystring parameters.
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
@@ -132,6 +132,27 @@
@@ -133,6 +133,27 @@
"id": 1
},

View file

@ -14,7 +14,7 @@ Subject: Add IsCleartextPermitted flag
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
@@ -7444,6 +7444,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -7612,6 +7612,11 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(
chrome::android::kBookmarksExportUseSaf)},
@ -29,9 +29,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1404,6 +1404,10 @@ const char kHostedAppShimCreationName[] =
const char kHostedAppShimCreationDescription[] =
"Create app shims on Mac when creating a hosted app.";
@@ -1407,6 +1407,10 @@ const char kHttpsOnlyModeDescription[] =
"Adds a setting under chrome://settings/security to opt-in to HTTPS-First "
"Mode.";
+const char kIsCleartextPermittedName[] = "Allow cleartext traffic";
+const char kIsCleartextPermittedDescription[] =
@ -43,9 +43,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
@@ -825,6 +825,9 @@ extern const char kHostedAppQuitNotificationDescription[];
extern const char kHostedAppShimCreationName[];
extern const char kHostedAppShimCreationDescription[];
@@ -814,6 +814,9 @@ extern const char kHostedAppShimCreationDescription[];
extern const char kHttpsOnlyModeName[];
extern const char kHttpsOnlyModeDescription[];
+extern const char kIsCleartextPermittedName[];
+extern const char kIsCleartextPermittedDescription[];
@ -56,7 +56,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -70,6 +70,9 @@ base::TimeDelta GetExtraTimeAbsolute() {
@@ -89,6 +89,9 @@ const base::FeatureParam<int> kUseDnsHttpsSvcbExtraTimePercent{
const base::Feature kEnableTLS13EarlyData{"EnableTLS13EarlyData",
base::FEATURE_DISABLED_BY_DEFAULT};
@ -69,7 +69,7 @@ diff --git a/net/base/features.cc b/net/base/features.cc
diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h
+++ b/net/base/features.h
@@ -34,6 +34,8 @@ NET_EXPORT extern const base::Feature kCapReferrerToOriginOnCrossOrigin;
@@ -37,6 +37,8 @@ NET_EXPORT extern const base::Feature kCapReferrerToOriginOnCrossOrigin;
// Enables TLS 1.3 early data.
NET_EXPORT extern const base::Feature kEnableTLS13EarlyData;
@ -81,7 +81,7 @@ diff --git a/net/base/features.h b/net/base/features.h
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
@@ -211,6 +211,10 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
@@ -214,6 +214,10 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
}
#if defined(OS_ANDROID)

View file

@ -17,7 +17,7 @@ See also:
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
@@ -3174,6 +3174,12 @@ const FeatureEntry kFeatureEntries[] = {
@@ -3156,6 +3156,12 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kDeprecateLowUsageCodecsName,
flag_descriptions::kDeprecateLowUsageCodecsDescription, kOsCrOS | kOsLinux,
FEATURE_VALUE_TYPE(media::kDeprecateLowUsageCodecs)},
@ -33,7 +33,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
@@ -605,6 +605,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
@@ -635,6 +635,11 @@ const char kEnableAutofillCreditCardAuthenticationDescription[] =
"authenticator (if available) to verify card ownership when retrieving "
"credit cards from Google Payments.";
@ -48,20 +48,20 @@ 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
@@ -371,6 +371,9 @@ extern const char kEnableAutofillAddressSavePromptDescription[];
@@ -404,6 +404,9 @@ extern const char kEnableAutofillSaveCardInfoBarAccountIndicationFooterName[];
extern const char
kEnableAutofillSaveCardInfoBarAccountIndicationFooterDescription[];
extern const char kEnableAutofillCreditCardAblationExperimentDisplayName[];
extern const char kEnableAutofillCreditCardAblationExperimentDescription[];
+extern const char kEnableIncognitoSnapshotsInAndroidRecentsName[];
+extern const char kEnableIncognitoSnapshotsInAndroidRecentsDescription[];
+
extern const char kEnableExperimentalCookieFeaturesName[];
extern const char kEnableExperimentalCookieFeaturesDescription[];
extern const char kEnableAutofillCreditCardAuthenticationName[];
extern const char kEnableAutofillCreditCardAuthenticationDescription[];
diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl b/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
--- a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
+++ b/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmpl
@@ -147,10 +147,6 @@ public abstract class ChromeSwitches {{
@@ -129,10 +129,6 @@ public abstract class ChromeSwitches {{
/** Switch for enabling the Chrome Survey. Only works when UMA is accepted. */
public static final String CHROME_FORCE_ENABLE_SURVEY = "force-enable-chrome-survey";
@ -75,7 +75,7 @@ diff --git a/chrome/browser/flags/android/java_templates/ChromeSwitches.java.tmp
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -340,6 +340,9 @@ const char kHomePage[] = "homepage";
@@ -344,6 +344,9 @@ const char kHomePage[] = "homepage";
// Causes the browser to launch directly in incognito mode.
const char kIncognito[] = "incognito";

View file

@ -23,7 +23,7 @@ for SimpleURLLoaders as well.
chrome/browser/resources/proxy_config.js | 266 +++++++++++
chrome/browser/ui/BUILD.gn | 2 +
.../webui/chrome_web_ui_controller_factory.cc | 3 +
chrome/browser/ui/webui/proxy_config_ui.cc | 417 ++++++++++++++++++
chrome/browser/ui/webui/proxy_config_ui.cc | 416 ++++++++++++++++++
chrome/browser/ui/webui/proxy_config_ui.h | 33 ++
chrome/common/webui_url_constants.cc | 4 +
chrome/common/webui_url_constants.h | 2 +
@ -33,7 +33,7 @@ for SimpleURLLoaders as well.
.../proxy_config/proxy_config_dictionary.h | 7 +-
net/proxy_resolution/proxy_config.cc | 52 ++-
net/proxy_resolution/proxy_config.h | 3 +
24 files changed, 996 insertions(+), 14 deletions(-)
24 files changed, 995 insertions(+), 14 deletions(-)
create mode 100644 chrome/browser/resources/proxy_config.css
create mode 100644 chrome/browser/resources/proxy_config.html
create mode 100644 chrome/browser/resources/proxy_config.js
@ -43,9 +43,9 @@ for SimpleURLLoaders as well.
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
@@ -29,6 +29,9 @@
<integer name="reload_button_level_reload">0</integer>
<integer name="reload_button_level_stop">1</integer>
@@ -25,6 +25,9 @@
<!-- Compositor Tab Title Text -->
<bool name="compositor_tab_title_fake_bold_text">true</bool>
+ <string name="proxy_title">Proxy configuration</string>
+ <string name="proxy_url">chrome://proxy</string>
@ -70,7 +70,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -52,6 +52,7 @@ public class PrivacySettings
@@ -54,6 +54,7 @@ public class PrivacySettings
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
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
@@ -364,6 +364,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
@@ -365,6 +365,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
builtins_to_provide.push_back(
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
#endif
@ -93,7 +93,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -101,6 +101,12 @@
@@ -88,6 +88,12 @@
<include name="IDR_HANGOUT_SERVICES_MANIFEST" file="resources\hangout_services\manifest.json" type="BINDATA" />
</if>
@ -173,7 +173,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -158,6 +158,8 @@
@@ -160,6 +160,8 @@
#include "printing/buildflags/buildflags.h"
#include "rlz/buildflags/buildflags.h"
@ -182,7 +182,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
#include "chrome/browser/background/background_mode_manager.h"
#endif
@@ -786,6 +788,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
@@ -914,6 +916,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
PluginsResourceService::RegisterPrefs(registry);
#endif
@ -194,7 +194,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc
--- a/chrome/browser/prefs/chrome_command_line_pref_store.cc
+++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc
@@ -159,7 +159,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
@@ -157,7 +157,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() {
SetValue(
proxy_config::prefs::kProxy,
std::make_unique<base::Value>(ProxyConfigDictionary::CreateFixedServers(
@ -627,7 +627,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -256,6 +256,8 @@ static_library("ui") {
@@ -265,6 +265,8 @@ static_library("ui") {
"webui/metrics_handler.h",
"webui/net_export_ui.cc",
"webui/net_export_ui.h",
@ -639,7 +639,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -52,6 +52,7 @@
@@ -53,6 +53,7 @@
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
#include "chrome/browser/ui/webui/policy/policy_ui.h"
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
@ -647,7 +647,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
#include "chrome/browser/ui/webui/quota_internals/quota_internals_ui.h"
#include "chrome/browser/ui/webui/signin_internals_ui.h"
#include "chrome/browser/ui/webui/sync_internals/sync_internals_ui.h"
@@ -600,6 +601,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -619,6 +620,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MemoryInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>;
@ -660,7 +660,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu
new file mode 100644
--- /dev/null
+++ b/chrome/browser/ui/webui/proxy_config_ui.cc
@@ -0,0 +1,417 @@
@@ -0,0 +1,416 @@
+/*
+ This file is part of Bromite.
+
@ -691,7 +691,6 @@ new file mode 100644
+#include "base/lazy_instance.h"
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/scoped_observer.h"
+#include "base/strings/string_util.h"
+#include "base/strings/utf_string_conversions.h"
+#include "base/values.h"
@ -1128,15 +1127,15 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
const char kChromeUIChromeURLsHost[] = "chrome-urls";
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
const char kChromeUIComponentsHost[] = "components";
@@ -336,6 +338,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUIMobileSetupHost,
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
+ kChromeUIProxyConfigHost,
kChromeUIOobeHost,
kChromeUIOSCreditsHost,
kChromeUIOSSettingsHost,
@@ -553,6 +556,7 @@ const char* const kChromeHostURLs[] = {
@@ -346,6 +348,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUIMobileSetupHost,
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
+ kChromeUIProxyConfigHost,
kChromeUIOobeHost,
kChromeUIOSCreditsHost,
kChromeUIOSSettingsHost,
@@ -568,6 +571,7 @@ const char* const kChromeHostURLs[] = {
#if !defined(OS_ANDROID)
#if !BUILDFLAG(IS_CHROMEOS_ASH)
kChromeUIAppLauncherPageHost,
@ -1147,7 +1146,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -120,6 +120,8 @@ extern const char kChromeUIMemoryInternalsHost[];
@@ -125,6 +125,8 @@ extern const char kChromeUIMemoryInternalsHost[];
extern const char kChromeUINTPTilesInternalsHost[];
extern const char kChromeUINaClHost[];
extern const char kChromeUINetExportHost[];
@ -1159,12 +1158,12 @@ diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_const
diff --git a/components/policy/core/browser/proxy_policy_handler.cc b/components/policy/core/browser/proxy_policy_handler.cc
--- a/components/policy/core/browser/proxy_policy_handler.cc
+++ b/components/policy/core/browser/proxy_policy_handler.cc
@@ -197,7 +197,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
bypass_list->GetAsString(&bypass_list_string);
prefs->SetValue(proxy_config::prefs::kProxy,
ProxyConfigDictionary::CreateFixedServers(
- proxy_server, bypass_list_string));
+ proxy_server, bypass_list_string, false));
@@ -207,7 +207,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
ProxyConfigDictionary::CreateFixedServers(
server->GetString(), bypass_list && bypass_list->is_string()
? bypass_list->GetString()
- : std::string()));
+ : std::string(), false));
}
break;
}

View file

@ -40,7 +40,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_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
@@ -24,6 +24,11 @@
@@ -28,6 +28,11 @@
android:key="secure_dns"
android:title="@string/settings_secure_dns_title"
android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings"/>
@ -140,7 +140,7 @@ new file mode 100644
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
@@ -58,6 +58,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier;
@@ -56,6 +56,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier;
import org.chromium.base.task.PostTask;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
@ -148,22 +148,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
@@ -1736,8 +1737,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1756,8 +1757,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Bundle savedInstanceState = getSavedInstanceState();
// We determine the model as soon as possible so every systems get initialized coherently.
- boolean startIncognito = savedInstanceState != null
- && savedInstanceState.getBoolean("is_incognito_selected", false);
- && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false);
+ boolean startIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)
+ || (savedInstanceState != null
+ && savedInstanceState.getBoolean("is_incognito_selected", false));
int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0;
+ && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false));
mNextTabPolicySupplier = new ChromeNextTabPolicySupplier(mOverviewModeBehaviorSupplier);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -94,6 +94,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
import org.chromium.chrome.browser.device.DeviceClassManager;
@@ -1766,6 +1767,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1872,6 +1873,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -363,6 +363,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -378,6 +378,12 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@ -205,10 +205,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.AppHooks;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
@@ -408,6 +409,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType;
@@ -409,6 +410,10 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
boolean hasSaveImage = false;
mShowEphemeralTabNewLabel = null;
@ -219,7 +219,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
if (mParams.isAnchor()) {
@@ -426,6 +431,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -427,6 +432,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
}
}
@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) {
linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB));
}
@@ -450,7 +456,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -451,7 +457,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
}
}
if (FirstRunStatus.getFirstRunFlowComplete()) {
@ -274,7 +274,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
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
@@ -48,6 +48,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable;
@@ -50,6 +50,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.device.mojom.ScreenOrientationLockType;
@ -284,7 +284,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -772,7 +775,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@@ -727,7 +730,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@Override
public boolean isIncognito() {
@ -296,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTabPreloader.java
@@ -38,6 +38,9 @@ import org.chromium.ui.base.PageTransition;
@@ -34,6 +34,9 @@ import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@ -306,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
/**
* This class attempts to preload the tab if the url is known from the intent when the profile
* is created. This is done to improve startup latency.
@@ -195,10 +198,15 @@ public class StartupTabPreloader implements ProfileManager.Observer, DestroyObse
@@ -185,17 +188,22 @@ public class StartupTabPreloader implements ProfileManager.Observer, DestroyObse
Intent intent = mIntentSupplier.get();
GURL url = UrlFormatter.fixupUrl(getUrlFromIntent(intent));
@ -322,9 +322,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
+ isIncognito ? profile.getPrimaryOTRProfile(true /* createIfNeeded */) : profile,
+ false);
mLoadUrlParams = new LoadUrlParams(url.getValidSpecOrEmpty());
String referrer = IntentHandler.getReferrerUrlIncludingExtraHeaders(intent);
@@ -212,7 +220,7 @@ public class StartupTabPreloader implements ProfileManager.Observer, DestroyObse
mLoadUrlParams = mIntentHandler.createLoadUrlParamsForIntent(url.getSpec(), intent);
// Create a detached tab, but don't add it to the tab model yet. We'll do that
// later if the loadUrlParams etc... match.
mTab = TabBuilder.createLiveTab(false)
@ -336,18 +335,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/StartupTab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -41,6 +41,7 @@ import org.chromium.ui.text.SpanApplier;
@@ -42,6 +42,7 @@ import org.chromium.ui.text.SpanApplier;
*/
public class PrivacySettings
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
private static final String PREF_SECURE_DNS = "secure_dns";
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -47,6 +47,10 @@ import org.chromium.url.GURL;
@@ -44,6 +44,10 @@ import org.chromium.url.GURL;
import java.nio.ByteBuffer;
@ -358,7 +357,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
/**
* This class creates various kinds of new tabs and adds them to the right {@link TabModel}.
*/
@@ -77,6 +81,7 @@ public class ChromeTabCreator extends TabCreator {
@@ -74,6 +78,7 @@ public class ChromeTabCreator extends TabCreator {
private final Activity mActivity;
private final StartupTabPreloader mStartupTabPreloader;
private final boolean mIncognito;
@ -366,7 +365,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
private WindowAndroid mNativeWindow;
private TabModel mTabModel;
@@ -99,6 +104,10 @@ public class ChromeTabCreator extends TabCreator {
@@ -96,6 +101,10 @@ public class ChromeTabCreator extends TabCreator {
mNativeWindow = nativeWindow;
mTabDelegateFactorySupplier = tabDelegateFactory;
mIncognito = incognito;
@ -377,7 +376,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mOverviewNTPCreator = overviewNTPCreator;
mAsyncTabParamsManager = asyncTabParamsManager;
mTabModelSelectorSupplier = tabModelSelectorSupplier;
@@ -262,6 +271,8 @@ public class ChromeTabCreator extends TabCreator {
@@ -259,6 +268,8 @@ public class ChromeTabCreator extends TabCreator {
if (creationState == TabCreationState.LIVE_IN_FOREGROUND && !openInForeground) {
creationState = TabCreationState.LIVE_IN_BACKGROUND;
}
@ -386,7 +385,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mTabModel.addTab(tab, position, type, creationState);
return tab;
} finally {
@@ -296,6 +307,8 @@ public class ChromeTabCreator extends TabCreator {
@@ -293,6 +304,8 @@ public class ChromeTabCreator extends TabCreator {
@TabCreationState
int creationState = openInForeground ? TabCreationState.LIVE_IN_FOREGROUND
: TabCreationState.LIVE_IN_BACKGROUND;
@ -395,15 +394,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mTabModel.addTab(tab, position, type, creationState);
return true;
}
@@ -339,7 +352,6 @@ public class ChromeTabCreator extends TabCreator {
@@ -333,7 +346,6 @@ public class ChromeTabCreator extends TabCreator {
// TODO(crbug.com/1081924): Clean up the launches from SearchActivity/Chrome.
public Tab launchUrlFromExternalApp(String url, String referer, String headers, String appId,
boolean forceNewTab, Intent intent, long intentTimestamp) {
public Tab launchUrlFromExternalApp(
LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) {
- assert !mIncognito;
// Don't re-use tabs for intents from Chrome. Note that this can be spoofed so shouldn't be
// relied on for anything security sensitive.
boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
if (forceNewTab && !isLaunchedFromChrome) {
@@ -453,6 +465,8 @@ public class ChromeTabCreator extends TabCreator {
@@ -428,6 +440,8 @@ public class ChromeTabCreator extends TabCreator {
.setSerializedCriticalPersistedTabData(serializedCriticalPersistedTabData)
.build();
}
@ -449,7 +448,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
@@ -27,6 +27,9 @@ import org.chromium.chrome.browser.browserservices.intents.WebappExtras;
@@ -28,6 +28,9 @@ import org.chromium.chrome.browser.browserservices.intents.WebappExtras;
import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.components.browser_ui.widget.TintedDrawable;
@ -460,15 +459,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
* Stores info about a web app.
*/
@@ -41,6 +44,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
private final @ActivityType int mActivityType;
private final Intent mIntent;
private final ColorProviderImpl mColorProvider;
+ private boolean mIsIncognito = false;
+
/**
* Returns the toolbar color to use if a custom color is not specified by the webapp.
*/
@@ -63,6 +68,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
@@ -62,6 +67,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
mWebappExtras = webappExtras;
mWebApkExtras = webApkExtras;
mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP;
@ -479,7 +478,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
}
@Override
@@ -155,6 +164,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
@@ -150,6 +159,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
return mWebApkExtras;
}
@ -494,7 +493,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -421,7 +421,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
@@ -447,7 +447,7 @@ const base::Feature kCCTIncognito{"CCTIncognito",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kCCTIncognitoAvailableToThirdParty{
@ -506,7 +505,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -908,6 +908,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -907,6 +907,13 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
Clears history from all synced devices.
</message>

View file

@ -11,13 +11,14 @@ Completely remove contacts picker permission from the file dialog
.../org/chromium/base/ContentUriUtils.java | 32 ++
chrome/android/java/AndroidManifest.xml | 1 -
.../res/menu/bookmark_action_bar_menu.xml | 14 +
.../browser/TabbedModeTabDelegateFactory.java | 5 +-
.../browser/bookmarks/BookmarkActionBar.java | 12 +
.../browser/bookmarks/BookmarkActivity.java | 28 ++
.../browser/bookmarks/BookmarkActivity.java | 30 ++
.../browser/bookmarks/BookmarkBridge.java | 277 +++++++++++++++++
.../browser/bookmarks/BookmarkDelegate.java | 10 +
.../browser/bookmarks/BookmarkManager.java | 22 ++
.../browser/bookmarks/BookmarkPage.java | 8 +-
.../native_page/NativePageFactory.java | 2 +-
.../native_page/NativePageFactory.java | 11 +-
chrome/browser/BUILD.gn | 11 +-
chrome/browser/about_flags.cc | 6 +
.../android/bookmarks/bookmark_bridge.cc | 284 ++++++++++++++++++
@ -43,7 +44,7 @@ Completely remove contacts picker permission from the file dialog
ui/shell_dialogs/select_file_dialog.h | 2 +
.../select_file_dialog_android.cc | 6 +
ui/shell_dialogs/select_file_dialog_android.h | 2 +
37 files changed, 880 insertions(+), 23 deletions(-)
38 files changed, 890 insertions(+), 29 deletions(-)
diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc
--- a/base/android/content_uri_utils.cc
@ -131,9 +132,9 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base
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
@@ -56,7 +56,6 @@ by a child template that "extends" this file.
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
{% endif %}
@@ -59,7 +59,6 @@ by a child template that "extends" this file.
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"/>
- <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
@ -163,6 +164,35 @@ diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/
<item
android:id="@+id/close_menu_id"
android:icon="@drawable/btn_close"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
@@ -9,6 +9,7 @@ import android.app.Activity;
import org.chromium.base.jank_tracker.JankTracker;
import org.chromium.base.supplier.BooleanSupplier;
import org.chromium.base.supplier.Supplier;
+import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -46,7 +47,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
* {@link ChromeTabbedActivity}.
*/
public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
- private final Activity mActivity;
+ private final ChromeActivity mActivity;
private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
private final Supplier<ShareDelegate> mShareDelegateSupplier;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
@@ -72,7 +73,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private NativePageFactory mNativePageFactory;
- public TabbedModeTabDelegateFactory(Activity activity,
+ public TabbedModeTabDelegateFactory(ChromeActivity activity,
BrowserControlsVisibilityDelegate appBrowserControlsVisibilityDelegate,
Supplier<ShareDelegate> shareDelegateSupplier,
Supplier<EphemeralTabCoordinator> ephemeralTabCoordinatorSupplier,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActionBar.java
@ -209,18 +239,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkActivity.java
@@ -15,6 +15,10 @@ import org.chromium.chrome.browser.IntentHandler;
@@ -15,6 +15,11 @@ import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.SnackbarActivity;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.embedder_support.util.UrlConstants;
+import org.chromium.ui.base.ActivityWindowAndroid;
+import org.chromium.ui.base.IntentRequestTracker;
+
+import org.chromium.ui.modaldialog.ModalDialogManager;
+import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
/**
* The activity that displays the bookmark UI on the phone. It keeps a {@link BookmarkManager}
@@ -24,6 +28,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -24,6 +29,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
public class BookmarkActivity extends SnackbarActivity {
private BookmarkManager mBookmarkManager;
@ -228,36 +259,39 @@ 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";
@@ -40,6 +45,20 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -40,8 +46,23 @@ public class BookmarkActivity extends SnackbarActivity {
if (TextUtils.isEmpty(url)) url = UrlConstants.BOOKMARKS_URL;
mBookmarkManager.updateForUrl(url);
setContentView(mBookmarkManager.getView());
+
+ final boolean listenToActivityState = true;
+ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState);
+ mWindowAndroid.restoreInstanceState(savedInstanceState);
+ IntentRequestTracker intentRequestTracker = IntentRequestTracker.createFromActivity(this);
+ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, intentRequestTracker);
+ mWindowAndroid.getIntentRequestTracker().restoreInstanceState(savedInstanceState);
+ mBookmarkManager.setWindow(mWindowAndroid,
+ new ModalDialogManager(
+ new AppModalPresenter(this), ModalDialogManager.ModalDialogType.APP));
+ }
+
}
+ @Override
+ protected void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+
+ mWindowAndroid.saveInstanceState(outState);
}
+ mWindowAndroid.getIntentRequestTracker().saveInstanceState(outState);
+ }
+
@Override
@@ -56,6 +75,7 @@ public class BookmarkActivity extends SnackbarActivity {
protected void onDestroy() {
super.onDestroy();
@@ -56,6 +77,7 @@ public class BookmarkActivity extends SnackbarActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
+ mWindowAndroid.onActivityResult(requestCode, resultCode, data);
+ mWindowAndroid.getIntentRequestTracker().onActivityResult(requestCode, resultCode, data, mWindowAndroid);
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(data.getStringExtra(
INTENT_VISIT_BOOKMARK_ID));
@@ -63,6 +83,14 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -63,6 +85,14 @@ public class BookmarkActivity extends SnackbarActivity {
}
}
@ -696,19 +730,63 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
@@ -101,7 +101,7 @@ public class NativePageFactory {
@@ -15,6 +15,7 @@ import org.chromium.base.jank_tracker.JankTracker;
import org.chromium.base.supplier.BooleanSupplier;
import org.chromium.base.supplier.DestroyableObservableSupplier;
import org.chromium.base.supplier.Supplier;
+import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
@@ -54,7 +55,7 @@ import org.chromium.ui.util.ColorUtils;
* Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
*/
public class NativePageFactory {
- private final Activity mActivity;
+ private final ChromeActivity mActivity;
private final BottomSheetController mBottomSheetController;
private final BrowserControlsManager mBrowserControlsManager;
private final Supplier<Tab> mCurrentTabSupplier;
@@ -72,7 +73,7 @@ public class NativePageFactory {
private NativePageBuilder mNativePageBuilder;
- public NativePageFactory(@NonNull Activity activity,
+ public NativePageFactory(@NonNull ChromeActivity activity,
@NonNull BottomSheetController sheetController,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull Supplier<Tab> currentTabSupplier,
@@ -123,7 +124,7 @@ public class NativePageFactory {
@VisibleForTesting
static class NativePageBuilder {
- private final Activity mActivity;
+ private final ChromeActivity mActivity;
private final BottomSheetController mBottomSheetController;
private final Supplier<NewTabPageUma> mUma;
private final BrowserControlsManager mBrowserControlsManager;
@@ -137,7 +138,7 @@ public class NativePageFactory {
private final JankTracker mJankTracker;
private final Supplier<Toolbar> mToolbarSupplier;
- public NativePageBuilder(Activity activity, Supplier<NewTabPageUma> uma,
+ public NativePageBuilder(ChromeActivity activity, Supplier<NewTabPageUma> uma,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager, Supplier<Tab> currentTabSupplier,
Supplier<SnackbarManager> snackbarManagerSupplier,
@@ -176,7 +177,7 @@ public class NativePageFactory {
protected NativePage buildBookmarksPage(Tab tab) {
return new BookmarkPage(mActivity.getComponentName(), mActivity.getSnackbarManager(),
mActivity.getTabModelSelector().isIncognitoSelected(),
- new TabShim(tab, mActivity));
+ new TabShim(tab, mActivity), mActivity);
return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(),
mTabModelSelector.isIncognitoSelected(),
- new TabShim(tab, mBrowserControlsManager, mTabModelSelector));
+ new TabShim(tab, mBrowserControlsManager, mTabModelSelector), mActivity);
}
protected NativePage buildDownloadsPage(Tab tab) {
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1839,6 +1839,13 @@ static_library("browser") {
@@ -1817,6 +1817,13 @@ static_library("browser") {
"window_placement/window_placement_permission_context.h",
]
@ -731,7 +809,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"browser_process_platform_part_android.cc",
"browser_process_platform_part_android.h",
"chrome_browser_field_trials_mobile.cc",
@@ -3451,8 +3460,6 @@ static_library("browser") {
@@ -3483,8 +3492,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@ -743,9 +821,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
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
@@ -7394,6 +7394,12 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kPlaybackSpeedButtonDescription, kOsAll,
FEATURE_VALUE_TYPE(media::kPlaybackSpeedButton)},
@@ -7562,6 +7562,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(
password_manager::features::kPasswordsAccountStorageRevisedOptInFlow)},
+ {"export-bookmarks-use-saf",
+ flag_descriptions::kBookmarksExportUseSafName,
@ -897,7 +975,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
}
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
@@ -542,6 +650,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
@@ -543,6 +651,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count;
}
@ -1177,7 +1255,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/favicon/favicon_service_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -240,7 +241,12 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
@@ -230,7 +231,12 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
// Opens the file, returning true on success.
bool OpenFile() {
int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE;
@ -1261,9 +1339,9 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
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
@@ -5223,6 +5223,11 @@ const char kWebrtcPipeWireCapturerDescription[] =
"capturing the desktop content on the Wayland display server.";
#endif // #if defined(WEBRTC_USE_PIPEWIRE)
@@ -5302,6 +5302,11 @@ const char kWebKioskEnableLacrosDescription[] =
"Chrome OS. When disabled, the Ash-chrome will be used";
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+const char kBookmarksExportUseSafName[] = "Use saf for bookmarks export";
+const char kBookmarksExportUseSafDescription[] =
@ -1276,9 +1354,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
@@ -3073,6 +3073,9 @@ extern const char kWebrtcPipeWireCapturerName[];
extern const char kWebrtcPipeWireCapturerDescription[];
#endif // #if defined(WEBRTC_USE_PIPEWIRE)
@@ -3088,6 +3088,9 @@ extern const char kWebKioskEnableLacrosName[];
extern const char kWebKioskEnableLacrosDescription[];
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
+extern const char kBookmarksExportUseSafName[];
+extern const char kBookmarksExportUseSafDescription[];
@ -1289,7 +1367,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -151,6 +151,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -164,6 +164,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kBackgroundThreadPool,
&kBentoOffline,
&kBookmarkBottomSheet,
@ -1297,9 +1375,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCastDeviceFilter,
&kCloseTabSuggestions,
&kCriticalPersistedTabData,
@@ -759,6 +760,10 @@ const base::Feature kVrBrowsingFeedback{"VrBrowsingFeedback",
const base::Feature kWebNotesStylize{"WebNotesStylize",
base::FEATURE_DISABLED_BY_DEFAULT};
@@ -810,6 +811,10 @@ const base::Feature kWebApkInstallCompleteNotification{
const base::Feature kWebApkTrampolineOnInitialIntent{
"WebApkTrampolineOnInitialIntent", base::FEATURE_ENABLED_BY_DEFAULT};
+// disabled by default because of an issue on Android 6.0
+const base::Feature kBookmarksExportUseSaf{"BookmarksExportUseSaf",
@ -1311,7 +1389,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -142,6 +142,7 @@ extern const base::Feature kToolbarMicIphAndroid;
@@ -146,6 +146,7 @@ extern const base::Feature kToolbarMicIphAndroid;
extern const base::Feature kToolbarUseHardwareBitmapDraw;
extern const base::Feature kTrustedWebActivityLocationDelegation;
extern const base::Feature kTrustedWebActivityNewDisclosure;
@ -1322,10 +1400,10 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -512,6 +512,7 @@ public abstract class ChromeFeatureList {
public static final String WEBNOTES_STYLIZE = "WebNotesStylize";
public static final String WIPE_DATA_ON_CHILD_ACCOUNT_SIGNIN = "WipeDataOnChildAccountSignin";
@@ -560,6 +560,7 @@ public abstract class ChromeFeatureList {
"WebApkTrampolineOnInitialIntent";
public static final String XSURFACE_METRICS_REPORTING = "XsurfaceMetricsReporting";
public static final String WEB_OTP_CROSS_DEVICE_SIMPLE_STRING = "WebOtpCrossDeviceSimpleString";
+ public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf";
@NativeMethods
@ -1391,7 +1469,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -117,6 +117,8 @@ public final class ChromePreferenceKeys {
@@ -124,6 +124,8 @@ public final class ChromePreferenceKeys {
public static final String BOOKMARKS_LAST_USED_URL = "enhanced_bookmark_last_used_url";
public static final String BOOKMARKS_LAST_USED_PARENT =
"enhanced_bookmark_last_used_parent_folder";
@ -1400,7 +1478,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
/**
* Whether Chrome is set as the default browser.
@@ -1012,6 +1014,7 @@ public final class ChromePreferenceKeys {
@@ -1042,6 +1044,7 @@ public final class ChromePreferenceKeys {
AUTOFILL_ASSISTANT_PROACTIVE_HELP,
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@ -1439,7 +1517,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -408,6 +408,9 @@ static_library("common") {
@@ -416,6 +416,9 @@ static_library("common") {
sources += [
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
@ -1447,8 +1525,8 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
+ "importer/imported_bookmark_entry.cc",
+ "importer/imported_bookmark_entry.h",
]
deps += [ "//components/embedder_support/android/common:url_constants" ]
} else {
# Non-Android.
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
--- a/chrome/utility/BUILD.gn
+++ b/chrome/utility/BUILD.gn
@ -1461,7 +1539,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
"importer/bookmarks_file_importer.cc",
"importer/bookmarks_file_importer.h",
"importer/external_process_importer_bridge.cc",
@@ -186,6 +184,11 @@ static_library("utility") {
@@ -184,6 +182,11 @@ static_library("utility") {
}
}

View file

@ -12,7 +12,7 @@ Subject: Add custom tab intents privacy option
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
@@ -33,6 +33,11 @@
@@ -37,6 +37,11 @@
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings"
android:key="do_not_track"
android:title="@string/do_not_track_title"/>
@ -29,14 +29,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
@@ -59,6 +59,8 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.List;
import java.util.Set;
+import org.chromium.chrome.browser.privacy.settings.PrivacySettings;
+
/**
* Dispatches incoming intents to the appropriate activity based on the current configuration and
* Intent fired.
@@ -286,6 +288,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
@@ -279,6 +281,8 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
*/
public static boolean isCustomTabIntent(Intent intent) {
if (intent == null) return false;
@ -48,7 +48,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -47,6 +47,7 @@ public class PrivacySettings
@@ -49,6 +49,7 @@ public class PrivacySettings
private static final String PREF_SECURE_DNS = "secure_dns";
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
@ -56,10 +56,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@@ -105,6 +106,10 @@ public class PrivacySettings
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
(boolean) newValue);
@@ -119,6 +120,10 @@ public class PrivacySettings
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (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);
@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
@@ -128,6 +133,11 @@ public class PrivacySettings
@@ -142,6 +147,11 @@ public class PrivacySettings
canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
}
@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4225,6 +4225,13 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4405,6 +4405,13 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
Show original
</message>

View file

@ -14,7 +14,7 @@ Corrected Exit functionality
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -121,6 +121,9 @@
@@ -124,6 +124,9 @@
android:icon="@drawable/gm_filled_cardboard_24" />
<item android:id="@+id/managed_by_menu_id"
android:title="@string/managed" />
@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
</group>
<!-- Items shown only in the tab switcher -->
@@ -147,6 +150,9 @@
@@ -150,6 +153,9 @@
<item android:id="@id/preferences_id"
android:title="@string/menu_settings"
android:icon="@drawable/settings_cog" />
@ -37,7 +37,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/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
@@ -199,6 +199,8 @@ import java.lang.annotation.RetentionPolicy;
@@ -206,6 +206,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Locale;
@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
/**
* This is the main activity for ChromeMobile when not running in document mode. All the tabs
* are accessible via a chrome specific tab switching UI.
@@ -1947,6 +1949,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2008,6 +2010,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} else if (id == R.id.close_tab) {
getCurrentTabModel().closeTab(currentTab, true, false, true);
RecordUserAction.record("MobileTabClosed");
@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -59,6 +59,7 @@ import org.chromium.chrome.R;
@@ -66,6 +66,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityUtils;
import org.chromium.chrome.browser.AppHooks;
@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplicationImpl;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
@@ -2197,6 +2198,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2303,6 +2304,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
@ -97,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3085,6 +3085,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3144,6 +3144,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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>

View file

@ -6,17 +6,17 @@ Adds a flag that restricts whether search history, clipboard, bookmarks
and internal chrome:// pages will be used for the autocomplete results.
---
chrome/browser/about_flags.cc | 21 +++++++++++++++++++
.../browser/autocomplete_controller.cc | 10 +++++++++
.../browser/autocomplete_controller.cc | 11 ++++++++++
.../omnibox/browser/history_url_provider.cc | 3 +++
components/omnibox/browser/search_provider.cc | 4 ++++
components/url_formatter/url_fixer.cc | 3 +++
5 files changed, 41 insertions(+)
components/url_formatter/url_fixer.cc | 4 ++++
5 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
@@ -531,6 +531,22 @@ const FeatureEntry::FeatureVariation
};
@@ -449,6 +449,22 @@ const FeatureEntry::FeatureVariation kReaderModeDiscoverabilityVariations[] = {
base::size(kReaderModeOfferInSettings), nullptr}};
#endif // OS_ANDROID
+const FeatureEntry::Choice kOmniboxAutocompleteFiltering[] = {
@ -36,9 +36,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+};
+
#if defined(OS_ANDROID)
const FeatureEntry::FeatureParam kHideDismissButton[] = {
{"dismiss_button", "hide"}};
@@ -4784,6 +4800,11 @@ const FeatureEntry kFeatureEntries[] = {
const FeatureEntry::FeatureParam kAdaptiveButton_AlwaysNone[] = {
{"mode", "always-none"}};
@@ -4772,6 +4788,11 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(chrome::android::kReaderModeInCCT)},
#endif // !defined(OS_ANDROID)
@ -49,19 +49,20 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+
#if defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) || \
defined(OS_CHROMEOS)
{"direct-manipulation-stylus",
{"webui-feedback", flag_descriptions::kWebuiFeedbackName,
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -15,6 +15,7 @@
@@ -15,6 +15,8 @@
#include "base/bind.h"
#include "base/check_op.h"
+#include "base/containers/contains.h"
+#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/format_macros.h"
#include "base/metrics/histogram.h"
@@ -275,6 +276,15 @@ AutocompleteController::AutocompleteController(
@@ -276,6 +278,15 @@ AutocompleteController::AutocompleteController(
search_service_worker_signal_sent_(false),
template_url_service_(provider_client_->GetTemplateURLService()) {
provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
@ -101,7 +102,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
#include "base/feature_list.h"
#include "base/i18n/break_iterator.h"
#include "base/i18n/case_conversion.h"
@@ -643,6 +644,9 @@ void SearchProvider::Run(bool query_is_private) {
@@ -647,6 +648,9 @@ void SearchProvider::Run(bool query_is_private) {
}
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
@ -114,15 +115,16 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
--- a/components/url_formatter/url_fixer.cc
+++ b/components/url_formatter/url_fixer.cc
@@ -9,6 +9,7 @@
@@ -9,6 +9,8 @@
#include <algorithm>
#include "base/check_op.h"
+#include "base/containers/contains.h"
+#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/ranges/algorithm.h"
@@ -607,6 +608,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
@@ -607,6 +609,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
if (chrome_url && !parts.host.is_valid())

View file

@ -14,7 +14,7 @@ Subject: Add flag for save-data-header
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
@@ -4509,6 +4509,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4506,6 +4506,9 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if defined(OS_ANDROID)
@ -27,7 +27,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
@@ -1021,6 +1021,10 @@ const char kDisableKeepaliveFetchDescription[] =
@@ -1035,6 +1035,10 @@ const char kDisableKeepaliveFetchDescription[] =
"Disable fetch with keepalive set "
"(https://fetch.spec.whatwg.org/#request-keepalive-flag).";
@ -41,7 +41,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
@@ -576,6 +576,9 @@ extern const char kDiagnosticsAppDescription[];
@@ -564,6 +564,9 @@ extern const char kDiagnosticsAppNavigationDescription[];
extern const char kDisableKeepaliveFetchName[];
extern const char kDisableKeepaliveFetchDescription[];
@ -71,28 +71,28 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
--- a/services/network/public/cpp/features.cc
+++ b/services/network/public/cpp/features.cc
@@ -156,6 +156,10 @@ const base::FeatureParam<std::string>
const base::Feature kDisableKeepaliveFetch{"DisableKeepaliveFetch",
base::FEATURE_DISABLED_BY_DEFAULT};
"DisabledProviders", ""};
// Disable special treatment on requests with keepalive set (see
+// Enable save-data header seprately, without enabled data reduction service
+const base::Feature kEnableSaveDataHeader{"EnableSaveDataHeader",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
// Controls whether a |request_initiator| that mismatches
// |request_initiator_origin_lock| leads to 1) failing the HTTP request and 2)
// calling mojo::ReportBadMessage (on desktop platforms, where NetworkService
// https://fetch.spec.whatwg.org/#request-keepalive-flag). This is introduced
// for investigation on the memory usage, and should not be enabled widely.
const base::Feature kDisableKeepaliveFetch{"DisableKeepaliveFetch",
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
@@ -60,6 +60,8 @@ extern const base::FeatureParam<std::string>
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kDisableKeepaliveFetch;
COMPONENT_EXPORT(NETWORK_CPP)
+extern const base::Feature kEnableSaveDataHeader;
+COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kRequestInitiatorSiteLockEnfocement;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kTrustTokens;
--
2.17.1

View file

@ -19,7 +19,7 @@ with limited CPU/memory resources and it is disabled by default.
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -882,6 +882,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
@@ -837,6 +837,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
net::kEffectiveConnectionType4G},
};
@ -31,7 +31,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// Ensure that all effective connection types returned by Network Quality
// Estimator (NQE) are also exposed via flags.
static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
@@ -3824,6 +3829,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -3792,6 +3797,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kAndroidPictureInPictureAPIName,
flag_descriptions::kAndroidPictureInPictureAPIDescription, kOsAndroid,
FEATURE_VALUE_TYPE(media::kPictureInPictureAPI)},
@ -44,7 +44,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
@@ -1516,6 +1516,10 @@ const char kMediaHistoryDescription[] =
@@ -1524,6 +1524,10 @@ const char kMediaHistoryDescription[] =
"Enables Media History which records data around media playbacks on "
"websites.";
@ -58,7 +58,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
@@ -886,6 +886,9 @@ extern const char kLogJsConsoleMessagesDescription[];
@@ -877,6 +877,9 @@ extern const char kLogJsConsoleMessagesDescription[];
extern const char kMediaHistoryName[];
extern const char kMediaHistoryDescription[];
@ -122,17 +122,17 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
--- a/net/socket/client_socket_pool_manager.cc
+++ b/net/socket/client_socket_pool_manager.cc
@@ -20,6 +20,10 @@
#include "net/socket/client_socket_handle.h"
#include "net/socket/client_socket_pool.h"
#include "net/socket/connect_job.h"
#include "net/ssl/ssl_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
+#include "components/network_session_configurator/common/network_switches.h"
+
+#include "base/command_line.h"
+#include "base/strings/string_number_conversions.h"
namespace net {
@@ -187,6 +191,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
#include "net/ssl/ssl_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "url/gurl.h"
@@ -173,6 +177,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);

View file

@ -13,7 +13,7 @@ Disable it by default on Android as it is everywhere else
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
@@ -2717,6 +2717,10 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2708,6 +2708,10 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebRtcRemoteEventLogName,
flag_descriptions::kWebRtcRemoteEventLogDescription, kOsDesktop,
FEATURE_VALUE_TYPE(features::kWebRtcRemoteEventLog)},
@ -27,7 +27,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
@@ -1098,6 +1098,11 @@ const char kEnablePenetratingImageSelectionDescription[] =
@@ -1120,6 +1120,11 @@ const char kEnablePenetratingImageSelectionDescription[] =
"Enables image options to be surfaced in the context menu for nodes "
"covered by transparent overlays.";
@ -42,7 +42,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
@@ -628,6 +628,9 @@ extern const char kEnablePortalsDescription[];
@@ -632,6 +632,9 @@ extern const char kEnablePortalsDescription[];
extern const char kEnablePortalsCrossOriginName[];
extern const char kEnablePortalsCrossOriginDescription[];
@ -55,7 +55,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
@@ -255,11 +255,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
@@ -276,11 +276,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
// when in background.
const base::Feature kResumeBackgroundVideo {
"resume-background-video",

View file

@ -16,7 +16,7 @@ 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
@@ -4760,6 +4760,11 @@ const FeatureEntry kFeatureEntries[] = {
@@ -4742,6 +4742,11 @@ const FeatureEntry kFeatureEntries[] = {
#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX) ||
// defined(OS_CHROMEOS)
@ -31,7 +31,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
@@ -3003,6 +3003,10 @@ const char kContextualSearchRankerQueryDescription[] =
@@ -3015,6 +3015,10 @@ const char kContextualSearchRankerQueryDescription[] =
const char kContextualSearchSecondTapName[] =
"Contextual Search second tap triggering";
@ -45,8 +45,8 @@ 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
@@ -688,6 +688,9 @@ extern const char kEnableWasmSimdName[];
extern const char kEnableWasmSimdDescription[];
@@ -689,6 +689,9 @@ extern const char kEnableWasmLazyCompilationName[];
extern const char kEnableWasmLazyCompilationDescription[];
extern const char kEnableWasmTieringName[];
+extern const char kIPv6ProbingName[];
@ -101,7 +101,7 @@ diff --git a/components/url_formatter/spoof_checks/top_domains/BUILD.gn b/compon
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
@@ -95,6 +95,7 @@
@@ -86,6 +86,7 @@
#include "net/log/net_log_event_type.h"
#include "net/log/net_log_source.h"
#include "net/log/net_log_source_type.h"
@ -109,7 +109,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
#include "net/log/net_log_with_source.h"
#include "net/socket/client_socket_factory.h"
#include "net/socket/datagram_client_socket.h"
@@ -3366,8 +3367,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
@@ -3512,8 +3513,14 @@ bool HostResolverManager::IsIPv6Reachable(const NetLogWithSource& net_log) {
if (last_ipv6_probe_time_.is_null() ||
(tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
kIPv6ProbePeriodMs) {
@ -128,7 +128,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.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
@@ -40,6 +40,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
@@ -42,6 +42,10 @@ const base::Feature kReporting{"Reporting", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kThrottleDelayable{"ThrottleDelayable",
base::FEATURE_ENABLED_BY_DEFAULT};

View file

@ -11,20 +11,20 @@ Subject: Add flag to disable WebGL
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
@@ -2765,6 +2765,9 @@ const FeatureEntry kFeatureEntries[] = {
{"clear-old-browsing-data", flag_descriptions::kClearOldBrowsingDataName,
flag_descriptions::kClearOldBrowsingDataDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kClearOldBrowsingData)},
@@ -2643,6 +2643,9 @@ const FeatureEntry::FeatureVariation kReadLaterVariations[] = {
// When adding a new choice, add it to the end of the list.
const FeatureEntry kFeatureEntries[] = {
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
+ {switches::kDisableWebGL, flag_descriptions::kDisableWebGLName,
+ flag_descriptions::kDisableWebGLDescription, kOsAll,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableWebGL)},
#endif // OS_ANDROID
#if BUILDFLAG(ENABLE_NACL)
{"enable-nacl", flag_descriptions::kNaclName,
// //tools/flags/generate_unexpire_flags.py.
#include "build/chromeos_buildflags.h"
#include "chrome/browser/unexpire_flags_gen.inc"
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
@@ -583,6 +583,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
@@ -613,6 +613,10 @@ const char kEnableAudioFocusEnforcementName[] = "Audio Focus Enforcement";
const char kEnableAudioFocusEnforcementDescription[] =
"Enables enforcement of a single media session having audio focus at "
"any one time. Requires #enable-media-session-service to be enabled too.";
@ -38,16 +38,16 @@ 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
@@ -356,6 +356,9 @@ extern const char kDocumentTransitionDescription[];
extern const char kEnableAccessibilityObjectModelName[];
extern const char kEnableAccessibilityObjectModelDescription[];
@@ -341,6 +341,9 @@ extern const char kForceColorProfileSRGB[];
extern const char kForceColorProfileP3[];
extern const char kForceColorProfileColorSpin[];
extern const char kForceColorProfileSCRGBLinear[];
+extern const char kDisableWebGLName[];
+extern const char kDisableWebGLDescription[];
+
extern const char kForceColorProfileHDR10[];
extern const char kEnableAudioFocusEnforcementName[];
extern const char kEnableAudioFocusEnforcementDescription[];
extern const char kForceColorProfileName[];
--
2.17.1

View file

@ -11,7 +11,7 @@ Subject: Add flag to disable external intent requests
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
@@ -2708,6 +2708,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2697,6 +2697,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebrtcCaptureMultiChannelApmName,
flag_descriptions::kWebrtcCaptureMultiChannelApmDescription, kOsAll,
FEATURE_VALUE_TYPE(features::kWebRtcEnableCaptureMultiChannelApm)},
@ -24,9 +24,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3119,6 +3119,12 @@ const char kIntentBlockExternalFormRedirectsNoGestureDescription[] =
"Require a user gesture that triggered a form submission in order to "
"allow for redirecting to an external intent.";
@@ -3272,6 +3272,12 @@ const char kProcessSharingWithStrictSiteInstancesDescription[] =
"separated like strict site isolation, but process selection puts multiple "
"site instances in a single process.";
+const char kDisableExternalIntentRequestsName[] =
+ "Never forward URL requests to external intents";
@ -34,22 +34,22 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
+ "URL requests will never"
+ "allow for redirecting to an external intent.";
+
const char kInterestFeedContentSuggestionsDescription[] =
"Use the interest feed to render content suggestions. Currently "
"content "
const char kQueryTilesName[] = "Show query tiles";
const char kQueryTilesDescription[] = "Shows query tiles in Chrome";
const char kQueryTilesNTPName[] = "Show query tiles in NTP";
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
@@ -1810,6 +1810,9 @@ extern const char kInstantStartDescription[];
extern const char kIntentBlockExternalFormRedirectsNoGestureName[];
extern const char kIntentBlockExternalFormRedirectsNoGestureDescription[];
@@ -1883,6 +1883,9 @@ extern const char kQueryTilesNTPDescription[];
extern const char kQueryTilesOmniboxName[];
extern const char kQueryTilesOmniboxDescription[];
extern const char kQueryTilesSingleTierName[];
+extern const char kDisableExternalIntentRequestsName[];
+extern const char kDisableExternalIntentRequestsDescription[];
+
extern const char kInterestFeedContentSuggestionsName[];
extern const char kInterestFeedContentSuggestionsDescription[];
extern const char kQueryTilesSingleTierDescription[];
extern const char kQueryTilesEnableQueryEditingName[];
extern const char kQueryTilesEnableQueryEditingDescription[];
--
2.17.1

View file

@ -1,6 +1,6 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 27 Jun 2021 17:35:39 +0200
Subject: Add vibration flag
Subject: Add flag to disable vibration
---
chrome/browser/about_flags.cc | 4 ++++
@ -18,8 +18,8 @@ Subject: Add vibration flag
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
@@ -6263,6 +6263,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kNotificationsViaHelperApp)},
@@ -6208,6 +6208,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kNewMacNotificationAPI)},
#endif
+ {"enable-vibration", flag_descriptions::kEnableVibrationName,
@ -32,7 +32,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
@@ -5019,6 +5019,9 @@ const char kDefaultMeetWebAppDescription[] =
@@ -5123,6 +5123,9 @@ const char kDefaultMeetWebAppDescription[] =
"Enables the Meet web app to be installed by default.";
#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
@ -45,7 +45,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
@@ -2934,6 +2934,9 @@ extern const char kDefaultMeetWebAppName[];
@@ -2965,6 +2965,9 @@ extern const char kDefaultMeetWebAppName[];
extern const char kDefaultMeetWebAppDescription[];
#endif // BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(IS_CHROMEOS_LACROS)
@ -69,7 +69,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
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
@@ -87,6 +87,9 @@ const base::Feature kBackForwardCache{"BackForwardCache",
@@ -103,6 +103,9 @@ const base::Feature kBackForwardCacheSameSiteForBots{
// BackForwardCacheMemoryControls is enabled only on Android to disable
// BackForwardCache for lower memory devices due to memory limiations.
#if defined(OS_ANDROID)
@ -82,19 +82,19 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
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
@@ -256,6 +256,8 @@ CONTENT_EXPORT extern const base::Feature kWarmUpNetworkProcess;
@@ -266,6 +266,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 kVibration;
+
#if defined(OS_MAC)
CONTENT_EXPORT extern const base::Feature kDesktopCaptureMacV2;
CONTENT_EXPORT extern const base::Feature kWindowCaptureMacV2;
CONTENT_EXPORT extern const base::Feature kDeviceMonitorMac;
CONTENT_EXPORT extern const base::Feature kIOSurfaceCapturer;
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
@@ -89,6 +89,7 @@ class WebRuntimeFeatures {
@@ -90,6 +90,7 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableBlockingFocusWithoutUserActivation(
bool);
BLINK_PLATFORM_EXPORT static void EnableCacheInlineScriptCode(bool);
@ -105,7 +105,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
@@ -29,6 +29,7 @@
@@ -30,6 +30,7 @@
#include "third_party/blink/renderer/core/frame/navigator.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/platform/mojo/mojo_helper.h"
@ -113,7 +113,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c
// Maximum number of entries in a vibration pattern.
const unsigned kVibrationPatternLengthMax = 99;
@@ -142,6 +143,8 @@ bool VibrationController::vibrate(Navigator& navigator,
@@ -149,6 +150,8 @@ bool VibrationController::vibrate(Navigator& navigator,
// reference to |window| or |navigator| was retained in another window.
if (!navigator.DomWindow())
return false;
@ -125,7 +125,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c
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
@@ -186,6 +186,10 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
@@ -182,6 +182,10 @@ void WebRuntimeFeatures::EnableScrollTopLeftInterop(bool enable) {
RuntimeEnabledFeatures::SetScrollTopLeftInteropEnabled(enable);
}
@ -139,7 +139,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
@@ -1476,6 +1476,10 @@
@@ -1537,6 +1537,10 @@
name: "OrientationEvent",
status: {"Android": "stable"},
},

View file

@ -16,7 +16,7 @@ Subject: Add history support in incognito mode
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
@@ -38,6 +38,11 @@
@@ -42,6 +42,11 @@
android:title="@string/close_tabs_on_exit_title"
android:summary="@string/close_tabs_on_exit_summary"
android:defaultValue="false" />
@ -31,7 +31,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -39,12 +39,15 @@ import org.chromium.components.user_prefs.UserPrefs;
@@ -40,12 +40,15 @@ import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.ui.text.NoUnderlineClickableSpan;
import org.chromium.ui.text.SpanApplier;
@ -46,8 +46,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+ public static final String PREF_INCOGNITO_TAB_HISTORY_ENABLED = "incognito_history_enabled";
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
private static final String PREF_SECURE_DNS = "secure_dns";
@@ -99,6 +102,11 @@ public class PrivacySettings
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
@@ -110,6 +113,11 @@ public class PrivacySettings
Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
updateSummaries();
}
@@ -119,6 +127,9 @@ public class PrivacySettings
@@ -133,6 +141,9 @@ public class PrivacySettings
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
sharedPreferencesEditor.apply();
@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
@@ -169,6 +180,13 @@ public class PrivacySettings
@@ -183,6 +194,13 @@ public class PrivacySettings
(ChromeSwitchPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
closeTabsOnExitPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc
--- a/chrome/browser/history/history_tab_helper.cc
+++ b/chrome/browser/history/history_tab_helper.cc
@@ -29,6 +29,9 @@
@@ -27,6 +27,9 @@
#include "chrome/browser/android/feed/v2/feed_service_factory.h"
#include "components/feed/core/v2/public/feed_api.h"
#include "components/feed/core/v2/public/feed_service.h"
@ -96,7 +96,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
#else
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -277,6 +280,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -299,6 +302,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@ -110,7 +110,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return NULL;
@@ -284,6 +294,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -306,6 +316,12 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@ -135,7 +135,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
namespace history {
struct HistoryAddPageArgs;
@@ -51,6 +53,8 @@ class HistoryTabHelper : public content::WebContentsObserver,
@@ -39,6 +41,8 @@ class HistoryTabHelper : public content::WebContentsObserver,
force_eligibile_tab_for_testing_ = force;
}
@ -147,7 +147,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -210,6 +210,8 @@
@@ -212,6 +212,8 @@
#endif
#if defined(OS_ANDROID)
@ -156,18 +156,18 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/android/explore_sites/history_statistics_reporter.h"
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
@@ -1083,6 +1085,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1210,6 +1212,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
variations::VariationsService::RegisterProfilePrefs(registry);
video_tutorials::RegisterPrefs(registry);
feed::prefs::RegisterFeedSharedProfilePrefs(registry);
+ HistoryTabHelper::RegisterProfilePrefs(registry);
feed::RegisterProfilePrefs(registry);
#else // defined(OS_ANDROID)
#else // defined(OS_ANDROID)
AppShortcutManager::RegisterProfilePrefs(registry);
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -933,6 +933,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -932,6 +932,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_ALWAYS_INCOGNITO_SUMMARY" desc="Summary for always incognito mode">
Opens links in incognito tabs when you click on new tab or on a link
</message>
@ -183,7 +183,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
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
@@ -3159,6 +3159,11 @@ const char kLacrosAllowed[] = "lacros_allowed";
@@ -3225,6 +3225,11 @@ const char kLacrosAllowed[] = "lacros_allowed";
const char kLacrosLaunchSwitch[] = "lacros_launch_switch";
#endif
@ -198,9 +198,9 @@ diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
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
@@ -1147,6 +1147,10 @@ extern const char kPdfAnnotationsEnabled[];
extern const char kExplicitlyAllowedNetworkPorts[];
@@ -1184,6 +1184,10 @@ extern const char kLastWhatsNewVersion[];
extern const char kLensRegionSearchEnabled[];
#endif
+#if defined(OS_ANDROID)
+extern const char kIncognitoTabHistoryEnabled[];

View file

@ -9,7 +9,7 @@ Subject: Add menu item to bookmark all tabs
.../browser/bookmarks/BookmarkUtils.java | 4 ++
.../android/bookmarks/bookmark_bridge.cc | 17 +++++
.../android/bookmarks/bookmark_bridge.h | 4 ++
.../browser/bookmarks/bookmark_html_writer.cc | 10 +++
.../browser/bookmarks/bookmark_html_writer.cc | 8 ++-
.../bookmarks/chrome_bookmark_client.cc | 2 +
.../dialogs/DownloadLocationCustomView.java | 4 +-
.../strings/android_chrome_strings.grd | 3 +
@ -20,15 +20,16 @@ Subject: Add menu item to bookmark all tabs
.../bookmarks/browser/bookmark_load_details.h | 2 +
.../bookmarks/browser/bookmark_model.cc | 3 +-
components/bookmarks/browser/bookmark_model.h | 7 ++
components/bookmarks/browser/bookmark_node.cc | 13 ++++
components/bookmarks/browser/bookmark_node.cc | 15 ++++
components/bookmarks/browser/bookmark_node.h | 5 ++
components/bookmarks/browser/model_loader.cc | 3 +-
20 files changed, 208 insertions(+), 14 deletions(-)
.../bookmark_specifics_conversions.cc | 1 +
21 files changed, 208 insertions(+), 15 deletions(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -61,6 +61,10 @@
@@ -64,6 +64,10 @@
<item android:id="@+id/all_bookmarks_menu_id"
android:title="@string/menu_bookmarks"
android:icon="@drawable/btn_star_filled" />
@ -39,7 +40,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
<item android:id="@+id/recent_tabs_menu_id"
android:title="@string/menu_recent_tabs"
android:icon="@drawable/devices_black_24dp" />
@@ -144,6 +148,9 @@
@@ -147,6 +151,9 @@
<item android:id="@+id/menu_group_tabs"
android:title="@string/menu_group_tabs"
android:icon="@drawable/ic_widgets" />
@ -52,16 +53,16 @@ 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/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
@@ -70,6 +70,8 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
@@ -68,6 +68,8 @@ import org.chromium.chrome.browser.app.tabmodel.ChromeNextTabPolicySupplier;
import org.chromium.chrome.browser.app.tabmodel.TabModelOrchestrator;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
import org.chromium.chrome.browser.app.tabmodel.TabbedModeTabModelOrchestrator;
+import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
+import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
@@ -1959,6 +1961,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2020,6 +2022,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// Close both incognito and normal tabs
getTabModelSelector().closeAllTabs();
RecordUserAction.record("MobileMenuCloseAllTabs");
@ -70,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs
getTabModelSelector().getModel(true).closeAllTabs();
@@ -2008,6 +2012,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2069,6 +2073,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
}
@ -235,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
@@ -508,6 +508,7 @@ public class BookmarkUtils {
@@ -516,6 +516,7 @@ public class BookmarkUtils {
List<BookmarkId> topLevelFolders = new ArrayList<>();
BookmarkId desktopNodeId = bookmarkModel.getDesktopFolderId();
BookmarkId mobileNodeId = bookmarkModel.getMobileFolderId();
@ -243,7 +244,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
BookmarkId othersNodeId = bookmarkModel.getOtherFolderId();
List<BookmarkId> specialFoldersIds =
@@ -533,6 +534,9 @@ public class BookmarkUtils {
@@ -541,6 +542,9 @@ public class BookmarkUtils {
if (bookmarkModel.isFolderVisible(mobileNodeId)) {
topLevelFolders.add(mobileNodeId);
}
@ -311,22 +312,27 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc
--- a/chrome/browser/bookmarks/bookmark_html_writer.cc
+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
@@ -212,6 +212,14 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
@@ -186,6 +186,8 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
roots->FindDictKey(BookmarkCodec::kOtherBookmarkFolderNameKey);
base::Value* mobile_folder_value =
roots->FindDictKey(BookmarkCodec::kMobileBookmarkFolderNameKey);
+ base::Value* tabs_collection_value =
+ roots->FindDictKey(BookmarkCodec::kTabsBookmarkFolderNameKey);
DCHECK(root_folder_value);
DCHECK(other_folder_value);
DCHECK(mobile_folder_value);
@@ -197,7 +199,9 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
!WriteNode(*static_cast<base::DictionaryValue*>(other_folder_value),
BookmarkNode::OTHER_NODE) ||
!WriteNode(*static_cast<base::DictionaryValue*>(mobile_folder_value),
- BookmarkNode::MOBILE)) {
+ BookmarkNode::MOBILE) ||
+ !WriteNode(*static_cast<base::DictionaryValue*>(tabs_collection_value),
+ BookmarkNode::TABS_COLLECTION)) {
NotifyOnFinish(BookmarksExportObserver::Result::kCouldNotWriteNodes);
return;
}
+ base::Value* tabs_collection_value = nullptr;
+ if (roots_d_value->Get(BookmarkCodec::kTabsBookmarkFolderNameKey,
+ &tabs_collection_value) &&
+ tabs_collection_value->type() == base::Value::Type::DICTIONARY) {
+ WriteNode(*static_cast<base::DictionaryValue*>(tabs_collection_value),
+ BookmarkNode::TABS_COLLECTION);
+ }
+
DecrementIndent();
Write(kFolderChildrenEnd);
@@ -484,6 +492,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
@@ -464,6 +468,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
BookmarkModelFactory::GetForBrowserContext(profile_)->other_node());
ExtractUrls(
BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node());
@ -371,7 +377,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3155,6 +3155,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3218,6 +3218,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_TRACK_PRICES" desc="Menu item for tracking prices on tabs. [CHAR_LIMIT=27]">
Track prices
</message>
@ -407,7 +413,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
--- a/components/bookmarks/browser/bookmark_codec.cc
+++ b/components/bookmarks/browser/bookmark_codec.cc
@@ -32,6 +32,7 @@ const char BookmarkCodec::kRootFolderNameKey[] = "bookmark_bar";
@@ -33,6 +33,7 @@ const char BookmarkCodec::kRootFolderNameKey[] = "bookmark_bar";
const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
// The value is left as 'synced' for historical reasons.
const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
@ -415,9 +421,9 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
const char BookmarkCodec::kVersionKey[] = "version";
const char BookmarkCodec::kChecksumKey[] = "checksum";
const char BookmarkCodec::kIdKey[] = "id";
@@ -62,7 +63,8 @@ std::unique_ptr<base::Value> BookmarkCodec::Encode(
BookmarkModel* model,
const std::string& sync_metadata_str) {
@@ -62,7 +63,8 @@ BookmarkCodec::~BookmarkCodec() = default;
base::Value BookmarkCodec::Encode(BookmarkModel* model,
const std::string& sync_metadata_str) {
return Encode(model->bookmark_bar_node(), model->other_node(),
- model->mobile_node(), model->root_node()->GetMetaInfoMap(),
+ model->mobile_node(), model->tabs_collection_node(),
@ -425,7 +431,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
sync_metadata_str);
}
@@ -70,6 +72,7 @@ std::unique_ptr<base::Value> BookmarkCodec::Encode(
@@ -70,6 +72,7 @@ base::Value BookmarkCodec::Encode(
const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node,
@ -433,14 +439,14 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
const BookmarkNode::MetaInfoMap* model_meta_info_map,
const std::string& sync_metadata_str) {
ids_reassigned_ = false;
@@ -79,6 +82,7 @@ std::unique_ptr<base::Value> BookmarkCodec::Encode(
roots->Set(kRootFolderNameKey, EncodeNode(bookmark_bar_node));
roots->Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
roots->Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
+ roots->Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
@@ -79,6 +82,7 @@ base::Value BookmarkCodec::Encode(
roots.SetKey(kRootFolderNameKey, EncodeNode(bookmark_bar_node));
roots.SetKey(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
roots.SetKey(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
+ roots.SetKey(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
if (model_meta_info_map)
roots->Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
auto main = std::make_unique<base::DictionaryValue>();
roots.SetKey(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
base::Value main(base::Value::Type::DICTIONARY);
@@ -102,6 +106,7 @@ bool BookmarkCodec::Decode(const base::Value& value,
BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
@ -474,28 +480,28 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
*max_id = maximum_id_ + 1;
return success;
}
@@ -173,6 +180,7 @@ std::unique_ptr<base::Value> BookmarkCodec::EncodeMetaInfo(
@@ -172,6 +179,7 @@ base::Value BookmarkCodec::EncodeMetaInfo(
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
+ BookmarkNode* tabs_folder_node,
const base::Value& value,
std::string* sync_metadata_str) {
const base::DictionaryValue* d_value = nullptr;
@@ -212,6 +220,12 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
DecodeNode(*root_folder_d_value, nullptr, bb_node);
DecodeNode(*other_folder_d_value, nullptr, other_folder_node);
if (!value.is_dict())
@@ -203,6 +211,12 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
DecodeNode(*root_folder_value, nullptr, bb_node);
DecodeNode(*other_folder_value, nullptr, other_folder_node);
+ const base::Value* tabs_folder_value;
+ const base::DictionaryValue* tabs_folder_d_value = nullptr;
+ if (roots_d_value->Get(kTabsBookmarkFolderNameKey, &tabs_folder_value) &&
+ tabs_folder_value->GetAsDictionary(&tabs_folder_d_value))
+ const base::Value* tabs_folder_value =
+ roots->FindDictKey(kTabsBookmarkFolderNameKey);
+ if (tabs_folder_value && tabs_folder_value->GetAsDictionary(&tabs_folder_d_value))
+ DecodeNode(*tabs_folder_d_value, nullptr, tabs_folder_node);
+
// Fail silently if we can't deserialize mobile bookmarks. We can't require
// them to exist in order to be backwards-compatible with older versions of
// chrome.
@@ -457,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
@@ -452,11 +466,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
@ -513,15 +519,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
--- a/components/bookmarks/browser/bookmark_codec.h
+++ b/components/bookmarks/browser/bookmark_codec.h
@@ -50,6 +50,7 @@ class BookmarkCodec {
const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node,
+ const BookmarkNode* tabs_folder_node,
const BookmarkNode::MetaInfoMap* model_meta_info_map,
const std::string& sync_metadata_str);
@@ -46,6 +46,7 @@ class BookmarkCodec {
base::Value Encode(const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node,
+ const BookmarkNode* tabs_folder_node,
const BookmarkNode::MetaInfoMap* model_meta_info_map,
const std::string& sync_metadata_str);
@@ -62,6 +63,7 @@ class BookmarkCodec {
@@ -58,6 +59,7 @@ class BookmarkCodec {
BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@ -529,7 +535,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
int64_t* max_node_id,
std::string* sync_metadata_str);
@@ -107,6 +109,7 @@ class BookmarkCodec {
@@ -103,6 +105,7 @@ class BookmarkCodec {
// Allows the BookmarkClient to read and a write a string blob from the JSON
// file. That string captures the bookmarks sync metadata.
static const char kSyncMetadata[];
@ -537,7 +543,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
// Possible values for kTypeKey.
static const char kTypeURL[];
@@ -124,6 +127,7 @@ class BookmarkCodec {
@@ -119,6 +122,7 @@ class BookmarkCodec {
bool DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@ -545,7 +551,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
const base::Value& value,
std::string* sync_metadata_str);
@@ -134,7 +138,8 @@ class BookmarkCodec {
@@ -130,7 +134,8 @@ class BookmarkCodec {
// Reassigns bookmark IDs for all nodes.
void ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
@ -591,7 +597,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc
@@ -561,7 +561,7 @@ bool BookmarkModel::HasBookmarks() {
@@ -562,7 +562,7 @@ bool BookmarkModel::HasBookmarks() {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() &&
@ -600,7 +606,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
}
bool BookmarkModel::IsBookmarked(const GURL& url) {
@@ -796,6 +796,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
@@ -804,6 +804,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node();
@ -624,7 +630,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
bool is_root_node(const BookmarkNode* node) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return node == root_;
@@ -389,6 +395,7 @@ class BookmarkModel : public BookmarkUndoProvider,
@@ -391,6 +397,7 @@ class BookmarkModel : public BookmarkUndoProvider,
BookmarkPermanentNode* bookmark_bar_node_ = nullptr;
BookmarkPermanentNode* other_node_ = nullptr;
BookmarkPermanentNode* mobile_node_ = nullptr;
@ -635,16 +641,18 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
--- a/components/bookmarks/browser/bookmark_node.cc
+++ b/components/bookmarks/browser/bookmark_node.cc
@@ -41,6 +41,8 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] =
"00000000-0000-4000-a000-000000000003";
@@ -60,6 +60,10 @@ const char BookmarkNode::kOtherBookmarksNodeGuid[] =
const char BookmarkNode::kMobileBookmarksNodeGuid[] =
"00000000-0000-4000-a000-000000000004";
"4cf2e351-0e85-532b-bb37-df045d8f8d0f";
+// static
+const char BookmarkNode::kTabsCollectionBookmarksNodeGuid[] =
+ "00000000-0000-4000-a000-000000000006";
+
// static
const char BookmarkNode::kManagedNodeGuid[] =
"00000000-0000-4000-a000-000000000005";
@@ -199,6 +201,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
"323123f4-9381-5aee-80e6-ea5fca2f7672";
@@ -225,6 +229,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
visible_when_empty));
}
@ -680,8 +688,8 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
+ static const char kTabsCollectionBookmarksNodeGuid[];
static const char kManagedNodeGuid[];
// Creates a new node with |id|, |guid| and |url|.
@@ -244,6 +246,9 @@ class BookmarkPermanentNode : public BookmarkNode {
// A bug in sync caused some problematic GUIDs to be produced.
@@ -247,6 +249,9 @@ class BookmarkPermanentNode : public BookmarkNode {
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
int64_t id,
bool visible_when_empty);
@ -704,6 +712,17 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks
&sync_metadata_str);
details->set_sync_metadata_str(std::move(sync_metadata_str));
details->set_max_id(std::max(max_node_id, details->max_id()));
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
@@ -400,6 +400,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
case bookmarks::BookmarkNode::BOOKMARK_BAR:
case bookmarks::BookmarkNode::OTHER_NODE:
case bookmarks::BookmarkNode::MOBILE:
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
DCHECK(node->is_folder());
return sync_pb::BookmarkSpecifics::FOLDER;
}
--
2.17.1

View file

@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -85,6 +85,9 @@
@@ -88,6 +88,9 @@
<item android:id="@+id/add_to_homescreen_id"
android:title="@string/menu_add_to_homescreen"
android:icon="@drawable/ic_add_to_home_screen" />
@ -41,24 +41,24 @@ 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/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
@@ -1982,6 +1982,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2043,6 +2043,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
+ } else if (id == R.id.view_source_id) {
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrlString()));
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrl().getSpec()));
} else if (id == R.id.open_recently_closed_tab) {
TabModel currentModel = mTabModelSelectorImpl.getCurrentModel();
TabModel currentModel = mTabModelSelector.getCurrentModel();
if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -2333,6 +2333,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2429,6 +2429,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
+ if (id == R.id.view_source_id) {
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrlString()));
+ currentTab.getWebContents().getNavigationController().loadUrl(new LoadUrlParams("view-source:"+currentTab.getUrl().getSpec()));
+ return true;
+ }
+
@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -348,6 +348,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -355,6 +355,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
// Only display reader mode settings menu option if the current page is in reader mode.
menu.findItem(R.id.reader_mode_prefs_id).setVisible(shouldShowReaderModePrefs(currentTab));
@@ -787,6 +788,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -845,6 +846,19 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
}
@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
+ protected void updateViewSourceMenuItem(
+ Menu menu, Tab currentTab) {
+ MenuItem viewSourceMenuItem = menu.findItem(R.id.view_source_id);
+ String url = currentTab.getUrlString();
+ String url = currentTab.getUrl().getSpec();
+ viewSourceMenuItem.setVisible(!url.isEmpty() && !url.startsWith("view-source:"));
+ }
+
@ -99,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -222,6 +222,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -214,6 +214,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
}
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -293,6 +293,10 @@ CHAR_LIMIT guidelines:
@@ -299,6 +299,10 @@ CHAR_LIMIT guidelines:
Sign-in verifications
</message>

View file

@ -5,11 +5,11 @@ Subject: Add option to force tablet UI
---
.../android/java/res/xml/accessibility_preferences.xml | 5 +++++
.../accessibility/settings/AccessibilitySettings.java | 10 ++++++++++
.../chrome/browser/omnibox/LocationBarCoordinator.java | 2 +-
.../browser/toolbar/top/ToolbarControlContainer.java | 2 +-
.../browser/preferences/ChromePreferenceKeys.java | 1 +
.../preferences/LegacyChromePreferenceKeys.java | 1 +
.../chrome/browser/omnibox/LocationBarCoordinator.java | 2 +-
.../ui/android/strings/android_chrome_strings.grd | 6 ++++++
.../browser/toolbar/top/ToolbarControlContainer.java | 2 +-
components/BUILD.gn | 4 ++--
ui/android/BUILD.gn | 2 ++
.../src/org/chromium/ui/base/DeviceFormFactor.java | 5 +++++
@ -33,15 +33,15 @@ diff --git a/chrome/android/java/res/xml/accessibility_preferences.xml b/chrome/
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
@@ -35,6 +35,7 @@ public class AccessibilitySettings
static final String PREF_CAPTIONS = "captions";
@@ -37,6 +37,7 @@ public class AccessibilitySettings
static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
static final String PREF_ACCESSIBILITY_PAGE_ZOOM = "accessibility_page_zoom";
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
private TextScalePreference mTextScalePref;
private ChromeBaseCheckBoxPreference mForceEnableZoomPref;
private boolean mRecordFontSizeChangeOnStop;
@@ -80,6 +81,12 @@ public class AccessibilitySettings
@@ -82,6 +83,12 @@ public class AccessibilitySettings
.getBoolean(Pref.READER_FOR_ACCESSIBILITY));
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
ChromeBaseCheckBoxPreference mAccessibilityTabSwitcherPref =
(ChromeBaseCheckBoxPreference) findPreference(
ChromePreferenceKeys.ACCESSIBILITY_TAB_SWITCHER);
@@ -131,6 +138,9 @@ public class AccessibilitySettings
@@ -137,6 +144,9 @@ public class AccessibilitySettings
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
@ -64,34 +64,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.READER_FOR_ACCESSIBILITY, (Boolean) newValue);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -341,7 +341,7 @@ public final class LocationBarCoordinator implements LocationBar, NativeInitObse
// OmniboxSuggestionsDropdownEmbedder implementation
@Override
public boolean isTablet() {
- return DeviceFormFactor.isWindowOnTablet(mWindowAndroid);
+ return DeviceFormFactor.isWindowOnTablet(mWindowAndroid) || isTabletLayout();
}
@Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -110,7 +110,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
// On tablet, draw a fake tab strip and toolbar until the compositor is
// ready to draw the real tab strip. (On phone, the toolbar is made entirely
// of Android views, which are already initialized.)
- setBackgroundResource(R.drawable.toolbar_background);
+// setBackgroundResource(R.drawable.toolbar_background);
}
}
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -506,6 +506,7 @@ public final class ChromePreferenceKeys {
@@ -536,6 +536,7 @@ public final class ChromePreferenceKeys {
public static final String FONT_USER_SET_FORCE_ENABLE_ZOOM = "user_set_force_enable_zoom";
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
@ -110,10 +86,22 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM,
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
ChromePreferenceKeys.HOMEPAGE_CUSTOM_URI,
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -348,7 +348,7 @@ public final class LocationBarCoordinator implements LocationBar, NativeInitObse
// OmniboxSuggestionsDropdownEmbedder implementation
@Override
public boolean isTablet() {
- return DeviceFormFactor.isWindowOnTablet(mWindowAndroid);
+ return DeviceFormFactor.isWindowOnTablet(mWindowAndroid) || isTabletLayout();
}
@Override
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1188,6 +1188,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1194,6 +1194,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_SAFE_BROWSING_NO_PROTECTION_CONFIRMATION_DIALOG_CONFIRM" desc="Message for Safe Browsing no protection confirmation button.">
Turn off
</message>
@ -126,21 +114,33 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Accessibility preferences -->
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -109,7 +109,7 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
// On tablet, draw a fake tab strip and toolbar until the compositor is
// ready to draw the real tab strip. (On phone, the toolbar is made entirely
// of Android views, which are already initialized.)
- setBackgroundResource(R.drawable.toolbar_background);
+// setBackgroundResource(R.drawable.toolbar_background);
}
}
diff --git a/components/BUILD.gn b/components/BUILD.gn
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -525,7 +525,7 @@ test("components_unittests") {
@@ -542,7 +542,7 @@ test("components_unittests") {
# On LaCrOS, tests use ash-chrome as a window manager, thus the dependency.
# On LaCrOS, tests use ash - chrome as a window manager, thus the dependency.
# On other platforms, no components should depend on Chrome.
- if (!is_chromeos_lacros) {
+ if (!is_chromeos_lacros && !is_android) {
assert_no_deps = [ "//chrome/*" ]
}
@@ -772,7 +772,7 @@ if (!is_ios && !is_fuchsia) {
@@ -789,7 +789,7 @@ if (!is_ios) {
# On LaCrOS, tests use ash-chrome as a window manager, thus the dependency.
# On LaCrOS, tests use ash - chrome as a window manager, thus the dependency.
# On other platforms, no components should depend on Chrome.
- if (!is_chromeos_lacros) {
+ if (!is_chromeos_lacros && !is_android) {
@ -150,7 +150,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn
--- a/ui/android/BUILD.gn
+++ b/ui/android/BUILD.gn
@@ -364,6 +364,8 @@ android_library("ui_no_recycler_view_java") {
@@ -370,6 +370,8 @@ android_library("ui_no_recycler_view_java") {
":ui_java_resources",
":ui_utils_java",
"//base:base_java",

View file

@ -12,7 +12,7 @@ Subject: Add option to not persist tabs across sessions
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
@@ -29,6 +29,11 @@
@@ -33,6 +33,11 @@
android:title="@string/always_incognito_title"
android:summary="@string/always_incognito_summary"
android:defaultValue="false" />
@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1175,8 +1175,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1188,8 +1188,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
@ -58,8 +58,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+import org.chromium.base.BuildInfo;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
import org.chromium.chrome.browser.preferences.Pref;
@@ -48,6 +51,7 @@ public class PrivacySettings
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -50,6 +53,7 @@ public class PrivacySettings
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@@ -100,7 +104,11 @@ public class PrivacySettings
@@ -111,7 +115,11 @@ public class PrivacySettings
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
@@ -155,6 +163,11 @@ public class PrivacySettings
@@ -169,6 +177,11 @@ public class PrivacySettings
privacySandboxPreference.setSummary(
PrivacySandboxSettingsFragment.getStatusString(getContext()));
}
@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3958,6 +3958,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4026,6 +4026,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</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>

View file

@ -3,14 +3,22 @@ Date: Mon, 17 May 2021 12:30:12 +0000
Subject: Add support for ISupportHelpAndFeedback
---
.../chrome/browser/settings/SettingsActivity.java | 10 +++++++---
.../components/browser_ui/settings/SettingsUtils.java | 4 ++++
2 files changed, 11 insertions(+), 3 deletions(-)
.../chrome/browser/settings/SettingsActivity.java | 11 ++++++++---
.../components/browser_ui/settings/SettingsUtils.java | 4 ++++
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -282,9 +282,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -55,6 +55,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
import org.chromium.components.browser_ui.settings.SettingsLauncher;
+import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
import org.chromium.ui.UiUtils;
@@ -248,9 +249,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
finish();
return true;
} else if (item.getItemId() == R.id.menu_id_general_help) {

View file

@ -0,0 +1,211 @@
From: Zoraver Kang <Zoraver@users.noreply.github.com>
Date: Fri, 22 May 2020 22:43:27 -0400
Subject: Allow building without enable_reporting
---
content/browser/BUILD.gn | 8 ++++----
.../common/content_switch_dependent_feature_overrides.cc | 3 +++
third_party/blink/renderer/core/frame/local_frame.cc | 3 +++
third_party/blink/renderer/core/frame/local_frame.h | 6 +++---
.../blink/renderer/core/frame/reporting_context.cc | 9 +++++++++
.../blink/renderer/core/frame/reporting_context.h | 7 +++++--
6 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -1240,6 +1240,10 @@ source_set("browser") {
"net/browser_online_state_observer.cc",
"net/browser_online_state_observer.h",
"net/cookie_store_factory.cc",
+ "net/cross_origin_embedder_policy_reporter.cc",
+ "net/cross_origin_embedder_policy_reporter.h",
+ "net/cross_origin_opener_policy_reporter.cc",
+ "net/cross_origin_opener_policy_reporter.h",
"net/network_errors_listing_ui.cc",
"net/network_errors_listing_ui.h",
"net/network_quality_observer_impl.cc",
@@ -2989,10 +2993,6 @@ source_set("browser") {
if (enable_reporting) {
sources += [
- "net/cross_origin_embedder_policy_reporter.cc",
- "net/cross_origin_embedder_policy_reporter.h",
- "net/cross_origin_opener_policy_reporter.cc",
- "net/cross_origin_opener_policy_reporter.h",
"net/reporting_service_proxy.cc",
"net/reporting_service_proxy.h",
]
diff --git a/content/public/common/content_switch_dependent_feature_overrides.cc b/content/public/common/content_switch_dependent_feature_overrides.cc
--- a/content/public/common/content_switch_dependent_feature_overrides.cc
+++ b/content/public/common/content_switch_dependent_feature_overrides.cc
@@ -7,6 +7,7 @@
#include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h"
#include "net/base/features.h"
+#include "net/net_buildflags.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/network_switches.h"
#include "third_party/blink/public/common/features.h"
@@ -46,9 +47,11 @@ GetSwitchDependentFeatureOverrides(const base::CommandLine& command_line) {
{switches::kEnableExperimentalWebPlatformFeatures,
std::cref(features::kDocumentPolicyNegotiation),
base::FeatureList::OVERRIDE_ENABLE_FEATURE},
+#if BUILDFLAG(ENABLE_REPORTING)
{switches::kEnableExperimentalWebPlatformFeatures,
std::cref(net::features::kDocumentReporting),
base::FeatureList::OVERRIDE_ENABLE_FEATURE},
+#endif
{switches::kEnableExperimentalWebPlatformFeatures,
std::cref(features::kExperimentalContentSecurityPolicyFeatures),
base::FeatureList::OVERRIDE_ENABLE_FEATURE},
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
@@ -39,6 +39,7 @@
#include "base/values.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/message_pipe.h"
+#include "net/net_buildflags.h"
#include "services/data_decoder/public/mojom/resource_snapshot_for_web_bundle.mojom-blink.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/content_security_policy.mojom-blink.h"
@@ -2282,9 +2283,11 @@ const base::UnguessableToken& LocalFrame::GetAgentClusterId() const {
return base::UnguessableToken::Null();
}
+#if BUILDFLAG(ENABLE_REPORTING)
mojom::blink::ReportingServiceProxy* LocalFrame::GetReportingService() {
return mojo_handler_->ReportingService();
}
+#endif
// static
void LocalFrame::NotifyUserActivation(
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -33,9 +33,9 @@
#include "base/time/default_tick_clock.h"
#include "base/unguessable_token.h"
-#include "build/build_config.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "net/net_buildflags.h"
#include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
#include "third_party/blink/public/common/frame/frame_ad_evidence.h"
@@ -543,9 +543,9 @@ class CORE_EXPORT LocalFrame final : public Frame,
}
SmoothScrollSequencer& GetSmoothScrollSequencer();
-
+#if BUILDFLAG(ENABLE_REPORTING)
mojom::blink::ReportingServiceProxy* GetReportingService();
-
+#endif
// Returns the frame host ptr. The interface returned is backed by an
// associated interface with the legacy Chrome IPC channel.
mojom::blink::LocalFrameHost& GetLocalFrameHostRemote() const;
diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc
--- a/third_party/blink/renderer/core/frame/reporting_context.cc
+++ b/third_party/blink/renderer/core/frame/reporting_context.cc
@@ -4,6 +4,7 @@
#include "third_party/blink/renderer/core/frame/reporting_context.h"
+#include "net/net_buildflags.h"
#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h"
@@ -54,7 +55,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext";
ReportingContext::ReportingContext(ExecutionContext& context)
: Supplement<ExecutionContext>(context),
execution_context_(context),
+#if BUILDFLAG(ENABLE_REPORTING)
reporting_service_(&context),
+#endif
receiver_(this, &context) {}
// static
@@ -118,7 +121,9 @@ void ReportingContext::Trace(Visitor* visitor) const {
visitor->Trace(observers_);
visitor->Trace(report_buffer_);
visitor->Trace(execution_context_);
+#if BUILDFLAG(ENABLE_REPORTING)
visitor->Trace(reporting_service_);
+#endif
visitor->Trace(receiver_);
Supplement<ExecutionContext>::Trace(visitor);
}
@@ -140,6 +145,7 @@ void ReportingContext::CountReport(Report* report) {
UseCounter::Count(execution_context_, feature);
}
+#if BUILDFLAG(ENABLE_REPORTING)
const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
ReportingContext::GetReportingService() const {
if (!reporting_service_.is_bound()) {
@@ -149,6 +155,7 @@ ReportingContext::GetReportingService() const {
}
return reporting_service_;
}
+#endif
void ReportingContext::NotifyInternal(Report* report) {
// Buffer the report.
@@ -171,6 +178,7 @@ void ReportingContext::NotifyInternal(Report* report) {
void ReportingContext::SendToReportingAPI(Report* report,
const String& endpoint) const {
+#if BUILDFLAG(ENABLE_REPORTING)
const String& type = report->type();
if (!(type == ReportType::kCSPViolation || type == ReportType::kDeprecation ||
type == ReportType::kPermissionsPolicyViolation ||
@@ -226,6 +234,7 @@ void ReportingContext::SendToReportingAPI(Report* report,
url, endpoint, body->featureId(), body->disposition(), body->message(),
body->sourceFile(), line_number, column_number);
}
+#endif
}
} // namespace blink
diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_party/blink/renderer/core/frame/reporting_context.h
--- a/third_party/blink/renderer/core/frame/reporting_context.h
+++ b/third_party/blink/renderer/core/frame/reporting_context.h
@@ -5,6 +5,7 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_REPORTING_CONTEXT_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_REPORTING_CONTEXT_H_
+#include "net/net_buildflags.h"
#include "third_party/blink/public/mojom/frame/reporting_observer.mojom-blink.h"
#include "third_party/blink/public/mojom/reporting/reporting.mojom-blink.h"
#include "third_party/blink/renderer/core/core_export.h"
@@ -53,10 +54,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
private:
// Counts the use of a report type via UseCounter.
void CountReport(Report*);
-
+#if BUILDFLAG(ENABLE_REPORTING)
const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
GetReportingService() const;
-
+#endif
void NotifyInternal(Report* report);
// Send |report| via the Reporting API to |endpoint|.
void SendToReportingAPI(Report* report, const String& endpoint) const;
@@ -67,8 +68,10 @@ class CORE_EXPORT ReportingContext : public GarbageCollected<ReportingContext>,
// This is declared mutable so that the service endpoint can be cached by
// const methods.
+#if BUILDFLAG(ENABLE_REPORTING)
mutable HeapMojoRemote<mojom::blink::ReportingServiceProxy>
reporting_service_;
+#endif
HeapMojoReceiver<mojom::blink::ReportingObserver, ReportingContext> receiver_;
};
--
2.17.1

View file

@ -3,14 +3,27 @@ Date: Thu, 2 Nov 2017 18:21:16 +0200
Subject: Allow playing audio in background
---
media/blink/webmediaplayer_impl.cc | 12 +++++++++++-
media/blink/webmediaplayer_impl.h | 2 ++
2 files changed, 13 insertions(+), 1 deletion(-)
.../public/platform/media/web_media_player_impl.h | 3 +++
.../renderer/platform/media/web_media_player_impl.cc | 12 +++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
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
@@ -1112,6 +1112,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
diff --git a/third_party/blink/public/platform/media/web_media_player_impl.h b/third_party/blink/public/platform/media/web_media_player_impl.h
--- a/third_party/blink/public/platform/media/web_media_player_impl.h
+++ b/third_party/blink/public/platform/media/web_media_player_impl.h
@@ -159,6 +159,9 @@ class BLINK_PLATFORM_EXPORT WebMediaPlayerImpl
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 WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) override;
void SelectedVideoTrackChanged(
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
@@ -1118,6 +1118,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
return pipeline_metadata_.has_audio;
}
@ -21,9 +34,9 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
+}
+
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
const WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -3471,7 +3477,11 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
@@ -3490,7 +3496,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.
@ -36,18 +49,6 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
return false;
if (using_media_player_renderer_ &&
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
@@ -158,6 +158,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.17.1

View file

@ -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
@@ -122,7 +122,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
@@ -127,7 +127,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
#if BUILDFLAG(ENABLE_DICE_SUPPORT)
registry->RegisterBooleanPref(kDiceMigrationCompletePref, false);
#endif

View file

@ -23,8 +23,8 @@ 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
@@ -591,7 +591,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
effective_experimental_options->Remove(it.key(), nullptr);
@@ -592,7 +592,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
effective_experimental_options->RemoveKey(it.key());
continue;
}
- async_dns_args->GetBoolean(kAsyncDnsEnable, &async_dns_enable);

View file

@ -46,7 +46,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -450,7 +450,9 @@ double AudioContext::baseLatency() const {
@@ -458,7 +458,9 @@ double AudioContext::baseLatency() const {
DCHECK(IsMainThread());
DCHECK(destination());

File diff suppressed because it is too large Load diff

View file

@ -10,7 +10,7 @@ Include @thestinger's fix for correct charging/unknown values
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
@@ -69,46 +69,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
@@ -70,46 +70,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
}
bool BatteryManager::charging() {

View file

@ -3,7 +3,6 @@ Date: Tue, 28 Jul 2020 12:28:58 +0200
Subject: Block gateway attacks via websockets
---
content/public/common/content_features.cc | 2 +-
.../renderer/core/loader/base_fetch_context.h | 1 +
.../core/loader/frame_fetch_context.cc | 18 +++++++++++++
.../core/loader/frame_fetch_context.h | 1 +
@ -13,24 +12,12 @@ Subject: Block gateway attacks via websockets
.../websockets/websocket_channel_impl.cc | 5 ++++
.../modules/websockets/websocket_common.cc | 27 +++++++++++++++++++
.../modules/websockets/websocket_common.h | 4 +++
10 files changed, 77 insertions(+), 3 deletions(-)
9 files changed, 76 insertions(+), 2 deletions(-)
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
@@ -107,7 +107,7 @@ const base::Feature kBlockCredentialedSubresources{
// - https://wicg.github.io/cors-rfc1918/#integration-fetch
// - kBlockInsecurePrivateNetworkRequestsForNavigations
const base::Feature kBlockInsecurePrivateNetworkRequests{
- "BlockInsecurePrivateNetworkRequests", base::FEATURE_DISABLED_BY_DEFAULT};
+ "BlockInsecurePrivateNetworkRequests", base::FEATURE_ENABLED_BY_DEFAULT};
// When both kBlockInsecurePrivateNetworkRequestsForNavigations and
// kBlockInsecurePrivateNetworkRequests are enabled, navigations initiated
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
@@ -81,6 +81,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
@@ -82,6 +82,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
virtual SubresourceFilter* GetSubresourceFilter() const = 0;
virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0;
@ -41,7 +28,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -560,6 +560,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
@@ -568,6 +568,24 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request;
}
@ -127,7 +114,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/thi
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
--- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
+++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
@@ -109,7 +109,6 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
@@ -103,7 +103,6 @@ bool ShouldBlockDanglingMarkup(const KURL& request_url) {
bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
const KURL& request_url) {
@ -135,7 +122,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
network::mojom::IPAddressSpace requestor_space =
execution_context->AddressSpace();
@@ -126,7 +125,6 @@ bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
@@ -120,7 +119,6 @@ bool ShouldBlockGateWayAttacks(ExecutionContext* execution_context,
bool is_external_request = requestor_space > target_space;
if (is_external_request)
return true;
@ -146,7 +133,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
@@ -277,6 +277,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
@@ -274,6 +274,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
return false;
}
@ -161,7 +148,7 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_imp
diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b/third_party/blink/renderer/modules/websockets/websocket_common.cc
--- a/third_party/blink/renderer/modules/websockets/websocket_common.cc
+++ b/third_party/blink/renderer/modules/websockets/websocket_common.cc
@@ -79,6 +79,15 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
@@ -124,9 +124,36 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
return ConnectResult::kException;
}
@ -170,14 +157,10 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b
+ if (ShouldBlockGateWayAttacks(requestor_space, url_)) {
+ state_ = kClosed;
+ exception_state.ThrowSecurityError(
+ "Access to this address is not allowed.");
+ "Access to address of '" + url_.Host() + "' is not allowed from '" + execution_context->addressSpaceForBindings() + "' address space.");
+ return ConnectResult::kException;
+ }
+
if (!execution_context->GetContentSecurityPolicyForCurrentWorld()
->AllowConnectToSource(url_, url_, RedirectStatus::kNoRedirect)) {
state_ = kClosed;
@@ -127,6 +136,24 @@ WebSocketCommon::ConnectResult WebSocketCommon::Connect(
return ConnectResult::kSuccess;
}

View file

@ -104,7 +104,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -808,6 +808,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
@@ -819,6 +819,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
#endif // BUILDFLAG(ENABLE_WEBSOCKETS)
RegisterWebSafeScheme(url::kFtpScheme);
RegisterWebSafeScheme(url::kDataScheme);
@ -196,11 +196,11 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
@@ -13,6 +13,7 @@
#include "base/metrics/histogram_macros.h"
#include "base/rand_util.h"
#include "base/stl_util.h"
+#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "base/strings/string_util.h"
#include "base/synchronization/lock.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/values.h"
@@ -44,6 +45,7 @@
#include "net/url_request/url_request_redirect_job.h"
#include "url/gurl.h"
@ -209,7 +209,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
using base::Time;
using std::string;
@@ -582,6 +584,12 @@ URLRequest::URLRequest(const GURL& url,
@@ -580,6 +582,12 @@ URLRequest::URLRequest(const GURL& url,
// Sanity check out environment.
DCHECK(base::ThreadTaskRunnerHandle::IsSet());
@ -225,7 +225,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
--- a/net/url_request/url_request_context_builder.cc
+++ b/net/url_request/url_request_context_builder.cc
@@ -45,6 +45,7 @@
@@ -46,6 +46,7 @@
#include "net/quic/quic_stream_factory.h"
#include "net/ssl/ssl_config_service_defaults.h"
#include "net/url_request/static_http_user_agent_settings.h"
@ -233,7 +233,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_storage.h"
#include "net/url_request/url_request_job_factory.h"
@@ -606,6 +607,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
@@ -552,6 +553,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
job_factory->SetProtocolHandler(scheme_handler.first,
std::move(scheme_handler.second));
}
@ -267,7 +267,7 @@ diff --git a/url/url_constants.h b/url/url_constants.h
diff --git a/url/url_util.cc b/url/url_util.cc
--- a/url/url_util.cc
+++ b/url/url_util.cc
@@ -34,6 +34,7 @@ struct SchemeRegistry {
@@ -35,6 +35,7 @@ struct SchemeRegistry {
std::vector<SchemeWithType> standard_schemes = {
{kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
{kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
@ -275,7 +275,7 @@ diff --git a/url/url_util.cc b/url/url_util.cc
// Yes, file URLs can have a hostname, so file URLs should be handled as
// "standard". File URLs never have a port as specified by the SchemeType
// field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file
@@ -77,6 +78,7 @@ struct SchemeRegistry {
@@ -78,6 +79,7 @@ struct SchemeRegistry {
kAboutScheme,
kJavaScriptScheme,
kDataScheme,

View file

@ -12,7 +12,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
chrome/android/chrome_java_resources.gni | 2 +
chrome/android/chrome_java_sources.gni | 2 +
.../java/res/layout/adblock_editor.xml | 67 +++++
chrome/android/java/res/values/styles.xml | 17 ++
chrome/android/java/res/values/styles.xml | 18 ++
chrome/android/java/res/values/values.xml | 2 +
.../java/res/xml/adblock_preferences.xml | 25 ++
.../android/java/res/xml/main_preferences.xml | 5 +
@ -33,10 +33,10 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
.../strings/android_chrome_strings.grd | 14 +
chrome/common/pref_names.cc | 3 +
chrome/common/pref_names.h | 1 +
components/component_updater/BUILD.gn | 6 +
components/component_updater/BUILD.gn | 7 +
.../adblock_updater_service.cc | 272 ++++++++++++++++++
.../adblock_updater_service.h | 99 +++++++
.../download_filters_task.cc | 222 ++++++++++++++
.../download_filters_task.cc | 224 +++++++++++++++
.../component_updater/download_filters_task.h | 129 +++++++++
...ent_subresource_filter_throttle_manager.cc | 11 +
.../content/browser/ruleset_service.cc | 33 ++-
@ -47,7 +47,7 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
.../core/common/common_features.cc | 2 +-
.../core/common/indexed_ruleset.cc | 5 +-
.../navigation_throttle_runner.cc | 5 -
38 files changed, 1154 insertions(+), 140 deletions(-)
38 files changed, 1158 insertions(+), 140 deletions(-)
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
@ -60,15 +60,15 @@ Fix RestoreForeignSessionTab by recreating the tab (issue #681)
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -666,6 +666,7 @@ chrome_java_resources = [
@@ -566,6 +566,7 @@ chrome_java_resources = [
"java/res/layout/account_chooser_dialog_title.xml",
"java/res/layout/account_divider_preference.xml",
"java/res/layout/account_management_account_row.xml",
+ "java/res/layout/adblock_editor.xml",
"java/res/layout/assistant_voice_search_consent_ui.xml",
+ "java/res/layout/adblock_editor.xml",
"java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml",
@@ -891,6 +892,7 @@ chrome_java_resources = [
"java/res/layout/autofill_card_unmask_prompt.xml",
@@ -776,6 +777,7 @@ chrome_java_resources = [
"java/res/xml/about_chrome_preferences.xml",
"java/res/xml/accessibility_preferences.xml",
"java/res/xml/account_management_preferences.xml",
@ -79,15 +79,15 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
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
@@ -1108,6 +1108,8 @@ chrome_java_sources = [
@@ -991,6 +991,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/payments/ui/ShoppingCart.java",
"java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
+ "java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java",
+ "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java",
"java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java",
"java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
"java/src/org/chromium/chrome/browser/prerender/ChromePrerenderServiceImpl.java",
"java/src/org/chromium/chrome/browser/previews/HttpsImageCompressionUtils.java",
diff --git a/chrome/android/java/res/layout/adblock_editor.xml b/chrome/android/java/res/layout/adblock_editor.xml
new file mode 100644
--- /dev/null
@ -163,10 +163,10 @@ new file mode 100644
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
--- a/chrome/android/java/res/values/styles.xml
+++ b/chrome/android/java/res/values/styles.xml
@@ -208,6 +208,23 @@
<item name="android:layout_height">0dp</item>
<item name="android:layout_weight">1</item>
@@ -199,6 +199,24 @@
</item>
</style>
+ <style name="ButtonBarTopSpacer" parent="ButtonBarTopSpacerLight">
+ <item name="android:minHeight">5dp</item>
+ </style>
@ -184,15 +184,16 @@ diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res
+ <item name="android:paddingStart">4dp</item>
+ <item name="android:paddingEnd">4dp</item>
+ </style>
<style name="ButtonBarTopDivider">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1dp</item>
+
<!-- Button bar styles -->
<style name="ButtonBarTopSpacerLight">
<item name="android:layout_width">0dp</item>
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
@@ -29,6 +29,8 @@
<integer name="reload_button_level_reload">0</integer>
<integer name="reload_button_level_stop">1</integer>
@@ -25,6 +25,8 @@
<!-- Compositor Tab Title Text -->
<bool name="compositor_tab_title_fake_bold_text">true</bool>
+ <string name="adblock_help_url">https://www.bromite.org/custom-filters</string>
+
@ -232,9 +233,9 @@ new file mode 100644
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
@@ -61,6 +61,11 @@
@@ -42,6 +42,11 @@
android:key="privacy"
android:order="12"
android:order="10"
android:title="@string/prefs_privacy_security"/>
+ <Preference
+ android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
@ -243,7 +244,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
+ android:title="@string/prefs_adblock"/>
<Preference
android:key="notifications"
android:order="14"
android:order="12"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
new file mode 100644
--- /dev/null
@ -357,7 +358,7 @@ new file mode 100644
+import androidx.preference.PreferenceFragmentCompat;
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
+
+import org.chromium.components.embedder_support.browser_context.BrowserContextHandle;
+import org.chromium.content_public.browser.BrowserContextHandle;
+import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
+import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge;
+import org.chromium.components.content_settings.ContentSettingsType;
@ -422,7 +423,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -10516,6 +10516,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
@@ -10805,6 +10805,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again.
</message>
@ -472,7 +473,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
class BackgroundModeManager;
class BrowserProcessPlatformPart;
@@ -66,6 +67,10 @@ namespace component_updater {
@@ -67,6 +68,10 @@ namespace component_updater {
class ComponentUpdateService;
}
@ -483,7 +484,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
namespace extensions {
class EventRouterForwarder;
}
@@ -233,6 +238,7 @@ class BrowserProcess {
@@ -234,6 +239,7 @@ class BrowserProcess {
#endif
virtual component_updater::ComponentUpdateService* component_updater() = 0;
@ -494,7 +495,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
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
@@ -1018,6 +1018,26 @@ BrowserProcessImpl::component_updater() {
@@ -1053,6 +1053,26 @@ BrowserProcessImpl::component_updater() {
return component_updater_.get();
}
@ -524,7 +525,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
--- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h
@@ -189,6 +189,7 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -194,6 +194,7 @@ class BrowserProcessImpl : public BrowserProcess,
#endif
component_updater::ComponentUpdateService* component_updater() override;
@ -532,18 +533,18 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
MediaFileSystemRegistry* media_file_system_registry() override;
WebRtcLogUploader* webrtc_log_uploader() override;
network_time::NetworkTimeTracker* network_time_tracker() override;
@@ -369,6 +370,7 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -378,6 +379,7 @@ class BrowserProcessImpl : public BrowserProcess,
// to concerns over integrity of data shared between profiles,
// but some users of component updater only install per-user.
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
+ std::unique_ptr<adblock_updater::AdBlockUpdaterService> adblock_updater_;
#if BUILDFLAG(ENABLE_PLUGINS)
std::unique_ptr<PluginsResourceService> plugins_resource_service_;
#if !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
// Used to create a singleton instance of SodaInstallerImpl, which can be
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -1648,6 +1648,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
@@ -1626,6 +1626,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() {
speech::SodaInstaller::GetInstance()->Init(profile_->GetPrefs(),
browser_process_->local_state());
#endif // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
@ -555,15 +556,15 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/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
@@ -75,7 +75,6 @@
@@ -61,7 +61,6 @@
#include "chrome/browser/hid/chrome_hid_delegate.h"
#include "chrome/browser/interstitials/enterprise_util.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/lifetime/browser_shutdown.h"
-#include "chrome/browser/lookalikes/lookalike_url_navigation_throttle.h"
#include "chrome/browser/media/audio_service_util.h"
#include "chrome/browser/media/router/media_router_feature.h"
#include "chrome/browser/media/webrtc/audio_debug_recordings_handler.h"
@@ -3989,16 +3988,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -3907,16 +3906,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
content::NavigationHandle* handle) {
std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
@ -580,7 +581,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(IS_CHROMEOS_ASH)
MaybeAddThrottle(
ash::WebTimeLimitNavigationThrottle::MaybeCreateThrottleFor(handle),
@@ -4103,10 +4092,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -4022,10 +4011,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
&throttles);
#endif
@ -590,7 +591,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
-
MaybeAddThrottle(PDFIFrameNavigationThrottle::MaybeCreateThrottleFor(handle),
&throttles);
#if BUILDFLAG(ENABLE_PDF)
diff --git a/chrome/browser/flags/android/cached_feature_flags.cc b/chrome/browser/flags/android/cached_feature_flags.cc
--- a/chrome/browser/flags/android/cached_feature_flags.cc
+++ b/chrome/browser/flags/android/cached_feature_flags.cc
@ -634,7 +635,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
/**
* Caches flags that must take effect on startup but are set via native code.
*/
@@ -431,5 +439,7 @@ public class CachedFeatureFlags {
@@ -470,5 +478,7 @@ public class CachedFeatureFlags {
@NativeMethods
interface Natives {
boolean isNetworkServiceWarmUpEnabled();
@ -645,7 +646,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
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
@@ -337,6 +337,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
@@ -349,6 +349,8 @@ SystemNetworkContextManager::SystemNetworkContextManager(
SSLConfigServiceManager::CreateDefaultManager(local_state_)),
proxy_config_monitor_(local_state_),
stub_resolver_config_reader_(local_state_) {
@ -654,7 +655,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
#if !defined(OS_ANDROID)
// QuicAllowed was not part of Android policy.
const base::Value* value =
@@ -407,6 +409,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
@@ -419,6 +421,8 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
StubResolverConfigReader::RegisterPrefs(registry);
@ -704,7 +705,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
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
@@ -2161,6 +2161,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
@@ -2188,6 +2188,9 @@ const char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
// capture devices without prompt.
const char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls";
@ -722,9 +723,9 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
extern const char kHomePageIsNewTabPage[];
extern const char kHomePage[];
+extern const char kAdBlockFiltersURL[];
extern const char kHttpsOnlyModeEnabled[];
extern const char kImportantSitesDialogHistory[];
extern const char kProfileCreationTime[];
#if defined(OS_WIN)
diff --git a/components/component_updater/BUILD.gn b/components/component_updater/BUILD.gn
--- a/components/component_updater/BUILD.gn
+++ b/components/component_updater/BUILD.gn
@ -741,6 +742,14 @@ diff --git a/components/component_updater/BUILD.gn b/components/component_update
"component_updater_service.cc",
"component_updater_service.h",
"component_updater_service_internal.h",
@@ -36,6 +42,7 @@ static_library("component_updater") {
"//components/crx_file",
"//components/update_client",
"//components/version_info",
+ "//services/network/public/mojom",
"//third_party/boringssl:boringssl",
"//ui/base",
"//url",
diff --git a/components/component_updater/adblock_updater_service.cc b/components/component_updater/adblock_updater_service.cc
new file mode 100644
--- /dev/null
@ -1126,7 +1135,7 @@ diff --git a/components/component_updater/download_filters_task.cc b/components/
new file mode 100644
--- /dev/null
+++ b/components/component_updater/download_filters_task.cc
@@ -0,0 +1,222 @@
@@ -0,0 +1,224 @@
+/*
+ This file is part of Bromite.
+
@ -1154,6 +1163,8 @@ new file mode 100644
+#include "base/logging.h"
+#include "net/base/load_flags.h"
+#include "url/gurl.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
+
+namespace adblock_updater {
+
@ -1486,7 +1497,7 @@ new file mode 100644
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
@@ -564,6 +564,17 @@ ContentSubresourceFilterThrottleManager::
@@ -651,6 +651,17 @@ ContentSubresourceFilterThrottleManager::
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
ad_tagging_state);
}
@ -1622,7 +1633,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/components/subresource_filter/content/browser/ruleset_service.h
--- a/components/subresource_filter/content/browser/ruleset_service.h
+++ b/components/subresource_filter/content/browser/ruleset_service.h
@@ -181,7 +181,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
@@ -180,7 +180,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
//
// Virtual so that it can be mocked out in tests.
virtual void IndexAndStoreAndPublishRulesetIfNeeded(
@ -1631,7 +1642,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/c
// Get the ruleset version associated with the current local_state_.
IndexedRulesetVersion GetMostRecentlyIndexedVersion() const;
@@ -214,6 +214,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
@@ -213,6 +213,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
const base::FilePath& indexed_ruleset_base_dir,
const UnindexedRulesetInfo& unindexed_ruleset_info);
@ -1681,7 +1692,7 @@ diff --git a/components/subresource_filter/content/browser/verified_ruleset_deal
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
+++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
@@ -53,69 +53,7 @@ class CommaSeparatedStrings {
@@ -54,69 +54,7 @@ class CommaSeparatedStrings {
DISALLOW_COPY_AND_ASSIGN(CommaSeparatedStrings);
};
@ -1752,7 +1763,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
// If ad tagging is enabled, turn on the dryrun automatically.
bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging);
const struct {
@@ -123,23 +61,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
@@ -124,23 +62,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
bool enabled_by_default;
Configuration (*factory_method)();
} kAvailablePresetConfigurations[] = {
@ -1778,7 +1789,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
enabled_configurations.push_back(available_preset.factory_method());
}
}
@@ -147,46 +78,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
@@ -148,46 +79,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
return enabled_configurations;
}

View file

@ -0,0 +1,929 @@
From: uazo <uazo@users.noreply.github.com>
Date: Thu, 7 Oct 2021 14:27:12 +0000
Subject: Bromite auto updater
Enable checking for new versions, with notifications and proxy support
---
.../java/templates/BuildConfig.template | 2 +
build/config/android/rules.gni | 3 +
chrome/android/chrome_java_sources.gni | 1 +
.../java/res/xml/about_chrome_preferences.xml | 5 +
.../about_settings/AboutChromeSettings.java | 28 ++-
.../chrome/browser/omaha/OmahaBase.java | 47 +++-
.../chrome/browser/omaha/UpdateConfigs.java | 6 +-
.../browser/omaha/UpdateStatusProvider.java | 33 ++-
.../browser/omaha/VersionNumberGetter.java | 3 +-
.../inline/BromiteInlineUpdateController.java | 204 ++++++++++++++++++
.../inline/InlineUpdateControllerFactory.java | 8 +-
chrome/browser/endpoint_fetcher/BUILD.gn | 2 +
.../endpoint_fetcher/endpoint_fetcher.cc | 129 +++++++++++
.../endpoint_fetcher/endpoint_fetcher.h | 23 +-
.../endpoint_fetcher/EndpointFetcher.java | 11 +
.../EndpointHeaderResponse.java | 31 +++
chrome/browser/flag-metadata.json | 2 +-
chrome/browser/flag_descriptions.cc | 5 +-
.../flags/android/chrome_feature_list.cc | 2 +-
.../strings/android_chrome_strings.grd | 8 +-
20 files changed, 516 insertions(+), 37 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
create mode 100644 chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java
diff --git a/build/android/java/templates/BuildConfig.template b/build/android/java/templates/BuildConfig.template
--- a/build/android/java/templates/BuildConfig.template
+++ b/build/android/java/templates/BuildConfig.template
@@ -92,4 +92,6 @@ public class BuildConfig {
#else
public static MAYBE_FINAL boolean ISOLATED_SPLITS_ENABLED MAYBE_FALSE;
#endif
+
+ public static MAYBE_FINAL String BUILD_TARGET_CPU = _BUILD_TARGET_CPU;
}
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -1967,6 +1967,9 @@ if (enable_java_templates) {
]
}
}
+
+ # add arch to org.chromium.build.BuildConfig
+ defines += [ "_BUILD_TARGET_CPU=\"${target_cpu}\"" ]
}
}
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
@@ -887,6 +887,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java",
"java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java",
"java/src/org/chromium/chrome/browser/omaha/inline/NoopInlineUpdateController.java",
+ "java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java",
"java/src/org/chromium/chrome/browser/omaha/inline/PlayInlineUpdateController.java",
"java/src/org/chromium/chrome/browser/omaha/metrics/HistogramUtils.java",
"java/src/org/chromium/chrome/browser/omaha/metrics/TrackingProvider.java",
diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/android/java/res/xml/about_chrome_preferences.xml
--- a/chrome/android/java/res/xml/about_chrome_preferences.xml
+++ b/chrome/android/java/res/xml/about_chrome_preferences.xml
@@ -7,6 +7,11 @@
<Preference
android:key="application_version"
android:title="@string/application_version_title" />
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="allow_inline_update"
+ android:title="@string/allow_inline_update_title"
+ android:summary="@string/allow_inline_update_summary"
+ android:defaultValue="false" />
<org.chromium.chrome.browser.about_settings.AboutChromePreferenceOSVersion
android:key="os_version"
android:title="@string/os_version_title" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
@@ -21,14 +21,20 @@ import org.chromium.ui.widget.Toast;
import java.util.Calendar;
+import android.content.SharedPreferences;
+import org.chromium.chrome.browser.omaha.OmahaBase;
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
+
/**
* Settings fragment that displays information about Chrome.
*/
public class AboutChromeSettings
- extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener {
+ extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener,
+ Preference.OnPreferenceChangeListener {
private static final int TAPS_FOR_DEVELOPER_SETTINGS = 7;
private static final String PREF_APPLICATION_VERSION = "application_version";
+ private static final String PREF_ALLOW_INLINE_UPDATE = "allow_inline_update";
private static final String PREF_OS_VERSION = "os_version";
private static final String PREF_LEGAL_INFORMATION = "legal_information";
@@ -59,6 +65,13 @@ public class AboutChromeSettings
p = findPreference(PREF_LEGAL_INFORMATION);
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
p.setSummary(getString(R.string.legal_information_summary, currentYear));
+
+ ChromeSwitchPreference allowInlineUpdate =
+ (ChromeSwitchPreference) findPreference(PREF_ALLOW_INLINE_UPDATE);
+ allowInlineUpdate.setChecked(
+ OmahaBase.getSharedPreferences()
+ .getBoolean(OmahaBase.PREF_ALLOW_INLINE_UPDATE, false));
+ allowInlineUpdate.setOnPreferenceChangeListener(this);
}
/**
@@ -122,4 +135,17 @@ public class AboutChromeSettings
}
return true;
}
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ String key = preference.getKey();
+ if (PREF_ALLOW_INLINE_UPDATE.equals(key)) {
+ SharedPreferences.Editor sharedPreferenceEditor = OmahaBase.getSharedPreferences().edit();
+ sharedPreferenceEditor.putBoolean(OmahaBase.PREF_ALLOW_INLINE_UPDATE, (boolean) newValue);
+ sharedPreferenceEditor.apply();
+
+ OmahaBase.resetUpdatePrefs();
+ }
+ return true;
+ }
}
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
@@ -31,6 +31,8 @@ import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
+import org.chromium.build.BuildConfig;
+
/**
* Keeps tabs on the current state of Chrome, tracking if and when a request should be sent to the
* Omaha Server.
@@ -97,7 +99,9 @@ public class OmahaBase {
static final String PREF_TIMESTAMP_FOR_NEW_REQUEST = "timestampForNewRequest";
static final String PREF_TIMESTAMP_FOR_NEXT_POST_ATTEMPT = "timestampForNextPostAttempt";
static final String PREF_TIMESTAMP_OF_INSTALL = "timestampOfInstall";
- static final String PREF_TIMESTAMP_OF_REQUEST = "timestampOfRequest";
+ public static final String PREF_TIMESTAMP_OF_REQUEST = "timestampOfRequest";
+ public static final String PREF_LATEST_MODIFIED_VERSION = "latestModifiedVersion";
+ public static final String PREF_ALLOW_INLINE_UPDATE = "allowInlineUpdate";
static final int MIN_API_JOB_SCHEDULER = Build.VERSION_CODES.M;
@@ -158,7 +162,8 @@ public class OmahaBase {
/** See {@link #sIsDisabled}. */
static boolean isDisabled() {
- return sIsDisabled;
+ // do not enable version control via Omaha Update Server
+ return true;
}
/**
@@ -630,4 +635,42 @@ public class OmahaBase {
// updateStatus is only used for the on-demand check.
null);
}
+
+ public static boolean isNewVersionAvailableByVersion(String latestVersionString) {
+ VersionNumber mCurrentProductVersion = VersionNumber.fromString(ChromeVersionInfo.getProductVersion());
+ if (mCurrentProductVersion == null) {
+ Log.e(TAG, "BromiteUpdater: current product version is null");
+ return false;
+ }
+
+ VersionNumber latestVersion = VersionNumber.fromString(latestVersionString);
+ if (latestVersion == null) {
+ Log.e(TAG, "BromiteUpdater: invalid latest version '%s'", latestVersionString);
+ return false;
+ }
+
+ Log.i(TAG, "BromiteUpdater: currentProductVersion=%s, latestVersion=%s",
+ mCurrentProductVersion.toString(), latestVersion.toString());
+
+ return mCurrentProductVersion.isSmallerThan(latestVersion);
+ }
+
+ public static void updateLastPushedTimeStamp(long timeMillis) {
+ SharedPreferences preferences = OmahaBase.getSharedPreferences();
+ SharedPreferences.Editor editor = preferences.edit();
+ editor.putLong(OmahaBase.PREF_TIMESTAMP_OF_REQUEST, timeMillis);
+ editor.apply();
+ }
+
+ public static void setLastModifiedVersion(String version) {
+ SharedPreferences preferences = OmahaBase.getSharedPreferences();
+ SharedPreferences.Editor editor = preferences.edit();
+ editor.putString(OmahaBase.PREF_LATEST_MODIFIED_VERSION, version);
+ editor.apply();
+ }
+
+ public static void resetUpdatePrefs() {
+ OmahaBase.setLastModifiedVersion("");
+ OmahaBase.updateLastPushedTimeStamp(0);
+ }
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java
@@ -65,7 +65,7 @@ public class UpdateConfigs {
private static final String UPDATE_NOTIFICATION_EXPERIMENTAL_PARAM_NAME =
"update_notification_experimental_context";
- private static final long DEFAULT_UPDATE_NOTIFICATION_INTERVAL = 21 * DateUtils.DAY_IN_MILLIS;
+ private static final long DEFAULT_UPDATE_NOTIFICATION_INTERVAL = 3 * DateUtils.DAY_IN_MILLIS;
private static final long DEFAULT_UPDATE_ATTRIBUTION_WINDOW_MS = 2 * DateUtils.DAY_IN_MILLIS;
/** Possible update flow configurations. */
@@ -300,7 +300,7 @@ public class UpdateConfigs {
* @return the current inline update flow configuration.
*/
@UpdateFlowConfiguration
- static int getConfiguration() {
+ public static int getConfiguration() {
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.INLINE_UPDATE_FLOW)) {
// Always use the the old flow if the inline update flow feature is not enabled.
return UpdateFlowConfiguration.INTENT_ONLY;
@@ -328,4 +328,4 @@ public class UpdateConfigs {
if (configuration == null) return "";
return configuration.toLowerCase(Locale.US);
}
-}
\ No newline at end of file
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
@@ -45,6 +45,12 @@ import java.io.File;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import org.chromium.base.Log;
+import android.content.SharedPreferences;
+import android.os.Build;
+import org.chromium.build.BuildConfig;
+import org.chromium.chrome.browser.version.ChromeVersionInfo;
+
/**
* Provides the current update state for Chrome. This update state is asynchronously determined and
* can change as Chrome runs.
@@ -339,8 +345,7 @@ public class UpdateStatusProvider implements ActivityStateListener {
case UpdateConfigs.UpdateFlowConfiguration.NEVER_SHOW:
return UpdateState.NONE;
case UpdateConfigs.UpdateFlowConfiguration.INLINE_ONLY:
- if (omahaState != UpdateState.UPDATE_AVAILABLE) return omahaState;
- if (inlineState == UpdateState.NONE) return UpdateState.NONE;
+ if (inlineState == UpdateState.NONE) return omahaState;
return inlineState;
case UpdateConfigs.UpdateFlowConfiguration.BEST_EFFORT:
if (omahaState != UpdateState.UPDATE_AVAILABLE) return omahaState;
@@ -415,24 +420,12 @@ public class UpdateStatusProvider implements ActivityStateListener {
private UpdateStatus getRealStatus(Context context) {
UpdateStatus status = new UpdateStatus();
- if (VersionNumberGetter.isNewerVersionAvailable(context)) {
- status.updateUrl = MarketURLGetter.getMarketUrl();
- status.latestVersion =
- VersionNumberGetter.getInstance().getLatestKnownVersion(context);
-
- boolean allowedToUpdate =
- checkForSufficientStorage() && isGooglePlayStoreAvailable(context);
- status.updateState =
- allowedToUpdate ? UpdateState.UPDATE_AVAILABLE : UpdateState.NONE;
-
- SharedPreferencesManager.getInstance().removeKey(
- ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION);
- } else if (!VersionNumberGetter.isCurrentOsVersionSupported()) {
- status.updateState = UpdateState.UNSUPPORTED_OS_VERSION;
- status.latestUnsupportedVersion = SharedPreferencesManager.getInstance().readString(
- ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION, null);
- } else {
- status.updateState = UpdateState.NONE;
+ SharedPreferences preferences = OmahaBase.getSharedPreferences();
+ status.latestVersion = preferences.getString(OmahaBase.PREF_LATEST_MODIFIED_VERSION, "");
+
+ status.updateState = UpdateState.NONE;
+ if (status.latestVersion != null && status.latestVersion.length() != 0 && OmahaBase.isNewVersionAvailableByVersion(status.latestVersion)) {
+ status.updateState = UpdateState.INLINE_UPDATE_AVAILABLE;
}
return status;
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
@@ -43,7 +43,8 @@ public class VersionNumberGetter {
private static VersionNumberGetter sInstanceForTests;
/** If false, OmahaClient will never report that a newer version is available. */
- private static boolean sEnableUpdateDetection = true;
+ // it must be false to disable version control via Omaha server
+ private static boolean sEnableUpdateDetection = false;
protected VersionNumberGetter() { }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
@@ -0,0 +1,204 @@
+// Copyright 2021 The Ungoogled Chromium Authors. All rights reserved.
+//
+// This file is part of Ungoogled Chromium Android.
+//
+// Ungoogled Chromium Android 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 any later version.
+//
+// Ungoogled Chromium Android 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 Ungoogled Chromium Android. If not,
+// see <https://www.gnu.org/licenses/>.
+
+package org.chromium.chrome.browser.omaha.inline;
+
+import static org.chromium.chrome.browser.omaha.UpdateConfigs.getUpdateNotificationInterval;
+
+import android.app.Activity;
+import android.content.SharedPreferences;
+import android.os.Build;
+import android.text.format.DateUtils;
+import org.chromium.build.BuildConfig;
+
+import androidx.annotation.Nullable;
+
+import org.chromium.base.Callback;
+import org.chromium.base.Log;
+import org.chromium.base.task.AsyncTask;
+import org.chromium.base.task.PostTask;
+import org.chromium.chrome.browser.app.ChromeActivity;
+import org.chromium.chrome.browser.omaha.OmahaBase;
+import org.chromium.chrome.browser.omaha.UpdateConfigs;
+import org.chromium.chrome.browser.omaha.UpdateStatusProvider;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.chrome.browser.tab.TabLaunchType;
+import org.chromium.chrome.browser.tabmodel.TabCreator;
+import org.chromium.chrome.browser.version.ChromeVersionInfo;
+import org.chromium.content_public.browser.LoadUrlParams;
+import org.chromium.content_public.browser.UiThreadTaskTraits;
+import org.chromium.ui.base.PageTransition;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.HttpURLConnection;
+import java.util.regex.Pattern;
+
+import org.chromium.chrome.browser.endpoint_fetcher.EndpointFetcher;
+import org.chromium.chrome.browser.endpoint_fetcher.EndpointResponse;
+import org.chromium.chrome.browser.omaha.VersionNumber;
+
+class BromiteInlineUpdateController implements InlineUpdateController {
+
+ private static final String TAG = "BromiteInlineUpdateController";
+ private final String REDIRECT_URL_PREFIX = "https://github.com/bromite/bromite/releases/download/";
+ private final String UPDATE_VERSION_URL = "https://github.com/bromite/bromite/releases/latest/download/";
+
+ private String getDownloadUrl() {
+ return UPDATE_VERSION_URL + BuildConfig.BUILD_TARGET_CPU + "_ChromePublic.apk";
+ }
+
+ private boolean mEnabled = true;
+ private Runnable mCallback;
+ private @Nullable @UpdateStatusProvider.UpdateState Integer mUpdateState =
+ UpdateStatusProvider.UpdateState.NONE;
+
+ BromiteInlineUpdateController(Runnable callback) {
+ mCallback = callback;
+ }
+
+ @Override
+ public void setEnabled(boolean enabled) {
+ if (mEnabled == enabled) return;
+
+ mEnabled = enabled;
+ if (mEnabled) pullCurrentState();
+ }
+
+ @Override
+ public @Nullable @UpdateStatusProvider.UpdateState Integer getStatus() {
+ if (mEnabled) pullCurrentState();
+ return mUpdateState;
+ }
+
+ @Override
+ public void startUpdate(Activity activity) {
+ assert ChromeActivity.class.isInstance(activity);
+ ChromeActivity thisActivity = (ChromeActivity) activity;
+ String downloadUrl = getDownloadUrl();
+ // Always open in new incognito tab
+ TabCreator tabCreator = thisActivity.getTabCreator(true);
+ tabCreator.createNewTab(new LoadUrlParams(downloadUrl, PageTransition.AUTO_BOOKMARK),
+ TabLaunchType.FROM_LINK, thisActivity.getActivityTab());
+ }
+
+ @Override
+ public void completeUpdate() {
+ }
+
+ private void pullCurrentState() {
+ if (OmahaBase.getSharedPreferences()
+ .getBoolean(OmahaBase.PREF_ALLOW_INLINE_UPDATE, false) == false) {
+ Log.i(TAG, "BromiteUpdater: disabled by user");
+ return;
+ }
+
+ if (mUpdateState != UpdateStatusProvider.UpdateState.NONE)
+ return;
+
+ if (shallUpdate() == false)
+ return;
+
+ switch (mUpdateState) {
+ case UpdateStatusProvider.UpdateState.INLINE_UPDATE_AVAILABLE:
+ break;
+ case UpdateStatusProvider.UpdateState.NONE:
+ checkLatestVersion((ok) -> {
+ if (ok == false) return;
+
+ SharedPreferences preferences = OmahaBase.getSharedPreferences();
+ String latestVersion = preferences.getString(OmahaBase.PREF_LATEST_MODIFIED_VERSION, "");
+
+ if (OmahaBase.isNewVersionAvailableByVersion(latestVersion)) {
+ postStatus(UpdateStatusProvider.UpdateState.INLINE_UPDATE_AVAILABLE);
+ } else {
+ if (mUpdateState != UpdateStatusProvider.UpdateState.NONE) {
+ postStatus(UpdateStatusProvider.UpdateState.NONE);
+ }
+ }
+ });
+ break;
+ case UpdateStatusProvider.UpdateState.INLINE_UPDATE_READY:
+ // Intentional fall through.
+ case UpdateStatusProvider.UpdateState.INLINE_UPDATE_FAILED:
+ // Intentional fall through.
+ case UpdateStatusProvider.UpdateState.INLINE_UPDATE_DOWNLOADING:
+ // Intentional fall through.
+ case UpdateStatusProvider.UpdateState.UNSUPPORTED_OS_VERSION:
+ // Intentional fall through.
+ default:
+ return;
+ }
+ }
+
+ private boolean shallUpdate() {
+ long currentTime = System.currentTimeMillis();
+ SharedPreferences preferences = OmahaBase.getSharedPreferences();
+ long lastPushedTimeStamp = preferences.getLong(OmahaBase.PREF_TIMESTAMP_OF_REQUEST, 0);
+ return currentTime - lastPushedTimeStamp >= getUpdateNotificationInterval();
+ }
+
+ private void checkLatestVersion(final Callback<Boolean> callback) {
+ assert UPDATE_VERSION_URL != null;
+
+ OmahaBase.resetUpdatePrefs();
+
+ String urlToCheck = getDownloadUrl();
+ Log.i(TAG, "BromiteUpdater: fetching with HEAD '%s'", urlToCheck);
+
+ EndpointFetcher.nativeHeadWithNoAuth(
+ (endpointResponse) -> {
+ OmahaBase.updateLastPushedTimeStamp(System.currentTimeMillis());
+ String redirectURL = endpointResponse.getRedirectUrl();
+ if (redirectURL != null) {
+ Log.i(TAG, "BromiteUpdater: obtained response '%s' and redirect URL '%s'", endpointResponse.getResponseString(), redirectURL);
+ if (redirectURL.indexOf(REDIRECT_URL_PREFIX) == 0) {
+ redirectURL = redirectURL.substring(REDIRECT_URL_PREFIX.length());
+ String[] parts = redirectURL.split(Pattern.quote("/"));
+ if (parts.length > 0) {
+ VersionNumber version = VersionNumber.fromString(parts[0]);
+ if (version != null) {
+ OmahaBase.setLastModifiedVersion(parts[0]);
+ callback.onResult(true);
+ return;
+ }
+ }
+ }
+ } else {
+ // retry after 1 hour
+ OmahaBase.updateLastPushedTimeStamp(
+ System.currentTimeMillis() - getUpdateNotificationInterval() -
+ DateUtils.HOUR_IN_MILLIS);
+ Log.i(TAG, "BromiteUpdater: failed, will retry in 1 hour");
+ }
+
+ callback.onResult(false);
+ },
+ Profile.getLastUsedRegularProfile(),
+ urlToCheck, /*timeout*/5000, /*follow_redirect*/false);
+ }
+
+ private void postStatus(@UpdateStatusProvider.UpdateState int status) {
+ mUpdateState = status;
+ PostTask.postTask(UiThreadTaskTraits.DEFAULT, mCallback);
+ }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
@@ -19,8 +19,10 @@ public class InlineUpdateControllerFactory {
@FakeAppUpdateManagerWrapper.Type
int mockInlineEndState = UpdateConfigs.getMockInlineScenarioEndState();
- // No test scenario was in place, and the inline flow has not been enabled, so use a
- // controller with no functionality.
- return new NoopInlineUpdateController(callback);
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.INLINE_UPDATE_FLOW)) {
+ return new BromiteInlineUpdateController(callback);
+ } else {
+ return new NoopInlineUpdateController(callback);
+ }
}
}
diff --git a/chrome/browser/endpoint_fetcher/BUILD.gn b/chrome/browser/endpoint_fetcher/BUILD.gn
--- a/chrome/browser/endpoint_fetcher/BUILD.gn
+++ b/chrome/browser/endpoint_fetcher/BUILD.gn
@@ -14,6 +14,7 @@ android_library("java") {
sources = [
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java",
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java",
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java",
]
annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
}
@@ -22,5 +23,6 @@ generate_jni("jni_headers") {
sources = [
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java",
"java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointResponse.java",
+ "java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java",
]
}
diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc b/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
--- a/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
+++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
@@ -26,10 +26,15 @@
#include "base/android/jni_string.h"
#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointFetcher_jni.h"
#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointResponse_jni.h"
+#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointHeaderResponse_jni.h"
#include "chrome/browser/profiles/profile_android.h"
#endif // defined(OS_ANDROID)
+#include "net/base/load_flags.h"
+#include "net/http/http_status_code.h"
+#include "services/network/public/cpp/resource_request.h"
+
namespace {
const char kContentTypeKey[] = "Content-Type";
const char kDeveloperKey[] = "X-Developer-Key";
@@ -151,6 +156,19 @@ EndpointFetcher::EndpointFetcher(
identity_manager_(nullptr),
sanitize_response_(true) {}
+EndpointFetcher::EndpointFetcher(
+ Profile* const profile,
+ const GURL& url,
+ int64_t timeout_ms,
+ const net::NetworkTrafficAnnotationTag& annotation_tag)
+ : url_(url),
+ timeout_ms_(timeout_ms),
+ annotation_tag_(annotation_tag),
+ url_loader_factory_(profile->GetDefaultStoragePartition()
+ ->GetURLLoaderFactoryForBrowserProcess()),
+ identity_manager_(nullptr),
+ sanitize_response_(false) {}
+
EndpointFetcher::~EndpointFetcher() = default;
void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) {
@@ -280,6 +298,77 @@ void EndpointFetcher::OnSanitizationResult(
std::move(endpoint_fetcher_callback).Run(std::move(response));
}
+void EndpointFetcher::PerformHeadRequest(
+ EndpointFetcherCallback endpoint_fetcher_callback,
+ const char* key,
+ bool allow_redirect) {
+
+ endpoint_fetcher_callback_ = std::move(endpoint_fetcher_callback);
+
+ auto resource_request = std::make_unique<network::ResourceRequest>();
+ resource_request->method = "HEAD";
+ resource_request->url = url_;
+ resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit;
+ resource_request->load_flags = net::LOAD_BYPASS_CACHE | net::LOAD_DISABLE_CACHE
+ | net::LOAD_DO_NOT_SAVE_COOKIES;
+ if (allow_redirect == false) {
+ resource_request->redirect_mode = network::mojom::RedirectMode::kManual;
+ }
+
+ simple_url_loader_ = network::SimpleURLLoader::Create(
+ std::move(resource_request), annotation_tag_);
+ simple_url_loader_->SetTimeoutDuration(
+ base::TimeDelta::FromMilliseconds(timeout_ms_));
+ simple_url_loader_->SetAllowHttpErrorResults(true);
+
+ if (!response_)
+ response_ = std::make_unique<EndpointResponse>();
+
+ if (allow_redirect == false) {
+ simple_url_loader_->SetOnRedirectCallback(base::BindRepeating(
+ &EndpointFetcher::OnSimpleLoaderRedirect, base::Unretained(this)));
+ }
+
+ simple_url_loader_->DownloadHeadersOnly(
+ url_loader_factory_.get(),
+ base::BindOnce(&EndpointFetcher::OnURLLoadComplete,
+ base::Unretained(this)));
+}
+
+void EndpointFetcher::OnSimpleLoaderRedirect(
+ const net::RedirectInfo& redirect_info,
+ const network::mojom::URLResponseHead& response_head,
+ std::vector<std::string>* removed_headers) {
+ url_ = redirect_info.new_url;
+ if (response_->redirect_url.empty()) {
+ response_->redirect_url = url_.spec();
+ response_->response = std::to_string(redirect_info.status_code);
+ } else {
+ LOG(INFO) << "BromiteUpdater: redirect URL is not empty, status code is " << redirect_info.status_code;
+ }
+
+ std::move(endpoint_fetcher_callback_).Run(std::move(response_));
+}
+
+void EndpointFetcher::OnURLLoadComplete(
+ scoped_refptr<net::HttpResponseHeaders> headers) {
+ if (!endpoint_fetcher_callback_)
+ return;
+
+ if (headers) {
+ if (response_->redirect_url.empty()) {
+ std::string location;
+ if (simple_url_loader_->ResponseInfo()->headers->IsRedirect(&location)) {
+ response_->redirect_url = location;
+ }
+ }
+ }
+
+ std::string net_error = net::ErrorToString(simple_url_loader_->NetError());
+ response_->response = net_error;
+ std::move(endpoint_fetcher_callback_).Run(std::move(response_));
+}
+
#if defined(OS_ANDROID)
namespace {
static void OnEndpointFetcherComplete(
@@ -296,6 +385,25 @@ static void OnEndpointFetcherComplete(
base::android::AttachCurrentThread(),
std::move(endpoint_response->response))));
}
+
+static void OnEndpointFetcherHeadComplete(
+ const base::android::JavaRef<jobject>& jcaller,
+ // Passing the endpoint_fetcher ensures the endpoint_fetcher's
+ // lifetime extends to the callback and is not destroyed
+ // prematurely (which would result in cancellation of the request).
+ std::unique_ptr<EndpointFetcher> endpoint_fetcher,
+ std::unique_ptr<EndpointResponse> endpoint_response) {
+ base::android::RunObjectCallbackAndroid(
+ jcaller, Java_EndpointHeaderResponse_createEndpointResponse(
+ base::android::AttachCurrentThread(),
+ base::android::ConvertUTF8ToJavaString(
+ base::android::AttachCurrentThread(),
+ std::move(endpoint_response->response)),
+ base::android::ConvertUTF8ToJavaString(
+ base::android::AttachCurrentThread(),
+ std::move(endpoint_response->redirect_url))));
+}
+
} // namespace
// TODO(crbug.com/1077537) Create a KeyProvider so
@@ -381,4 +489,25 @@ static void JNI_EndpointFetcher_NativeFetchWithNoAuth(
nullptr);
}
+static void JNI_EndpointFetcher_NativeHeadWithNoAuth(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& jprofile,
+ const base::android::JavaParamRef<jstring>& jurl,
+ jlong jtimeout, jboolean allow_redirect,
+ const base::android::JavaParamRef<jobject>& jcallback) {
+ auto endpoint_fetcher = std::make_unique<EndpointFetcher>(
+ ProfileAndroid::FromProfileAndroid(jprofile),
+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ jtimeout,
+ NO_TRAFFIC_ANNOTATION_YET);
+ auto* const endpoint_fetcher_ptr = endpoint_fetcher.get();
+ endpoint_fetcher_ptr->PerformHeadRequest(
+ base::BindOnce(&OnEndpointFetcherHeadComplete,
+ base::android::ScopedJavaGlobalRef<jobject>(jcallback),
+ // unique_ptr endpoint_fetcher is passed until the callback
+ // to ensure its lifetime across the request.
+ std::move(endpoint_fetcher)),
+ nullptr, allow_redirect);
+}
+
#endif // defined(OS_ANDROID)
diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher.h b/chrome/browser/endpoint_fetcher/endpoint_fetcher.h
--- a/chrome/browser/endpoint_fetcher/endpoint_fetcher.h
+++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher.h
@@ -14,6 +14,8 @@
#include "components/signin/public/identity_manager/scope_set.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/data_decoder/public/cpp/json_sanitizer.h"
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
namespace network {
struct ResourceRequest;
@@ -31,6 +33,8 @@ class Profile;
struct EndpointResponse {
std::string response;
+ long last_modified;
+ std::string redirect_url;
// TODO(crbug.com/993393) Add more detailed error messaging
};
@@ -77,6 +81,12 @@ class EndpointFetcher {
const GURL& url,
const net::NetworkTrafficAnnotationTag& annotation_tag);
+ // Constructor if no authentication is needed, with timeout
+ EndpointFetcher(Profile* const profile,
+ const GURL& url,
+ int64_t timeout_ms,
+ const net::NetworkTrafficAnnotationTag& annotation_tag);
+
// Used for tests. Can be used if caller constructs their own
// url_loader_factory and identity_manager.
EndpointFetcher(
@@ -113,6 +123,10 @@ class EndpointFetcher {
virtual void PerformRequest(EndpointFetcherCallback endpoint_fetcher_callback,
const char* key);
+ virtual void PerformHeadRequest(EndpointFetcherCallback endpoint_fetcher_callback,
+ const char* key,
+ bool allow_redirect);
+
protected:
// Used for Mock only. see MockEndpointFetcher class.
explicit EndpointFetcher(
@@ -126,6 +140,10 @@ class EndpointFetcher {
std::unique_ptr<std::string> response_body);
void OnSanitizationResult(EndpointFetcherCallback endpoint_fetcher_callback,
data_decoder::JsonSanitizer::Result result);
+ void OnURLLoadComplete(scoped_refptr<net::HttpResponseHeaders> headers);
+ void OnSimpleLoaderRedirect(const net::RedirectInfo& redirect_info,
+ const network::mojom::URLResponseHead& response_head,
+ std::vector<std::string>* removed_headers);
enum AuthType { CHROME_API_KEY, OAUTH, NO_AUTH };
AuthType auth_type_;
@@ -133,7 +151,7 @@ class EndpointFetcher {
// Members set in constructor to be passed to network::ResourceRequest or
// network::SimpleURLLoader.
const std::string oauth_consumer_name_;
- const GURL url_;
+ GURL url_;
const std::string http_method_;
const std::string content_type_;
int64_t timeout_ms_;
@@ -152,6 +170,9 @@ class EndpointFetcher {
access_token_fetcher_;
std::unique_ptr<network::SimpleURLLoader> simple_url_loader_;
+ EndpointFetcherCallback endpoint_fetcher_callback_;
+ std::unique_ptr<EndpointResponse> response_;
+
base::WeakPtrFactory<EndpointFetcher> weak_ptr_factory_{this};
};
diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
--- a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
+++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
@@ -68,6 +68,14 @@ public final class EndpointFetcher {
profile, url, httpsMethod, contentType, postData, timeout, headers, callback);
}
+ @MainThread
+ public static void nativeHeadWithNoAuth(
+ Callback<EndpointHeaderResponse> callback, Profile profile,
+ String url, long timeout, boolean allow_redirect) {
+ EndpointFetcherJni.get().nativeHeadWithNoAuth(
+ profile, url, timeout, allow_redirect, callback);
+ }
+
@NativeMethods
public interface Natives {
void nativeFetchOAuth(Profile profile, String oathConsumerName, String url,
@@ -78,5 +86,8 @@ public final class EndpointFetcher {
Callback<EndpointResponse> callback);
void nativeFetchWithNoAuth(
Profile profile, String url, Callback<EndpointResponse> callback);
+ void nativeHeadWithNoAuth(
+ Profile profile, String url, long timeout, boolean allow_redirect,
+ Callback<EndpointHeaderResponse> callback);
}
}
diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointHeaderResponse.java
@@ -0,0 +1,31 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.endpoint_fetcher;
+
+import org.chromium.base.annotations.CalledByNative;
+
+public class EndpointHeaderResponse {
+ private final String mResponseString;
+ private final String mRedirectUrl;
+
+ public EndpointHeaderResponse(String responseString, String redirectUrl) {
+ mResponseString = responseString;
+ mRedirectUrl = redirectUrl;
+ }
+
+ public String getResponseString() {
+ return mResponseString;
+ }
+
+ public String getRedirectUrl() {
+ return mRedirectUrl;
+ }
+
+ @CalledByNative
+ private static EndpointHeaderResponse createEndpointResponse(
+ String response, String redirectUrl) {
+ return new EndpointHeaderResponse(response, redirectUrl);
+ }
+}
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2037,7 +2037,7 @@
{
"name": "enable-inline-update-flow",
"owners": [ "nyquist", "dtrainor" ],
- "expiry_milestone": 83
+ "expiry_milestone": -1
},
{
"name": "enable-input-event-logging",
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
@@ -3582,10 +3582,9 @@ const char kVoiceButtonInTopToolbarDescription[] =
"Enables showing the voice search button in the top toolbar. Enabling "
"Adaptive Button overrides this.";
-const char kInlineUpdateFlowName[] = "Enable Google Play inline update flow";
+const char kInlineUpdateFlowName[] = "Enable inline update flow";
const char kInlineUpdateFlowDescription[] =
- "When this flag is set, instead of taking the user to the Google Play "
- "Store when an update is available, the user is presented with an inline "
+ "When this flag is set, the user is presented with an inline "
"flow where they do not have to leave Chrome until the update is ready "
"to install.";
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -627,7 +627,7 @@ const base::Feature kIncognitoScreenshot{"IncognitoScreenshot",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kInlineUpdateFlow{"InlineUpdateFlow",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kInstantStart{"InstantStart",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1657,6 +1657,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
Chrome updates are no longer supported for this version of Android
</message>
+ <message name="IDS_ALLOW_INLINE_UPDATE_TITLE" desc="Title for allow inline update preference">
+ Allow checking for updates
+ </message>
+ <message name="IDS_ALLOW_INLINE_UPDATE_SUMMARY" desc="Summary for allow inline update preference">
+ Check for updates by contacting the Bromite repo
+ </message>
<!-- Account management UI strings. -->
<message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
@@ -3144,7 +3150,7 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
- Update Chrome
+ Update Bromite
</message>
<message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
Newer version is available
--
2.17.1

View file

@ -12,7 +12,7 @@ See also: https://github.com/bromite/bromite/issues/553
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -594,12 +594,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -663,12 +663,13 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
port_config.enable_nonproxied_udp = false;
break;
case DEFAULT:

View file

@ -1,38 +0,0 @@
From: Anton Bikineev <bikineev@chromium.org>
Date: Fri, 4 Jun 2021 09:36:01 +0000
Subject: DCScan: Fix builds with system sysroots
If 'use_sysroot=false' is used and the system linux-headers are < 5.8,
the compilation fails due to undefined 'uffdio_writeprotect'.
Bug: 1206047
Change-Id: Ia73e71b84ea372af49a881f1b14187454bcb4cd8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2940163
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Kentaro Hara <haraken@chromium.org>
Auto-Submit: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#889195}
---
base/allocator/partition_allocator/partition_alloc_config.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/base/allocator/partition_allocator/partition_alloc_config.h b/base/allocator/partition_allocator/partition_alloc_config.h
--- a/base/allocator/partition_allocator/partition_alloc_config.h
+++ b/base/allocator/partition_allocator/partition_alloc_config.h
@@ -36,9 +36,12 @@ static_assert(sizeof(void*) != 8, "");
#if defined(PA_HAS_64_BITS_POINTERS) && \
(defined(OS_LINUX) || defined(OS_ANDROID))
+#include <linux/version.h>
// TODO(bikineev): Enable for ChromeOS.
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 8, 0)
#define PA_STARSCAN_UFFD_WRITE_PROTECTOR_SUPPORTED
#endif
+#endif
// POSIX is not only UNIX, e.g. macOS and other OSes. We do use Linux-specific
// features such as futex(2).
--
2.17.1

View file

@ -0,0 +1,36 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 26 Sep 2021 11:17:53 +0200
Subject: Disable AGSA by default
---
chrome/browser/flags/android/chrome_feature_list.cc | 2 +-
.../org/chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -605,7 +605,7 @@ const base::Feature kEnhancedProtectionPromoCard{
"EnhancedProtectionPromoCard", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kExperimentsForAgsa{"ExperimentsForAgsa",
- base::FEATURE_ENABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kExploreSites{"ExploreSites",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
@@ -86,7 +86,7 @@ public class CachedFeatureFlags {
.put(ChromeFeatureList.CCT_REMOVE_REMOTE_VIEW_IDS, true)
.put(ChromeFeatureList.OFFLINE_MEASUREMENTS_BACKGROUND_TASK, false)
.put(ChromeFeatureList.CCT_INCOGNITO, true)
- .put(ChromeFeatureList.EXPERIMENTS_FOR_AGSA, true)
+ .put(ChromeFeatureList.EXPERIMENTS_FOR_AGSA, false)
.put(ChromeFeatureList.APP_MENU_MOBILE_SITE_OPTION, false)
.put(ChromeFeatureList.CLIPBOARD_SUGGESTION_CONTENT_HIDDEN, false)
.put(ChromeFeatureList.OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, false)
--
2.17.1

View file

@ -9,7 +9,7 @@ Subject: Disable DRM media origin IDs preprovisioning
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
@@ -619,7 +619,7 @@ const base::Feature kMediaDrmPersistentLicense{
@@ -660,7 +660,7 @@ const base::Feature kMediaDrmPersistentLicense{
// MediaDrmBridge. If disabled, MediaDrmBridge will get unprovisioned origin IDs
// which will trigger provisioning process after MediaDrmBridge is created.
const base::Feature kMediaDrmPreprovisioning{"MediaDrmPreprovisioning",

View file

@ -1,25 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 29 Apr 2021 20:28:16 +0200
Subject: Disable FLoC by default
This is redundant since the privacy sandbox is already disabled by default,
but added as an extra measure
---
components/federated_learning/features/features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/federated_learning/features/features.cc b/components/federated_learning/features/features.cc
--- a/components/federated_learning/features/features.cc
+++ b/components/federated_learning/features/features.cc
@@ -34,7 +34,7 @@ const base::Feature kFlocPagesWithAdResourcesDefaultIncludedInFlocComputation{
// required.
// TODO(yaoxia): merge other floc features into this one.
const base::Feature kFederatedLearningOfCohorts{
- "FederatedLearningOfCohorts", base::FEATURE_ENABLED_BY_DEFAULT};
+ "FederatedLearningOfCohorts", base::FEATURE_DISABLED_BY_DEFAULT};
constexpr base::FeatureParam<base::TimeDelta> kFlocIdScheduledUpdateInterval{
&kFederatedLearningOfCohorts, "update_interval",
base::TimeDelta::FromDays(7)};
--
2.17.1

View file

@ -22,7 +22,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c
// We need to start by listening to AllSources, since we don't know which tab
// the navigation might occur in.
@@ -288,7 +288,7 @@ void ChromeOmniboxNavigationObserver::OnAllLoadingFinished() {
@@ -291,7 +291,7 @@ void ChromeOmniboxNavigationObserver::OnAllLoadingFinished() {
delete this;
}
@ -31,7 +31,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c
const GURL& destination_url) {
net::NetworkTrafficAnnotationTag traffic_annotation =
net::DefineNetworkTrafficAnnotation("omnibox_navigation_observer", R"(
@@ -329,4 +329,4 @@ void ChromeOmniboxNavigationObserver::CreateLoader(
@@ -336,4 +336,4 @@ void ChromeOmniboxNavigationObserver::CreateLoader(
loader_->SetAllowHttpErrorResults(true);
loader_->SetOnRedirectCallback(base::BindRepeating(
&ChromeOmniboxNavigationObserver::OnURLRedirect, base::Unretained(this)));
@ -40,7 +40,7 @@ diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.cc b/c
diff --git a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.h b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.h
--- a/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.h
+++ b/chrome/browser/ui/omnibox/chrome_omnibox_navigation_observer.h
@@ -126,7 +126,7 @@ class ChromeOmniboxNavigationObserver : public OmniboxNavigationObserver,
@@ -130,7 +130,7 @@ class ChromeOmniboxNavigationObserver : public OmniboxNavigationObserver,
// Creates a URL loader for |destination_url| and stores it in |loader_|.
// Does not start the loader.

View file

@ -1,37 +0,0 @@
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
---
.../java/src/org/chromium/chrome/browser/omaha/OmahaBase.java | 2 +-
.../org/chromium/chrome/browser/omaha/VersionNumberGetter.java | 2 +-
2 files changed, 2 insertions(+), 2 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
@@ -158,7 +158,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
@@ -43,7 +43,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() { }
--
2.17.1

View file

@ -1,23 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 29 Apr 2021 20:26:31 +0200
Subject: Disable RTCGetCurrentBrowsingContextMedia by default
---
third_party/blink/common/features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -219,7 +219,7 @@ const base::Feature kRawClipboard{"RawClipboard",
// Kill switch for getCurrentBrowsingContextMedia(), which allows capturing of
// web content from the tab from which it is called. (crbug.com/1136940)
const base::Feature kRTCGetCurrentBrowsingContextMedia{
- "RTCGetCurrentBrowsingContextMedia", base::FEATURE_ENABLED_BY_DEFAULT};
+ "RTCGetCurrentBrowsingContextMedia", base::FEATURE_DISABLED_BY_DEFAULT};
// Changes the default RTCPeerConnection constructor behavior to use Unified
// Plan as the SDP semantics. When the feature is enabled, Unified Plan is used
--
2.17.1

View file

@ -1,23 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 22 Jul 2021 23:10:52 +0200
Subject: Disable UA client hint
---
content/public/common/content_features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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
@@ -263,7 +263,7 @@ const base::Feature kExtraSafelistedRequestHeadersForOutOfBlinkCors{
// Controls whether Client Hints are guarded by Permissions Policy.
const base::Feature kFeaturePolicyForClientHints{
- "FeaturePolicyForClientHints", base::FEATURE_ENABLED_BY_DEFAULT};
+ "FeaturePolicyForClientHints", base::FEATURE_DISABLED_BY_DEFAULT};
// Enables fixes for matching src: local() for web fonts correctly against full
// font name or postscript name. Rolling out behind a flag, as enabling this
--
2.17.1

View file

@ -9,7 +9,7 @@ Subject: Disable all promo dialogs
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -638,7 +638,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -822,7 +822,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
* displayed.
*/
private boolean triggerPromo(boolean intentWithEffect) {
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
if (CommandLine.getInstance().hasSwitch(ChromeSwitches.DISABLE_STARTUP_PROMOS)) {
return false;
}
@@ -673,8 +673,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -857,8 +857,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
preferenceManager.writeBoolean(
ChromePreferenceKeys.PROMOS_SKIPPED_ON_FIRST_START, true);
}

View file

@ -3,26 +3,45 @@ Date: Thu, 19 Dec 2019 22:52:53 +0100
Subject: Disable feeds support by default
---
.../org/chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +-
components/feed/feed_feature_list.cc | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
.../chromium/chrome/browser/feed/shared/FeedFeatures.java | 8 +-------
.../chromium/chrome/browser/flags/CachedFeatureFlags.java | 2 +-
components/feed/feed_feature_list.cc | 4 ++--
3 files changed, 4 insertions(+), 10 deletions(-)
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/shared/FeedFeatures.java
@@ -35,13 +35,7 @@ public final class FeedFeatures {
* the user is signed in and confirms it's not a child profile.
*/
public static boolean isWebFeedUIEnabled() {
- // TODO(b/197354832, b/188188861): change consent check to SIGNIN.
- return ChromeFeatureList.isEnabled(ChromeFeatureList.WEB_FEED)
- && IdentityServicesProvider.get()
- .getSigninManager(Profile.getLastUsedRegularProfile())
- .getIdentityManager()
- .hasPrimaryAccount(ConsentLevel.SYNC)
- && !Profile.getLastUsedRegularProfile().isChild();
+ return false;
}
/**
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlags.java
@@ -75,7 +75,7 @@ public class CachedFeatureFlags {
put(ChromeFeatureList.TAB_TO_GTS_ANIMATION, true);
put(ChromeFeatureList.TEST_DEFAULT_DISABLED, false);
put(ChromeFeatureList.TEST_DEFAULT_ENABLED, true);
- put(ChromeFeatureList.INTEREST_FEED_V2, true);
+ put(ChromeFeatureList.INTEREST_FEED_V2, false);
put(ChromeFeatureList.THEME_REFACTOR_ANDROID, false);
put(ChromeFeatureList.USE_CHIME_ANDROID_SDK, false);
put(ChromeFeatureList.CCT_INCOGNITO_AVAILABLE_TO_THIRD_PARTY, false);
@@ -77,7 +77,7 @@ public class CachedFeatureFlags {
.put(ChromeFeatureList.TAB_TO_GTS_ANIMATION, true)
.put(ChromeFeatureList.TEST_DEFAULT_DISABLED, false)
.put(ChromeFeatureList.TEST_DEFAULT_ENABLED, true)
- .put(ChromeFeatureList.INTEREST_FEED_V2, true)
+ .put(ChromeFeatureList.INTEREST_FEED_V2, false)
.put(ChromeFeatureList.THEME_REFACTOR_ANDROID, false)
.put(ChromeFeatureList.USE_CHIME_ANDROID_SDK, false)
.put(ChromeFeatureList.CCT_INCOGNITO_AVAILABLE_TO_THIRD_PARTY, false)
diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc
--- a/components/feed/feed_feature_list.cc
+++ b/components/feed/feed_feature_list.cc
@@ -11,12 +11,12 @@
@@ -12,12 +12,12 @@
namespace feed {
const base::Feature kInterestFeedContentSuggestions{

View file

@ -28,7 +28,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
}
std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
@@ -607,7 +597,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
@@ -610,7 +600,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
// debugger or if the machine was suspended) and OnURLFetchComplete() hasn't
// had a chance to run yet from the previous request. In this case, don't
// start a new request and just let the previous one finish.

View file

@ -0,0 +1,21 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Fri, 8 Oct 2021 00:30:26 +0200
Subject: Disable lock icon in address bar by default
---
chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
--- a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
+++ b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
@@ -313,5 +313,5 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() {
void ChromeLocationBarModelDelegate::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(omnibox::kPreventUrlElisionsInOmnibox, true);
- registry->RegisterBooleanPref(omnibox::kLockIconInAddressBarEnabled, false);
+ registry->RegisterBooleanPref(omnibox::kLockIconInAddressBarEnabled, true);
}
--
2.17.1

View file

@ -3,54 +3,60 @@ Date: Thu, 4 Jul 2019 19:08:52 -0400
Subject: Disable media router and remoting by default
---
.../browser/media/router/media_router_feature.cc | 15 +++------------
chrome/browser/profiles/profile.cc | 2 +-
chrome/browser/profiles/profile_impl.cc | 2 +-
3 files changed, 5 insertions(+), 14 deletions(-)
.../media/router/media_router_feature.cc | 25 ++++++-------------
chrome/browser/profiles/profile.cc | 2 +-
chrome/browser/profiles/profile_impl.cc | 2 +-
3 files changed, 9 insertions(+), 20 deletions(-)
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
--- a/chrome/browser/media/router/media_router_feature.cc
+++ b/chrome/browser/media/router/media_router_feature.cc
@@ -52,16 +52,6 @@ const base::Feature kCastFeedbackDialog{"CastFeedbackDialog",
base::FEATURE_ENABLED_BY_DEFAULT};
@@ -37,26 +37,15 @@ const base::Feature kAllowAllSitesToInitiateMirroring{
"AllowAllSitesToInitiateMirroring", base::FEATURE_DISABLED_BY_DEFAULT};
#endif // !defined(OS_ANDROID)
-#if defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
-namespace {
-const PrefService::Preference* GetMediaRouterPref(
- content::BrowserContext* context) {
- return user_prefs::UserPrefs::Get(context)->FindPreference(
- ::prefs::kEnableMediaRouter);
-}
-} // namespace
-#endif // defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
-
-base::flat_map<content::BrowserContext*, bool>& GetStoredPrefValues() {
- static base::NoDestructor<base::flat_map<content::BrowserContext*, bool>>
- stored_pref_values;
-
- return *stored_pref_values;
-}
-} // namespace
-
-void ClearMediaRouterStoredPrefsForTesting() {
+/*void ClearMediaRouterStoredPrefsForTesting() {
GetStoredPrefValues().clear();
-}
+}*/
bool MediaRouterEnabled(content::BrowserContext* context) {
+ return false;
+}
+
+/*
#if !defined(OS_ANDROID)
if (!base::FeatureList::IsEnabled(kMediaRouter))
@@ -69,7 +59,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
#endif // !defined(OS_ANDROID)
return false;
@@ -80,7 +69,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
return allowed;
}
return true;
-}
+}*/
#if defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
- static base::NoDestructor<base::flat_map<content::BrowserContext*, bool>>
+/* static base::NoDestructor<base::flat_map<content::BrowserContext*, bool>>
stored_pref_values;
// If the Media Router was already enabled or disabled for |context|, then it
@@ -90,7 +80,8 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
// The component extension cannot be loaded in guest sessions.
// TODO(crbug.com/756243): Figure out why.
- return !Profile::FromBrowserContext(context)->IsGuestSession();
+ return !Profile::FromBrowserContext(context)->IsGuestSession(); */
+ return false;
#else // !(defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS))
return false;
#endif // defined(OS_ANDROID) || BUILDFLAG(ENABLE_EXTENSIONS)
#if !defined(OS_ANDROID)
void RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
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
@@ -355,7 +355,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -356,7 +356,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
media_router::prefs::kMediaRouterEnableCloudServices, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(
@ -62,7 +68,7 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -455,7 +455,7 @@ void ProfileImpl::RegisterProfilePrefs(
@@ -434,7 +434,7 @@ void ProfileImpl::RegisterProfilePrefs(
#endif
registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);

View file

@ -3,9 +3,9 @@ Date: Wed, 20 Feb 2019 21:41:26 +0100
Subject: Disable metrics collection for NTP tiles
---
.../browser/android/ntp/most_visited_sites_bridge.cc | 11 ++---------
components/ntp_tiles/BUILD.gn | 3 ---
2 files changed, 2 insertions(+), 12 deletions(-)
.../browser/android/ntp/most_visited_sites_bridge.cc | 10 ++--------
components/ntp_tiles/BUILD.gn | 3 ---
2 files changed, 2 insertions(+), 11 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
@ -26,7 +26,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
namespace {
@@ -237,7 +235,6 @@ void MostVisitedSitesBridge::RecordPageImpression(
@@ -233,7 +231,6 @@ void MostVisitedSitesBridge::RecordPageImpression(
JNIEnv* env,
const JavaParamRef<jobject>& obj,
jint jtiles_count) {
@ -34,31 +34,30 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
}
void MostVisitedSitesBridge::RecordTileImpression(
@@ -250,6 +247,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
@@ -245,6 +242,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
jint jtitle_source,
jint jsource,
jlong jdata_generation_time_ms,
const JavaParamRef<jobject>& jurl) {
+#if 0
std::unique_ptr<GURL> url = url::GURLAndroid::ToNativeGURL(env, jurl);
TileTitleSource title_source = static_cast<TileTitleSource>(jtitle_source);
TileSource source = static_cast<TileSource>(jsource);
@@ -260,6 +258,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
@@ -254,6 +252,7 @@ void MostVisitedSitesBridge::RecordTileImpression(
ntp_tiles::metrics::RecordTileImpression(ntp_tiles::NTPTileImpression(
jindex, source, title_source, visual_type, icon_type,
base::Time::FromJavaTime(jdata_generation_time_ms), *url));
jindex, source, title_source, visual_type, icon_type, *url));
+#endif
}
void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
@@ -270,12 +269,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
@@ -263,11 +262,6 @@ void MostVisitedSitesBridge::RecordOpenedMostVisitedItem(
jint tile_type,
jint title_source,
jint source,
jlong jdata_generation_time_ms) {
jint source) {
- 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()));
}
@ -75,7 +74,7 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn
"most_visited_sites.cc",
"most_visited_sites.h",
"ntp_tile.cc",
@@ -84,7 +82,6 @@ source_set("unit_tests") {
@@ -83,7 +81,6 @@ source_set("unit_tests") {
"custom_links_manager_impl_unittest.cc",
"custom_links_store_unittest.cc",
"icon_cacher_impl_unittest.cc",

View file

@ -9,15 +9,15 @@ Subject: Disable metrics on all I/O threads
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
@@ -931,7 +931,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -965,7 +965,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
- GoogleUpdateSettings::GetCollectStatsConsent());
+ false);
registry->RegisterBooleanPref(prefs::kDevToolsRemoteDebuggingAllowed, true);
}
DownloadRequestLimiter* BrowserProcessImpl::download_request_limiter() {
--
2.17.1

View file

@ -17,8 +17,8 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/
- "OfflinePagesInDownloadHomeOpenInCct", base::FEATURE_ENABLED_BY_DEFAULT};
+ "OfflinePagesInDownloadHomeOpenInCct", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kOfflinePagesCTSuppressNotificationsFeature{
"OfflinePagesCTSuppressNotifications", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kOfflineIndicatorFeature{"OfflineIndicator",
base::FEATURE_DISABLED_BY_DEFAULT};
--
2.17.1

View file

@ -12,17 +12,18 @@ a corresponding user option to individually disable their usage.
diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
--- a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
+++ b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
@@ -261,5 +261,5 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() {
@@ -312,6 +312,6 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() {
// static
void ChromeLocationBarModelDelegate::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
- registry->RegisterBooleanPref(omnibox::kPreventUrlElisionsInOmnibox, false);
+ registry->RegisterBooleanPref(omnibox::kPreventUrlElisionsInOmnibox, true);
registry->RegisterBooleanPref(omnibox::kLockIconInAddressBarEnabled, false);
}
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
@@ -464,13 +464,13 @@ ComponentResult IDNToUnicodeOneComponent(
@@ -463,13 +463,13 @@ ComponentResult IDNToUnicodeOneComponent(
} // namespace
const FormatUrlType kFormatUrlOmitNothing = 0;

View file

@ -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
@@ -2085,10 +2085,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -1851,10 +1851,8 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
}
PluginData* LocalFrame::GetPluginData() const {

View file

@ -12,7 +12,7 @@ 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
@@ -297,7 +297,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
@@ -300,7 +300,7 @@ bool DomDistillerViewerSource::ShouldServiceRequest(
std::string DomDistillerViewerSource::GetContentSecurityPolicy(
network::mojom::CSPDirectiveName directive) {
if (directive == network::mojom::CSPDirectiveName::StyleSrc) {

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 19 Aug 2021 23:11:16 +0200
Subject: Disable search engine DSE automatic permission
---
components/permissions/features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
--- a/components/permissions/features.cc
+++ b/components/permissions/features.cc
@@ -76,7 +76,7 @@ const base::Feature kRevisedOriginHandling{"PermissionsRevisedOriginHandling",
// When enabled, the Default Search Engine does not automatically receive the
// "geolocation" and "notifications" permissions. DSE only applies to Android.
const base::Feature kRevertDSEAutomaticPermissions{
- "RevertDSEAutomaticPermissions", base::FEATURE_DISABLED_BY_DEFAULT};
+ "RevertDSEAutomaticPermissions", base::FEATURE_ENABLED_BY_DEFAULT};
#endif // defined(OS_ANDROID)
} // namespace features
--
2.17.1

View file

@ -9,7 +9,7 @@ Subject: Disable seed-based field trials
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
@@ -260,8 +260,8 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
@@ -258,8 +258,8 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
// instance is set.
feature_list->RegisterExtraFeatureOverrides(extra_overrides);
@ -19,7 +19,7 @@ diff --git a/components/variations/service/variations_field_trial_creator.cc b/c
if (!command_line->HasSwitch(switches::kDisableFieldTrialTestingConfig) &&
!command_line->HasSwitch(::switches::kForceFieldTrials) &&
!command_line->HasSwitch(switches::kVariationsServerURL)) {
@@ -275,10 +275,12 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
@@ -273,10 +273,12 @@ bool VariationsFieldTrialCreator::SetupFieldTrials(
}
#endif // BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
bool used_seed = false;

View file

@ -43,15 +43,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -164,6 +164,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCCTRedirectPreconnect,
&kCCTRemoveRemoteViewIds,
&kCCTReportParallelRequestStatus,
@@ -172,6 +172,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCCTClientDataHeader,
&kCCTExternalLinkHandling,
&kCCTIncognito,
+ &kChromeSmartSelection,
&kCCTResourcePrefetch,
&kDarkenWebsitesCheckboxInThemesSetting,
&kDontAutoHideBrowserControls,
@@ -460,6 +461,9 @@ const base::Feature kChromeStartupDelegate{"ChromeStartupDelegate",
&kCCTIncognitoAvailableToThirdParty,
&kCCTPostMessageAPI,
&kCCTRedirectPreconnect,
@@ -492,6 +493,9 @@ const base::Feature kChromeSharingHub{"ChromeSharingHub",
const base::Feature kChromeSurveyNextAndroid{"ChromeSurveyNextAndroid",
base::FEATURE_DISABLED_BY_DEFAULT};
@ -64,10 +64,10 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -50,6 +50,7 @@ extern const base::Feature kChromeShareLongScreenshot;
@@ -52,6 +52,7 @@ extern const base::Feature kChromeShareHighlightsAndroid;
extern const base::Feature kChromeShareLongScreenshot;
extern const base::Feature kChromeShareScreenshot;
extern const base::Feature kChromeSharingHub;
extern const base::Feature kChromeStartupDelegate;
+extern const base::Feature kChromeSmartSelection;
extern const base::Feature kChromeSurveyNextAndroid;
extern const base::Feature kCommandLineOnNonRooted;
@ -75,18 +75,18 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -275,6 +275,7 @@ public abstract class ChromeFeatureList {
public static final String CHROME_SHARE_LONG_SCREENSHOT = "ChromeShareLongScreenshot";
public static final String CHROME_SHARE_SCREENSHOT = "ChromeShareScreenshot";
public static final String CHROME_SHARING_HUB = "ChromeSharingHub";
@@ -277,6 +277,7 @@ public abstract class ChromeFeatureList {
public static final String CCT_EXTERNAL_LINK_HANDLING = "CCTExternalLinkHandling";
public static final String CCT_POST_MESSAGE_API = "CCTPostMessageAPI";
public static final String CCT_REDIRECT_PRECONNECT = "CCTRedirectPreconnect";
+ public static final String CHROME_SMART_SELECTION = "ChromeSmartSelection";
public static final String CHROME_STARTUP_DELEGATE = "ChromeStartupDelegate";
public static final String CLEAR_OLD_BROWSING_DATA = "ClearOldBrowsingData";
public static final String COMMAND_LINE_ON_NON_ROOTED = "CommandLineOnNonRooted";
public static final String CCT_REMOVE_REMOTE_VIEW_IDS = "CCTRemoveRemoteViewIds";
public static final String CCT_RESIZABLE_FOR_FIRST_PARTIES = "CCTResizableForFirstParties";
public static final String CCT_RESIZABLE_FOR_THIRD_PARTIES = "CCTResizableForThirdParties";
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -830,7 +830,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
@@ -839,7 +839,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
menu.removeItem(R.id.select_action_menu_share);
}
@ -98,7 +98,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -1828,6 +1828,21 @@
@@ -1951,6 +1951,21 @@
]
}
],

View file

@ -9,7 +9,7 @@ Subject: Disable some signed exchange features
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
@@ -667,7 +667,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
@@ -704,7 +704,7 @@ const base::Feature kSignedExchangePrefetchCacheForNavigations{
// Signed Exchange Reporting for distributors
// https://www.chromestatus.com/features/5687904902840320
const base::Feature kSignedExchangeReportingForDistributors{
@ -18,7 +18,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
// Subresource prefetching+loading via Signed HTTP Exchange
// https://www.chromestatus.com/features/5126805474246656
@@ -677,7 +677,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
@@ -714,7 +714,7 @@ const base::Feature kSignedExchangeSubresourcePrefetch{
// Origin-Signed HTTP Exchanges (for WebPackage Loading)
// https://www.chromestatus.com/features/5745285984681984
const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",

View file

@ -24,7 +24,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/
--- a/chrome/common/safe_browsing/BUILD.gn
+++ b/chrome/common/safe_browsing/BUILD.gn
@@ -41,38 +41,6 @@ if (safe_browsing_mode == 1) {
public_deps = [ "//components/safe_browsing/core:csd_proto" ]
public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
}
- source_set("rar_analyzer") {
@ -38,7 +38,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/
- ":download_type_util",
- "//base",
- "//base:i18n",
- "//components/safe_browsing/core:features",
- "//components/safe_browsing/core/common",
- "//third_party/unrar:unrar",
- ]
-
@ -56,7 +56,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/
- "UNRAR_NO_EXCEPTIONS",
- ]
-
- public_deps = [ "//components/safe_browsing/core:csd_proto" ]
- public_deps = [ "//components/safe_browsing/core/common/proto:csd_proto" ]
- }
-
if (is_mac) {
@ -67,7 +67,7 @@ diff --git a/chrome/common/safe_browsing/BUILD.gn b/chrome/common/safe_browsing/
":binary_feature_extractor",
":download_type_util",
- ":rar_analyzer",
"//components/safe_browsing/core:features",
"//components/safe_browsing/core/common",
]
diff --git a/chrome/services/file_util/safe_archive_analyzer.cc b/chrome/services/file_util/safe_archive_analyzer.cc

View file

@ -17,18 +17,18 @@ Revert "[Text Fragment] Unflag fragment directive removal."
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
@@ -5295,6 +5295,7 @@ const FeatureEntry kFeatureEntries[] = {
{"happiness-tracking-surveys-for-desktop-settings-privacy",
flag_descriptions::kHappinessTrackingSurveysForDesktopSettingsPrivacyName,
@@ -5383,6 +5383,7 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kSharingHubDesktopOmniboxDescription, kOsDesktop,
FEATURE_VALUE_TYPE(sharing_hub::kSharingHubDesktopOmnibox)},
#endif // defined(OS_WIN) || defined(OS_MAC) || defined(OS_LINUX)
+ // will override runtime text fragment identifiers setting too
flag_descriptions::
kHappinessTrackingSurveysForDesktopSettingsPrivacyDescription,
kOsDesktop,
#if BUILDFLAG(IS_CHROMEOS_ASH)
{"ash-enable-pip-rounded-corners",
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2812,7 +2812,7 @@
@@ -2941,7 +2941,7 @@
{
"name": "ev-details-in-page-info",
"owners": [ "cthomp" ],
@ -40,7 +40,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc
--- a/chrome/browser/ui/prefs/prefs_tab_helper.cc
+++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc
@@ -356,7 +356,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
@@ -360,7 +360,7 @@ void PrefsTabHelper::RegisterProfilePrefs(
prefs::kEnableReferrers,
!base::FeatureList::IsEnabled(features::kNoReferrers));
registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true);
@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
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
@@ -271,6 +271,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
@@ -263,6 +263,7 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
{wf::EnableMouseSubframeNoImplicitCapture,
features::kMouseSubframeNoImplicitCapture},
{wf::EnableNeverSlowMode, features::kNeverSlowMode},
@ -63,7 +63,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -336,7 +336,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
@@ -370,7 +370,7 @@ const base::Feature kStorageAccessAPI{"StorageAccessAPI",
// Enable text snippets in URL fragments. https://crbug.com/919204.
const base::Feature kTextFragmentAnchor{"TextFragmentAnchor",
@ -75,7 +75,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
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
@@ -4061,6 +4061,10 @@ void Document::SetURL(const KURL& url) {
@@ -4070,6 +4070,10 @@ void Document::SetURL(const KURL& url) {
}
}
@ -86,7 +86,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
// Strip the fragment directive from the URL fragment. E.g. "#id:~:text=a"
// --> "#id". See https://github.com/WICG/scroll-to-text-fragment.
String fragment = new_url.FragmentIdentifier();
@@ -4074,6 +4078,7 @@ void Document::SetURL(const KURL& url) {
@@ -4083,6 +4087,7 @@ void Document::SetURL(const KURL& url) {
else
new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
}
@ -97,7 +97,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
--- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_metrics_test.cc
@@ -1248,34 +1248,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
@@ -1249,34 +1249,25 @@ TEST_P(TextFragmentRelatedMetricTest, ElementIdSuccessFailureCounts) {
// result of the element-id fragment if a text directive is successfully
// parsed. If the feature is off we treat the text directive as an element-id
// and should count the result.
@ -145,7 +145,7 @@ diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor
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
@@ -2052,8 +2052,7 @@
@@ -2130,8 +2130,7 @@
},
{
name: "TextFragmentIdentifiers",

View file

@ -10,7 +10,7 @@ This causes unnecessary SSDP network spam
diff --git a/chrome/browser/media/router/discovery/dial/dial_registry.cc b/chrome/browser/media/router/discovery/dial/dial_registry.cc
--- a/chrome/browser/media/router/discovery/dial/dial_registry.cc
+++ b/chrome/browser/media/router/discovery/dial/dial_registry.cc
@@ -192,10 +192,6 @@ void DialRegistry::StartPeriodicDiscovery() {
@@ -191,10 +191,6 @@ void DialRegistry::StartPeriodicDiscovery() {
dial_ = CreateDialService();
dial_->AddObserver(this);
@ -21,7 +21,7 @@ diff --git a/chrome/browser/media/router/discovery/dial/dial_registry.cc b/chrom
}
void DialRegistry::DoDiscovery() {
@@ -209,8 +205,6 @@ void DialRegistry::StopPeriodicDiscovery() {
@@ -208,8 +204,6 @@ void DialRegistry::StopPeriodicDiscovery() {
if (!dial_)
return;

View file

@ -10,9 +10,9 @@ author: Chad Miller <chad.miller@canonical.com>
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -630,7 +630,7 @@ void RegisterProfilePrefsForMigration(
@@ -698,7 +698,7 @@ void RegisterProfilePrefsForMigration(
registry->RegisterDictionaryPref(kObservedSessionTime);
chrome_browser_net::secure_dns::RegisterProbesSettingBackupPref(registry);
- registry->RegisterBooleanPref(kBlockThirdPartyCookies, false);
+ registry->RegisterBooleanPref(kBlockThirdPartyCookies, true);

View file

@ -9,7 +9,7 @@ Subject: Disable unified autoplay feature
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
@@ -466,7 +466,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
@@ -498,7 +498,7 @@ const base::Feature kUseR16Texture{"use-r16-texture",
// Enables the Unified Autoplay policy by overriding the platform's default
// autoplay policy.
const base::Feature kUnifiedAutoplay{"UnifiedAutoplay",

View file

@ -9,7 +9,7 @@ Subject: Do not build API keys infobar
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1172,8 +1172,6 @@ static_library("ui") {
@@ -1195,8 +1195,6 @@ static_library("ui") {
"singleton_tabs.h",
"startup/automation_infobar_delegate.cc",
"startup/automation_infobar_delegate.h",

View file

@ -3,10 +3,33 @@ Date: Thu, 27 Feb 2020 23:23:59 +0100
Subject: Do not compile QR code sharing
---
.../ChromeProvidedSharingOptionsProvider.java | 16 ----------------
.../chrome/browser/ui/RootUiCoordinator.java | 5 -----
.../ChromeProvidedSharingOptionsProvider.java | 17 -----------------
chrome/browser/share/android/java_sources.gni | 18 ------------------
2 files changed, 34 deletions(-)
3 files changed, 40 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -78,7 +78,6 @@ import org.chromium.chrome.browser.share.ShareButtonController;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin;
import org.chromium.chrome.browser.share.ShareUtils;
-import org.chromium.chrome.browser.share.qrcode.QrCodeDialog;
import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController;
import org.chromium.chrome.browser.tab.Tab;
@@ -401,10 +400,6 @@ public class RootUiCoordinator
}
public void onAttachFragment(Fragment fragment) {
- if (fragment instanceof QrCodeDialog) {
- QrCodeDialog qrCodeDialog = (QrCodeDialog) fragment;
- qrCodeDialog.setAndroidPermissionDelegate(mWindowAndroid);
- }
}
@Override
diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
--- a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
+++ b/chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/share_sheet/ChromeProvidedSharingOptionsProvider.java
@ -18,7 +41,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
import org.chromium.chrome.browser.share.screenshot.ScreenshotCoordinator;
import org.chromium.chrome.browser.share.send_tab_to_self.SendTabToSelfCoordinator;
import org.chromium.chrome.browser.share.share_sheet.ShareSheetPropertyModelBuilder.ContentType;
@@ -255,9 +254,6 @@ class ChromeProvidedSharingOptionsProvider {
@@ -257,9 +256,6 @@ public class ChromeProvidedSharingOptionsProvider {
ChromeFeatureList.PREEMPTIVE_LINK_TO_TEXT_GENERATION)) {
mOrderedFirstPartyOptions.add(createHighlightsFirstPartyOption());
}
@ -28,7 +51,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
if (UserPrefs.get(Profile.getLastUsedRegularProfile()).getBoolean(Pref.PRINTING_ENABLED)) {
mOrderedFirstPartyOptions.add(createPrintingFirstPartyOption());
}
@@ -404,18 +400,6 @@ class ChromeProvidedSharingOptionsProvider {
@@ -408,19 +404,6 @@ public class ChromeProvidedSharingOptionsProvider {
.build();
}
@ -38,7 +61,8 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
- .setIcon(R.drawable.qr_code, R.string.qr_code_share_icon_label)
- .setFeatureNameForMetrics("SharingHubAndroid.QRCodeSelected")
- .setOnClickCallback((view) -> {
- QrCodeCoordinator qrCodeCoordinator = new QrCodeCoordinator(mActivity, mUrl);
- QrCodeCoordinator qrCodeCoordinator = new QrCodeCoordinator(
- mActivity, mUrl, mTabProvider.get().getWindowAndroid());
- qrCodeCoordinator.show();
- })
- .build();
@ -50,7 +74,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
diff --git a/chrome/browser/share/android/java_sources.gni b/chrome/browser/share/android/java_sources.gni
--- a/chrome/browser/share/android/java_sources.gni
+++ b/chrome/browser/share/android/java_sources.gni
@@ -22,24 +22,6 @@ share_java_sources = [
@@ -21,24 +21,6 @@ share_java_sources = [
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabService.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabServiceFactory.java",
"//chrome/browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/ScreenshotBoundsManager.java",

View file

@ -1,64 +0,0 @@
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_service.cc | 20 ++++++-------------
1 file 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
@@ -193,7 +193,7 @@ void SearchPermissionsService::ResetDSEPermission(ContentSettingsType type) {
DCHECK(dse_url.is_empty() || IsPermissionControlledByDSE(type, dse_origin));
if (!dse_url.is_empty())
- SetContentSetting(dse_url, type, CONTENT_SETTING_ALLOW);
+ SetContentSetting(dse_url, type, CONTENT_SETTING_BLOCK);
}
void SearchPermissionsService::ResetDSEPermissions() {
@@ -336,11 +336,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 this line is reached then DSE is not disabled by enterprise policy.
pref_service_->ClearPref(prefs::kDSEWasDisabledByPolicy);
// Initialize the pref for geolocation if it hasn't been initialized yet.
@@ -373,10 +369,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 blocked.
+ dse_geolocation_setting = CONTENT_SETTING_BLOCK;
}
// Update the content setting with the auto-grants for the DSE.
@@ -401,11 +395,9 @@ void SearchPermissionsService::InitializeSettingsIfNeeded() {
GetContentSetting(dse_origin, ContentSettingsType::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 blocked.
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.
--
2.17.1

View file

@ -9,7 +9,7 @@ Subject: Do not hide component extensions
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
--- a/extensions/common/extension.cc
+++ b/extensions/common/extension.cc
@@ -440,9 +440,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
@@ -439,9 +439,8 @@ bool Extension::ShouldDisplayInNewTabPage() const {
}
bool Extension::ShouldExposeViaManagementAPI() const {

View file

@ -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
@@ -207,10 +207,10 @@ bool HasMutedCredentials(base::span<const InsecureCredential> credentials,
@@ -204,10 +204,10 @@ bool HasMutedCredentials(base::span<const InsecureCredential> credentials,
void PasswordManager::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(

View file

@ -18,7 +18,7 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
} else if (entries.count("dns-over-https@2")) {
// The user has "Disabled" selected.
local_state_->SetString(prefs::kDnsOverHttpsMode,
@@ -331,22 +331,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
@@ -334,22 +334,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
check_parental_controls = false;
}

View file

@ -10,7 +10,7 @@ Subject: Enable SPPI for devices with enough memory
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
@@ -879,11 +879,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
@@ -896,11 +896,7 @@ const base::Feature kShow10_10ObsoleteInfobar{
// browser_features, as they are only used on the browser side.
const base::Feature kSitePerProcess {
"site-per-process",

View file

@ -11,27 +11,27 @@ Unexpire #darken-websites-checkbox-in-themes-setting
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -1076,7 +1076,7 @@
@@ -903,7 +903,7 @@
{
"name": "disable-keepalive-fetch",
"owners": [ "yhirano" ],
- "expiry_milestone": 83
"name": "darken-websites-checkbox-in-themes-setting",
"owners": [ "lazzzis@google.com", "twellington" ],
- "expiry_milestone": 98
+ "expiry_milestone": -1
},
{
"name": "disable-office-editing-component-app",
"name": "dcheck-is-fatal",
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -528,7 +528,7 @@ const base::Feature kContextualSearchTranslations{
@@ -560,7 +560,7 @@ const base::Feature kContextualSearchTranslations{
"ContextualSearchTranslations", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kDarkenWebsitesCheckboxInThemesSetting{
- "DarkenWebsitesCheckboxInThemesSetting", base::FEATURE_DISABLED_BY_DEFAULT};
+ "DarkenWebsitesCheckboxInThemesSetting", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kDirectActions{"DirectActions",
base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kQuickActionSearchWidgetAndroidDinoVariant{
"QuickActionSearchWidgetAndroidDinoVariant",
--
2.17.1

View file

@ -42,7 +42,7 @@ Excerpt from https://github.com/bromite/bromite/issues/226
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
@@ -342,6 +342,10 @@ config("compiler") {
@@ -349,6 +349,10 @@ config("compiler") {
}
}

View file

@ -13,7 +13,7 @@ PartitionNelAndReportingByNetworkIsolationKey
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -74,30 +74,30 @@ const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator",
@@ -93,30 +93,30 @@ const base::Feature kNetworkQualityEstimator{"NetworkQualityEstimator",
base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kSplitCacheByNetworkIsolationKey{

View file

@ -9,7 +9,7 @@ Subject: Enable prefetch-privacy-changes by default
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -361,7 +361,7 @@ const base::Feature kComputePressure{"ComputePressure",
@@ -399,7 +399,7 @@ const base::Feature kComputePressure{"ComputePressure",
// Prefetch request properties are updated to be privacy-preserving. See
// crbug.com/988956.
const base::Feature kPrefetchPrivacyChanges{"PrefetchPrivacyChanges",

View file

@ -0,0 +1,414 @@
From: uazo <uazo@users.noreply.github.com>
Date: Sun, 3 Oct 2021 16:18:24 +0000
Subject: Enable share intent
This patch allows to activate the management of android.intent.action.SEND
with new flag "shared-intent-ui" default active.
See also: https://github.com/bromite/bromite/issues/1062
---
chrome/android/chrome_java_resources.gni | 1 +
chrome/android/chrome_java_sources.gni | 1 +
chrome/android/java/AndroidManifest.xml | 18 +++
.../res/layout/sharing_intent_content.xml | 83 +++++++++++++
.../init/ProcessInitializationHandler.java | 3 +
.../SharedIntentShareActivity.java | 114 ++++++++++++++++++
chrome/browser/about_flags.cc | 4 +
chrome/browser/flag_descriptions.cc | 5 +
chrome/browser/flag_descriptions.h | 3 +
.../flags/android/chrome_feature_list.cc | 4 +
.../flags/android/chrome_feature_list.h | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
.../strings/android_chrome_strings.grd | 13 ++
13 files changed, 251 insertions(+)
create mode 100644 chrome/android/java/res/layout/sharing_intent_content.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -719,6 +719,7 @@ chrome_java_resources = [
"java/res/layout/share_sheet_content.xml",
"java/res/layout/share_sheet_item.xml",
"java/res/layout/sharing_device_picker.xml",
+ "java/res/layout/sharing_intent_content.xml",
"java/res/layout/sheet_tab_toolbar.xml",
"java/res/layout/signin_activity.xml",
"java/res/layout/status_indicator_container.xml",
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
@@ -1053,6 +1053,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMetrics.java",
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java",
+ "java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java",
"java/src/org/chromium/chrome/browser/sharing/sms_fetcher/SmsFetcherMessageHandler.java",
"java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java",
"java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.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
@@ -810,6 +810,24 @@ by a child template that "extends" this file.
</intent-filter>
</activity>
+ <activity
+ android:name="org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity"
+ android:icon="@drawable/ic_launcher"
+ android:roundIcon="@drawable/ic_launcher_round"
+ android:label="@string/shared_intent_share_activity_title"
+ android:enabled="false"
+ android:excludeFromRecents="true"
+ android:exported="true"
+ android:noHistory="true"
+ android:theme="@style/Theme.Chromium.Activity.TranslucentNoAnimations"
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" >
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:mimeType="text/plain" />
+ </intent-filter>
+ </activity>
+
<activity
android:name="org.chromium.chrome.browser.vr.VrCancelAnimationActivity"
android:exported="false"
diff --git a/chrome/android/java/res/layout/sharing_intent_content.xml b/chrome/android/java/res/layout/sharing_intent_content.xml
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/res/layout/sharing_intent_content.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2019 The Chromium Authors. All rights reserved.
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file. -->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <View
+ android:id="@+id/mask"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:background="@android:color/transparent"/>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:background="@color/sheet_bg_color">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="32dp"
+ android:orientation="vertical">
+
+ <ImageView
+ android:layout_height="wrap_content"
+ android:layout_width ="match_parent"
+ app:srcCompat="@drawable/ic_launcher"/>
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/min_touch_target_size"
+ android:gravity="center"
+ android:paddingStart="30dp"
+ android:paddingEnd="30dp"
+ android:paddingTop="16dp"
+ android:ellipsize="end"
+ android:textAppearance="@style/TextAppearance.BlackToolbarTitle"
+ android:text="@string/shared_intent_share_activity_title"/>
+
+ <TextView
+ android:id="@+id/share_message_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ android:paddingStart="30dp"
+ android:paddingEnd="30dp"
+ android:paddingTop="16dp"
+ android:ellipsize="end"
+ android:textAppearance="@style/TextAppearance.TextLarge.Secondary"
+ android:text="@string/shared_intent_share_activity_text"/>
+
+ <org.chromium.ui.widget.ButtonCompat
+ android:id="@+id/open_url_button"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="16dp"
+ android:text="@string/shared_intent_share_activity_open_text"
+ android:visibility="gone"
+ style="@style/FilledButton"/>
+
+ <org.chromium.ui.widget.ButtonCompat
+ android:id="@+id/open_url_incognito_button"
+ android:layout_height="wrap_content"
+ android:layout_width="wrap_content"
+ android:layout_gravity="center"
+ android:layout_marginTop="16dp"
+ android:text="@string/shared_intent_share_activity_openincognito_text"
+ android:visibility="gone"
+ style="@style/TextButton"/>
+
+ </LinearLayout>
+
+ </LinearLayout>
+
+</LinearLayout>
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
@@ -72,6 +72,7 @@ import org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidg
import org.chromium.chrome.browser.rlz.RevenueStats;
import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
import org.chromium.chrome.browser.sharing.shared_clipboard.SharedClipboardShareActivity;
+import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity;
import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
import org.chromium.chrome.browser.util.AfterStartupTaskUtils;
import org.chromium.chrome.browser.webapps.WebApkVersionManager;
@@ -405,6 +406,8 @@ public class ProcessInitializationHandler {
deferredStartupHandler.addDeferredTask(
() -> IncognitoTabLauncher.updateComponentEnabledState());
+ deferredStartupHandler.addDeferredTask(
+ () -> SharedIntentShareActivity.updateComponentEnabledState());
deferredStartupHandler.addDeferredTask(
() -> SharedClipboardShareActivity.updateComponentEnabledState());
deferredStartupHandler.addDeferredTask(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java
@@ -0,0 +1,114 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.sharing.shared_intent;
+
+import org.chromium.base.Log;
+
+import android.content.res.Resources;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.view.View;
+import android.widget.TextView;
+import android.net.Uri;
+
+import org.chromium.base.ContextUtils;
+import org.chromium.base.IntentUtils;
+import org.chromium.base.ThreadUtils;
+import org.chromium.base.task.PostTask;
+import org.chromium.base.task.TaskTraits;
+import org.chromium.chrome.R;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.chrome.browser.init.AsyncInitializationActivity;
+import org.chromium.chrome.browser.LaunchIntentDispatcher;
+import org.chromium.chrome.browser.IntentHandler;
+import org.chromium.ui.widget.ButtonCompat;
+
+/**
+ * Activity to display device targets to share text.
+ */
+public class SharedIntentShareActivity
+ extends AsyncInitializationActivity {
+
+ /**
+ * Checks whether sending shared clipboard message is enabled for the user and enables/disables
+ * the SharedIntentShareActivity appropriately. This call requires native to be loaded.
+ */
+ public static void updateComponentEnabledState() {
+ boolean enabled = ChromeFeatureList.isEnabled(ChromeFeatureList.SHARED_INTENT_UI);
+ PostTask.postTask(TaskTraits.USER_VISIBLE, () -> setComponentEnabled(enabled));
+ }
+
+ /**
+ * Sets whether or not the SharedIntentShareActivity should be enabled. This may trigger a
+ * StrictMode violation so shouldn't be called on the UI thread.
+ */
+ private static void setComponentEnabled(boolean enabled) {
+ ThreadUtils.assertOnBackgroundThread();
+ Context context = ContextUtils.getApplicationContext();
+ PackageManager packageManager = context.getPackageManager();
+ ComponentName componentName =
+ new ComponentName(context, SharedIntentShareActivity.class);
+
+ int newState = enabled ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
+
+ // This indicates that we don't want to kill Chrome when changing component enabled state.
+ int flags = PackageManager.DONT_KILL_APP;
+
+ if (packageManager.getComponentEnabledSetting(componentName) != newState) {
+ packageManager.setComponentEnabledSetting(componentName, newState, flags);
+ }
+ }
+
+ @Override
+ protected void triggerLayoutInflation() {
+ setContentView(R.layout.sharing_intent_content);
+
+ String linkUrl = IntentUtils.safeGetStringExtra(getIntent(), Intent.EXTRA_TEXT);
+ Resources resources = ContextUtils.getApplicationContext().getResources();
+ TextView share_message_text = findViewById(R.id.share_message_text);
+ share_message_text.setText(
+ resources.getString(R.string.shared_intent_share_activity_text, linkUrl));
+
+ View mask = findViewById(R.id.mask);
+ mask.setOnClickListener(v -> finish());
+
+ ButtonCompat open_url_button = findViewById(R.id.open_url_button);
+ open_url_button.setVisibility(View.VISIBLE);
+ open_url_button.setOnClickListener(view -> {
+ Context applicationContext = ContextUtils.getApplicationContext();
+ Intent chromeIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(linkUrl));
+ chromeIntent.setPackage(applicationContext.getPackageName());
+ chromeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+ LaunchIntentDispatcher.dispatch(this, chromeIntent);
+ finish();
+ });
+
+ ButtonCompat open_url_incognito_button = findViewById(R.id.open_url_incognito_button);
+ open_url_incognito_button.setVisibility(View.VISIBLE);
+ open_url_incognito_button.setOnClickListener(view -> {
+ Context applicationContext = ContextUtils.getApplicationContext();
+ Intent chromeIntent = IntentHandler.createTrustedOpenNewTabIntent(applicationContext,
+ /*incognito*/true);
+
+ chromeIntent.setData(Uri.parse(linkUrl));
+ chromeIntent.setPackage(applicationContext.getPackageName());
+ chromeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+ LaunchIntentDispatcher.dispatch(this, chromeIntent);
+ finish();
+ });
+
+ onInitialLayoutInflationComplete();
+ }
+
+ @Override
+ public boolean shouldStartGpuProcess() {
+ return false;
+ }
+}
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -5408,6 +5408,10 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(sharing_hub::kDesktopScreenshots)},
#endif
+ {"shared-intent-ui", flag_descriptions::kSharedIntentUIName,
+ flag_descriptions::kSharedIntentUIDescription, kOsAll,
+ FEATURE_VALUE_TYPE(chrome::android::kSharedIntentUI)},
+
{"sharing-prefer-vapid", flag_descriptions::kSharingPreferVapidName,
flag_descriptions::kSharingPreferVapidDescription, kOsAll,
FEATURE_VALUE_TYPE(kSharingPreferVapid)},
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
@@ -2275,6 +2275,11 @@ const char kSharingDesktopScreenshotsDescription[] =
"Enables taking"
" screenshots from the desktop sharing hub.";
+const char kSharedIntentUIName[] =
+ "Enable shared feature";
+const char kSharedIntentUIDescription[] =
+ "Enables shared feature";
+
const char kSharingHubDesktopAppMenuName[] = "Desktop Sharing Hub in App Menu";
const char kSharingHubDesktopAppMenuDescription[] =
"Enables the Chrome Sharing Hub in the 3-dot menu for desktop.";
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
@@ -1307,6 +1307,9 @@ extern const char kSharedClipboardUIDescription[];
extern const char kSharingDesktopScreenshotsName[];
extern const char kSharingDesktopScreenshotsDescription[];
+extern const char kSharedIntentUIName[];
+extern const char kSharedIntentUIDescription[];
+
extern const char kSharingHubDesktopAppMenuName[];
extern const char kSharingHubDesktopAppMenuDescription[];
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -256,6 +256,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kServiceManagerForDownload,
&kShareButtonInTopToolbar,
&kSharedClipboardUI,
+ &kSharedIntentUI,
&kSharingHubLinkToggle,
&kSingleTouchSelect,
&kSpannableInlineAutocomplete,
@@ -640,6 +641,9 @@ const base::Feature kSearchEnginePromoExistingDevice{
const base::Feature kSearchEnginePromoNewDevice{
"SearchEnginePromo.NewDevice", base::FEATURE_ENABLED_BY_DEFAULT};
+const base::Feature kSharedIntentUI{
+ "SharedIntentUI", base::FEATURE_ENABLED_BY_DEFAULT};
+
const base::Feature kNewWindowAppMenu{"NewWindowAppMenu",
base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -123,6 +123,7 @@ extern const base::Feature kRelatedSearchesSimplifiedUx;
extern const base::Feature kRelatedSearchesUi;
extern const base::Feature kSearchEnginePromoExistingDevice;
extern const base::Feature kSearchEnginePromoNewDevice;
+extern const base::Feature kSharedIntentUI;
extern const base::Feature kSearchReadyOmniboxFeature;
extern const base::Feature kServiceManagerForBackgroundPrefetch;
extern const base::Feature kServiceManagerForDownload;
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -495,6 +495,7 @@ public abstract class ChromeFeatureList {
public static final String SHARE_USAGE_RANKING = "ShareUsageRanking";
public static final String SHARE_USAGE_RANKING_FIXED_MORE = "ShareUsageRankingFixedMore";
public static final String SHARED_CLIPBOARD_UI = "SharedClipboardUI";
+ public static final String SHARED_INTENT_UI = "SharedIntentUI";
public static final String SHARED_HIGHLIGHTING_V2 = "SharedHighlightingV2";
public static final String SHARED_HIGHLIGHTING_AMP = "SharedHighlightingAmp";
public static final String SHARING_HUB_LINK_TOGGLE = "SharingHubLinkToggle";
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4453,6 +4453,19 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Send text to Your Devices
</message>
+ <message name="IDS_SHARED_INTENT_SHARE_ACTIVITY_TITLE" desc="Text that will appear in the Android share dialog to open an URL with Bromite.">
+ Open URL with Bromite
+ </message>
+ <message name="IDS_SHARED_INTENT_SHARE_ACTIVITY_TEXT" desc="Text to show for opening with Bromite.">
+ Will open <ph name="URL">%1$s</ph> with Bromite
+ </message>
+ <message name="IDS_SHARED_INTENT_SHARE_ACTIVITY_OPEN_TEXT" desc="Text to show in the button for opening with Bromite.">
+ Open with Bromite
+ </message>
+ <message name="IDS_SHARED_INTENT_SHARE_ACTIVITY_OPENINCOGNITO_TEXT" desc="Text to show in the button for opening with Bromite in incognito.">
+ Open with Bromite Incognito
+ </message>
+
<!-- Sms Fetcher -->
<message name="IDS_SMS_FETCHER_NOTIFICATION_TITLE" desc="Title text shown when the Android Chrome receives a ONE_TIME_CODE from an incoming SMS and ask users for permission to submit the code to their linked Desktop Chrome">
Submit <ph name="ONE_TIME_CODE">%1$s<ex>123</ex></ph> on <ph name="CLIENT_NAME">%2$s<ex>Zoe's Macbook</ex></ph>?
--
2.17.1

View file

@ -9,10 +9,10 @@ Subject: Enable user-agent freeze by default
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -81,7 +81,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
@@ -77,7 +77,7 @@ const base::Feature kFreezePurgeMemoryAllPagesFrozen{
// Freezes the user-agent as part of https://github.com/WICG/ua-client-hints.
const base::Feature kFreezeUserAgent{"FreezeUserAgent",
const base::Feature kReduceUserAgent{"ReduceUserAgent",
- base::FEATURE_DISABLED_BY_DEFAULT};
+ base::FEATURE_ENABLED_BY_DEFAULT};

View file

@ -0,0 +1,67 @@
From: uazo <uazo@users.noreply.github.com>
Date: Mon, 4 Oct 2021 11:48:18 +0000
Subject: Force open external links in incognito
---
chrome/android/java/res/xml/privacy_preferences.xml | 5 +++++
.../chrome/browser/LaunchIntentDispatcher.java | 11 +++++++++++
.../ui/android/strings/android_chrome_strings.grd | 8 ++++++++
3 files changed, 24 insertions(+)
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
@@ -61,6 +61,11 @@
android:title="@string/allow_custom_tab_intents_title"
android:summary="@string/allow_custom_tab_intents_summary"
android:defaultValue="false" />
+ <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
+ android:key="open_external_links_incognito"
+ android:title="@string/open_external_links_incognito_title"
+ android:summary="@string/open_external_links_incognito_summary"
+ android:defaultValue="false" />
<Preference
android:key="privacy_sandbox"
android:title="@string/prefs_privacy_sandbox"
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
@@ -421,6 +421,17 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
+
+ if (ContextUtils.getAppSharedPreferences().getBoolean(
+ "open_external_links_incognito", false)) {
+ Context applicationContext = ContextUtils.getApplicationContext();
+ newIntent = IntentHandler.createTrustedOpenNewTabIntent(applicationContext,
+ /*incognito*/true);
+ newIntent.setData(mIntent.getData());
+ newIntent.setPackage(applicationContext.getPackageName());
+ newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ }
+
long time = SystemClock.elapsedRealtime();
if (!chromeTabbedTaskExists()) {
newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true);
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4498,6 +4498,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Allow applications to open custom tab intents, similar to webview.
</message>
+ <!-- Open External Links in Incognito -->
+ <message name="IDS_OPEN_EXTERNAL_LINKS_INCOGNITO_TITLE" desc="Text for 'Open external links in incognito' settings-privacy option.">
+ Open external links in incognito
+ </message>
+ <message name="IDS_OPEN_EXTERNAL_LINKS_INCOGNITO_SUMMARY" desc="Summary text for 'Open external links in incognito' settings-privacy option.">
+ Force the opening of all external links in incognito mode
+ </message>
+
<!-- Autofill Assistant preferences -->
<!-- TODO(b/168178344): Move to Assistant settings strings section below. -->
<message name="IDS_PREFS_AUTOFILL_ASSISTANT_TITLE" desc="Title for the Autofill Assistant preferences screen. [CHAR_LIMIT=32]">
--
2.17.1

View file

@ -9,7 +9,7 @@ Subject: Hardening against incognito mode detection
diff --git a/storage/browser/quota/quota_settings.cc b/storage/browser/quota/quota_settings.cc
--- a/storage/browser/quota/quota_settings.cc
+++ b/storage/browser/quota/quota_settings.cc
@@ -28,7 +28,7 @@ const int64_t kMBytes = 1024 * 1024;
@@ -29,7 +29,7 @@ const int64_t kMBytes = 1024 * 1024;
const int kRandomizedPercentage = 10;
const double kDefaultPerHostRatio = 0.75;
const double kIncognitoQuotaRatioLowerBound = 0.15;

View file

@ -9,7 +9,7 @@ Subject: Hide passwords manager link
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
@@ -314,7 +314,7 @@ public class PasswordSettings
@@ -326,7 +326,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
return;
}
@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
PreferenceGroup passwordParent;
if (mSearchQuery == null) {
@@ -394,7 +394,7 @@ public class PasswordSettings
@@ -406,7 +406,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
return;
}

View file

@ -3,13 +3,13 @@ Date: Tue, 26 Jan 2021 00:21:51 +0100
Subject: Ignore enterprise policies for secure DNS
---
.../org/chromium/chrome/browser/policy/EnterpriseInfo.java | 4 ++++
.../chrome/browser/enterprise/util/EnterpriseInfo.java | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/policy/EnterpriseInfo.java
@@ -90,6 +90,10 @@ public class EnterpriseInfo {
diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfo.java b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfo.java
--- a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfo.java
+++ b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfo.java
@@ -91,6 +91,10 @@ public class EnterpriseInfo {
ThreadUtils.assertOnUiThread();
assert callback != null;

View file

@ -33,7 +33,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r
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
@@ -275,6 +275,7 @@
@@ -274,6 +274,7 @@
#include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h"
#include "third_party/blink/renderer/core/page/scrolling/scroll_state_callback.h"
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
#ifndef NDEBUG
using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
static WeakDocumentSet& liveDocumentSet();
@@ -6609,6 +6612,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
@@ -6536,6 +6539,61 @@ void Document::setAllowDeclarativeShadowRoots(bool val) {
val ? AllowState::kAllow : AllowState::kDeny;
}
@ -112,9 +112,9 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
void Document::FinishedParsing() {
DCHECK(!GetScriptableDocumentParser() || !parser_->IsParsing());
DCHECK(!GetScriptableDocumentParser() || ready_state_ != kLoading);
@@ -6661,6 +6719,10 @@ void Document::FinishedParsing() {
frame->Loader().FinishedParsing();
@@ -6591,6 +6649,10 @@ void Document::FinishedParsing() {
if (frame->GetFrameScheduler())
frame->GetFrameScheduler()->OnDomContentLoaded();
+ if (!IsPrefetchOnly()) {
+ injectScripts();
@ -126,7 +126,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
@@ -1737,6 +1737,9 @@ class CORE_EXPORT Document : public ContainerNode,
@@ -1746,6 +1746,9 @@ class CORE_EXPORT Document : public ContainerNode,
void AddAXContext(AXContext*);
void RemoveAXContext(AXContext*);
@ -161,7 +161,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc
--- a/third_party/blink/renderer/core/html/html_script_element.cc
+++ b/third_party/blink/renderer/core/html/html_script_element.cc
@@ -206,6 +206,11 @@ void HTMLScriptElement::setTextContent(const String& string) {
@@ -168,6 +168,11 @@ void HTMLScriptElement::setTextContent(const String& string) {
script_text_internal_slot_ = ParkableString(string.Impl());
}
@ -176,9 +176,9 @@ diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third
diff --git a/third_party/blink/renderer/core/html/html_script_element.h b/third_party/blink/renderer/core/html/html_script_element.h
--- a/third_party/blink/renderer/core/html/html_script_element.h
+++ b/third_party/blink/renderer/core/html/html_script_element.h
@@ -66,6 +66,7 @@ class CORE_EXPORT HTMLScriptElement final : public HTMLElement,
ExceptionState&) override;
#endif // defined(USE_BLINK_V8_BINDING_NEW_IDL_UNION)
@@ -56,6 +56,7 @@ class CORE_EXPORT HTMLScriptElement final : public HTMLElement,
void setTextContentForBinding(const V8UnionStringOrTrustedScript* value,
ExceptionState& exception_state) override;
void setTextContent(const String&) override;
+ void setTextDirect(const char*);

View file

@ -13,7 +13,7 @@ Subject: JIT-less toggle
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
@@ -24,6 +24,11 @@
@@ -28,6 +28,11 @@
android:title="@string/preload_pages_title"
android:summary="@string/preload_pages_summary"
android:persistent="false"/>
@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import android.os.Build;
import android.content.SharedPreferences;
import android.os.Bundle;
@@ -65,6 +66,7 @@ public class PrivacySettings
@@ -67,6 +68,7 @@ public class PrivacySettings
private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
private static final String PREF_PROXY_OPTIONS = "proxy";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
@ -44,7 +44,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
// moved from SyncAndServicesSettings.java
private static final String PREF_SERVICES_CATEGORY = "services_category";
@@ -165,6 +167,10 @@ public class PrivacySettings
@@ -176,6 +178,10 @@ public class PrivacySettings
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
prefService.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
} else if (PREF_AUTOFILL_ASSISTANT.equals(key)) {
mSharedPreferencesManager.writeBoolean(
ChromePreferenceKeys.AUTOFILL_ASSISTANT_ENABLED, (boolean) newValue);
@@ -245,6 +251,12 @@ public class PrivacySettings
@@ -259,6 +265,12 @@ public class PrivacySettings
historyInIncognitoPref.setChecked(
prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED));
}
@ -71,7 +71,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -926,6 +926,13 @@ Privacy Sandbox trials are still in active development and are available in sele
@@ -929,6 +929,13 @@ Privacy Sandbox trials are still in active development and are available in sele
Please verify that this is a valid provider or try again later
</message>

View file

@ -26,7 +26,7 @@ Subject: Logcat crash reports UI
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java
@@ -42,6 +42,11 @@ import java.lang.annotation.Retention;
@@ -45,6 +45,11 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.concurrent.atomic.AtomicBoolean;
@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpU
/**
* Service that is responsible for uploading crash minidumps to the Google crash server.
*/
@@ -445,4 +450,21 @@ public class MinidumpUploadServiceImpl extends MinidumpUploadService.Impl {
@@ -455,4 +460,21 @@ public class MinidumpUploadServiceImpl extends MinidumpUploadService.Impl {
tryUploadCrashDump(renamedMinidumpFile);
}
}
@ -138,7 +138,7 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.h b/chro
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
@@ -129,6 +129,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) {
@@ -130,6 +130,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) {
if (external_storage_path.IsParent(path))
return true;
@ -155,7 +155,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -574,6 +574,7 @@ static_library("ui") {
@@ -594,6 +594,7 @@ static_library("ui") {
"//third_party/re2",
"//third_party/webrtc_overrides:webrtc_component",
"//third_party/zlib",
@ -182,7 +182,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra
+#include "third_party/zlib/google/zip.h"
+
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/dbus_thread_manager.h" // nogncheck
#include "chromeos/dbus/debug_daemon/debug_daemon_client.h"
@@ -75,6 +86,10 @@ content::WebUIDataSource* CreateCrashesUIHTMLSource() {
return source;

View file

@ -11,7 +11,7 @@ as long as the test is retained and still passes.
diff --git a/components/favicon/core/favicon_database.cc b/components/favicon/core/favicon_database.cc
--- a/components/favicon/core/favicon_database.cc
+++ b/components/favicon/core/favicon_database.cc
@@ -504,6 +504,7 @@ FaviconBitmapID FaviconDatabase::AddFaviconBitmap(
@@ -506,6 +506,7 @@ FaviconBitmapID FaviconDatabase::AddFaviconBitmap(
base::Time time,
const gfx::Size& pixel_size) {
DCHECK(icon_id);

View file

@ -3,24 +3,24 @@ Date: Sat, 2 May 2020 00:25:25 +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/ui/browser_ui_prefs.cc | 4 ++--
chrome/service/cloud_print/connector_settings.cc | 2 +-
components/autofill/core/browser/browser_autofill_manager.h | 4 ++--
components/autofill/core/common/autofill_prefs.cc | 2 +-
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
components/safe_browsing/core/common/safe_browsing_prefs.cc | 4 ++--
12 files changed, 16 insertions(+), 16 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 +-
.../resources/settings/reset_page/reset_profile_dialog.html | 2 +-
chrome/browser/ui/browser_ui_prefs.cc | 6 +++---
chrome/service/cloud_print/connector_settings.cc | 2 +-
components/autofill/core/browser/browser_autofill_manager.h | 4 ++--
components/autofill/core/common/autofill_prefs.cc | 2 +-
components/bookmarks/browser/bookmark_utils.cc | 4 ++--
components/safe_browsing/core/common/safe_browsing_prefs.cc | 4 ++--
12 files changed, 17 insertions(+), 17 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
@@ -373,7 +373,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -376,7 +376,7 @@ void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(prefs::kChromeCreatedLoginItem, false);
registry->RegisterBooleanPref(prefs::kMigratedLoginItemPref, false);
#endif
@ -32,7 +32,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
@@ -1312,7 +1312,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
@@ -1186,7 +1186,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
void ChromeContentBrowserClient::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@ -68,7 +68,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
@@ -280,7 +280,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
@@ -281,7 +281,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kSearchSuggestEnabled,
@ -92,16 +92,17 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
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
@@ -72,11 +72,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -77,11 +77,11 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
registry->RegisterBooleanPref(
- prefs::kOfferTranslateEnabled, true,
+ prefs::kOfferTranslateEnabled, false,
- translate::prefs::kOfferTranslateEnabled, true,
+ translate::prefs::kOfferTranslateEnabled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterStringPref(prefs::kCloudPrintEmail, std::string());
registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true);
- registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, true);
- registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, true);
+ registry->RegisterBooleanPref(prefs::kCloudPrintProxyEnabled, false);
+ registry->RegisterBooleanPref(prefs::kCloudPrintSubmitEnabled, false);
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement);
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup);
@ -109,7 +110,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/cloud_print/connector_settings.cc
--- a/chrome/service/cloud_print/connector_settings.cc
+++ b/chrome/service/cloud_print/connector_settings.cc
@@ -60,7 +60,7 @@ void ConnectorSettings::InitFrom(ServiceProcessPrefs* prefs) {
@@ -59,7 +59,7 @@ void ConnectorSettings::InitFrom(ServiceProcessPrefs* prefs) {
DCHECK(server_url_.is_valid());
connect_new_printers_ = prefs->GetBoolean(
@ -121,7 +122,7 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/components/autofill/core/browser/browser_autofill_manager.h
--- a/components/autofill/core/browser/browser_autofill_manager.h
+++ b/components/autofill/core/browser/browser_autofill_manager.h
@@ -670,9 +670,9 @@ class BrowserAutofillManager
@@ -681,9 +681,9 @@ class BrowserAutofillManager
std::unique_ptr<CreditCardFormEventLogger> credit_card_form_event_logger_;
// Have we logged whether Autofill is enabled for this page load?

View file

@ -6,12 +6,13 @@ Search suggestions, autofill assistant and contextual search
---
.../java/res/xml/privacy_preferences.xml | 20 +++++++
.../privacy/settings/PrivacySettings.java | 60 ++++++++++++++++++-
2 files changed, 79 insertions(+), 1 deletion(-)
.../strings/android_chrome_strings.grd | 4 ++
3 files changed, 83 insertions(+), 1 deletion(-)
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
@@ -56,4 +56,24 @@
@@ -60,4 +60,24 @@
android:key="privacy_sandbox"
android:title="@string/prefs_privacy_sandbox"
android:fragment="org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment"/>
@ -45,9 +46,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings;
@@ -41,6 +42,13 @@ import org.chromium.ui.text.SpanApplier;
@@ -42,6 +43,13 @@ import org.chromium.ui.text.SpanApplier;
import org.chromium.base.Log;
@ -61,7 +62,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
/**
* Fragment to keep track of the all the privacy related preferences.
*/
@@ -58,6 +66,18 @@ public class PrivacySettings
@@ -60,6 +68,18 @@ public class PrivacySettings
private static final String PREF_PROXY_OPTIONS = "proxy";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
@ -80,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
@Override
@@ -88,6 +108,29 @@ public class PrivacySettings
@@ -90,6 +110,29 @@ public class PrivacySettings
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
@ -110,7 +111,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
ChromeSwitchPreference canMakePaymentPref =
(ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
canMakePaymentPref.setOnPreferenceChangeListener(this);
@@ -120,6 +163,11 @@ public class PrivacySettings
@@ -131,6 +174,11 @@ public class PrivacySettings
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
UserPrefs.get(Profile.getLastUsedRegularProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
@ -122,7 +123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
PrivacyPreferencesManagerImpl.getInstance().setNetworkPredictionEnabled(
(boolean) newValue);
@@ -135,6 +183,16 @@ public class PrivacySettings
@@ -149,6 +197,16 @@ public class PrivacySettings
return true;
}
@ -139,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public void onResume() {
super.onResume();
@@ -145,7 +203,7 @@ public class PrivacySettings
@@ -159,7 +217,7 @@ public class PrivacySettings
* Updates the summaries for several preferences.
*/
public void updateSummaries() {
@ -148,6 +149,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
ChromeSwitchPreference canMakePaymentPref =
(ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -399,6 +399,10 @@ CHAR_LIMIT guidelines:
No statistics or crash reports are sent to Google
</message>
+ <message name="IDS_SERVICES_CATEGORY_TITLE" desc="Title for the group of preferences that control non-personalized Google services. This group contains preferences for data that is not tied to user's Google Account.">
+ Other services
+ </message>
+
<!-- Search engine settings -->
<message name="IDS_SEARCH_ENGINE_SETTINGS" desc="Title for Search Engine settings. [CHAR_LIMIT=32]">
Search engine
--
2.17.1

View file

@ -25,7 +25,7 @@ approach to change color components.
Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data fingerprinting deception
---
chrome/browser/BUILD.gn | 1 +
chrome/browser/about_flags.cc | 13 ++
chrome/browser/about_flags.cc | 15 ++
content/browser/BUILD.gn | 1 +
.../renderer_host/render_process_host_impl.cc | 4 +
content/child/BUILD.gn | 1 +
@ -48,7 +48,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
third_party/ungoogled/BUILD.gn | 10 ++
third_party/ungoogled/ungoogled_switches.cc | 18 ++
third_party/ungoogled/ungoogled_switches.h | 18 ++
24 files changed, 343 insertions(+), 3 deletions(-)
24 files changed, 345 insertions(+), 3 deletions(-)
create mode 100644 third_party/ungoogled/BUILD.gn
create mode 100644 third_party/ungoogled/ungoogled_switches.cc
create mode 100644 third_party/ungoogled/ungoogled_switches.h
@ -56,7 +56,7 @@ Added flag --fingerprinting-canvas-image-data-noise to disable Canvas image data
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2290,6 +2290,7 @@ static_library("browser") {
@@ -2276,6 +2276,7 @@ static_library("browser") {
"//services/device/public/cpp:device_features",
"//services/device/public/cpp/serial:switches",
"//services/device/public/cpp/usb",
@ -67,7 +67,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
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
@@ -174,6 +174,7 @@
@@ -176,6 +176,7 @@
#include "services/media_session/public/cpp/features.h"
#include "services/network/public/cpp/features.h"
#include "services/network/public/cpp/network_switches.h"
@ -75,10 +75,11 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
#include "storage/browser/quota/quota_features.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/forcedark/forcedark_switches.h"
@@ -2725,6 +2726,18 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-webrtc-srtp-aes-gcm", flag_descriptions::kWebrtcSrtpAesGcmName,
flag_descriptions::kWebrtcSrtpAesGcmDescription, kOsAll,
SINGLE_VALUE_TYPE(switches::kEnableWebRtcSrtpAesGcm)},
@@ -2731,6 +2732,20 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kWebrtcUseMinMaxVEADimensionsName,
flag_descriptions::kWebrtcUseMinMaxVEADimensionsDescription, kOsAll,
FEATURE_VALUE_TYPE(blink::features::kWebRtcUseMinMaxVEADimensions)},
+
+ {"fingerprinting-canvas-image-data-noise",
+ "Disable Canvas image data fingerprint deception",
+ "Slightly modifies at most 20 pixels in Canvas image data extracted via JS APIs",
@ -91,13 +92,14 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+ "Disable Canvas::measureText() fingerprint deception",
+ "Scale the output values of Canvas::measureText() with a randomly selected factor in the range -0.0003% to 0.0003%, which are recomputed on every document initialization.",
+ kOsAll, SINGLE_DISABLE_VALUE_TYPE(switches::kFingerprintingCanvasMeasureTextNoise)},
{"enable-webrtc-stun-origin", flag_descriptions::kWebrtcStunOriginName,
flag_descriptions::kWebrtcStunOriginDescription, kOsAll,
SINGLE_VALUE_TYPE(switches::kEnableWebRtcStunOrigin)},
+
#if BUILDFLAG(ENABLE_NACL)
{"enable-nacl", flag_descriptions::kNaclName,
flag_descriptions::kNaclDescription, kOsAll,
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -219,6 +219,7 @@ source_set("browser") {
@@ -222,6 +222,7 @@ source_set("browser") {
"//third_party/libyuv",
"//third_party/re2",
"//third_party/sqlite",
@ -108,7 +110,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -209,6 +209,7 @@
@@ -215,6 +215,7 @@
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
#include "third_party/blink/public/mojom/disk_allocator.mojom.h"
#include "third_party/blink/public/public_buildflags.h"
@ -116,7 +118,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
#include "third_party/skia/include/core/SkBitmap.h"
#include "ui/accessibility/accessibility_switches.h"
#include "ui/base/ui_base_switches.h"
@@ -3318,6 +3319,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
@@ -3394,6 +3395,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kDisableBreakpad,
switches::kDisableDatabases,
switches::kDisableFileSystem,
@ -129,7 +131,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
--- a/content/child/BUILD.gn
+++ b/content/child/BUILD.gn
@@ -102,6 +102,7 @@ target(link_target_type, "child") {
@@ -103,6 +103,7 @@ target(link_target_type, "child") {
"//third_party/blink/public/common",
"//third_party/blink/public/strings",
"//third_party/ced",
@ -166,28 +168,28 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
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
@@ -214,6 +214,9 @@ class WebRuntimeFeatures {
@@ -217,6 +217,9 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableAutomationControlled(bool);
BLINK_PLATFORM_EXPORT static void EnableAutoplayIgnoresWebAudio(bool);
BLINK_PLATFORM_EXPORT static void EnableMediaControlsExpandGesture(bool);
BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
BLINK_PLATFORM_EXPORT static void EnableGetCurrentBrowsingContextMedia(bool);
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingClientRectsNoise(bool);
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasMeasureTextNoise(bool);
+ BLINK_PLATFORM_EXPORT static void EnableFingerprintingCanvasImageDataNoise(bool);
BLINK_PLATFORM_EXPORT static void EnableGetDisplayMedia(bool);
BLINK_PLATFORM_EXPORT static void EnableAllowSyncXHRInPageDismissal(bool);
BLINK_PLATFORM_EXPORT static void
EnableSignedExchangePrefetchCacheForNavigations(bool);
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
@@ -43,6 +43,7 @@
@@ -42,6 +42,7 @@
#include "base/containers/contains.h"
#include "base/debug/dump_without_crashing.h"
#include "base/macros.h"
#include "base/metrics/histogram_functions.h"
+#include "base/rand_util.h"
#include "base/time/time.h"
#include "cc/input/overscroll_behavior.h"
#include "cc/input/scroll_snap_data.h"
@@ -2160,6 +2161,23 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() {
@@ -2134,6 +2135,23 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() {
#if DCHECK_IS_ON()
AssertLayoutTreeUpdated(*this);
#endif
@ -214,7 +216,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
@@ -456,6 +456,10 @@ class CORE_EXPORT Document : public ContainerNode,
@@ -453,6 +453,10 @@ class CORE_EXPORT Document : public ContainerNode,
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
}
@ -225,7 +227,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
AtomicString visibilityState() const;
bool IsPageVisible() const;
bool hidden() const;
@@ -2024,6 +2028,9 @@ class CORE_EXPORT Document : public ContainerNode,
@@ -2052,6 +2056,9 @@ class CORE_EXPORT Document : public ContainerNode,
base::ElapsedTimer start_time_;
@ -238,7 +240,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
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
@@ -2120,6 +2120,11 @@ DOMRectList* Element::getClientRects() {
@@ -2107,6 +2107,11 @@ DOMRectList* Element::getClientRects() {
DCHECK(element_layout_object);
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
quads, *element_layout_object);
@ -250,7 +252,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
return MakeGarbageCollected<DOMRectList>(quads);
}
@@ -2137,6 +2142,9 @@ FloatRect Element::GetBoundingClientRectNoLifecycleUpdate() const {
@@ -2124,6 +2129,9 @@ FloatRect Element::GetBoundingClientRectNoLifecycleUpdate() const {
DCHECK(element_layout_object);
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
*element_layout_object);
@ -263,7 +265,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
@@ -1614,6 +1614,12 @@ DOMRectList* Range::getClientRects() const {
@@ -1591,6 +1591,12 @@ DOMRectList* Range::getClientRects() const {
Vector<FloatQuad> quads;
GetBorderAndTextQuads(quads);
@ -276,7 +278,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
return MakeGarbageCollected<DOMRectList>(quads);
}
@@ -1740,7 +1746,11 @@ FloatRect Range::BoundingRect() const {
@@ -1718,7 +1724,11 @@ FloatRect Range::BoundingRect() const {
// If all rects are empty, return the first rect.
if (result.IsEmpty() && !quads.IsEmpty())
@ -332,15 +334,15 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
@@ -26,6 +26,7 @@
@@ -27,6 +27,7 @@
#include "third_party/blink/renderer/platform/geometry/float_quad.h"
#include "third_party/blink/renderer/platform/graphics/bitmap_image.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
+#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
#include "third_party/blink/renderer/platform/graphics/skia/skia_utils.h"
#include "third_party/blink/renderer/platform/graphics/stroke_data.h"
#include "third_party/blink/renderer/platform/heap/heap.h"
+#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h"
namespace blink {
@@ -2180,6 +2181,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
@@ -2304,6 +2305,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds();
DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
}
@ -354,7 +356,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -983,9 +983,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
@@ -960,9 +960,15 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
TextDirection direction =
ToTextDirection(GetState().GetDirection(), canvas());
@ -374,7 +376,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
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
@@ -1628,7 +1628,9 @@ component("platform") {
@@ -1636,7 +1636,9 @@ component("platform") {
"//third_party/blink/renderer:non_test_config",
]
@ -385,7 +387,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
allow_circular_includes_from = [
"//third_party/blink/renderer/platform/blob",
@@ -1694,6 +1696,7 @@ component("platform") {
@@ -1704,6 +1706,7 @@ component("platform") {
"//third_party/blink/public/strings",
"//third_party/blink/renderer/platform/wtf",
"//third_party/ced",
@ -396,8 +398,8 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
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
@@ -686,4 +686,16 @@ void WebRuntimeFeatures::EnableDocumentTransition(bool enable) {
RuntimeEnabledFeatures::SetDocumentTransitionEnabled(enable);
@@ -700,4 +700,16 @@ void WebRuntimeFeatures::EnableCLSScrollAnchoring(bool enable) {
RuntimeEnabledFeatures::SetCLSScrollAnchoringEnabled(enable);
}
+void WebRuntimeFeatures::EnableFingerprintingClientRectsNoise(bool enable) {
@ -617,7 +619,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
--- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
+++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
@@ -35,6 +35,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image {
@@ -36,6 +36,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image {
StaticBitmapImage(ImageOrientation orientation) : orientation_(orientation) {}
@ -629,7 +631,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
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
@@ -948,6 +948,15 @@
@@ -1003,6 +1003,15 @@
origin_trial_allows_third_party: true,
status: "experimental",
},

View file

@ -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
@@ -127,14 +127,16 @@ void TraceCrashServiceUploader::DoUpload(
@@ -128,14 +128,16 @@ void TraceCrashServiceUploader::DoUpload(
UploadDoneCallback done_callback) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);

View file

@ -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
@@ -356,6 +356,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
@@ -357,6 +357,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
std::vector<std::u16string>
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
std::vector<std::u16string> builtins_to_provide;

View file

@ -9,7 +9,7 @@ Subject: Open YouTube links in Bromite
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
@@ -1163,6 +1163,12 @@ public class ExternalNavigationHandler {
@@ -1216,6 +1216,12 @@ public class ExternalNavigationHandler {
OverrideUrlLoadingAsyncActionType.UI_GATING_BROWSER_NAVIGATION);
}

Some files were not shown because too many files have changed in this diff Show more