v127 need review (#1293)

This commit is contained in:
Carmelo Messina
2024-07-19 09:46:06 +02:00
parent edc3c441bb
commit 80bacb8d58
17 changed files with 835 additions and 966 deletions
+1
View File
@@ -49,6 +49,7 @@ Multiple-fingerprinting-mitigations.patch
Add-flag-to-configure-maximum-connections-per-host.patch
Do-not-ignore-download-location-prompt-setting.patch
Add-support-for-writing-URIs.patch
Restore-BookmarkToolbar-setCurrentFolder.patch
Add-bookmark-import-export-actions.patch
Bookmarks-select-all-menu-entry.patch
Add-an-always-incognito-mode.patch
+72 -72
View File
@@ -122,7 +122,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/base/BUILD.gn b/base/BUILD.gn
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -220,6 +220,8 @@ buildflag_header("message_pump_buildflags") {
@@ -202,6 +202,8 @@ buildflag_header("message_pump_buildflags") {
# This does not include test code (test support and anything in the test
# directory) which should use source_set as is recommended for GN targets).
component("base") {
@@ -131,7 +131,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
sources = [
"allocator/allocator_check.cc",
"allocator/allocator_check.h",
@@ -1071,7 +1073,7 @@ component("base") {
@@ -1054,7 +1056,7 @@ component("base") {
"//build/config/compiler:wglobal_constructors",
]
@@ -143,7 +143,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
--- a/base/android/feature_map.cc
+++ b/base/android/feature_map.cc
@@ -43,6 +43,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava(
@@ -45,6 +45,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava(
static jboolean JNI_FeatureMap_IsEnabled(JNIEnv* env,
jlong jfeature_map,
std::string& feature_name) {
@@ -167,8 +167,8 @@ diff --git a/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.jav
// Create the key only once to avoid String concatenation every flag check.
if (mPreferenceKey == null) {
mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName);
@@ -174,6 +174,12 @@ public class CachedFlag extends Flag {
.removeKeysWithPrefix(CachedFlagsSharedPreferences.FLAGS_CACHED);
@@ -169,6 +169,12 @@ public class CachedFlag extends Flag {
}
}
+ public void setValueReturnedOverride(@Nullable Boolean value) {
@@ -430,7 +430,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
@@ -70,6 +70,10 @@ found in the LICENSE file.
@@ -75,6 +75,10 @@ found in the LICENSE file.
android:title="@string/tabgrid_use_icons_title"
android:summary="@string/tabgrid_use_icons_summary"
android:defaultValue="false" />
@@ -485,7 +485,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
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
@@ -128,7 +128,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@@ -127,7 +127,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_HISTORY_EXPIRE_DAYS_THRESHOLD = "history_expire_days_threshold";
@Override
@@ -505,7 +505,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
@@ -84,6 +85,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
@@ -85,6 +86,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
@@ -513,7 +513,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController;
@@ -124,6 +126,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -126,6 +128,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback,
SnackbarManageable,
DisplayStyleObserver {
@@ -550,7 +550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public static final String EXTRA_SHOW_FRAGMENT = "show_fragment";
@@ -377,6 +409,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -379,6 +411,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((AccessibilitySettings) fragment)
.getDelegate()).setSnackbarManager(mSnackbarManager);
}
@@ -558,13 +558,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
+ ((ChromeBaseSettingsFragment)fragment).setRequestRestartDelegate(
+ new RequestRestartDelegate(mSnackbarManager, this));
+ }
if (fragment instanceof ClearBrowsingDataFragment) {
((ClearBrowsingDataFragment) fragment).setSnackbarManager(mSnackbarManager);
if (fragment instanceof AccountManagementFragment) {
((AccountManagementFragment) fragment).setSnackbarManager(mSnackbarManager);
}
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
@@ -372,6 +372,10 @@ using flags_ui::kOsLinux;
@@ -376,6 +376,10 @@ using flags_ui::kOsLinux;
using flags_ui::kOsMac;
using flags_ui::kOsWin;
@@ -575,9 +575,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
namespace about_flags {
namespace {
@@ -3815,6 +3819,10 @@ const FeatureEntry::FeatureVariation kComposeProactiveNudgeVariations[] = {
std::size(kComposeProactiveNudge_LargeUI_100), nullptr}};
#endif // ENABLE_COMPOSE
@@ -4076,6 +4080,10 @@ const FeatureEntry::FeatureVariation kAutofillUpstreamUpdatedUiOptions[] = {
kAutofillUpstreamUpdatedUi_Education_Animated,
std::size(kAutofillUpstreamUpdatedUi_Education_Animated), nullptr}};
+#define FEATURE_PARAM_SECTION
+#include "cromite_flags/chrome_browser_about_flags_cc.inc"
@@ -586,7 +586,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// RECORDING USER METRICS FOR FLAGS:
// -----------------------------------------------------------------------------
// The first line of the entry is the internal name.
@@ -3841,6 +3849,9 @@ const FeatureEntry::FeatureVariation kComposeProactiveNudgeVariations[] = {
@@ -4102,6 +4110,9 @@ const FeatureEntry::FeatureVariation kAutofillUpstreamUpdatedUiOptions[] = {
const FeatureEntry kFeatureEntries[] = {
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
// //tools/flags/generate_unexpire_flags.py.
@@ -599,9 +599,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc
--- a/chrome/browser/browser_features.cc
+++ b/chrome/browser/browser_features.cc
@@ -415,4 +415,5 @@ BASE_FEATURE(kWebUsbDeviceDetection,
"WebUsbDeviceDetection",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -401,4 +401,5 @@ BASE_FEATURE(kBrowserDynamicCodeDisabled,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_WIN)
+#include "cromite_flags/chrome_browser_browser_features_cc.inc"
} // namespace features
@@ -647,7 +647,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
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
@@ -1002,5 +1002,6 @@ BASE_FEATURE(kWebApkAllowIconUpdate,
@@ -1036,5 +1036,6 @@ BASE_FEATURE(kWebApkAllowIconUpdate,
"WebApkAllowIconUpdate",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -657,7 +657,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
@@ -189,6 +189,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
@@ -193,6 +193,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
"auxiliary_search_max_donation_tab",
100);
@@ -679,7 +679,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
import java.util.List;
import java.util.Map;
@@ -700,7 +704,7 @@ public abstract class ChromeFeatureList {
@@ -719,7 +723,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sVerticalAutomotiveBackButtonToolbar =
newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true);
@@ -688,7 +688,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
List.of(
sAccountReauthenticationRecentTimeWindow,
sAllowUserCertificates,
@@ -793,6 +797,13 @@ public abstract class ChromeFeatureList {
@@ -816,6 +820,13 @@ public abstract class ChromeFeatureList {
sUseLibunwindstackNativeUnwinderAndroid,
sVerticalAutomotiveBackButtonToolbar);
@@ -855,7 +855,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
--- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc
@@ -537,4 +537,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
@@ -517,4 +517,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
"StopLoadingAnimationForHiddenWindow",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -864,7 +864,7 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
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
@@ -1655,4 +1655,5 @@ BASE_FEATURE(kEventBasedLogUpload,
@@ -1674,4 +1674,5 @@ BASE_FEATURE(kEventBasedLogUpload,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -907,9 +907,9 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
+import androidx.annotation.Nullable;
+import android.content.res.TypedArray;
+
import androidx.annotation.ColorRes;
import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import androidx.appcompat.content.res.AppCompatResources;
@@ -31,6 +34,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
/** Indicates if the preference uses a custom layout. */
private final boolean mHasCustomLayout;
@@ -949,13 +949,13 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
<part file="webapps_strings.grdp" />
<part file="user_scripts/strings/userscripts_strings.grdp" />
+ <part file="cromite_components_strings_grd/placeholder.txt"/>
<if expr="use_blink">
<part file="history_clusters_strings.grdp" />
</if>
<part file="history_clusters_strings.grdp" />
<if expr="is_android">
<part file="android_system_error_page_strings.grdp" />
diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc
--- a/components/content_settings/core/common/features.cc
+++ b/components/content_settings/core/common/features.cc
@@ -118,5 +118,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap,
@@ -113,5 +113,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap,
"IndexedHostContentSettingsMap",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -995,9 +995,9 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat
const SwitchEntry& entry = entry_it->second;
if (!entry.switch_name.empty())
@@ -668,6 +683,27 @@ void FlagsState::GetFlagFeatureEntries(
bool is_default_value = IsDefaultValue(entry, enabled_entries);
data.Set("is_default", is_default_value);
@@ -676,6 +691,27 @@ void FlagsState::GetFlagFeatureEntries(
data.Set("links", std::move(links));
}
+ if (entry.type == FeatureEntry::FEATURE_VALUE
+ || entry.type == FeatureEntry::FEATURE_WITH_PARAMS_VALUE) {
@@ -1023,7 +1023,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat
switch (entry.type) {
case FeatureEntry::SINGLE_VALUE:
case FeatureEntry::SINGLE_DISABLE_VALUE:
@@ -796,6 +832,16 @@ void FlagsState::AddSwitchesToCommandLine(
@@ -804,6 +840,16 @@ void FlagsState::AddSwitchesToCommandLine(
for (const std::string& entry_name : enabled_entries) {
const auto& entry_it = name_to_switch_map.find(entry_name);
if (entry_it == name_to_switch_map.end()) {
@@ -1037,10 +1037,10 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat
+ continue;
+ }
+ }
NOTREACHED();
NOTREACHED_IN_MIGRATION();
continue;
}
@@ -1048,6 +1094,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName(
@@ -1056,6 +1102,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName(
bool FlagsState::IsSupportedFeature(const FlagsStorage* storage,
const std::string& name,
int platform_mask) const {
@@ -1138,7 +1138,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
private announceStatusDelayMs: number = 100;
private featuresResolver: PromiseResolver<void> = new PromiseResolver();
private flagSearch: FlagSearch = new FlagSearch(this);
@@ -205,6 +206,10 @@ export class FlagsAppElement extends CustomElement {
@@ -209,6 +210,10 @@ export class FlagsAppElement extends CustomElement {
// </if>
tabs: Tab[] = [
@@ -1149,7 +1149,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
{
tabEl: this.getRequiredElement('#tab-available'),
panelEl: this.getRequiredElement('#tab-content-available'),
@@ -218,6 +223,11 @@ export class FlagsAppElement extends CustomElement {
@@ -222,6 +227,11 @@ export class FlagsAppElement extends CustomElement {
];
connectedCallback() {
@@ -1158,10 +1158,10 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
+ this.getRequiredElement("#appcontainer").classList.add('cromite');
+ document.title = "Cromite Flags List";
+ }
// Get and display the data upon loading.
this.requestExperimentalFeaturesData();
// There is no restart button on iOS.
@@ -278,20 +288,29 @@ export class FlagsAppElement extends CustomElement {
// <if expr="not is_ios">
const pathname = new URL(window.location.href).pathname;
this.isFlagsDeprecatedUrl_ =
@@ -306,20 +316,29 @@ export class FlagsAppElement extends CustomElement {
const defaultFeatures: Feature[] = [];
const nonDefaultFeatures: Feature[] = [];
@@ -1194,7 +1194,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
// </if>
this.showRestartToast(experimentalFeaturesData.needsRestart);
@@ -402,16 +421,23 @@ export class FlagsAppElement extends CustomElement {
@@ -438,16 +457,23 @@ export class FlagsAppElement extends CustomElement {
}
private renderExperiments(
@@ -1219,7 +1219,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
if (select) {
experiment.addEventListener('select-change', e => {
e.preventDefault();
@@ -435,9 +461,14 @@ export class FlagsAppElement extends CustomElement {
@@ -471,9 +497,14 @@ export class FlagsAppElement extends CustomElement {
this.showRestartToast(true);
});
}
@@ -1305,7 +1305,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r
const description = this.getRequiredElement('.description');
description.textContent = feature.description;
@@ -125,6 +136,7 @@ export class FlagsExperimentElement extends CustomElement {
@@ -134,6 +145,7 @@ export class FlagsExperimentElement extends CustomElement {
const permalink = this.getRequiredElement<HTMLAnchorElement>('.permalink');
permalink.href = `#${feature.internal_name}`;
permalink.textContent = `#${feature.internal_name}`;
@@ -1313,7 +1313,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r
const smallScreenCheck = window.matchMedia('(max-width: 480px)');
// Toggling of experiment description overflow content on smaller screens.
@@ -153,6 +165,10 @@ export class FlagsExperimentElement extends CustomElement {
@@ -162,6 +174,10 @@ export class FlagsExperimentElement extends CustomElement {
const optionEl = document.createElement('option');
optionEl.selected = option.selected;
optionEl.textContent = option.description;
@@ -1362,7 +1362,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
--- a/components/permissions/features.cc
+++ b/components/permissions/features.cc
@@ -142,6 +142,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
@@ -149,6 +149,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
"CpssQuietChipTextUpdate",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1385,7 +1385,7 @@ diff --git a/components/version_ui/version_handler_helper.cc b/components/versio
diff --git a/content/common/features.cc b/content/common/features.cc
--- a/content/common/features.cc
+++ b/content/common/features.cc
@@ -543,4 +543,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
@@ -579,4 +579,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
// Please keep features in alphabetical order.
@@ -1394,7 +1394,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc
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
@@ -1286,4 +1286,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
@@ -1295,4 +1295,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
VideoCaptureServiceConfiguration::kEnabledForBrowserProcess;
}
@@ -1403,7 +1403,7 @@ 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
@@ -280,6 +280,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
@@ -286,6 +286,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess();
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess();
@@ -1701,7 +1701,7 @@ new file mode 100755
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
@@ -1934,5 +1934,5 @@ uint32_t GetPassthroughAudioFormats() {
@@ -1904,5 +1904,5 @@ uint32_t GetPassthroughAudioFormats() {
return 0;
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
}
@@ -1711,7 +1711,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
@@ -582,5 +582,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode();
@@ -576,5 +576,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode();
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
} // namespace media
@@ -1721,8 +1721,8 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -549,4 +549,5 @@ BASE_FEATURE(kStoreConnectionSubtype,
"StoreConnectionSubtype",
@@ -550,4 +550,5 @@ BASE_FEATURE(kSpdySessionForProxyAdditionalChecks,
"SpdySessionForProxyAdditionalChecks",
base::FEATURE_ENABLED_BY_DEFAULT);
+#include "cromite_flags/net_base_features_cc.inc"
@@ -1730,9 +1730,9 @@ 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
@@ -530,6 +530,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kDeviceBoundSessions);
// save the cost of the JNI call for future access.
NET_EXPORT BASE_DECLARE_FEATURE(kStoreConnectionSubtype);
@@ -522,6 +522,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kStorageAccessHeaders);
// not causing any problems.
NET_EXPORT BASE_DECLARE_FEATURE(kSpdySessionForProxyAdditionalChecks);
+#include "cromite_flags/net_base_features_h.inc"
} // namespace net::features
@@ -1741,28 +1741,28 @@ diff --git a/net/base/features.h b/net/base/features.h
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
@@ -483,4 +483,5 @@ BASE_FEATURE(kDocumentIsolationPolicy,
"DocumentIsolationPolicy",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -518,4 +518,5 @@ const base::FeatureParam<int> kNetworkContextPrefetchMaxLoaders{
&kNetworkContextPrefetch,
/*name=*/"max_loaders", /*default_value=*/10};
+#include "cromite_flags/services_network_public_cpp_features_cc.inc"
} // namespace network::features
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
@@ -195,6 +195,7 @@ BASE_DECLARE_FEATURE(kAvoidResourceRequestCopies);
COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kDocumentIsolationPolicy);
@@ -212,6 +212,7 @@ BASE_DECLARE_FEATURE(kNetworkContextPrefetch);
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<int> kNetworkContextPrefetchMaxLoaders;
+#include "cromite_flags/services_network_public_cpp_features_h.inc"
} // namespace features
} // namespace network
} // namespace network::features
#endif // SERVICES_NETWORK_PUBLIC_CPP_FEATURES_H_
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
@@ -2647,5 +2647,6 @@ BASE_FEATURE(kRenderSizeInScoreAdBrowserSignals,
"RenderSizeInScoreAdBrowserSignals",
@@ -2678,5 +2678,6 @@ BASE_FEATURE(kOptimizeLoadingDataUrls,
"OptimizeLoadingDataUrls",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/third_party_blink_common_features_cc.inc"
@@ -1771,9 +1771,9 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -1712,6 +1712,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kNoThrottlingVisibleAgent);
// https://github.com/WICG/turtledove/blob/main/FLEDGE.md#23-scoring-bids
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kRenderSizeInScoreAdBrowserSignals);
@@ -1747,6 +1747,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kRenderSizeInScoreAdBrowserSignals);
// Optimize loading data: URLs.
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kOptimizeLoadingDataUrls);
+#include "cromite_flags/third_party_blink_common_features_h.inc"
} // namespace features
@@ -16,7 +16,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../chrome/browser/app/ChromeActivity.java | 4 ++-
.../overlays/strip/StripLayoutHelper.java | 10 +++++--
.../strip/StripLayoutHelperManager.java | 7 ++++-
.../browser/tasks/ReturnToChromeUtil.java | 4 ++-
.../chrome/browser/ui/RootUiCoordinator.java | 5 +++-
chrome/browser/preferences/BUILD.gn | 1 +
.../preferences/ChromePreferenceKeys.java | 1 +
@@ -30,7 +29,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../java/res/values-sw600dp/dimens.xml | 5 ++--
.../toolbar/java/res/values/dimens.xml | 5 ++--
.../browser/toolbar/ControlContainer.java | 2 +-
.../browser/toolbar/ToolbarFeatures.java | 4 ++-
.../top/TabStripTransitionCoordinator.java | 2 +-
.../toolbar/top/ToolbarControlContainer.java | 28 ++++++++++++++++++-
.../browser/toolbar/top/ToolbarLayout.java | 5 +++-
@@ -38,12 +36,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../res/xml/accessibility_preferences.xml | 5 ++++
.../AccessibilitySettingsDelegate.java | 11 ++++++++
.../chromium/ui/base/DeviceFormFactor.java | 9 ++++++
34 files changed, 174 insertions(+), 35 deletions(-)
32 files changed, 168 insertions(+), 33 deletions(-)
diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
--- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
+++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
@@ -100,6 +100,7 @@ import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
@@ -97,6 +97,7 @@ import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.components.prefs.PrefService;
import org.chromium.content_public.browser.LoadUrlParams;
@@ -51,7 +49,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.text.EmptyTextWatcher;
import org.chromium.ui.util.ColorUtils;
@@ -1130,7 +1131,9 @@ class StartSurfaceMediator
@@ -1124,7 +1125,9 @@ class StartSurfaceMediator
int getTopToolbarPlaceholderHeight() {
// If logo is visible in Start surface instead of in the toolbar, we don't need to show the
// top margin of the fake search box.
@@ -103,7 +101,7 @@ diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -123,9 +123,13 @@ found in the LICENSE file.
@@ -120,9 +120,13 @@ found in the LICENSE file.
<dimen name="tab_modal_scrim_vertical_margin">16dp</dimen>
<!-- Should match toolbar_height_no_shadow -->
@@ -121,7 +119,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -2277,7 +2277,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2280,7 +2280,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@Override
public int getControlContainerHeightResource() {
@@ -135,7 +133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java
@@ -54,6 +54,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -56,6 +56,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.browser.WebContentsObserver;
import org.chromium.ui.LayoutInflaterUtils;
@@ -143,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.display.DisplayUtil;
@@ -405,7 +406,9 @@ public class WarmupManager {
@@ -425,7 +426,9 @@ public class WarmupManager {
(ControlContainer) mainView.findViewById(R.id.control_container);
if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
@@ -230,7 +228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
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
@@ -869,7 +869,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -862,7 +862,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
// Inflate the correct toolbar layout for the device.
int toolbarLayoutId = getToolbarLayoutId();
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
@@ -244,15 +242,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
@@ -73,6 +73,7 @@ import org.chromium.chrome.browser.tasks.tab_management.TabUiThemeUtil;
import org.chromium.components.browser_ui.styles.ChromeColors;
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
@@ -84,6 +84,7 @@ import org.chromium.components.feature_engagement.Tracker;
import org.chromium.components.prefs.PrefService;
import org.chromium.components.tab_groups.TabGroupColorId;
import org.chromium.components.user_prefs.UserPrefs;
+import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.interpolators.Interpolators;
@@ -4883,8 +4884,13 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro
@@ -5059,8 +5060,13 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro
mTabMenu.setAnchorView(tabView);
// 3. Set the vertical offset to align the tab menu with bottom of the tab strip
int tabHeight = mManagerHost.getHeight();
@@ -271,7 +269,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
@@ -78,6 +78,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController;
@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController;
import org.chromium.components.browser_ui.styles.SemanticColorUtils;
import org.chromium.components.browser_ui.widget.scrim.ScrimProperties;
import org.chromium.content_public.browser.LoadUrlParams;
@@ -279,7 +277,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
@@ -402,11 +403,15 @@ public class StripLayoutHelperManager
@@ -405,11 +406,15 @@ public class StripLayoutHelperManager
mIsLayoutOptimizationsEnabled =
ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true);
@@ -296,24 +294,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
mTopPadding = mHeight - mScrollableStripHeight;
mDesktopWindowStateProvider = desktopWindowStateProvider;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
@@ -929,7 +929,9 @@ public final class ReturnToChromeUtil {
// TODO(b/331667743): Clean up the flag for scrollable mvt while cleaning up surface polish
// code.
boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled();
- if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(context)) {
+ if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(context) ||
+ ChromeSharedPreferences.getInstance().readBoolean(
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
// On phones, parameter SURFACE_POLISH_SCROLLABLE_MVT is checked when feature flag
// surface polish is enabled; otherwise, feature flag
// SHOW_SCROLLABLE_MVT_ON_NTP_PHONE_ANDROID is checked.
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
@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
import org.chromium.chrome.browser.pdf.PdfPage;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
@@ -321,7 +305,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier;
import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
import org.chromium.chrome.browser.profiles.Profile;
@@ -1610,7 +1611,9 @@ public class RootUiCoordinator
@@ -1611,7 +1612,9 @@ public class RootUiCoordinator
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
int stubId = R.id.find_toolbar_stub;
@@ -346,7 +330,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
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
@@ -268,6 +268,7 @@ public final class ChromePreferenceKeys {
@@ -265,6 +265,7 @@ public final class ChromePreferenceKeys {
/** Whether the app-specific history info text was already seen by users. */
public static final String HISTORY_APP_SPECIFIC_INFO_SEEN =
"Chrome.History.AppSpecificInfoSeen";
@@ -401,19 +385,19 @@ diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/brow
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.url.GURL;
@@ -90,7 +91,7 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser
@@ -87,7 +88,7 @@ public class SingleTabSwitcherOnNtpMediator {
mSingleTabCardClickedCallback = singleTabCardClickedCallback;
mIsSurfacePolishEnabled = tabContentManager != null;
mSeeMoreLinkClickedCallback = seeMoreLinkClickedCallback;
mUiConfig = uiConfig;
- mIsTablet = isTablet;
+ mIsTablet = isTablet && !DeviceFormFactor.isForceTabletUI();
mModuleDelegate = moduleDelegate;
mMarginNarrowWindowOnTablet =
mMarginForPhoneAndNarrowWindowOnTablet =
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
@@ -774,7 +774,7 @@ public class LocationBarCoordinator
@@ -778,7 +778,7 @@ public class LocationBarCoordinator
}
private boolean isTabletWindow() {
@@ -425,7 +409,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
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
@@ -1632,6 +1632,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1664,6 +1664,13 @@ Your Google account may have other forms of browsing history like searches and a
Hide your IP address
</message>
@@ -547,31 +531,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/**
* @return The {@link ViewResourceAdapter} that exposes this {@link View} as a CC resource.
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.toolbar;
import androidx.annotation.OptIn;
import androidx.core.os.BuildCompat;
+import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.base.ResettersForTesting;
import org.chromium.base.cached_flags.BooleanCachedFieldTrialParameter;
import org.chromium.base.cached_flags.IntCachedFieldTrialParameter;
@@ -71,7 +72,8 @@ public final class ToolbarFeatures {
* is enabled.
*/
public static boolean isDynamicTopChromeEnabled() {
- return ChromeFeatureList.sDynamicTopChrome.isEnabled();
+ return ChromeFeatureList.sDynamicTopChrome.isEnabled()
+ && !DeviceFormFactor.isForceTabletUI();
}
/** Returns if we are using optimized window layout for tab strip. */
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java
@@ -154,7 +154,7 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea
@@ -155,7 +155,7 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea
mTabStripReservedTopPadding =
controlContainerView()
.getResources()
@@ -637,7 +600,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import org.chromium.ui.util.TokenHolder;
import org.chromium.url.GURL;
@@ -595,7 +596,9 @@ public abstract class ToolbarLayout extends FrameLayout
@@ -596,7 +597,9 @@ public abstract class ToolbarLayout extends FrameLayout
* not have a tab strip.
*/
protected int getTabStripHeightFromResource() {
@@ -660,7 +623,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
disallowed_extension_deps_ = [
# Components should largely not depend on //extensions. Since // extensions
# is not a component target and is linked with //chrome, depending on most
@@ -843,7 +843,7 @@ test("components_unittests") {
@@ -851,7 +851,7 @@ test("components_unittests") {
# On other platforms, no components should depend on Chrome.
# Since //chrome depends on //extensions, we also only assert_no_deps on
# extensions targets for non-lacros builds.
@@ -669,7 +632,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
assert_no_deps = [ "//chrome/*" ]
assert_no_deps += disallowed_extension_deps_
}
@@ -1129,7 +1129,7 @@ if (use_blink) {
@@ -1137,7 +1137,7 @@ if (use_blink) {
# dependency. On other platforms, no components should depend on Chrome.
# Since //chrome depends on //extensions, we also only assert_no_deps on
# extensions targets for non-lacros builds.
@@ -2,12 +2,14 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 9 Apr 2022 23:01:55 +0200
Subject: Bookmarks select all menu entry
Requires: Restore-BookmarkToolbar-setCurrentFolder.patch
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../res/menu/bookmark_toolbar_menu_improved.xml | 7 +++++++
.../chrome/browser/bookmarks/BookmarkToolbar.java | 15 +++++++++++++++
.../ui/android/strings/android_chrome_strings.grd | 3 +++
3 files changed, 25 insertions(+)
.../menu/bookmark_toolbar_menu_improved.xml | 7 +++++++
.../browser/bookmarks/BookmarkToolbar.java | 18 ++++++++++++++++++
.../android/strings/android_chrome_strings.grd | 3 +++
3 files changed, 28 insertions(+)
diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
--- a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml
@@ -29,7 +31,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
@@ -28,6 +28,8 @@ import java.util.ArrayList;
@@ -25,6 +25,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
@@ -38,15 +40,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with
* the current context.
@@ -159,6 +161,7 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
@@ -183,12 +185,16 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
void setCurrentFolder(BookmarkId folder) {
mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
+ getMenu().findItem(R.id.select_all_menu_id).setVisible(true);
enableImportExportMenu();
+ enableSelectAllMenu();
}
void enableImportExportMenu() {
getMenu().findItem(R.id.import_menu_id).setVisible(true);
getMenu().findItem(R.id.export_menu_id).setVisible(true);
}
@@ -187,6 +190,17 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
+
+ void enableSelectAllMenu() {
+ getMenu().findItem(R.id.select_all_menu_id).setVisible(true);
}
void setNavigateBackRunnable(Runnable navigateBackRunnable) {
@@ -215,6 +221,17 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
mExportBookmarkRunnable.run();
return true;
}
@@ -64,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
return mMenuIdClickedFunction.apply(menuItem.getItemId());
}
@@ -204,6 +218,7 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
@@ -232,6 +249,7 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null);
getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null);
@@ -75,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
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
@@ -250,6 +250,9 @@ CHAR_LIMIT guidelines:
@@ -245,6 +245,9 @@ CHAR_LIMIT guidelines:
<message name="IDS_NOTIFICATION_CATEGORY_SITES" desc="Label for notifications from websites, within a list of notification categories. [CHAR_LIMIT=32]">
Sites
</message>
+39 -34
View File
@@ -7,45 +7,50 @@ Always enforce DoH even with inconsistent system DNS configuration
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../browser/net/stub_resolver_config_reader.cc | 17 +----------------
net/dns/dns_client.cc | 11 ++++++++---
net/dns/host_resolver_manager.cc | 1 +
3 files changed, 10 insertions(+), 19 deletions(-)
chrome/browser/net/secure_dns_config.cc | 2 +-
chrome/browser/net/stub_resolver_config_reader.cc | 3 +++
net/dns/dns_client.cc | 11 ++++++++---
net/dns/host_resolver_manager.cc | 1 +
4 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/chrome/browser/net/secure_dns_config.cc b/chrome/browser/net/secure_dns_config.cc
--- a/chrome/browser/net/secure_dns_config.cc
+++ b/chrome/browser/net/secure_dns_config.cc
@@ -27,7 +27,7 @@ std::optional<net::SecureDnsMode> SecureDnsConfig::ParseMode(
if (name == kModeSecure) {
return net::SecureDnsMode::kSecure;
} else if (name == kModeAutomatic) {
- return net::SecureDnsMode::kAutomatic;
+ return net::SecureDnsMode::kSecure;
} else if (name == kModeOff) {
return net::SecureDnsMode::kOff;
}
diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
--- a/chrome/browser/net/stub_resolver_config_reader.cc
+++ b/chrome/browser/net/stub_resolver_config_reader.cc
@@ -151,7 +151,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
if (entries.count("dns-over-https@1")) {
// The user has "Enabled" selected.
local_state_->SetString(prefs::kDnsOverHttpsMode,
- SecureDnsConfig::kModeAutomatic);
+ SecureDnsConfig::kModeSecure);
} else if (entries.count("dns-over-https@2")) {
// The user has "Disabled" selected.
local_state_->SetString(prefs::kDnsOverHttpsMode,
@@ -348,22 +348,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
check_parental_controls = false;
}
@@ -83,6 +83,7 @@ enum class SecureDnsModeDetailsForHistogram {
- // Check parental controls last because it can be expensive and should only be
- // checked if necessary for the otherwise-determined mode.
if (check_parental_controls) {
- if (ShouldDisableDohForParentalControls()) {
- forced_management_mode =
- SecureDnsConfig::ManagementMode::kDisabledParentalControls;
- secure_dns_mode = net::SecureDnsMode::kOff;
- mode_details =
- SecureDnsModeDetailsForHistogram::kOffByDetectedParentalControls;
-
- // If parental controls had not previously been checked, need to update
- // network service.
- if (!parental_controls_checked_)
- update_network_service = true;
- }
-
parental_controls_checked_ = true;
}
#if BUILDFLAG(IS_WIN)
bool ShouldDisableDohForWindowsParentalControls() {
+ if ((true)) return false;
return GetWinParentalControls().web_filter;
}
#endif // BUILDFLAG(IS_WIN)
@@ -189,6 +190,7 @@ void StubResolverConfigReader::UpdateNetworkService(bool record_metrics) {
}
bool StubResolverConfigReader::ShouldDisableDohForManaged() {
+ if ((true)) return false;
// This function ignores cloud policies which are loaded on a per-profile basis.
#if BUILDFLAG(IS_ANDROID)
// Check for MDM/management/owner apps. android_has_owner_ is true if either a
@@ -217,6 +219,7 @@ bool StubResolverConfigReader::ShouldDisableDohForManaged() {
}
bool StubResolverConfigReader::ShouldDisableDohForParentalControls() {
+ if ((true)) return false;
if (parental_controls_testing_override_.has_value())
return parental_controls_testing_override_.value();
diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc
--- a/net/dns/dns_client.cc
@@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/flag_descriptions.cc | 6 --
chrome/browser/flag_descriptions.h | 3 -
.../strings/android_chrome_strings.grd | 6 ++
.../ui/autofill/autofill_client_provider.cc | 32 +-------
.../ui/autofill/autofill_client_provider.cc | 34 +-------
.../ui/autofill/autofill_client_provider.h | 6 --
chrome/browser/ui/tab_helpers.cc | 4 +-
components/android_autofill/browser/BUILD.gn | 1 +
@@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../autofill/AutofillManagerWrapper.java | 5 +-
.../components/autofill/AutofillProvider.java | 7 ++
.../BrowserSelectionActionMenuDelegate.java | 62 ++++++++++++++
.../browser/content_autofill_driver.cc | 59 +++++++++++++
.../browser/content_autofill_driver.cc | 12 +++
.../content/browser/content_autofill_driver.h | 10 +++
.../content_autofill_driver_factory.cc | 12 +++
.../content/renderer/autofill_agent.cc | 6 ++
@@ -47,7 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../autofill/core/common/autofill_features.h | 4 -
.../autofill/core/common/autofill_prefs.cc | 4 +-
.../autofill/core/common/autofill_prefs.h | 5 ++
32 files changed, 314 insertions(+), 94 deletions(-)
32 files changed, 267 insertions(+), 96 deletions(-)
create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java
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
@@ -61,7 +61,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.password_check.PasswordCheck;
@@ -58,6 +59,11 @@ import java.lang.annotation.Retention;
@@ -59,6 +60,11 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Locale;
@@ -73,7 +73,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
/**
* The "Passwords" screen in Settings, which allows the user to enable or disable password saving,
* to view saved passwords (just the username and URL), and to delete saved passwords.
@@ -65,7 +71,7 @@ import java.util.Locale;
@@ -66,7 +72,7 @@ import java.util.Locale;
public class PasswordSettings extends ChromeBaseSettingsFragment
implements PasswordListObserver,
Preference.OnPreferenceClickListener,
@@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
@IntDef({
TrustedVaultBannerState.NOT_SHOWN,
TrustedVaultBannerState.OFFER_OPT_IN,
@@ -95,6 +101,12 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
@@ -96,6 +102,12 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
public static final String PREF_TRUSTED_VAULT_BANNER = "trusted_vault_banner";
public static final String PREF_KEY_MANAGE_ACCOUNT_LINK = "manage_account_link";
@@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords";
private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions";
private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text";
@@ -127,6 +139,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
@@ -128,6 +140,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
private Preference mLinkPref;
private Menu mMenu;
@@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
private @ManagePasswordsReferrer int mManagePasswordsReferrer;
private BottomSheetController mBottomSheetController;
@@ -301,6 +315,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
@@ -307,6 +321,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
}
createSavePasswordsSwitch();
@@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
if (shouldShowAutoSigninOption()) {
createAutoSignInCheckbox();
}
@@ -574,6 +589,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
@@ -580,6 +595,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE));
}
@@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
@@ -410,8 +410,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
@@ -436,8 +436,7 @@ public class MainSettings extends ChromeBaseSettingsFragment
private void updateAutofillPreferences() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
@@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -88,6 +88,13 @@ import org.chromium.url.GURL;
@@ -91,6 +91,13 @@ import java.lang.annotation.RetentionPolicy;
import java.nio.ByteBuffer;
import java.util.Objects;
@@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
* class is not intended to be extended.
@@ -938,6 +945,11 @@ class TabImpl implements Tab {
@@ -970,6 +977,11 @@ class TabImpl implements Tab {
for (TabObserver observer : mObservers) observer.onDestroyed(this);
mObservers.clear();
@@ -226,7 +226,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mUserDataHost.destroy();
mTabViewManager.destroy();
hideNativePage(false, null);
@@ -1210,8 +1222,7 @@ class TabImpl implements Tab {
@@ -1242,8 +1254,7 @@ class TabImpl implements Tab {
*/
boolean providesAutofillStructure() {
// TODO(b/326231439): Check pref and AutofillService!
@@ -236,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
}
// Forwarded from TabWebContentsDelegateAndroid.
@@ -1867,15 +1878,20 @@ class TabImpl implements Tab {
@@ -1958,15 +1969,20 @@ class TabImpl implements Tab {
* @return true if the the provider is available for the given WebContents.
*/
private boolean prepareAutofillProvider(WebContents newWebContents) {
@@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mAutofillProvider =
new AutofillProvider(
getContext(),
@@ -1884,7 +1900,16 @@ class TabImpl implements Tab {
@@ -1975,7 +1991,16 @@ class TabImpl implements Tab {
getContext().getString(R.string.app_name));
TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid);
}
@@ -284,9 +284,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
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
@@ -3759,19 +3759,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = {
std::size(kLinkPreviewTriggerTypeLongPress), nullptr}};
#endif // !BUILDFLAG(IS_ANDROID)
@@ -3944,19 +3944,6 @@ const FeatureEntry::FeatureVariation kAutofillGranularFillingAvailableVariations
kAutofillGranularFillingAvailableVariationWithExpandControlVisibleOnSelectionOnly),
nullptr}};
-#if BUILDFLAG(IS_ANDROID)
-inline constexpr flags_ui::FeatureEntry::FeatureParam
@@ -304,7 +304,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
const FeatureEntry::FeatureParam kDefaultBrowserPromptRefreshAggressive[] = {
{"max_prompt_count", "-1"},
{"reprompt_duration", "7d"},
@@ -5749,15 +5736,6 @@ const FeatureEntry kFeatureEntries[] = {
@@ -6019,15 +6006,6 @@ const FeatureEntry kFeatureEntries[] = {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
#if BUILDFLAG(IS_ANDROID)
@@ -361,9 +361,9 @@ diff --git a/chrome/browser/autofill/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
@@ -653,12 +653,6 @@ const char kAutofillUpdateChromeSettingsLinkToGPayWebDescription[] =
"When enabled, Chrome Settings link directs to GPay Web rather than "
"Payments Center for payment methods management.";
@@ -652,12 +652,6 @@ const char kAutofillUpstreamUpdatedUiDescription[] =
"When enabled, shows different text and images in the UI of the credit "
"card upload save bubble.";
-const char kAutofillVirtualViewStructureAndroidName[] =
- "Enable the setting to provide a virtual view structure for Autofill";
@@ -377,9 +377,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
@@ -388,9 +388,6 @@ extern const char kAutofillUpdateChromeSettingsLinkToGPayWebDescription[];
extern const char kAutofillMoreProminentPopupName[];
extern const char kAutofillMoreProminentPopupDescription[];
@@ -388,9 +388,6 @@ extern const char kAutofillSyncEwalletAccountsDescription[];
extern const char kAutofillUpstreamUpdatedUiName[];
extern const char kAutofillUpstreamUpdatedUiDescription[];
-extern const char kAutofillVirtualViewStructureAndroidName[];
-extern const char kAutofillVirtualViewStructureAndroidDescription[];
@@ -390,7 +390,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
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
@@ -679,6 +679,12 @@ CHAR_LIMIT guidelines:
@@ -672,6 +672,12 @@ For more settings that use data to improve your Chrome experience, go to <ph nam
<message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
Save passwords
</message>
@@ -400,8 +400,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
+ <message name="IDS_ENABLE_ANDROID_AUTOFILL_INCOGNITO" desc="Title for the checkbox toggling whether enable Android native autofill or not in incognito mode. [CHAR_LIMIT=32]">
+ Enable native Android autofill in incognito
+ </message>
<message name="IDS_PASSWORDS_AUTO_SIGNIN_TITLE" desc="Title for checkbox to enable automatically signing the user in to websites">
Auto Sign-in
<message name="IDS_PASSWORDS_ACCOUNT_STORAGE_TOGGLE_TITLE" desc="Title for the toggle in settings that controls whether signed-in users can save/autofill passwords to/from their account.">
Use and save passwords in your Google Account
</message>
diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc
--- a/chrome/browser/ui/autofill/autofill_client_provider.cc
@@ -414,7 +414,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
#include "chrome/browser/keyboard_accessory/android/manual_filling_controller_impl.h"
#include "components/android_autofill/browser/android_autofill_client.h"
#endif // BUILDFLAG(IS_ANDROID)
@@ -21,32 +20,13 @@
@@ -21,35 +20,14 @@
namespace autofill {
namespace {
@@ -424,6 +424,9 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
- features::kAutofillVirtualViewStructureAndroid)) {
- return false;
- }
- if (!prefs->GetBoolean(prefs::kAutofillThirdPartyPasswordManagersAllowed)) {
- return false;
- }
- if (!prefs->GetBoolean(prefs::kAutofillUsingVirtualViewStructure)) {
- return false;
- }
@@ -435,7 +438,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
- return false;
-#endif // BUILDFLAG(IS_ANDROID)
-}
-
} // namespace
-AutofillClientProvider::AutofillClientProvider(PrefService* prefs)
@@ -449,7 +452,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
#endif // BUILDFLAG(IS_ANDROID)
}
@@ -54,15 +34,7 @@ AutofillClientProvider::~AutofillClientProvider() = default;
@@ -57,15 +35,7 @@ AutofillClientProvider::~AutofillClientProvider() = default;
void AutofillClientProvider::CreateClientForWebContents(
content::WebContents* web_contents) {
@@ -457,7 +460,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro
-#if BUILDFLAG(IS_ANDROID)
- android_autofill::AndroidAutofillClient::CreateForWebContents(web_contents);
-#else
- NOTREACHED();
- NOTREACHED_IN_MIGRATION();
-#endif
- } else {
ChromeAutofillClient::CreateForWebContents(web_contents);
@@ -485,7 +488,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/brow
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -380,9 +380,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -382,9 +382,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
web_contents);
chrome::ChainedBackNavigationTracker::CreateForWebContents(web_contents);
chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents);
@@ -668,170 +671,29 @@ new file mode 100644
diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc
--- a/components/autofill/content/browser/content_autofill_driver.cc
+++ b/components/autofill/content/browser/content_autofill_driver.cc
@@ -420,6 +420,10 @@ void ContentAutofillDriver::FormsSeen(
const std::vector<FormGlobalId>& removed_forms) {
target->GetAutofillManager().OnFormsSeen(
WithNewVersion(updated_forms), removed_forms);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnFormsSeen(
+ WithNewVersion(updated_forms), removed_forms);
+ }
});
}
@@ -437,6 +441,10 @@ void ContentAutofillDriver::FormSubmitted(
bool known_success, mojom::SubmissionSource submission_source) {
target->GetAutofillManager().OnFormSubmitted(
WithNewVersion(form), known_success, submission_source);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnFormSubmitted(
+ WithNewVersion(form), known_success, submission_source);
+ }
});
}
@@ -457,6 +465,10 @@ void ContentAutofillDriver::CaretMovedInFormField(
const FormFieldData& field, const gfx::Rect& caret_bounds) {
target->GetAutofillManager().OnCaretMovedInFormField(
WithNewVersion(form), field, caret_bounds);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnCaretMovedInFormField(
+ WithNewVersion(form), field, caret_bounds);
+ }
});
}
@@ -475,6 +487,10 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form,
const FormFieldData& field, base::TimeTicks timestamp) {
target->GetAutofillManager().OnTextFieldDidChange(WithNewVersion(form),
field, timestamp);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnTextFieldDidChange(
+ WithNewVersion(form), field, timestamp);
+ }
});
}
@@ -492,6 +508,10 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form,
const FormFieldData& field) {
target->GetAutofillManager().OnTextFieldDidScroll(WithNewVersion(form),
field);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnTextFieldDidScroll(
+ WithNewVersion(form), field);
+ }
});
}
@@ -510,6 +530,10 @@ void ContentAutofillDriver::SelectControlDidChange(
const FormFieldData& field) {
target->GetAutofillManager().OnSelectControlDidChange(
WithNewVersion(form), field);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnSelectControlDidChange(
+ WithNewVersion(form), field);
+ }
});
}
@@ -532,6 +556,10 @@ void ContentAutofillDriver::AskForValuesToFill(
AutofillSuggestionTriggerSource trigger_source) {
target->GetAutofillManager().OnAskForValuesToFill(
WithNewVersion(form), field, caret_bounds, trigger_source);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnAskForValuesToFill(
+ WithNewVersion(form), field, caret_bounds, trigger_source);
+ }
});
}
@@ -543,6 +571,8 @@ void ContentAutofillDriver::HidePopup() {
DCHECK(!target->IsPrerendering())
<< "We should never affect UI while prerendering";
target->GetAutofillManager().OnHidePopup();
+ if (target->secondary_autofill_manager())
+ target->secondary_autofill_manager()->OnHidePopup();
});
}
@@ -554,6 +584,8 @@ void ContentAutofillDriver::FocusOnNonFormField(bool had_interacted_form) {
this, had_interacted_form,
[](autofill::AutofillDriver* target, bool had_interacted_form) {
target->GetAutofillManager().OnFocusOnNonFormField(had_interacted_form);
+ if (target->secondary_autofill_manager())
+ target->secondary_autofill_manager()->OnFocusOnNonFormField(had_interacted_form);
});
}
@@ -571,9 +603,16 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form,
const FormFieldData& field) {
target->GetAutofillManager().OnFocusOnFormField(WithNewVersion(form),
field);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnFocusOnFormField(
+ WithNewVersion(form), field);
@@ -247,6 +247,12 @@ void RouteToManager(ContentAutofillDriver& source,
AutofillManager& manager = target.GetAutofillManager();
(manager.*
manager_fun)(WithNewVersion(std::forward<ManagerArgs>(args))...);
+
+ AutofillManager& secondary_autofill_manager = target.secondary_autofill_manager();
+ if (secondary_autofill_manager) {
+ (secondary_autofill_manager.*
+ manager_fun)(WithNewVersion(std::forward<ManagerArgs>(args))...);
+ }
},
[](autofill::AutofillDriver* target) {
target->GetAutofillManager().OnFocusOnNonFormField(true);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnFocusOnNonFormField(true);
+ }
});
source, Lift(source, std::forward<ActualArgs>(args))...);
}
@@ -588,6 +627,10 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form,
base::TimeTicks timestamp) {
target->GetAutofillManager().OnDidFillAutofillFormData(
WithNewVersion(form), timestamp);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnDidFillAutofillFormData(
+ WithNewVersion(form), timestamp);
+ }
});
}
@@ -597,6 +640,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() {
}
router().DidEndTextFieldEditing(this, [](autofill::AutofillDriver* target) {
target->GetAutofillManager().OnDidEndTextFieldEditing();
+ if (target->secondary_autofill_manager())
+ target->secondary_autofill_manager()->OnDidEndTextFieldEditing();
});
}
@@ -611,6 +656,10 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange(
cast(target)
->GetAutofillManager()
.OnSelectOrSelectListFieldOptionsDidChange(WithNewVersion(form));
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnSelectOrSelectListFieldOptionsDidChange(
+ WithNewVersion(form));
+ }
});
}
@@ -632,6 +681,10 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue(
bool formatting_only) {
target->GetAutofillManager().OnJavaScriptChangedAutofilledValue(
WithNewVersion(form), field, old_value, formatting_only);
+ if (target->secondary_autofill_manager()) {
+ target->secondary_autofill_manager()->OnJavaScriptChangedAutofilledValue(
+ WithNewVersion(form), field, old_value, formatting_only);
+ }
});
}
@@ -639,6 +692,8 @@ void ContentAutofillDriver::Reset() {
owner_->router().UnregisterDriver(this,
/*driver_is_dying=*/false);
@@ -589,6 +595,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue(
void ContentAutofillDriver::Reset() {
owner_->router().UnregisterDriver(*this, /*driver_is_dying=*/false);
autofill_manager_->Reset();
+ if (secondary_autofill_manager_)
+ secondary_autofill_manager_->Reset();
}
const mojo::AssociatedRemote<mojom::AutofillAgent>&
@@ -651,6 +706,10 @@ ContentAutofillDriver::GetAutofillAgent() {
@@ -601,6 +609,10 @@ ContentAutofillDriver::GetAutofillAgent() {
return autofill_agent_;
}
@@ -839,13 +701,13 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
+ return secondary_autofill_manager_.get();
+}
+
void ContentAutofillDriver::SetFrameAndFormMetaData(
FormData& form,
base::optional_ref<FormFieldData> field) const {
void ContentAutofillDriver::LiftForTest(FormData& form) {
form = Lift(*this, form);
}
diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h
--- a/components/autofill/content/browser/content_autofill_driver.h
+++ b/components/autofill/content/browser/content_autofill_driver.h
@@ -128,6 +128,12 @@ class ContentAutofillDriver : public AutofillDriver,
@@ -123,6 +123,12 @@ class ContentAutofillDriver : public AutofillDriver,
ContentAutofillDriver& operator=(const ContentAutofillDriver&) = delete;
~ContentAutofillDriver() override;
@@ -858,7 +720,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com
content::RenderFrameHost* render_frame_host() { return &*render_frame_host_; }
const content::RenderFrameHost* render_frame_host() const {
return &*render_frame_host_;
@@ -309,6 +315,10 @@ class ContentAutofillDriver : public AutofillDriver,
@@ -282,6 +288,10 @@ class ContentAutofillDriver : public AutofillDriver,
// The factory that created this driver. Outlives `this`.
const raw_ref<ContentAutofillDriverFactory> owner_;
@@ -901,7 +763,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
@@ -1221,12 +1221,16 @@ void AutofillAgent::ShowSuggestions(
@@ -1250,12 +1250,16 @@ void AutofillAgent::ShowSuggestions(
password_generation_agent_->ShowPasswordGenerationSuggestions(
input_element)) {
is_popup_possibly_visible_ = true;
@@ -918,13 +780,12 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components
}
}
@@ -1237,11 +1241,13 @@ void AutofillAgent::ShowSuggestions(
@@ -1266,10 +1270,12 @@ void AutofillAgent::ShowSuggestions(
// parenthesis to not match a regex). In this specific case we are actually
// interested in whether the field is currently a password field, not whether
// it has ever been a password field.
+#if !BUILDFLAG(IS_ANDROID)
if (!input_element.IsNull() &&
input_element.IsPasswordField /*disable presubmit*/ () &&
if (input_element && input_element.IsPasswordField /*disable presubmit*/ () &&
!config_.query_password_suggestions) {
return;
}
@@ -935,7 +796,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components
diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
--- a/components/autofill/content/renderer/password_autofill_agent.cc
+++ b/components/autofill/content/renderer/password_autofill_agent.cc
@@ -836,7 +836,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
@@ -849,7 +849,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
void PasswordAutofillAgent::TrackAutofilledElement(
const blink::WebFormControlElement& element) {
@@ -958,23 +819,23 @@ diff --git a/components/autofill/core/browser/autofill_driver.h b/components/aut
+
// Returns whether the AutofillDriver instance is associated with an active
// frame in the MPArch sense.
virtual bool IsInActiveFrame() const = 0;
virtual bool IsActive() const = 0;
diff --git a/components/autofill/core/browser/autofill_manager.h b/components/autofill/core/browser/autofill_manager.h
--- a/components/autofill/core/browser/autofill_manager.h
+++ b/components/autofill/core/browser/autofill_manager.h
@@ -196,6 +196,8 @@ class AutofillManager
@@ -201,6 +201,8 @@ class AutofillManager
~AutofillManager() override;
+ virtual bool IsAndroidAutofill() const = 0;
+
// The following will fail a DCHECK if called for a prerendered main frame.
AutofillClient& client() {
DCHECK(!driver().IsPrerendering());
AutofillClient& client() { return driver_->GetAutofillClient(); }
const AutofillClient& client() const { return driver_->GetAutofillClient(); }
diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc
--- a/components/autofill/core/browser/browser_autofill_manager.cc
+++ b/components/autofill/core/browser/browser_autofill_manager.cc
@@ -606,6 +606,8 @@ BrowserAutofillManager::~BrowserAutofillManager() {
@@ -693,6 +693,8 @@ BrowserAutofillManager::~BrowserAutofillManager() {
// (due to a navigation).
}
@@ -986,7 +847,7 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/comp
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
@@ -136,6 +136,8 @@ class BrowserAutofillManager : public AutofillManager {
@@ -146,6 +146,8 @@ class BrowserAutofillManager : public AutofillManager {
~BrowserAutofillManager() override;
@@ -998,7 +859,7 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/compo
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
@@ -726,7 +726,7 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid,
@@ -774,7 +774,7 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid,
BASE_FEATURE(kAutofillVirtualViewStructureAndroid,
"AutofillVirtualViewStructureAndroid",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1010,7 +871,7 @@ diff --git a/components/autofill/core/common/autofill_features.cc b/components/a
diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h
--- a/components/autofill/core/common/autofill_features.h
+++ b/components/autofill/core/common/autofill_features.h
@@ -231,10 +231,6 @@ BASE_DECLARE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid);
@@ -240,10 +240,6 @@ BASE_DECLARE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid);
COMPONENT_EXPORT(AUTOFILL)
BASE_DECLARE_FEATURE(kAutofillVirtualViewStructureAndroid);
@@ -1024,7 +885,7 @@ diff --git a/components/autofill/core/common/autofill_features.h b/components/au
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
@@ -64,6 +64,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -66,6 +66,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true);
#endif
@@ -1033,19 +894,19 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
registry->RegisterIntegerPref(prefs::kAutocompleteLastVersionRetentionPolicy,
0);
registry->RegisterStringPref(prefs::kAutofillUploadEncodingSeed, "");
@@ -104,7 +106,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -107,7 +109,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
#if BUILDFLAG(IS_ANDROID)
registry->RegisterBooleanPref(prefs::kAutofillUsingVirtualViewStructure,
- false);
+ true);
#endif
#if BUILDFLAG(IS_ANDROID)
registry->RegisterBooleanPref(
prefs::kAutofillThirdPartyPasswordManagersAllowed, true);
registry->RegisterBooleanPref(
diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h
--- a/components/autofill/core/common/autofill_prefs.h
+++ b/components/autofill/core/common/autofill_prefs.h
@@ -87,6 +87,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] =
@@ -100,6 +100,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] =
// retention policy was run.
inline constexpr char kAutocompleteLastVersionRetentionPolicy[] =
"autocomplete.retention_policy_last_version";
@@ -50,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../android/template_url_service_android.cc | 2 +-
.../search_engines/template_url_service.cc | 8 +-
.../search_engines/template_url_service.h | 6 +-
content/browser/webui/web_ui_impl.cc | 16 +-
content/browser/webui/web_ui_impl.cc | 14 +-
content/browser/webui/web_ui_impl.h | 3 +
content/public/browser/web_ui.h | 1 +
ui/base/template_expressions.cc | 21 +-
@@ -67,7 +67,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
ui/webui/resources/include_polymer.gni | 2 +-
ui/webui/resources/js/BUILD.gn | 2 +-
ui/webui/resources/js/load_time_data.ts | 17 +-
60 files changed, 1098 insertions(+), 62 deletions(-)
60 files changed, 1097 insertions(+), 61 deletions(-)
create mode 100644 chrome/app/settings_strings_android.grdp
create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml
create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc
@@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.base.IntentUtils;
import org.chromium.chrome.browser.accessibility.settings.AccessibilitySettings;
import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragment;
@@ -33,6 +36,13 @@ public class SettingsLauncherImpl implements SettingsLauncher {
@@ -36,6 +39,13 @@ public class SettingsLauncherImpl implements SettingsLauncher {
public SettingsLauncherImpl() {}
@@ -118,7 +118,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
<!-- Support Tool strings -->
<if expr="not is_android">
<part file="support_tool_strings.grdp" />
@@ -496,7 +501,7 @@ are declared in tools/grit/grit_rule.gni.
@@ -500,7 +505,7 @@ are declared in tools/grit/grit_rule.gni.
Disable
</message>
<!-- Search strings are only used in webui, so no mobile. -->
@@ -130,7 +130,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -2585,6 +2585,9 @@
@@ -2594,6 +2594,9 @@
<message name="IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION" desc="Label for explaining the format of the URL that should be entered by the user in the add/edit search engine dialog.">
URL with <ph name="SPECIAL_SYMBOL">%s</ph> in place of query
</message>
@@ -408,7 +408,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3782,6 +3782,9 @@ static_library("browser") {
@@ -3764,6 +3764,9 @@ static_library("browser") {
"//components/user_scripts/android",
]
}
@@ -449,11 +449,10 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts
--- a/chrome/browser/resources/settings/page_visibility.ts
+++ b/chrome/browser/resources/settings/page_visibility.ts
@@ -47,7 +47,35 @@ export interface PrivacyPageVisibility {
*/
export let pageVisibility: PageVisibility;
@@ -42,8 +42,36 @@ export interface PrivacyPageVisibility {
searchPrediction: boolean;
}
-if (loadTimeData.getBoolean('isGuest')) {
+const isAndroid = (loadTimeData.getString('chromeAndroid') !== "");
+if (isAndroid) {
+ // @ts-expect-error
@@ -482,10 +481,12 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows
+ chrome.settingsPrivate = chrome.settingsPrivate_;
+}
+
+if (loadTimeData.getBoolean('isGuest') || isAndroid) {
// "if not chromeos" and "if chromeos" in two completely separate blocks
// to work around closure compiler.
// <if expr="not is_chromeos">
function createPageVisibility(): PageVisibility|undefined {
- if (!loadTimeData.getBoolean('isGuest')) {
+ if (!loadTimeData.getBoolean('isGuest') || isAndroid) {
return undefined;
}
diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
--- a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
+++ b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html
@@ -798,7 +799,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
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
@@ -1076,6 +1076,18 @@ static_library("ui") {
@@ -1098,6 +1098,18 @@ static_library("ui") {
# TODO(b/335257259): Resolve circular deps.
allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ]
@@ -1000,7 +1001,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrom
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
@@ -123,6 +123,8 @@
@@ -122,6 +122,8 @@
#include "chrome/browser/ui/webui/webapks/webapks_ui.h"
#include "components/feed/buildflags.h"
#include "components/feed/feed_feature_list.h"
@@ -1009,7 +1010,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
#else // BUILDFLAG(IS_ANDROID)
#include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h"
#include "chrome/browser/media/router/media_router_feature.h"
@@ -579,6 +581,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -588,6 +590,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<WebAppInternalsUI>;
}
#endif // !BUILDFLAG(IS_ANDROID)
@@ -1215,7 +1216,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
+ else if (field_name.compare(kSuggestionUrlField) == 0)
+ is_valid = field_value.empty() || edit_controller_->IsURLValid(field_value);
else
NOTREACHED();
NOTREACHED_IN_MIGRATION();
@@ -415,18 +427,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted(
if (!edit_controller_.get())
@@ -1257,7 +1258,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -2390,6 +2390,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
@@ -2407,6 +2407,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
{"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL},
{"searchEnginesQueryURLExplanation",
IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION},
@@ -1266,7 +1267,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
{"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT},
{"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE},
{"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE},
@@ -3677,6 +3679,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3711,6 +3713,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
AddSystemStrings(html_source);
#endif
@@ -1780,7 +1781,7 @@ new file mode 100644
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
@@ -149,6 +149,17 @@ template("chrome_extra_paks") {
@@ -156,6 +156,17 @@ template("chrome_extra_paks") {
sources += invoker.additional_paks
}
@@ -1801,8 +1802,8 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java
@@ -44,6 +44,8 @@ public interface SettingsLauncher {
int ACCESSIBILITY = 6;
@@ -53,6 +53,8 @@ public interface SettingsLauncher {
int MANAGE_SYNC = 9;
}
+ void launchUrlInCustomTab(Context context, String url);
@@ -1824,7 +1825,7 @@ new file mode 100644
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
--- a/components/search_engines/android/template_url_service_android.cc
+++ b/components/search_engines/android/template_url_service_android.cc
@@ -417,7 +417,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
@@ -419,7 +419,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
if (existing_play_api_turl->safe_for_autoreplace()) {
template_url_service_->ResetTemplateURL(
existing_play_api_turl, existing_play_api_turl->short_name(),
@@ -1836,7 +1837,7 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
@@ -707,13 +707,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
@@ -708,13 +708,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
std::unique_ptr<TemplateURL> template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -1853,7 +1854,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
return Add(std::move(template_url));
}
@@ -909,7 +911,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
@@ -918,7 +920,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
void TemplateURLService::ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1863,7 +1864,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
DCHECK(!IsCreatedByExtension(url));
DCHECK(!keyword.empty());
DCHECK(!search_url.empty());
@@ -921,6 +924,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
@@ -930,6 +933,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
// The urls have changed, reset the favicon url.
data.favicon_url = GURL();
}
@@ -1884,7 +1885,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc
// Removes the keyword from the model. This deletes the supplied TemplateURL.
// This fails if the supplied template_url is the default search provider.
@@ -316,7 +317,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
@@ -319,7 +320,8 @@ class TemplateURLService final : public WebDataServiceConsumer,
void ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1897,7 +1898,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc
diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui_impl.cc
--- a/content/browser/webui/web_ui_impl.cc
+++ b/content/browser/webui/web_ui_impl.cc
@@ -255,6 +255,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message,
@@ -246,6 +246,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message,
message_callbacks_.emplace(message, std::move(callback));
}
@@ -1908,17 +1909,15 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui
void WebUIImpl::ProcessWebUIMessage(const GURL& source_url,
const std::string& message,
base::Value::List args) {
@@ -268,9 +272,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url,
@@ -259,8 +263,14 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url,
return;
}
- DUMP_WILL_BE_NOTREACHED_NORETURN()
- << "Unhandled chrome.send(\"" << message << "\", " << args << "); from "
- << source_url;
- DUMP_WILL_BE_NOTREACHED() << "Unhandled chrome.send(\"" << message << "\", "
- << args << "); from " << source_url;
+ if (!do_not_crash_on_unhandled_message_) {
+ DUMP_WILL_BE_NOTREACHED_NORETURN()
+ << "Unhandled chrome.send(\"" << message << "\", " << args << "); from "
+ << source_url;
+ DUMP_WILL_BE_NOTREACHED() << "Unhandled chrome.send(\"" << message << "\", "
+ << args << "); from " << source_url;
+ } else {
+ DLOG(INFO)
+ << "---Unhandled chrome.send(\"" << message << "\", " << args << "); from "
@@ -1930,7 +1929,7 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui
diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_impl.h
--- a/content/browser/webui/web_ui_impl.h
+++ b/content/browser/webui/web_ui_impl.h
@@ -83,6 +83,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost {
@@ -80,6 +80,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost {
void ProcessWebUIMessage(const GURL& source_url,
const std::string& message,
base::Value::List args) override;
@@ -1938,7 +1937,7 @@ diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_
bool CanCallJavascript() override;
void CallJavascriptFunctionUnsafe(std::string_view function_name) override;
void CallJavascriptFunctionUnsafe(
@@ -154,6 +155,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost {
@@ -151,6 +152,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost {
std::unique_ptr<WebUIController> controller_;
@@ -2099,7 +2098,7 @@ diff --git a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css b/ui/webui/r
diff --git a/ui/webui/resources/cr_elements/cr_shared_vars.css b/ui/webui/resources/cr_elements/cr_shared_vars.css
--- a/ui/webui/resources/cr_elements/cr_shared_vars.css
+++ b/ui/webui/resources/cr_elements/cr_shared_vars.css
@@ -226,6 +226,10 @@ html {
@@ -228,6 +228,10 @@ html {
--cr-form-field-label-line-height: 1;
}
+19 -19
View File
@@ -59,7 +59,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2608,6 +2608,7 @@ static_library("browser") {
@@ -2575,6 +2575,7 @@ static_library("browser") {
"//third_party/ungoogled:switches",
"//services/device/public/mojom",
"//services/device/public/mojom:usb",
@@ -81,7 +81,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/browser/download/android/download_controller.cc
--- a/chrome/browser/download/android/download_controller.cc
+++ b/chrome/browser/download/android/download_controller.cc
@@ -164,6 +164,36 @@ bool ShouldOpenPdfInline(DownloadItem* item) {
@@ -170,6 +170,36 @@ bool ShouldOpenPdfInline(DownloadItem* item) {
!item->IsMustDownload() && item->IsTransient();
}
@@ -118,7 +118,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro
} // namespace
static void JNI_DownloadController_OnAcquirePermissionResult(
@@ -210,7 +240,7 @@ static void JNI_DownloadController_DownloadUrl(JNIEnv* env,
@@ -216,7 +246,7 @@ static void JNI_DownloadController_DownloadUrl(JNIEnv* env,
if (download_manager) {
auto dl_params = std::make_unique<download::DownloadUrlParameters>(
GURL(url),
@@ -130,7 +130,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro
diff --git a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
--- a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
+++ b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
@@ -268,13 +268,43 @@ content::WebContents::Getter GetWebContentsGetter(
@@ -270,13 +270,43 @@ content::WebContents::Getter GetWebContentsGetter(
web_contents->GetPrimaryMainFrame()->GetRoutingID());
}
@@ -289,7 +289,7 @@ new file mode 100644
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1047,6 +1047,7 @@ component("net") {
@@ -1049,6 +1049,7 @@ component("net") {
"//build:chromeos_buildflags",
"//components/miracle_parameter/common",
"//net/http:transport_security_state_generated_files",
@@ -300,7 +300,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn
diff --git a/net/traffic_annotation/network_traffic_annotation.h b/net/traffic_annotation/network_traffic_annotation.h
--- a/net/traffic_annotation/network_traffic_annotation.h
+++ b/net/traffic_annotation/network_traffic_annotation.h
@@ -373,10 +373,6 @@ struct MutablePartialNetworkTrafficAnnotationTag {
@@ -378,10 +378,6 @@ struct MutablePartialNetworkTrafficAnnotationTag {
} // namespace net
// Placeholder for unannotated usages.
@@ -314,7 +314,7 @@ diff --git a/net/traffic_annotation/network_traffic_annotation.h b/net/traffic_a
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
@@ -337,6 +337,9 @@ URLRequestHttpJob::URLRequestHttpJob(
@@ -391,6 +391,9 @@ URLRequestHttpJob::URLRequestHttpJob(
: URLRequestJob(request),
http_user_agent_settings_(http_user_agent_settings) {
ResetTimer();
@@ -324,7 +324,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
}
URLRequestHttpJob::~URLRequestHttpJob() {
@@ -623,6 +626,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) {
@@ -677,6 +680,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) {
void URLRequestHttpJob::StartTransactionInternal() {
DCHECK(!override_response_headers_);
@@ -1647,7 +1647,7 @@ new file mode 100644
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -93,6 +93,7 @@
@@ -94,6 +94,7 @@
#include "net/url_request/url_request.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_context_builder.h"
@@ -1655,7 +1655,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
#include "services/network/brokered_client_socket_factory.h"
#include "services/network/cookie_manager.h"
#include "services/network/cors/cors_url_loader_factory.h"
@@ -1619,6 +1620,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() {
@@ -1680,6 +1681,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() {
void NetworkContext::CreateUDPSocket(
mojo::PendingReceiver<mojom::UDPSocket> receiver,
mojo::PendingRemote<mojom::UDPSocketListener> listener) {
@@ -1665,7 +1665,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener));
}
@@ -1631,6 +1635,17 @@ void NetworkContext::CreateRestrictedUDPSocket(
@@ -1692,6 +1696,17 @@ void NetworkContext::CreateRestrictedUDPSocket(
mojo::PendingRemote<mojom::UDPSocketListener> listener,
CreateRestrictedUDPSocketCallback callback) {
// SimpleHostResolver is transitively owned by |this|.
@@ -1683,7 +1683,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateRestrictedUDPSocket(
addr, mode, traffic_annotation, std::move(params), std::move(receiver),
std::move(listener), SimpleHostResolver::Create(this),
@@ -1643,6 +1658,17 @@ void NetworkContext::CreateTCPServerSocket(
@@ -1704,6 +1719,17 @@ void NetworkContext::CreateTCPServerSocket(
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
mojo::PendingReceiver<mojom::TCPServerSocket> receiver,
CreateTCPServerSocketCallback callback) {
@@ -1701,7 +1701,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateTCPServerSocket(
local_addr, std::move(options),
static_cast<net::NetworkTrafficAnnotationTag>(traffic_annotation),
@@ -1657,6 +1683,21 @@ void NetworkContext::CreateTCPConnectedSocket(
@@ -1718,6 +1744,21 @@ void NetworkContext::CreateTCPConnectedSocket(
mojo::PendingReceiver<mojom::TCPConnectedSocket> receiver,
mojo::PendingRemote<mojom::SocketObserver> observer,
CreateTCPConnectedSocketCallback callback) {
@@ -1723,7 +1723,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateTCPConnectedSocket(
local_addr, remote_addr_list, std::move(tcp_connected_socket_options),
static_cast<net::NetworkTrafficAnnotationTag>(traffic_annotation),
@@ -1668,6 +1709,20 @@ void NetworkContext::CreateTCPBoundSocket(
@@ -1729,6 +1770,20 @@ void NetworkContext::CreateTCPBoundSocket(
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
mojo::PendingReceiver<mojom::TCPBoundSocket> receiver,
CreateTCPBoundSocketCallback callback) {
@@ -1744,7 +1744,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateTCPBoundSocket(
local_addr,
static_cast<net::NetworkTrafficAnnotationTag>(traffic_annotation),
@@ -1734,6 +1789,24 @@ void NetworkContext::CreateWebSocket(
@@ -1795,6 +1850,24 @@ void NetworkContext::CreateWebSocket(
mojo::PendingRemote<mojom::WebSocketAuthenticationHandler> auth_handler,
mojo::PendingRemote<mojom::TrustedHeaderClient> header_client,
const std::optional<base::UnguessableToken>& throttling_profile_id) {
@@ -1772,7 +1772,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network/public/cpp/simple_url_loader.cc
--- a/services/network/public/cpp/simple_url_loader.cc
+++ b/services/network/public/cpp/simple_url_loader.cc
@@ -1276,6 +1276,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl(
@@ -1277,6 +1277,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl(
timeout_timer_(timeout_tick_clock_) {
// Allow creation and use on different threads.
DETACH_FROM_SEQUENCE(sequence_checker_);
@@ -1781,7 +1781,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network
#if DCHECK_IS_ON()
if (resource_request_->request_body) {
for (const DataElement& element :
@@ -1717,6 +1719,22 @@ void SimpleURLLoaderImpl::StartRequest(
@@ -1724,6 +1726,22 @@ void SimpleURLLoaderImpl::StartRequest(
resource_request_->request_body->AppendDataPipe(
string_upload_data_pipe_getter_->GetRemoteForNewUpload());
}
@@ -1815,7 +1815,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.h b/services/network/
class GURL;
@@ -408,6 +409,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader {
@@ -413,6 +414,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader {
protected:
SimpleURLLoader();
@@ -1833,7 +1833,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t
case network::mojom::RequestDestination::kFencedframe:
- case network::mojom::RequestDestination::kWebIdentity:
- case network::mojom::RequestDestination::kSharedStorageWorklet:
NOTREACHED();
NOTREACHED_IN_MIGRATION();
[[fallthrough]];
+ // Split destination with new annotations
@@ -4,18 +4,21 @@ Subject: Keep ComputePressure disabled
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../blink/renderer/platform/runtime_enabled_features.json5 | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
.../renderer/platform/runtime_enabled_features.json5 | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
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
@@ -699,8 +699,9 @@
@@ -707,11 +707,9 @@
status: "experimental",
},
{
// Shipping in M125. Should be removed after M127.
- name: "ComputePressure",
- status: "stable",
- status: {
- "Android": "",
- "default": "stable",
- }
+ name: "ComputePressure", // disabled
+ status: "experimental", // by default
+ public: true,
File diff suppressed because it is too large Load Diff
+81 -69
View File
@@ -10,8 +10,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../web_package/signed_exchange_handler.cc | 7 +-
.../web_package/signed_exchange_handler.h | 2 +
.../web_package/signed_exchange_loader.cc | 2 +-
net/http/transport_security_state.cc | 106 ++++++++++++------
net/http/transport_security_state.h | 38 ++++---
net/http/transport_security_state.cc | 109 ++++++++++++------
net/http/transport_security_state.h | 38 +++---
net/quic/crypto/proof_verifier_chromium.cc | 5 +-
net/quic/quic_chromium_client_session.cc | 2 +-
net/socket/ssl_client_socket_impl.cc | 5 +-
@@ -22,12 +22,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
services/network/network_context.cc | 31 +++--
services/network/network_context.h | 13 ++-
.../public/mojom/network_context.mojom | 9 +-
18 files changed, 170 insertions(+), 101 deletions(-)
18 files changed, 172 insertions(+), 102 deletions(-)
diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc
--- a/chrome/browser/ssl/https_upgrades_interceptor.cc
+++ b/chrome/browser/ssl/https_upgrades_interceptor.cc
@@ -362,6 +362,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
@@ -359,6 +359,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
network::mojom::NetworkContext* network_context =
profile->GetDefaultStoragePartition()->GetNetworkContext();
network_context->IsHSTSActiveForHost(
@@ -78,7 +78,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/
diff --git a/components/password_manager/core/browser/hsts_query.cc b/components/password_manager/core/browser/hsts_query.cc
--- a/components/password_manager/core/browser/hsts_query.cc
+++ b/components/password_manager/core/browser/hsts_query.cc
@@ -58,6 +58,7 @@ void PostHSTSQueryForHostAndNetworkContext(
@@ -59,6 +59,7 @@ void PostHSTSQueryForHostAndNetworkContext(
scoped_refptr<HSTSCallbackHelper> callback_helper =
base::MakeRefCounted<HSTSCallbackHelper>(std::move(callback));
network_context->IsHSTSActiveForHost(
@@ -89,7 +89,7 @@ diff --git a/components/password_manager/core/browser/hsts_query.cc b/components
diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc
--- a/content/browser/web_package/signed_exchange_handler.cc
+++ b/content/browser/web_package/signed_exchange_handler.cc
@@ -89,6 +89,7 @@ using VerifyCallback =
@@ -94,6 +94,7 @@ using VerifyCallback =
void VerifyCert(const scoped_refptr<net::X509Certificate>& certificate,
const GURL& url,
@@ -97,7 +97,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br
const std::string& ocsp_result,
const std::string& sct_list,
int frame_tree_node_id,
@@ -110,7 +111,7 @@ void VerifyCert(const scoped_refptr<net::X509Certificate>& certificate,
@@ -115,7 +116,7 @@ void VerifyCert(const scoped_refptr<net::X509Certificate>& certificate,
}
network_context->VerifyCertForSignedExchange(
@@ -106,7 +106,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br
}
std::string OCSPErrorToString(const bssl::OCSPVerifyResult& ocsp_result) {
@@ -173,6 +174,7 @@ SignedExchangeHandler::SignedExchangeHandler(
@@ -178,6 +179,7 @@ SignedExchangeHandler::SignedExchangeHandler(
std::unique_ptr<net::SourceStream> body,
ExchangeHeadersCallback headers_callback,
std::unique_ptr<SignedExchangeCertFetcherFactory> cert_fetcher_factory,
@@ -114,7 +114,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br
const std::optional<net::IsolationInfo> outer_request_isolation_info,
int load_flags,
const net::IPEndPoint& remote_endpoint,
@@ -186,6 +188,7 @@ SignedExchangeHandler::SignedExchangeHandler(
@@ -191,6 +193,7 @@ SignedExchangeHandler::SignedExchangeHandler(
source_(std::move(body)),
cert_fetcher_factory_(std::move(cert_fetcher_factory)),
devtools_proxy_(std::move(devtools_proxy)),
@@ -122,7 +122,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br
outer_request_isolation_info_(std::move(outer_request_isolation_info)),
load_flags_(load_flags),
remote_endpoint_(remote_endpoint),
@@ -529,7 +532,7 @@ void SignedExchangeHandler::OnCertReceived(
@@ -534,7 +537,7 @@ void SignedExchangeHandler::OnCertReceived(
// property, or
const std::string& stapled_ocsp_response = unverified_cert_chain_->ocsp();
@@ -165,7 +165,7 @@ diff --git a/content/browser/web_package/signed_exchange_loader.cc b/content/bro
diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc
--- a/net/http/transport_security_state.cc
+++ b/net/http/transport_security_state.cc
@@ -82,7 +82,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) {
@@ -87,7 +87,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) {
// Converts |hostname| from dotted form ("www.google.com") to the form
// used in DNS: "\x03www\x06google\x03com", lowercases that, and returns
// the result.
@@ -174,7 +174,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
// We cannot perform the operations as detailed in the spec here as `host`
// has already undergone IDN processing before it reached us. Thus, we
// lowercase the input (probably redudnant since most input here has been
@@ -103,6 +103,29 @@ std::vector<uint8_t> CanonicalizeHost(const std::string& host) {
@@ -108,6 +108,29 @@ std::vector<uint8_t> CanonicalizeHost(const std::string& host) {
return new_host.value();
}
@@ -204,7 +204,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
// PreloadResult is the result of resolving a specific name in the preloaded
// data.
struct PreloadResult {
@@ -194,7 +217,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
@@ -199,7 +222,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
// Ensure that |search_hostname| is a valid hostname before
// processing.
@@ -213,7 +213,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
return false;
}
// Normalize any trailing '.' used for DNS suffix searches.
@@ -255,18 +278,19 @@ TransportSecurityState::TransportSecurityState(
@@ -260,18 +283,19 @@ TransportSecurityState::TransportSecurityState(
// Both HSTS and HPKP cause fatal SSL errors, so return true if a
// host has either.
@@ -236,20 +236,32 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
dict.Set("should_upgrade_to_ssl", sts_state.ShouldUpgradeToSSL());
dict.Set("host_found_in_hsts_bypass_list",
hsts_host_bypass_list_.find(host) != hsts_host_bypass_list_.end());
@@ -274,31 +298,33 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam(
@@ -279,13 +303,14 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam(
}
SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision(
+ const NetworkAnonymizationKey& nak,
const std::string& host,
const NetLogWithSource& net_log) {
net_log.AddEvent(
NetLogEventType::TRANSPORT_SECURITY_STATE_SHOULD_UPGRADE_TO_SSL,
- [&] { return NetLogUpgradeToSSLParam(host); });
+ [&] { return NetLogUpgradeToSSLParam(nak, host); });
STSState sts_state;
- if (GetDynamicSTSState(host, &sts_state)) {
+ if (GetDynamicSTSState(nak, host, &sts_state)) {
if (sts_state.ShouldUpgradeToSSL()) {
// If the static state also requires an upgrade, the dynamic state didn't
// need to be used in the decision.
@@ -305,27 +330,29 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision(
}
bool TransportSecurityState::ShouldUpgradeToSSL(
+ const NetworkAnonymizationKey& nak,
const std::string& host,
const NetLogWithSource& net_log) {
STSState sts_state;
net_log.AddEvent(
NetLogEventType::TRANSPORT_SECURITY_STATE_SHOULD_UPGRADE_TO_SSL,
- [&] { return NetLogUpgradeToSSLParam(host); });
- return GetSTSState(host, &sts_state) && sts_state.ShouldUpgradeToSSL();
+ [&] { return NetLogUpgradeToSSLParam(nak, host); });
+ return GetSTSState(nak, host, &sts_state) && sts_state.ShouldUpgradeToSSL();
- return GetSSLUpgradeDecision(host, net_log) != SSLUpgradeDecision::kNoUpgrade;
+ return GetSSLUpgradeDecision(nak, host, net_log) != SSLUpgradeDecision::kNoUpgrade;
}
TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
@@ -277,7 +289,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
}
TransportSecurityState::CTRequirementsStatus
@@ -379,12 +405,13 @@ void TransportSecurityState::UpdatePinList(
@@ -406,12 +433,13 @@ void TransportSecurityState::UpdatePinList(
}
void TransportSecurityState::AddHSTSInternal(
@@ -292,7 +304,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return;
@@ -408,13 +435,14 @@ void TransportSecurityState::AddHSTSInternal(
@@ -435,13 +463,14 @@ void TransportSecurityState::AddHSTSInternal(
DirtyNotify();
}
@@ -309,7 +321,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return;
@@ -459,10 +487,12 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins(
@@ -486,10 +515,12 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins(
return PKPStatus::VIOLATED;
}
@@ -324,7 +336,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return false;
@@ -539,7 +569,8 @@ void TransportSecurityState::DirtyNotify() {
@@ -566,7 +597,8 @@ void TransportSecurityState::DirtyNotify() {
delegate_->StateIsDirty(this);
}
@@ -334,7 +346,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
const std::string& value) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
@@ -558,23 +589,25 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host,
@@ -585,23 +617,25 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host,
upgrade_mode = STSState::MODE_FORCE_HTTPS;
}
@@ -365,7 +377,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
}
size_t TransportSecurityState::num_sts_entries() const {
@@ -592,9 +625,10 @@ TransportSecurityState::PKPStatus
@@ -619,9 +653,10 @@ TransportSecurityState::PKPStatus
TransportSecurityState::CheckPublicKeyPinsImpl(
const HostPortPair& host_port_pair,
bool is_issued_by_known_root,
@@ -378,7 +390,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
// HasPublicKeyPins should have returned true in order for this method to have
// been called.
@@ -635,7 +669,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
@@ -662,7 +697,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
PreloadResult result;
if (host_pins_.has_value()) {
// Ensure that |host| is a valid hostname before processing.
@@ -387,7 +399,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
return false;
}
// Normalize any trailing '.' used for DNS suffix searches.
@@ -718,21 +752,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
@@ -745,21 +780,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
return false;
}
@@ -418,7 +430,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return false;
@@ -769,11 +806,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host,
@@ -796,11 +834,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host,
return false;
}
@@ -436,7 +448,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h
--- a/net/http/transport_security_state.h
+++ b/net/http/transport_security_state.h
@@ -280,13 +280,14 @@ class NET_EXPORT TransportSecurityState {
@@ -297,13 +297,14 @@ class NET_EXPORT TransportSecurityState {
// primary public interface; direct access to STS and PKP states is best
// left to tests. The caller needs to handle the optional pinning override
// when is_issued_by_known_root is false.
@@ -455,7 +467,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
// Returns CT_REQUIREMENTS_NOT_MET if a connection violates CT policy
// requirements: that is, if a connection to |host|, using the validated
@@ -370,7 +371,7 @@ class NET_EXPORT TransportSecurityState {
@@ -387,7 +388,7 @@ class NET_EXPORT TransportSecurityState {
//
// If an entry is deleted, the new state will be persisted through
// the Delegate (if any).
@@ -464,7 +476,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
// Returns true and updates |*result| if |host| has dynamic or static
// HSTS/HPKP (respectively) state. If multiple entries match |host|, dynamic
@@ -380,8 +381,8 @@ class NET_EXPORT TransportSecurityState {
@@ -397,8 +398,8 @@ class NET_EXPORT TransportSecurityState {
//
// Note that these methods are not const because they opportunistically remove
// entries that have expired.
@@ -475,7 +487,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
// Returns true and updates |*result| iff |host| has static HSTS/HPKP
// (respectively) state. If multiple entries match |host|, the most specific
@@ -395,22 +396,24 @@ class NET_EXPORT TransportSecurityState {
@@ -412,22 +413,24 @@ class NET_EXPORT TransportSecurityState {
//
// Note that these methods are not const because they opportunistically remove
// entries that have expired.
@@ -505,7 +517,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
const base::Time& expiry,
bool include_subdomains,
const HashValueVector& hashes);
@@ -448,7 +451,7 @@ class NET_EXPORT TransportSecurityState {
@@ -465,7 +468,7 @@ class NET_EXPORT TransportSecurityState {
typedef std::map<HashedHost, STSState> STSStateMap;
typedef std::map<HashedHost, PKPState> PKPStateMap;
@@ -514,7 +526,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
// IsBuildTimely returns true if the current build is new enough ensure that
// built in security information (i.e. HSTS preloading and pinning
@@ -458,7 +461,8 @@ class NET_EXPORT TransportSecurityState {
@@ -475,7 +478,8 @@ class NET_EXPORT TransportSecurityState {
// Helper method for actually checking pins.
PKPStatus CheckPublicKeyPinsImpl(const HostPortPair& host_port_pair,
bool is_issued_by_known_root,
@@ -524,7 +536,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
// If a Delegate is present, notify it that the internal state has
// changed.
@@ -468,11 +472,13 @@ class NET_EXPORT TransportSecurityState {
@@ -485,11 +489,13 @@ class NET_EXPORT TransportSecurityState {
// any previous state for the |host|, including static entries.
//
// The new state for |host| is persisted using the Delegate (if any).
@@ -543,7 +555,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_verifier_chromium.cc
--- a/net/quic/crypto/proof_verifier_chromium.cc
+++ b/net/quic/crypto/proof_verifier_chromium.cc
@@ -403,7 +403,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
@@ -412,7 +412,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
transport_security_state_->CheckPublicKeyPins(
HostPortPair(hostname_, port_),
cert_verify_result.is_issued_by_known_root,
@@ -553,7 +565,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_
switch (pin_validity) {
case TransportSecurityState::PKPStatus::VIOLATED:
result = ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN;
@@ -430,7 +431,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
@@ -439,7 +440,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
verify_details_->is_fatal_cert_error =
IsCertStatusError(cert_status) &&
result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED &&
@@ -565,7 +577,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
--- a/net/quic/quic_chromium_client_session.cc
+++ b/net/quic/quic_chromium_client_session.cc
@@ -1444,7 +1444,7 @@ bool QuicChromiumClientSession::CanPool(
@@ -1450,7 +1450,7 @@ bool QuicChromiumClientSession::CanPool(
return SpdySession::CanPool(transport_security_state_, ssl_info,
*ssl_config_service_, session_key_.host(),
@@ -577,7 +589,7 @@ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_c
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
--- a/net/socket/ssl_client_socket_impl.cc
+++ b/net/socket/ssl_client_socket_impl.cc
@@ -1188,7 +1188,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
@@ -1193,7 +1193,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
TransportSecurityState::PKPStatus pin_validity =
context_->transport_security_state()->CheckPublicKeyPins(
host_and_port_, server_cert_verify_result_.is_issued_by_known_root,
@@ -587,7 +599,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
switch (pin_validity) {
case TransportSecurityState::PKPStatus::VIOLATED:
server_cert_verify_result_.cert_status |=
@@ -1210,7 +1211,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
@@ -1215,7 +1216,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
IsCertStatusError(server_cert_verify_result_.cert_status) &&
result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED &&
context_->transport_security_state()->ShouldSSLErrorsBeFatal(
@@ -599,7 +611,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket
diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
--- a/net/spdy/spdy_session.cc
+++ b/net/spdy/spdy_session.cc
@@ -733,7 +733,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state,
@@ -738,7 +738,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state,
const SSLInfo& ssl_info,
const SSLConfigService& ssl_config_service,
std::string_view old_hostname,
@@ -609,7 +621,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
// Pooling is prohibited if the server cert is not valid for the new domain,
// and for connections on which client certs were sent. It is also prohibited
// when channel ID was sent if the hosts are from different eTLDs+1.
@@ -752,7 +753,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state,
@@ -757,7 +758,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state,
// Port is left at 0 as it is never used.
if (transport_security_state->CheckPublicKeyPins(
HostPortPair(new_hostname, 0), ssl_info.is_issued_by_known_root,
@@ -618,7 +630,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
TransportSecurityState::PKPStatus::VIOLATED) {
return false;
}
@@ -973,7 +974,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const {
@@ -978,7 +979,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const {
return true; // This is not a secure session, so all domains are okay.
return CanPool(transport_security_state_, ssl_info, *ssl_config_service_,
@@ -628,7 +640,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
}
void SpdySession::EnqueueStreamWrite(
@@ -3009,7 +3011,8 @@ void SpdySession::OnAltSvc(
@@ -3014,7 +3016,8 @@ void SpdySession::OnAltSvc(
return;
}
if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_,
@@ -678,17 +690,17 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
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
@@ -280,7 +280,8 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
TransportSecurityState* hsts = request->context()->transport_security_state();
bool should_upgrade_to_ssl =
- hsts && hsts->ShouldUpgradeToSSL(url.host(), request->net_log());
+ hsts && hsts->ShouldUpgradeToSSL(request->isolation_info().network_anonymization_key(),
@@ -333,7 +333,8 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
if (TransportSecurityState* hsts =
request->context()->transport_security_state()) {
upgrade_decision =
- hsts->GetSSLUpgradeDecision(url.host(), request->net_log());
+ hsts->GetSSLUpgradeDecision(request->isolation_info().network_anonymization_key(),
+ url.host(), request->net_log());
}
// Check for reasons not to return a URLRequestHttpJob. These don't apply to
// https and wss requests.
@@ -1106,7 +1107,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() {
@@ -1151,7 +1152,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() {
HttpResponseHeaders* headers = GetResponseHeaders();
std::string value;
if (headers->EnumerateHeader(nullptr, "Strict-Transport-Security", &value))
@@ -697,7 +709,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
}
void URLRequestHttpJob::OnStartCompleted(int result) {
@@ -1176,7 +1177,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) {
@@ -1221,7 +1222,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) {
TransportSecurityState* state = context->transport_security_state();
NotifySSLCertificateError(
result, transaction_->GetResponseInfo()->ssl_info,
@@ -709,7 +721,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -1822,6 +1822,7 @@ void NetworkContext::CreateHostResolver(
@@ -1883,6 +1883,7 @@ void NetworkContext::CreateHostResolver(
void NetworkContext::VerifyCertForSignedExchange(
const scoped_refptr<net::X509Certificate>& certificate,
const GURL& url,
@@ -717,7 +729,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
const std::string& ocsp_result,
const std::string& sct_list,
VerifyCertForSignedExchangeCallback callback) {
@@ -1832,6 +1833,7 @@ void NetworkContext::VerifyCertForSignedExchange(
@@ -1893,6 +1894,7 @@ void NetworkContext::VerifyCertForSignedExchange(
pending_cert_verify->result = std::make_unique<net::CertVerifyResult>();
pending_cert_verify->certificate = certificate;
pending_cert_verify->url = url;
@@ -725,7 +737,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
pending_cert_verify->ocsp_result = ocsp_result;
pending_cert_verify->sct_list = sct_list;
net::CertVerifier* cert_verifier =
@@ -1876,17 +1878,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
@@ -1937,17 +1939,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
std::move(callback).Run();
}
@@ -748,7 +760,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
IsHSTSActiveForHostCallback callback) {
net::TransportSecurityState* security_state =
url_request_context_->transport_security_state();
@@ -1896,10 +1900,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
@@ -1957,10 +1961,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
return;
}
@@ -761,7 +773,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
GetHSTSStateCallback callback) {
base::Value::Dict result;
@@ -1937,10 +1941,10 @@ void NetworkContext::GetHSTSState(const std::string& domain,
@@ -1998,10 +2002,10 @@ void NetworkContext::GetHSTSState(const std::string& domain,
net::TransportSecurityState::STSState dynamic_sts_state;
net::TransportSecurityState::PKPState dynamic_pkp_state;
bool found_sts_dynamic = transport_security_state->GetDynamicSTSState(
@@ -774,7 +786,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
if (found_sts_dynamic) {
result.Set("dynamic_upgrade_mode",
static_cast<int>(dynamic_sts_state.upgrade_mode));
@@ -1978,6 +1982,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
@@ -2039,6 +2043,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
}
void NetworkContext::DeleteDynamicDataForHost(
@@ -782,7 +794,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
const std::string& host,
DeleteDynamicDataForHostCallback callback) {
net::TransportSecurityState* transport_security_state =
@@ -1988,7 +1993,7 @@ void NetworkContext::DeleteDynamicDataForHost(
@@ -2049,7 +2054,7 @@ void NetworkContext::DeleteDynamicDataForHost(
}
std::move(callback).Run(
@@ -791,7 +803,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
}
void NetworkContext::EnableStaticKeyPinningForTesting(
@@ -2029,7 +2034,7 @@ void NetworkContext::PreconnectSockets(
@@ -2090,7 +2095,7 @@ void NetworkContext::PreconnectSockets(
DCHECK(!require_network_anonymization_key_ ||
!network_anonymization_key.IsEmpty());
@@ -800,7 +812,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
// |PreconnectSockets| may receive arguments from the renderer, which is not
// guaranteed to validate them.
@@ -2848,12 +2853,15 @@ void NetworkContext::OnConnectionError() {
@@ -2907,12 +2912,15 @@ void NetworkContext::OnConnectionError() {
std::move(on_connection_close_callback_).Run(this);
}
@@ -817,7 +829,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
original_url.host())) {
return original_url;
}
@@ -2901,7 +2909,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete(
@@ -2960,7 +2968,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete(
url_request_context_->transport_security_state()->CheckPublicKeyPins(
net::HostPortPair::FromURL(pending_cert_verify->url),
pending_cert_verify->result->is_issued_by_known_root,
@@ -830,7 +842,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
diff --git a/services/network/network_context.h b/services/network/network_context.h
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -407,18 +407,21 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -410,18 +410,21 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
void VerifyCertForSignedExchange(
const scoped_refptr<net::X509Certificate>& certificate,
const GURL& url,
@@ -855,7 +867,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
const std::string& host,
DeleteDynamicDataForHostCallback callback) override;
void SetCorsOriginAccessListsForOrigin(
@@ -727,7 +730,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -735,7 +738,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
mojo::PendingRemote<mojom::CookieAccessObserver> cookie_observer,
net::FirstPartySetMetadata first_party_set_metadata);
@@ -865,7 +877,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
#if BUILDFLAG(IS_P2P_ENABLED)
void DestroySocketManager(P2PSocketManager* socket_manager);
@@ -919,6 +923,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -924,6 +928,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
VerifyCertForSignedExchangeCallback callback;
scoped_refptr<net::X509Certificate> certificate;
GURL url;
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
...storage_access_grant_permission_context.cc | 12 ++++
.../experiment/experiment_manager_impl.cc | 1 +
.../core/browser/cookie_settings.cc | 2 +
.../core/common/cookie_settings_base.cc | 60 +------------------
.../core/common/cookie_settings_base.cc | 66 +------------------
...ioning-all-cookies-by-top-frame-domain.inc | 3 +
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
@@ -27,14 +27,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
net/cookies/cookie_util.cc | 1 +
net/cookies/parsed_cookie.h | 6 +-
.../sqlite/sqlite_persistent_cookie_store.cc | 8 +++
net/url_request/url_request_http_job.cc | 10 +---
net/url_request/url_request_http_job.cc | 10 +--
services/network/cookie_settings.cc | 6 +-
services/network/restricted_cookie_manager.cc | 6 ++
.../modules/cookie_store/cookie_init.idl | 2 +-
.../modules/cookie_store/cookie_store.cc | 3 +
.../cookie_store_delete_options.idl | 2 +-
ui/webui/webui_allowlist.cc | 1 +
25 files changed, 76 insertions(+), 84 deletions(-)
25 files changed, 76 insertions(+), 90 deletions(-)
create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
@@ -43,7 +43,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -3484,7 +3484,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
@@ -3524,7 +3524,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
scoped_refptr<content_settings::CookieSettings> cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
if (!cookie_settings) {
@@ -69,7 +69,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
@@ -781,16 +781,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
@@ -799,16 +799,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
// UI to interact with SameSite cookies on accounts.google.com, which is used
// for displaying a list of available accounts on the NTP
// (chrome://new-tab-page), etc.
@@ -95,7 +95,7 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
@@ -363,6 +363,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const {
@@ -361,6 +361,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const {
bool PrivacySandboxSettingsDelegate::
AreThirdPartyCookiesBlockedByCookieDeprecationExperiment() const {
@@ -139,7 +139,7 @@ diff --git a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc b/chrome/
diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc
--- a/components/content_settings/core/browser/cookie_settings.cc
+++ b/components/content_settings/core/browser/cookie_settings.cc
@@ -132,6 +132,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic(
@@ -133,6 +133,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic(
const GURL& first_party_url,
base::TimeDelta ttl,
bool use_schemeless_patterns) {
@@ -147,7 +147,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
if (url.is_empty() || first_party_url.is_empty()) {
return;
}
@@ -398,6 +399,7 @@ bool CookieSettings::MitigationsEnabledFor3pcdInternal() {
@@ -406,6 +407,7 @@ bool CookieSettings::MitigationsEnabledFor3pcdInternal() const {
->AreThirdPartyCookiesAllowedByEnterprise();
}
@@ -158,7 +158,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc
--- a/components/content_settings/core/common/cookie_settings_base.cc
+++ b/components/content_settings/core/common/cookie_settings_base.cc
@@ -39,16 +39,6 @@ using net::cookie_util::StorageAccessResult;
@@ -41,16 +41,6 @@ using net::cookie_util::StorageAccessResult;
using ThirdPartyCookieAllowMechanism =
CookieSettingsBase::ThirdPartyCookieAllowMechanism;
@@ -174,22 +174,18 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
-
constexpr StorageAccessResult GetStorageAccessResult(
ThirdPartyCookieAllowMechanism mechanism) {
switch (mechanism) {
@@ -534,62 +524,14 @@ CookieSettingsBase::DecideAccess(const GURL& url,
return BlockAllCookies{};
using AllowMechanism = ThirdPartyCookieAllowMechanism;
@@ -542,70 +532,16 @@ CookieSettingsBase::DecideAccess(
return AllowAllCookies{ThirdPartyCookieAllowMechanism::kNone};
}
- if (!ShouldBlockThirdPartyCookies() &&
- !Are3pcsForceDisabledByOverride(overrides)) {
- if (!global_setting_or_embedder_blocks_third_party_cookies) {
- return AllowAllCookies{
- ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting};
- }
-
if (!is_third_party_request) {
return AllowAllCookies{ThirdPartyCookieAllowMechanism::kNone};
}
- if (IsThirdPartyCookiesAllowedScheme(first_party_url.scheme())) {
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kNone};
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowByScheme};
- }
-
- // Site controlled mechanisms (ex: web APIs, deprecation trial):
@@ -221,7 +217,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
- }
-
- // Enterprise Policies:
- if (is_explicit_setting && setting_source == SettingSource::kPolicy) {
- if (is_explicit_setting && setting_info.source == SettingSource::kPolicy) {
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::
- kAllowByEnterprisePolicyCookieAllowedForUrls};
- }
@@ -229,8 +225,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
- // Chrome controlled mechanisms (ex. 3PCD Metadata Grants):
- SettingInfo tpcd_metadata_info;
- if (IsAllowedBy3pcdMetadataGrantsSettings(url, first_party_url, overrides,
- &tpcd_metadata_info) &&
- !IgnoreTpcdDtGracePeriodMetadataEntry(tpcd_metadata_info)) {
- &tpcd_metadata_info)) {
- return AllowAllCookies{TpcdMetadataSourceToAllowMechanism(
- tpcd_metadata_info.metadata.tpcd_metadata_rule_source())};
- }
@@ -238,15 +233,28 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
if (is_explicit_setting) {
return AllowAllCookies{
ThirdPartyCookieAllowMechanism::kAllowByExplicitSetting};
@@ -623,7 +565,7 @@ CookieSettingsBase::GetCookieSettingInternal(
}
- // Check for a TRACKING_PROTECTION exception, which should also disable 3PCB.
- SettingInfo tp_info;
- if (IsAllowedByTrackingProtectionSetting(url, first_party_url, tp_info)) {
- setting_info = tp_info;
- return AllowAllCookies{
- ThirdPartyCookieAllowMechanism::kAllowByTrackingProtectionException};
- }
-
return AllowPartitionedCookies{};
}
@@ -637,7 +573,7 @@ CookieSettingsBase::GetCookieSettingInternal(
}
return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW,
/*allow_partitioned_cookies=*/true,
- /*is_explicit_setting=*/false,
+ /*is_explicit_setting=*/true,
/*third_party_cookie_allow_mechanism=*/
ThirdPartyCookieAllowMechanism::kNone};
}
ThirdPartyCookieAllowMechanism::kNone,
is_third_party_request};
diff --git a/cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc b/cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
new file mode 100644
--- /dev/null
@@ -284,7 +292,7 @@ new file mode 100644
diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
--- a/net/cookies/canonical_cookie.cc
+++ b/net/cookies/canonical_cookie.cc
@@ -1001,9 +1001,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const {
@@ -999,9 +999,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const {
if (CookiePartitionKey::HasNonce(PartitionKey())) {
return true;
}
@@ -310,7 +318,7 @@ diff --git a/net/cookies/cookie_deletion_info.cc b/net/cookies/cookie_deletion_i
diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
--- a/net/cookies/cookie_monster.cc
+++ b/net/cookies/cookie_monster.cc
@@ -2216,6 +2216,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies(
@@ -2230,6 +2230,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies(
if (cookie_partition_it == partitioned_cookies_.end())
return num_deleted;
@@ -321,7 +329,7 @@ diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc
--- a/net/cookies/cookie_util.cc
+++ b/net/cookies/cookie_util.cc
@@ -726,6 +726,7 @@ bool IsCookiePartitionedValid(const GURL& url,
@@ -732,6 +732,7 @@ bool IsCookiePartitionedValid(const GURL& url,
bool secure,
bool is_partitioned,
bool partition_has_nonce) {
@@ -340,7 +348,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
#include "net/base/net_export.h"
#include "net/cookies/cookie_constants.h"
@@ -85,7 +86,10 @@ class NET_EXPORT ParsedCookie {
@@ -82,7 +83,10 @@ class NET_EXPORT ParsedCookie {
CookieSameSite SameSite(
CookieSameSiteString* samesite_string = nullptr) const;
CookiePriority Priority() const;
@@ -350,8 +358,8 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
+ return partitioned_index_ != 0;
+ }
bool HasInternalHtab() const { return internal_htab_; }
TruncatingCharacterInCookieStringType
GetTruncatingCharacterInCookieStringType() const {
// Returns the number of attributes, for example, returning 2 for:
// "BLAH=hah; path=/; domain=.google.com"
diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
--- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc
+++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc
@@ -373,7 +381,7 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq
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
@@ -782,13 +782,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart(
@@ -836,13 +836,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart(
AnnotateAndMoveUserBlockedCookies(maybe_included_cookies, excluded_cookies);
}
@@ -393,7 +401,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc
--- a/services/network/cookie_settings.cc
+++ b/services/network/cookie_settings.cc
@@ -42,8 +42,7 @@ namespace network {
@@ -43,8 +43,7 @@ namespace network {
namespace {
bool ShouldApply3pcdRelatedReasons(const net::CanonicalCookie& cookie) {
@@ -403,7 +411,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti
}
bool IsValidType(ContentSettingsType type) {
@@ -118,8 +117,7 @@ bool IsOriginOpaqueHttpOrHttps(const url::Origin* top_frame_origin) {
@@ -112,8 +111,7 @@ bool IsOriginOpaqueHttpOrHttps(const url::Origin* top_frame_origin) {
// static
bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie,
const CookieSettingWithMetadata& setting) {
@@ -416,7 +424,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
--- a/services/network/restricted_cookie_manager.cc
+++ b/services/network/restricted_cookie_manager.cc
@@ -950,6 +950,12 @@ void RestrictedCookieManager::SetCookieFromString(
@@ -954,6 +954,12 @@ void RestrictedCookieManager::SetCookieFromString(
std::move(callback).Run();
@@ -0,0 +1,79 @@
From: uazo <uazo@users.noreply.github.com>
Date: Thu, 18 Jul 2024 14:03:12 +0000
Subject: Restore BookmarkToolbar#setCurrentFolder
restore https://chromium-review.googlesource.com/c/chromium/src/+/5554182
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../chromium/chrome/browser/bookmarks/BookmarkToolbar.java | 6 ++++++
.../chrome/browser/bookmarks/BookmarkToolbarMediator.java | 1 +
.../chrome/browser/bookmarks/BookmarkToolbarProperties.java | 1 +
.../chrome/browser/bookmarks/BookmarkToolbarViewBinder.java | 2 ++
4 files changed, 10 insertions(+)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java
@@ -10,6 +10,7 @@ import android.view.MenuItem;
import android.view.View.OnClickListener;
import androidx.annotation.IdRes;
+import androidx.annotation.Nullable;
import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener;
import androidx.core.view.MenuCompat;
@@ -33,6 +34,7 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
private BookmarkOpener mBookmarkOpener;
private SelectionDelegate<BookmarkId> mSelectionDelegate;
+ private @Nullable BookmarkItem mCurrentFolder;
private boolean mEditButtonVisible;
private boolean mNewFolderButtonVisible;
private boolean mNewFolderButtonEnabled;
@@ -167,6 +169,10 @@ public class BookmarkToolbar extends SelectableListToolbar<BookmarkId>
getMenu().findItem(id).setChecked(true);
}
+ void setCurrentFolder(BookmarkId folder) {
+ mCurrentFolder = mBookmarkModel.getBookmarkById(folder);
+ }
+
void setNavigateBackRunnable(Runnable navigateBackRunnable) {
mNavigateBackRunnable = navigateBackRunnable;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
@@ -290,6 +290,7 @@ class BookmarkToolbarMediator
@Override
public void onFolderStateSet(BookmarkId folder) {
mCurrentFolder = folder;
+ mModel.set(BookmarkToolbarProperties.CURRENT_FOLDER, mCurrentFolder);
BookmarkItem folderItem =
mCurrentFolder == null ? null : mBookmarkModel.getBookmarkById(mCurrentFolder);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java
@@ -88,6 +88,7 @@ class BookmarkToolbarProperties {
NEW_FOLDER_BUTTON_VISIBLE,
NEW_FOLDER_BUTTON_ENABLED,
NAVIGATION_BUTTON_STATE,
+ CURRENT_FOLDER,
SORT_MENU_IDS,
SORT_MENU_IDS_ENABLED,
CHECKED_SORT_MENU_ID,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java
@@ -52,6 +52,8 @@ class BookmarkToolbarViewBinder {
} else if (key == BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID) {
bookmarkToolbar.setCheckedViewMenuId(
model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID));
+ } else if (key == BookmarkToolbarProperties.CURRENT_FOLDER) {
+ bookmarkToolbar.setCurrentFolder(model.get(BookmarkToolbarProperties.CURRENT_FOLDER));
} else if (key == BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE) {
bookmarkToolbar.setNavigateBackRunnable(
model.get(BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE));
--
@@ -14,14 +14,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../feedback/SimplifiedNtpFeedbackSource.java | 38 +++++++++++
.../identity_disc/IdentityDiscController.java | 5 +-
.../NativePageNavigationDelegateImpl.java | 4 +-
.../chrome/browser/ntp/NewTabPageLayout.java | 31 ++++++++-
.../chrome/browser/ntp/NewTabPageLayout.java | 21 ++++++
.../SuggestionsNavigationDelegate.java | 17 +++++
.../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 3 +-
.../Restore-Simplified-NTP-launch.inc | 12 ++++
.../Restore-Simplified-NTP-launch.inc | 5 ++
.../Restore-Simplified-NTP-launch.inc | 1 +
15 files changed, 186 insertions(+), 6 deletions(-)
15 files changed, 178 insertions(+), 4 deletions(-)
create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc
@@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -537,6 +537,7 @@ chrome_java_resources = [
@@ -538,6 +538,7 @@ chrome_java_resources = [
"java/res/layout/new_tab_page_layout.xml",
"java/res/layout/new_tab_page_tile_grid_placeholder.xml",
"java/res/layout/open_full_chrome_history_header.xml",
@@ -42,7 +42,7 @@ 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
@@ -623,6 +623,7 @@ chrome_java_sources = [
@@ -622,6 +622,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java",
"java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java",
"java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
@@ -53,7 +53,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml
--- a/chrome/android/java/res/layout/new_tab_page_layout.xml
+++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
@@ -37,6 +37,13 @@ found in the LICENSE file.
@@ -38,6 +38,13 @@ found in the LICENSE file.
android:layout_marginTop="16dp"
android:visibility="gone"/>
@@ -209,13 +209,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java
@@ -23,9 +23,9 @@ import org.chromium.ui.mojom.WindowOpenDisposition;
@@ -29,10 +29,10 @@ import java.util.List;
/** {@link NativePageNavigationDelegate} implementation. */
public class NativePageNavigationDelegateImpl implements NativePageNavigationDelegate {
- private final Profile mProfile;
+ protected final Profile mProfile;
private final TabModelSelector mTabModelSelector;
private final TabGroupCreationDialogManager mTabGroupCreationDialogManager;
- private final Tab mTab;
+ protected final Tab mTab;
@@ -224,23 +225,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -17,6 +17,7 @@ import android.util.AttributeSet;
@@ -16,6 +16,7 @@ import android.text.Editable;
import android.util.AttributeSet;
import android.view.DragEvent;
import android.view.Gravity;
import android.view.LayoutInflater;
+import android.view.ViewStub;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
@@ -34,6 +35,7 @@ import org.chromium.chrome.R;
@@ -32,6 +33,7 @@ import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lens.LensEntryPoint;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.lens.LensMetrics;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.logo.LogoBridge.Logo;
@@ -98,6 +100,8 @@ public class NewTabPageLayout extends LinearLayout {
@@ -92,6 +94,8 @@ public class NewTabPageLayout extends LinearLayout {
private @Nullable DisplayStyleObserver mDisplayStyleObserver;
private CallbackController mCallbackController = new CallbackController();
@@ -249,44 +250,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
/**
* Whether the tiles shown in the layout have finished loading.
* With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress.
@@ -308,6 +312,7 @@ public class NewTabPageLayout extends LinearLayout {
isScrollableMvtEnabled(),
searchProviderIsGoogle);
@@ -278,6 +282,7 @@ public class NewTabPageLayout extends LinearLayout {
initializeMostVisitedTilesCoordinator(
mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate);
initializeSearchBoxBackground();
+ initializeShortcuts();
initializeSearchBoxTextView();
initializeVoiceSearchButton();
initializeLensButton();
@@ -808,12 +813,15 @@ public class NewTabPageLayout extends LinearLayout {
marginLayoutParams.leftMargin = lateralPaddingsForNtp;
marginLayoutParams.rightMargin = lateralPaddingsForNtp;
}
- marginLayoutParams.topMargin =
+ // when simplified NTP is enabled the top marging is included in its view's padding
+ if (mShortcutsView == null) {
+ marginLayoutParams.topMargin =
getResources()
.getDimensionPixelSize(
shouldShowLogo()
? R.dimen.tile_grid_layout_top_margin
: R.dimen.tile_grid_layout_no_logo_top_margin);
+ }
marginLayoutParams.bottomMargin =
getResources()
.getDimensionPixelSize(R.dimen.tile_carousel_layout_bottom_margin);
@@ -821,7 +829,10 @@ public class NewTabPageLayout extends LinearLayout {
// Set a bit more top padding on the tile grid if there is no logo.
ViewGroup.LayoutParams layoutParams = mMvTilesContainerLayout.getLayoutParams();
layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT;
- marginLayoutParams.topMargin = getGridMvtTopMargin();
+ // when simplified NTP is enabled the top marging is included in its view's padding
+ if (mShortcutsView == null) {
+ marginLayoutParams.topMargin = getGridMvtTopMargin();
+ }
marginLayoutParams.bottomMargin = getGridMvtBottomMargin();
}
@@ -1141,6 +1152,22 @@ public class NewTabPageLayout extends LinearLayout {
@@ -1017,6 +1022,22 @@ public class NewTabPageLayout extends LinearLayout {
return mMostVisitedTilesCoordinator;
}
@@ -312,7 +284,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
@@ -14,6 +14,11 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost;
@@ -15,6 +15,11 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.ui.base.PageTransition;
@@ -324,8 +296,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
/** Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods. */
public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateImpl {
public SuggestionsNavigationDelegate(
@@ -25,6 +30,18 @@ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateI
super(activity, profile, host, tabModelSelector, tab);
@@ -27,6 +32,18 @@ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateI
super(activity, profile, host, tabModelSelector, tabGroupCreationDialogManager, tab);
}
+ public void navigateToBookmarks() {
@@ -346,7 +318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
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
@@ -228,6 +228,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -240,6 +240,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kGcmNativeBackgroundTask,
&kIncognitoReauthenticationForAndroid,
&kIncognitoScreenshot,
@@ -357,23 +329,23 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
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
@@ -340,6 +340,7 @@ public abstract class ChromeFeatureList {
"LookalikeUrlNavigationSuggestionsUI";
public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid";
@@ -349,6 +349,7 @@ public abstract class ChromeFeatureList {
public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION =
"MayLaunchUrlUsesSeparateStoragePartition";
public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked";
+ public static final String SIMPLIFIED_NTP = "SimplifiedNTP";
public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox";
public static final String MIGRATE_ACCOUNT_MANAGEMENT_SETTINGS_TO_CAPABILITIES =
"MigrateAccountManagementSettingsToCapabilities";
@@ -637,7 +638,7 @@ public abstract class ChromeFeatureList {
@@ -658,7 +659,7 @@ public abstract class ChromeFeatureList {
newCachedFlag(START_SURFACE_RETURN_TIME, true);
public static final CachedFlag sStopAppIndexingReport =
newCachedFlag(STOP_APP_INDEXING_REPORT, true);
- public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, true);
+ public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, false);
public static final CachedFlag sSurfacePolishForToolbarKillSwitch =
newCachedFlag(SURFACE_POLISH_FOR_TOOLBAR_KILL_SWITCH, true);
public static final CachedFlag sTabDragDropAsWindowAndroid =
newCachedFlag(TAB_DRAG_DROP_ANDROID, false);
public static final CachedFlag sTabGroupPaneAndroid =
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc
new file mode 100644
--- /dev/null
+29 -54
View File
@@ -15,11 +15,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../chrome/browser/tasks/ReturnToChromeUtil.java | 12 +++++++++++-
.../browser/preferences/ChromePreferenceKeys.java | 2 ++
.../preferences/LegacyChromePreferenceKeys.java | 1 +
.../java/res/layout/single_tab_view_layout.xml | 11 +++++++++--
.../single_tab/SingleTabSwitcherOnNtpMediator.java | 10 ++++------
.../single_tab/SingleTabSwitcherCoordinator.java | 2 +-
.../single_tab/SingleTabSwitcherOnNtpMediator.java | 6 ++----
.../show-ntp-at-startup.grdp | 9 +++++++++
.../chrome_feature_list_cc/show-ntp-at-startup.inc | 2 ++
11 files changed, 61 insertions(+), 10 deletions(-)
11 files changed, 51 insertions(+), 7 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/show-ntp-at-startup.grdp
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/show-ntp-at-startup.inc
@@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit
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
@@ -1672,7 +1672,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1680,7 +1680,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Callback<String> onStandardActiveIndexRead = null;
shouldShowNtpAsHomeSurfaceAtStartup = shouldShowNtpHomeSurfaceOnStartup();
boolean skipSavingNonActiveNtps = skipSavingNonActiveNtps();
@@ -92,15 +92,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
mHomeSurfaceTracker = new HomeSurfaceTracker();
}
if (shouldShowNtpAsHomeSurfaceAtStartup) {
@@ -2389,6 +2389,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2392,6 +2392,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mInactivityTracker =
new ChromeInactivityTracker(
ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF);
+ mInactivityTracker.setIsStartup(
+ !CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState()));
TabUsageTracker.initialize(this.getLifecycleDispatcher(), tabModelSelector);
assert getActivityTabStartupMetricsTracker() != null;
TabGroupUsageTracker.initialize(
this.getLifecycleDispatcher(), tabModelSelector, this::isWarmOnResume);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
@@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
// Checks whether to show the Start surface due to feature flag TAB_SWITCHER_ON_RETURN_MS.
long lastVisibleTimeMs = inactivityTracker.getLastVisibleTimeMs();
long lastBackgroundTimeMs = inactivityTracker.getLastBackgroundedTimeMs();
@@ -778,7 +788,7 @@ public final class ReturnToChromeUtil {
@@ -802,7 +812,7 @@ public final class ReturnToChromeUtil {
TabModel currentTabModel,
TabCreator tabCreator,
HomeSurfaceTracker homeSurfaceTracker) {
@@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
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
@@ -791,6 +791,8 @@ public final class ChromePreferenceKeys {
@@ -792,6 +792,8 @@ public final class ChromePreferenceKeys {
public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF =
"ChromeTabbedActivity.BackgroundTimeMs";
@@ -160,65 +160,40 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
ChromePreferenceKeys.TABMODEL_ACTIVE_TAB_ID,
ChromePreferenceKeys.TABMODEL_HAS_COMPUTED_MAX_ID,
ChromePreferenceKeys.TABMODEL_HAS_RUN_FILE_MIGRATION,
diff --git a/chrome/browser/single_tab/android/java/res/layout/single_tab_view_layout.xml b/chrome/browser/single_tab/android/java/res/layout/single_tab_view_layout.xml
--- a/chrome/browser/single_tab/android/java/res/layout/single_tab_view_layout.xml
+++ b/chrome/browser/single_tab/android/java/res/layout/single_tab_view_layout.xml
@@ -34,7 +34,7 @@ found in the LICENSE file.
<LinearLayout
android:id="@+id/continue_browsing"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:layout_toEndOf="@+id/tab_favicon_view"
android:layout_toStartOf="@+id/chevron_right_view"
android:orientation="vertical">
@@ -55,11 +55,18 @@ found in the LICENSE file.
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1.0"
- android:layout_marginBottom="10dp"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:singleLine="true"
android:textAppearance="@style/TextAppearance.TextMedium" />
+ <TextView
+ android:id="@+id/tab_url_view"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:gravity="start"
+ android:singleLine="false"
+ android:textAppearance="@style/TextAppearance.TextSmall.Secondary"/>
</LinearLayout>
diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java
--- a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java
+++ b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java
@@ -309,7 +309,7 @@ public class SingleTabSwitcherCoordinator implements TabSwitcher, ModuleProvider
<ImageView
/** Returns the layout resource id for the single tab card. */
public static int getModuleLayoutId() {
- return R.layout.single_tab_module_layout;
+ return R.layout.single_tab_module_layout; // (uazo) check this
}
public void destroy() {
diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java
--- a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java
+++ b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherOnNtpMediator.java
@@ -292,9 +292,8 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser
@@ -252,16 +252,14 @@ public class SingleTabSwitcherOnNtpMediator {
public void onPageLoadFinished(Tab tab, GURL url) {
super.onPageLoadFinished(tab, url);
mPropertyModel.set(TITLE, tab.getTitle());
- if (mIsSurfacePolishEnabled) {
- mPropertyModel.set(
- URL, SingleTabSwitcherMediator.getDomainUrl(tab.getUrl()));
+ if ((true)) {
+ mPropertyModel.set(URL, tab.getUrl().getPossiblyInvalidSpec());
}
- mPropertyModel.set(
- URL, SingleTabSwitcherMediator.getDomainUrl(tab.getUrl()));
+ mPropertyModel.set(URL, tab.getUrl().getPossiblyInvalidSpec());
tab.removeObserver(this);
}
@@ -302,9 +301,8 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser
};
mMostRecentTab.addObserver(tabObserver);
} else {
mPropertyModel.set(TITLE, mMostRecentTab.getTitle());
- if (mIsSurfacePolishEnabled) {
- mPropertyModel.set(
- URL, SingleTabSwitcherMediator.getDomainUrl(mMostRecentTab.getUrl()));
+ if ((true)) {
+ mPropertyModel.set(URL, mMostRecentTab.getUrl().getPossiblyInvalidSpec());
}
- mPropertyModel.set(
- URL, SingleTabSwitcherMediator.getDomainUrl(mMostRecentTab.getUrl()));
+ mPropertyModel.set(URL, mMostRecentTab.getUrl().getPossiblyInvalidSpec());
}
}
diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/show-ntp-at-startup.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/show-ntp-at-startup.grdp
new file mode 100644
--- /dev/null
@@ -4,16 +4,16 @@ Subject: Use 4 tile rows, never show logo
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../org/chromium/chrome/browser/ntp/NewTabPageLayout.java | 6 +++---
.../suggestions/mostvisited/MostVisitedSitesBridge.java | 2 +-
chrome/browser/engagement/important_sites_util.cc | 2 +-
components/history/core/browser/top_sites_impl.h | 2 +-
4 files changed, 6 insertions(+), 6 deletions(-)
.../src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java | 4 ++--
.../suggestions/mostvisited/MostVisitedSitesBridge.java | 2 +-
chrome/browser/engagement/important_sites_util.cc | 2 +-
components/history/core/browser/top_sites_impl.h | 2 +-
4 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -110,7 +110,7 @@ public class NewTabPageLayout extends LinearLayout {
@@ -104,7 +104,7 @@ public class NewTabPageLayout extends LinearLayout {
*/
private boolean mHasShownView;
@@ -22,16 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
private boolean mSearchProviderIsGoogle;
private boolean mShowingNonStandardGoogleLogo;
@@ -499,7 +499,7 @@ public class NewTabPageLayout extends LinearLayout {
boolean searchProviderIsGoogle) {
assert mMvTilesContainerLayout != null;
- int maxRows = 2;
+ int maxRows = 4;
mMostVisitedTilesCoordinator =
new MostVisitedTilesCoordinator(
@@ -733,7 +733,7 @@ public class NewTabPageLayout extends LinearLayout {
@@ -645,7 +645,7 @@ public class NewTabPageLayout extends LinearLayout {
&& mInitialized) {
return;
}
@@ -43,7 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java
@@ -22,7 +22,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites {
@@ -21,7 +21,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites {
* Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if
* the UI supports it, getting more can raise unexpected issues.
*/
+50 -60
View File
@@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../PrivacyPreferencesManagerImpl.java | 42 ++++
.../settings/UserAgentPreferences.java | 183 ++++++++++++++++++
.../browser/tab/RequestDesktopUtils.java | 1 +
.../chromium/chrome/browser/tab/TabImpl.java | 71 +++++--
.../chromium/chrome/browser/tab/TabImpl.java | 62 +++++-
.../chromium/chrome/browser/tab/TabUtils.java | 17 +-
.../browser/android/content/content_utils.cc | 30 +++
.../preferences/browser_prefs_android.cc | 7 +
@@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/web_contents/web_contents_impl.cc | 6 +-
.../framehost/NavigationControllerImpl.java | 3 +-
content/renderer/render_thread_impl.cc | 1 -
36 files changed, 794 insertions(+), 32 deletions(-)
36 files changed, 794 insertions(+), 23 deletions(-)
create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml
create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
@@ -90,7 +90,7 @@ 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
@@ -955,6 +955,7 @@ chrome_java_sources = [
@@ -944,6 +944,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java",
"java/src/org/chromium/chrome/browser/payments/ui/LineItem.java",
"java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java",
@@ -257,7 +257,7 @@ new file mode 100644
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
@@ -2758,7 +2758,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2767,7 +2767,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
TabUtils.switchUserAgent(
currentTab,
usingDesktopUserAgent,
@@ -269,15 +269,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java
@@ -52,6 +52,7 @@ import org.chromium.content_public.browser.BrowserStartupController;
import org.chromium.content_public.browser.DeviceUtils;
import org.chromium.content_public.browser.SpeechRecognition;
import org.chromium.net.NetworkChangeNotifier;
@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.signin.SigninCheckerProvider;
import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory;
import org.chromium.content_public.browser.BrowserStartupController;
+import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
import java.io.File;
import java.util.ArrayList;
@@ -324,11 +325,13 @@ public class ChromeBrowserInitializer {
import java.util.List;
@@ -229,11 +230,13 @@ public class ChromeBrowserInitializer {
@Override
public void onSuccess() {
@@ -540,7 +540,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java
@@ -139,6 +139,7 @@ public class RequestDesktopUtils {
@@ -137,6 +137,7 @@ public class RequestDesktopUtils {
*/
public static void setRequestDesktopSiteContentSettingsForUrl(
Profile profile, GURL url, boolean useDesktopUserAgent) {
@@ -551,7 +551,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -64,6 +64,9 @@ import org.chromium.components.autofill.AutofillFeatures;
@@ -66,6 +66,9 @@ import org.chromium.components.autofill.AutofillFeatures;
import org.chromium.components.autofill.AutofillProvider;
import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate;
import org.chromium.components.autofill.AutofillSelectionMenuItemHelper;
@@ -561,7 +561,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.embedder_support.view.ContentView;
@@ -95,6 +98,9 @@ import org.chromium.chrome.browser.preferences.Pref;
@@ -98,6 +101,9 @@ import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.components.user_prefs.UserPrefs;
@@ -571,33 +571,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
* class is not intended to be extended.
@@ -738,11 +744,6 @@ class TabImpl implements Tab {
return true;
}
- // If desktop mode window setting is enabled, move switchUserAgentIfNeeded() from
- // loadIfNeeded() to restoreIfNeeded(); to avoid reload without explicit user intent.
- if (!ContentFeatureMap.isEnabled(ContentFeatureList.REQUEST_DESKTOP_SITE_WINDOW_SETTING)) {
- switchUserAgentIfNeeded(UseDesktopUserAgentCaller.LOAD_IF_NEEDED + caller);
- }
restoreIfNeeded(caller);
return true;
}
@@ -1814,13 +1815,6 @@ class TabImpl implements Tab {
@@ -1909,9 +1915,6 @@ class TabImpl implements Tab {
}
if (mWebContents != null) {
- // If desktop mode window setting is enabled, move switchUserAgentIfNeeded() from
- // loadIfNeeded() to restoreIfNeeded(); to avoid reload without explicit user
- // intent.
- if (ContentFeatureMap.isEnabled(
- ContentFeatureList.REQUEST_DESKTOP_SITE_WINDOW_SETTING)) {
- switchUserAgentIfNeeded(UseDesktopUserAgentCaller.LOAD_IF_NEEDED + caller);
- }
- // Invoke switchUserAgentIfNeeded() from restoreIfNeeded() instead of loadIfNeeded()
- // to avoid reload without explicit user intent.
- switchUserAgentIfNeeded(UseDesktopUserAgentCaller.LOAD_IF_NEEDED + caller);
mWebContents.getNavigationController().loadIfNecessary();
}
mIsBeingRestored = true;
@@ -2134,6 +2128,11 @@ class TabImpl implements Tab {
@@ -2225,6 +2228,11 @@ class TabImpl implements Tab {
url = webContents.getVisibleUrl();
}
@@ -609,7 +593,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
// Do not override UA if there is a tab level setting.
if (tabUserAgent != TabUserAgent.DEFAULT) {
recordHistogramUseDesktopUserAgent(currentRequestDesktopSite);
@@ -2207,6 +2206,54 @@ class TabImpl implements Tab {
@@ -2304,6 +2312,54 @@ class TabImpl implements Tab {
}
}
@@ -701,7 +685,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja
diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/android/content/content_utils.cc
--- a/chrome/browser/android/content/content_utils.cc
+++ b/chrome/browser/android/content/content_utils.cc
@@ -8,6 +8,20 @@
@@ -7,9 +7,23 @@
#include "components/version_info/version_info.h"
#include "content/public/browser/web_contents.h"
@@ -711,6 +695,9 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an
+#include "components/prefs/pref_service.h"
+#include "chrome/common/pref_names.h"
+
// Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/browser/android/content/jni_headers/ContentUtils_jni.h"
+using base::android::ConvertJavaStringToUTF8;
+using base::android::ConvertUTF16ToJavaString;
+using base::android::ConvertUTF8ToJavaString;
@@ -722,7 +709,7 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an
static base::android::ScopedJavaLocalRef<jstring>
JNI_ContentUtils_GetBrowserUserAgent(JNIEnv* env) {
return base::android::ConvertUTF8ToJavaString(
@@ -18,6 +32,22 @@ static void JNI_ContentUtils_SetUserAgentOverride(
@@ -20,6 +34,22 @@ static void JNI_ContentUtils_SetUserAgentOverride(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& jweb_contents,
jboolean j_override_in_new_tabs) {
@@ -772,10 +759,15 @@ diff --git a/chrome/browser/android/preferences/browser_prefs_android.cc b/chrom
diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc
--- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc
+++ b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc
@@ -13,6 +13,32 @@
@@ -12,9 +12,35 @@
#include "components/policy/core/common/features.h"
#include "components/prefs/pref_service.h"
+#include "base/android/jni_android.h"
+#include "base/android/jni_array.h"
+#include "base/android/jni_string.h"
+#include "base/android/scoped_java_ref.h"
+
+#include "base/command_line.h"
+#include "base/base_switches.h"
+#include "chrome/common/chrome_switches.h"
@@ -789,11 +781,9 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl
+#include "components/embedder_support/user_agent_utils.h"
+#include "components/embedder_support/origin_trials/origin_trials_settings_storage.h"
+
+#include "base/android/jni_android.h"
+#include "base/android/jni_array.h"
+#include "base/android/jni_string.h"
+#include "base/android/scoped_java_ref.h"
+
// Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/android/chrome_jni_headers/PrivacyPreferencesManagerImpl_jni.h"
+using base::android::ConvertJavaStringToUTF8;
+using base::android::ConvertUTF16ToJavaString;
+using base::android::ConvertUTF8ToJavaString;
@@ -805,7 +795,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl
static jboolean JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingEnabled(
JNIEnv* env) {
PrefService* local_state = g_browser_process->local_state();
@@ -34,3 +60,101 @@ JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy(
@@ -36,3 +62,101 @@ JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy(
metrics::prefs::kMetricsReportingEnabled) &&
!local_state->GetBoolean(metrics::prefs::kMetricsReportingEnabled);
}
@@ -918,15 +908,15 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
#include "chrome/common/chrome_switches.h"
#include "components/content_settings/core/common/content_settings_utils.h"
#include "components/content_settings/core/common/pref_names.h"
@@ -36,6 +37,7 @@ RequestDesktopSiteWebContentsObserverAndroid::
if (base::FeatureList::IsEnabled(
features::kRequestDesktopSiteWindowSetting)) {
pref_service_ = profile->GetPrefs();
+ tab_android_ = TabAndroid::FromWebContents(contents);
}
@@ -34,6 +35,7 @@ RequestDesktopSiteWebContentsObserverAndroid::
host_content_settings_map_ =
HostContentSettingsMapFactory::GetForProfile(profile);
pref_service_ = profile->GetPrefs();
+ tab_android_ = TabAndroid::FromWebContents(contents);
}
@@ -51,6 +53,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation(
RequestDesktopSiteWebContentsObserverAndroid::
@@ -48,6 +50,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation(
return;
}
@@ -964,7 +954,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
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
@@ -1033,8 +1033,6 @@ public final class ChromePreferenceKeys {
@@ -1043,8 +1043,6 @@ public final class ChromePreferenceKeys {
SIGNIN_PROMO_NTP_LAST_SHOWN_TIME,
SYNC_PROMO_TOTAL_SHOW_COUNT,
SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP,
@@ -1046,7 +1036,7 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro
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
@@ -236,6 +236,32 @@ CHAR_LIMIT guidelines:
@@ -231,6 +231,32 @@ CHAR_LIMIT guidelines:
Visit help page
</message>
@@ -1082,7 +1072,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
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
@@ -1854,6 +1854,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group";
@@ -1880,6 +1880,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group";
inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] =
"profile.content_settings.had_three_consecutive_denies.notifications";
@@ -1238,7 +1228,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc
--- a/content/browser/renderer_host/navigation_controller_android.cc
+++ b/content/browser/renderer_host/navigation_controller_android.cc
@@ -252,6 +252,7 @@ base::android::ScopedJavaLocalRef<jobject> NavigationControllerAndroid::LoadUrl(
@@ -254,6 +254,7 @@ base::android::ScopedJavaLocalRef<jobject> NavigationControllerAndroid::LoadUrl(
jboolean can_load_local_resources,
jboolean is_renderer_initiated,
jboolean should_replace_current_entry,
@@ -1246,7 +1236,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co
const JavaParamRef<jobject>& j_initiator_origin,
jboolean has_user_gesture,
jboolean should_clear_history_list,
@@ -352,6 +353,9 @@ base::android::ScopedJavaLocalRef<jobject> NavigationControllerAndroid::LoadUrl(
@@ -354,6 +355,9 @@ base::android::ScopedJavaLocalRef<jobject> NavigationControllerAndroid::LoadUrl(
params.navigation_ui_data = std::move(navigation_ui_data);
@@ -1270,7 +1260,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con
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
@@ -3595,6 +3595,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
@@ -3644,6 +3644,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kLacrosUseChromeosProtectedMedia,
switches::kLacrosUseChromeosProtectedAv1,
#endif
@@ -1289,7 +1279,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
#include "base/check_op.h"
#include "base/command_line.h"
#include "base/containers/contains.h"
@@ -2145,8 +2146,6 @@ void WebContentsImpl::SetUserAgentOverride(
@@ -2163,8 +2164,6 @@ void WebContentsImpl::SetUserAgentOverride(
OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::SetUserAgentOverride",
"ua_override", ua_override.ua_string_override,
"override_in_new_tabs", override_in_new_tabs);
@@ -1298,7 +1288,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
if (GetUserAgentOverride() == ua_override) {
return;
@@ -3201,6 +3200,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() {
@@ -3229,6 +3228,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() {
#else
prefs.viewport_meta_enabled = false;
#endif
@@ -1331,7 +1321,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -865,7 +865,6 @@ void RenderThreadImpl::InitializeRenderer(
@@ -864,7 +864,6 @@ void RenderThreadImpl::InitializeRenderer(
const blink::UserAgentMetadata& user_agent_metadata,
const std::vector<std::string>& cors_exempt_header_list,
blink::mojom::OriginTrialsSettingsPtr origin_trials_settings) {