Patches for 121

This commit is contained in:
Carmelo Messina
2024-01-19 15:25:09 +01:00
parent 0b99765ab5
commit 81d5846fdc
215 changed files with 4573 additions and 4290 deletions
+1 -1
View File
@@ -1 +1 @@
120.0.6099.230
121.0.6167.75
@@ -401,7 +401,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br
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
@@ -6328,7 +6328,9 @@ ChromeContentBrowserClient::
@@ -6305,7 +6305,9 @@ ChromeContentBrowserClient::
}
bool ChromeContentBrowserClient::WillInterceptWebSocket(
@@ -412,7 +412,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(ENABLE_EXTENSIONS)
if (!frame) {
return false;
@@ -6349,9 +6351,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
@@ -6328,9 +6330,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
}
void ChromeContentBrowserClient::CreateWebSocket(
@@ -427,7 +427,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -630,11 +630,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
@@ -642,11 +642,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
int frame_tree_node_id,
const network::ResourceRequest& resource_request) override;
@@ -683,7 +683,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -1016,7 +1016,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory(
@@ -1023,7 +1023,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory(
return false;
}
@@ -692,7 +692,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
return false;
}
@@ -1025,9 +1025,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
@@ -1032,9 +1032,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
}
void ContentBrowserClient::CreateWebSocket(
@@ -707,7 +707,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -1842,7 +1842,7 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1859,7 +1859,7 @@ class CONTENT_EXPORT ContentBrowserClient {
scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner);
// Returns true when the embedder wants to intercept a websocket connection.
@@ -716,7 +716,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br
// Returns the WebSocket creation options.
virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame);
@@ -1864,9 +1864,11 @@ class CONTENT_EXPORT ContentBrowserClient {
@@ -1881,9 +1881,11 @@ class CONTENT_EXPORT ContentBrowserClient {
// Always called on the UI thread and only when the Network Service is
// enabled.
virtual void CreateWebSocket(
@@ -14,8 +14,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -6884,9 +6884,9 @@
"expiry_milestone": 121
@@ -7058,9 +7058,9 @@
"expiry_milestone": 123
},
{
- "name": "restrict-gamepad-access",
@@ -29,7 +29,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
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
@@ -3001,7 +3001,7 @@ const char kResetShortcutCustomizationsDescription[] =
@@ -3078,7 +3078,7 @@ const char kResetShortcutCustomizationsDescription[] =
const char kRestrictGamepadAccessName[] = "Restrict gamepad access";
const char kRestrictGamepadAccessDescription[] =
+75 -75
View File
@@ -128,7 +128,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
sources = [
"allocator/allocator_check.cc",
"allocator/allocator_check.h",
@@ -1037,7 +1039,7 @@ component("base") {
@@ -1030,7 +1032,7 @@ component("base") {
"//build/config/compiler:wglobal_constructors",
]
@@ -160,7 +160,7 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
diff --git a/base/feature_list.cc b/base/feature_list.cc
--- a/base/feature_list.cc
+++ b/base/feature_list.cc
@@ -29,6 +29,33 @@
@@ -30,6 +30,33 @@
#include "base/strings/stringprintf.h"
#include "build/build_config.h"
@@ -194,7 +194,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
namespace base {
namespace {
@@ -436,6 +463,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
@@ -441,6 +468,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
return g_feature_list_instance->IsFeatureEnabled(feature);
}
@@ -243,7 +243,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
// static
bool FeatureList::IsValidFeatureOrFieldTrialName(StringPiece name) {
return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos;
@@ -616,6 +685,17 @@ void FeatureList::SetCachingContextForTesting(uint16_t caching_context) {
@@ -662,6 +731,17 @@ void FeatureList::AddEarlyAllowedFeatureForTesting(std::string feature_name) {
void FeatureList::FinalizeInitialization() {
DCHECK(!initialized_);
@@ -264,7 +264,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
diff --git a/base/feature_list.h b/base/feature_list.h
--- a/base/feature_list.h
+++ b/base/feature_list.h
@@ -93,8 +93,10 @@ enum FeatureState {
@@ -94,8 +94,10 @@ enum FeatureState {
// [1]:
// https://crsrc.org/c/docs/speed/binary_size/android_binary_size_trybot.md#Mutable-Constants
struct BASE_EXPORT LOGICALLY_CONST Feature {
@@ -277,7 +277,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
#if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX)
if (StringPiece(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) {
LOG(FATAL) << "Invalid feature name " << name << " starts with "
@@ -120,6 +122,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
@@ -121,6 +123,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
// command line switch.
const FeatureState default_state;
@@ -287,7 +287,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
private:
friend class FeatureList;
@@ -395,6 +400,11 @@ class BASE_EXPORT FeatureList {
@@ -396,6 +401,11 @@ class BASE_EXPORT FeatureList {
// instance, which is checked in builds with DCHECKs enabled.
static bool IsEnabled(const Feature& feature);
@@ -299,7 +299,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
// Some characters are not allowed to appear in feature names or the
// associated field trial names, as they are used as special characters for
// command-line serialization. This function checks that the strings are ASCII
@@ -616,4 +626,62 @@ class BASE_EXPORT FeatureList {
@@ -652,4 +662,62 @@ class BASE_EXPORT FeatureList {
} // namespace base
@@ -396,16 +396,16 @@ diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
--- a/chrome/android/java/res/values/values.xml
+++ b/chrome/android/java/res/values/values.xml
@@ -44,6 +44,9 @@ found in the LICENSE file.
<!-- Contextual Search -->
<item name="contextual_search_sheet_full_height_fraction" format="float" type="dimen">0.95</item>
@@ -9,6 +9,9 @@ found in the LICENSE file.
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingTranslation">
+ <string name="cromite_flags_title">Open Cromite flags list</string>
+ <string name="cromite_flags_url">chrome://flags/cromite</string>
+
<!-- Tablet tab strip -->
<item name="compositor_background_tab_outline_alpha" format="float" type="dimen">0.5</item>
<item name="compositor_background_tab_overlay_alpha" format="float" type="dimen">0</item>
<!-- Full Screen Constants -->
<!-- These constants were chosen empirically for their visually pleasant behavior.
Contact tedchoc@chromium.org or dtrainor@chromium.org for questions about
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
@@ -423,7 +423,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -123,7 +123,7 @@ public class PrivacySettings
@@ -121,7 +121,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_HISTORY_EXPIRE_DAYS_THRESHOLD = "history_expire_days_threshold";
@Override
@@ -443,7 +443,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;
@@ -73,6 +74,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
@@ -74,6 +75,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;
@@ -451,7 +451,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
@@ -112,6 +114,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -113,6 +115,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback,
SnackbarManageable,
DisplayStyleObserver {
@@ -487,8 +487,8 @@ 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";
static final String EXTRA_SHOW_FRAGMENT_ARGUMENTS = "show_fragment_args";
@@ -354,6 +386,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -365,6 +397,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((AccessibilitySettings) fragment)
.getDelegate()).setSnackbarManager(mSnackbarManager);
}
@@ -502,7 +502,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
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
@@ -370,6 +370,10 @@ using flags_ui::kOsLinux;
@@ -369,6 +369,10 @@ using flags_ui::kOsLinux;
using flags_ui::kOsMac;
using flags_ui::kOsWin;
@@ -513,9 +513,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
namespace about_flags {
namespace {
@@ -4033,6 +4037,10 @@ const flags_ui::FeatureEntry::FeatureVariation
std::size(kParcelTrackingTestDataOutForDelivery), nullptr},
};
@@ -3947,6 +3951,10 @@ const flags_ui::FeatureEntry::FeatureVariation
std::size(kDesktopPWAsLinkCapturingDefaultOff), nullptr}};
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN)
+#define FEATURE_PARAM_SECTION
+#include "cromite_flags/chrome_browser_about_flags_cc.inc"
@@ -524,7 +524,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.
@@ -4059,6 +4067,9 @@ const flags_ui::FeatureEntry::FeatureVariation
@@ -3973,6 +3981,9 @@ const flags_ui::FeatureEntry::FeatureVariation
const FeatureEntry kFeatureEntries[] = {
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
// //tools/flags/generate_unexpire_flags.py.
@@ -537,16 +537,16 @@ 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
@@ -298,4 +298,5 @@ BASE_FEATURE(kPayloadTestComponent,
@@ -323,4 +323,5 @@ BASE_FEATURE(kPayloadTestComponent,
"PayloadTestComponent",
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
+#include "cromite_flags/chrome_browser_browser_features_cc.inc"
} // namespace features
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -26,7 +26,11 @@ android_library("java") {
@@ -25,7 +25,11 @@ android_library("java") {
"android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java",
"android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
]
@@ -558,7 +558,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
"//base:base_java",
"//build:chromeos_buildflags",
"//build/android:build_java",
@@ -37,12 +41,20 @@ android_library("java") {
@@ -36,12 +40,20 @@ android_library("java") {
"//third_party/jni_zero:jni_zero_java",
]
srcjar_deps = [
@@ -582,7 +582,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
@@ -1225,5 +1225,6 @@ BASE_FEATURE(kWebApkInstallService,
@@ -1216,5 +1216,6 @@ BASE_FEATURE(kWebApkInstallService,
"WebApkInstallService",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -592,7 +592,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
@@ -231,6 +231,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
@@ -230,6 +230,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
"auxiliary_search_max_donation_tab",
100);
@@ -603,8 +603,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
@@ -192,6 +192,12 @@ public class CachedFlag extends Flag {
}
@@ -149,6 +149,12 @@ public class CachedFlag extends Flag {
.removeKeysWithPrefix(ChromePreferenceKeys.FLAGS_CACHED);
}
+ public void setValueReturnedOverride(@Nullable Boolean value) {
@@ -613,15 +613,15 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
+ }
+ }
+
/**
* Create a Map of feature names -> {@link CachedFlag} from multiple lists of CachedFlags.
*/
/** Create a Map of feature names -> {@link CachedFlag} from multiple lists of CachedFlags. */
public static Map<String, CachedFlag> createCachedFlagMap(
List<List<CachedFlag>> allCachedFlagsLists) {
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
@@ -7,6 +7,10 @@ package org.chromium.chrome.browser.flags;
import org.chromium.base.FeatureMap;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.base.MutableFlagWithSafeDefault;
+import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase;
+import java.util.Arrays;
@@ -631,17 +631,17 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
import java.util.Map;
@@ -673,7 +677,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sUseLibunwindstackNativeUnwinderAndroid =
new CachedFlag(USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID, true);
public static final CachedFlag sVerticalAutomotiveBackButtonToolbar =
new CachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, false);
- public static final List<CachedFlag> sFlagsCachedFullBrowser =
+ public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
List.of(
sAllowUserCertificates,
sAndroidAppIntegration,
@@ -757,6 +761,13 @@ public abstract class ChromeFeatureList {
sShowAlwaysContextMenuOnLinks,
sUseLibunwindstackNativeUnwinderAndroid);
@@ -755,6 +759,13 @@ public abstract class ChromeFeatureList {
sUseLibunwindstackNativeUnwinderAndroid,
sVerticalAutomotiveBackButtonToolbar);
+ private static <T> List<T> concatenateLists(List<T>... collections) {
+ return Arrays.stream(collections).flatMap(x -> x.stream()).collect(Collectors.toList());
@@ -806,7 +806,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
@@ -398,4 +398,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
@@ -429,4 +429,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
"StopLoadingAnimationForHiddenWindow",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -815,7 +815,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
@@ -1717,4 +1717,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
@@ -1751,4 +1751,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -838,8 +838,8 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
--- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
+++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
@@ -10,6 +10,9 @@ import android.util.AttributeSet;
import android.view.View;
@@ -12,6 +12,9 @@ import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.TextView;
+import androidx.annotation.Nullable;
@@ -848,7 +848,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
import androidx.annotation.ColorRes;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.preference.PreferenceViewHolder;
@@ -29,6 +32,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
@@ -30,6 +33,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
/** Indicates if the preference uses a custom layout. */
private final boolean mHasCustomLayout;
@@ -857,10 +857,10 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
+
+ private final boolean mNeedRestart;
+
public ChromeSwitchPreference(Context context) {
this(context, null);
}
@@ -37,6 +45,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
// TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate
// away from a switch with dynamically changing summaries onto a radio group.
/**
@@ -46,6 +54,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
super(context, attrs);
mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs);
@@ -878,11 +878,11 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
+ return mNeedRestart;
}
/**
/** Sets the ManagedPreferenceDelegate which will determine whether this preference is managed. */
diff --git a/components/components_strings.grd b/components/components_strings.grd
--- a/components/components_strings.grd
+++ b/components/components_strings.grd
@@ -338,6 +338,7 @@
@@ -339,6 +339,7 @@
<part file="version_ui_strings.grdp" />
<part file="webapps_strings.grdp" />
<part file="user_scripts/strings/userscripts_strings.grdp" />
@@ -893,9 +893,9 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
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
@@ -94,5 +94,6 @@ BASE_FEATURE(kTpcdHeuristicsGrants,
const base::FeatureParam<bool> kTpcdReadHeuristicsGrants{
&kTpcdHeuristicsGrants, kTpcdReadHeuristicsGrantsName, false};
@@ -100,5 +100,6 @@ BASE_FEATURE(kHostIndexedMetadataGrants,
const base::FeatureParam<int> kMetadataGrantsThreshold{
&kHostIndexedMetadataGrants, kMetadataGrantsThresholdName, 1};
+#include "cromite_flags/components_content_settings_core_common_features_cc.inc"
} // namespace features
@@ -1300,9 +1300,9 @@ 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
@@ -159,6 +159,7 @@ BASE_FEATURE(kBlockMidiByDefault,
"BlockMidiByDefault",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -135,6 +135,7 @@ BASE_FEATURE(kShowRelatedWebsiteSetsPermissionGrants,
"ShowRelatedWebsiteSetsPermissionGrants",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/components_permissions_features_cc.inc"
} // namespace features
@@ -1323,7 +1323,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
@@ -571,4 +571,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
@@ -586,4 +586,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
// Please keep features in alphabetical order.
@@ -1332,7 +1332,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
@@ -1361,4 +1361,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
@@ -1383,4 +1383,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
VideoCaptureServiceConfiguration::kEnabledForBrowserProcess;
}
@@ -1341,7 +1341,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
@@ -335,6 +335,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
@@ -337,6 +337,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess();
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess();
@@ -1639,7 +1639,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
@@ -1750,5 +1750,5 @@ uint32_t GetPassthroughAudioFormats() {
@@ -1763,5 +1763,5 @@ uint32_t GetPassthroughAudioFormats() {
return 0;
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
}
@@ -1649,7 +1649,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
@@ -517,5 +517,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
@@ -519,5 +519,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
} // namespace media
@@ -1659,8 +1659,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
@@ -477,4 +477,5 @@ BASE_FEATURE(kNewCertPathBuilderIterationLimit,
"NewCertPathBuilderIterationLimit",
@@ -492,4 +492,5 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired,
"TreatHTTPExpiresHeaderValueZeroAsExpired",
base::FEATURE_ENABLED_BY_DEFAULT);
+#include "cromite_flags/net_base_features_cc.inc"
@@ -1668,9 +1668,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
@@ -470,6 +470,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kReceiveEcn);
NET_EXPORT BASE_DECLARE_FEATURE(kNewCertPathBuilderIterationLimit);
@@ -487,6 +487,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseAlpsNewCodepoint);
// while on stable channels.
NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired);
+#include "cromite_flags/net_base_features_h.inc"
} // namespace net::features
@@ -1679,7 +1679,7 @@ 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
@@ -431,4 +431,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsSupport{
@@ -454,4 +454,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsSupport{
&kSkipTpcdMitigationsForAds, /*name=*/"SkipTpcdMitigationsForAdsSupport",
/*default_value=*/false};
@@ -1688,7 +1688,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
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
@@ -168,6 +168,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsMetadata;
@@ -181,6 +181,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsMetadata;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsSupport;
@@ -1699,9 +1699,9 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
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
@@ -2222,5 +2222,6 @@ bool IsKeepAliveURLLoaderServiceEnabled() {
base::FeatureList::IsEnabled(kFetchLaterAPI);
}
@@ -2304,5 +2304,6 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpiredInBlink,
"TreatHTTPExpiresHeaderValueZeroAsExpiredInBlink",
base::FEATURE_ENABLED_BY_DEFAULT);
+#include "cromite_flags/third_party_blink_common_features_cc.inc"
} // namespace features
@@ -1709,9 +1709,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
@@ -1427,6 +1427,7 @@ BLINK_COMMON_EXPORT bool IsKeepAliveURLLoaderServiceEnabled();
@@ -1507,6 +1507,7 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam<int> kPixelDistanceToExpand;
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
kRemoveAuthroizationOnCrossOriginRedirect);
kTreatHTTPExpiresHeaderValueZeroAsExpiredInBlink);
+#include "cromite_flags/third_party_blink_common_features_h.inc"
} // namespace features
@@ -4,36 +4,37 @@ Subject: Add option to disable snapshots
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../tab_management/TabGridViewBinder.java | 9 +++-
.../tab_management/TabGridViewBinder.java | 10 +++--
.../tasks/tab_management/TabProperties.java | 5 +++
.../java/res/xml/privacy_preferences.xml | 5 +++
.../chrome/browser/app/ChromeActivity.java | 3 +-
.../layouts/content/TabContentManager.java | 7 +++-
.../privacy/settings/PrivacySettings.java | 42 ++++++++++++++++++-
.../strings/android_chrome_strings.grd | 8 ++++
7 files changed, 73 insertions(+), 6 deletions(-)
7 files changed, 73 insertions(+), 7 deletions(-)
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -287,8 +287,12 @@ class TabGridViewBinder {
// Adjust bitmap to thumbnail.
TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
} else if (isMostRecentRequest) {
- // If the most recent request is a null bitmap ensure a placeholder is visible.
- thumbnail.setImageDrawable(null);
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
+ if (tabFavicon != null) {
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
+ thumbnail.setImageDrawable(
+ isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable());
+ }
}
};
@@ -323,9 +323,12 @@ class TabGridViewBinder {
// Adjust bitmap to thumbnail.
TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
} else if (isMostRecentRequest) {
- // If the most recent request is a null bitmap ensure a placeholder is
- // visible.
- thumbnail.setImageDrawable(null);
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
+ if (tabFavicon != null) {
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
+ thumbnail.setImageDrawable(
+ isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable());
+ }
}
};
if (sThumbnailFetcherForTesting != null) {
@@ -324,6 +328,7 @@ class TabGridViewBinder {
*/
private static void setFavicon(ViewLookupCachingFrameLayout rootView, PropertyModel model,
@@ -364,6 +367,7 @@ class TabGridViewBinder {
ViewLookupCachingFrameLayout rootView,
PropertyModel model,
TabListFaviconProvider.TabFavicon favicon) {
+ model.set(TabProperties.FAVICON, favicon);
ImageView faviconView = (ImageView) rootView.fastFindViewById(R.id.tab_favicon);
@@ -42,28 +43,32 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
@@ -56,6 +56,9 @@ public class TabProperties {
@@ -63,6 +63,9 @@ public class TabProperties {
public static final WritableBooleanPropertyKey FAVICON_FETCHED =
new WritableBooleanPropertyKey();
+ public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFavicon> FAVICON =
+ new WritableObjectPropertyKey<>();
+
/**
* Property for lazily fetching favicons when required by an item in a UI.
*/
@@ -134,9 +137,11 @@ public class TabProperties {
SELECTABLE_TAB_ACTION_BUTTON_BACKGROUND,
SELECTABLE_TAB_ACTION_BUTTON_SELECTED_BACKGROUND, URL_DOMAIN, ACCESSIBILITY_DELEGATE,
CARD_TYPE, CONTENT_DESCRIPTION_STRING, CLOSE_BUTTON_DESCRIPTION_STRING,
+ FAVICON,
SHOPPING_PERSISTED_TAB_DATA_FETCHER, SHOULD_SHOW_PRICE_DROP_TOOLTIP};
public static final PropertyKey[] ALL_KEYS_TAB_STRIP = new PropertyKey[] {TAB_ID,
TAB_SELECTED_LISTENER, TAB_CLOSED_LISTENER, FAVICON_FETCHED, FAVICON_FETCHER,
+ FAVICON,
IS_SELECTED, TITLE, TABSTRIP_FAVICON_BACKGROUND_COLOR_ID, IS_INCOGNITO};
}
/** Property for lazily fetching favicons when required by an item in a UI. */
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
FAVICON_FETCHER = new WritableObjectPropertyKey<>();
@@ -157,6 +160,7 @@ public class TabProperties {
CARD_TYPE,
CONTENT_DESCRIPTION_STRING,
CLOSE_BUTTON_DESCRIPTION_STRING,
+ FAVICON,
SHOPPING_PERSISTED_TAB_DATA_FETCHER,
SHOULD_SHOW_PRICE_DROP_TOOLTIP
};
@@ -168,6 +172,7 @@ public class TabProperties {
TAB_CLOSED_LISTENER,
FAVICON_FETCHED,
FAVICON_FETCHER,
+ FAVICON,
IS_SELECTED,
TITLE,
TABSTRIP_FAVICON_BACKGROUND_COLOR_ID,
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
@@ -82,7 +87,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
@@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.printing.TabPrinter;
@@ -90,25 +95,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.readaloud.ReadAloudController;
import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler;
@@ -663,7 +664,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -736,7 +737,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
new TabContentManager(
this,
mBrowserControlsManagerSupplier.get(),
- !SysUtils.isLowEndDevice(),
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
tabModelSelector != null ? tabModelSelector::getTabById : null));
TabModelSelector tabModelSelector = mTabModelOrchestrator.getTabModelSelector();
setTabContentManager(new TabContentManager(this, mBrowserControlsManagerSupplier.get(),
- !SysUtils.isLowEndDevice(),
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
tabModelSelector != null ? tabModelSelector::getTabById : null));
getBrowserControlsManager().initialize(
getBrowserControlsManager()
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
@@ -345,9 +345,12 @@ public class TabContentManager {
* @param forceUpdate Whether to obtain the thumbnail from the live content.
* @param writeBack When {@code forceUpdate}, whether to write the thumbnail to cache.
@@ -325,11 +325,14 @@ public class TabContentManager {
*/
- public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize,
+ public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize, //
@NonNull Callback<Bitmap> callback, boolean forceUpdate, boolean writeBack) {
public void getTabThumbnailWithCallback(
@NonNull int tabId,
- @NonNull Size thumbnailSize,
+ @NonNull Size thumbnailSize, //
@NonNull Callback<Bitmap> callback,
boolean forceUpdate,
boolean writeBack) {
- if (!mSnapshotsEnabled) return;
+ if (!mSnapshotsEnabled) {
+ callback.onResult(null);
@@ -120,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
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
@@ -66,6 +66,11 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
@@ -66,12 +66,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
@@ -132,12 +139,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import java.util.ArrayList;
import java.util.List;
@@ -73,7 +78,15 @@ import java.util.List;
* Fragment to keep track of the all the privacy related preferences.
*/
public class PrivacySettings
- extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener {
+ extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
/** Fragment to keep track of the all the privacy related preferences. */
public class PrivacySettings extends ChromeBaseSettingsFragment
- implements Preference.OnPreferenceChangeListener {
+ implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
+ private SnackbarManager mSnackbarManager;
+ private Snackbar mSnackbar;
+
@@ -149,7 +154,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_PRELOAD_PAGES = "preload_pages";
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
@@ -136,6 +149,21 @@ public class PrivacySettings
@@ -140,6 +153,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
}
}
@@ -170,8 +175,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
+
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
// Record the launch of PG from the S&P link-row entry point
privacyGuidePreference.setOnPreferenceClickListener(preference -> {
@@ -293,6 +321,7 @@ public class PrivacySettings
privacyGuidePreference.setOnPreferenceClickListener(
@@ -323,6 +351,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
@@ -179,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
@@ -318,6 +347,13 @@ public class PrivacySettings
@@ -348,6 +377,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
sharedPreferencesEditor.apply();
@@ -193,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
}
@@ -360,6 +396,10 @@ public class PrivacySettings
@@ -388,6 +424,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
: R.string.text_off);
}
@@ -207,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -5384,6 +5384,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -5275,6 +5275,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
</message>
@@ -35,7 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -301,6 +301,7 @@ chrome_java_sources = [
@@ -303,6 +303,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAdvanced.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java",
@@ -46,7 +46,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
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
@@ -150,6 +150,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -159,6 +159,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate;
@@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
import org.chromium.chrome.browser.read_later.ReadingListUtils;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
@@ -1333,7 +1334,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1484,7 +1485,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Intent intent = getIntent();
boolean hadCipherData =
@@ -70,8 +70,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
@@ -412,6 +412,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
*/
@@ -433,6 +433,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
/** Returns whether is a basic or advanced Clear Browsing Data tab. */
protected abstract @ClearBrowsingDataTab int getClearBrowsingDataTabType();
+ protected boolean shouldClearBrowsingData() {
@@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
/**
* Decides whether a given dialog option should be selected when the dialog is initialized.
*
@@ -489,6 +493,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -512,6 +516,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
* options.
*/
private void onClearButtonClicked() {
@@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
if (shouldShowImportantSitesDialog()) {
showImportantDialogThenClear();
return;
@@ -522,6 +527,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -544,6 +549,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
Button clearButton = (Button) getView().findViewById(R.id.clear_button);
boolean isEnabled = !getSelectedOptions().isEmpty();
clearButton.setEnabled(isEnabled);
@@ -188,7 +188,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
private ClearBrowsingDataFetcher mFetcher;
@@ -84,6 +84,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
@@ -90,6 +90,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
return getActivity().getString(R.string.clear_browsing_data_basic_tab_title);
case 1:
return getActivity().getString(R.string.prefs_section_advanced);
@@ -197,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
default:
throw new RuntimeException("invalid position: " + position);
}
@@ -121,6 +123,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
@@ -127,6 +129,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
case 1:
fragment = new ClearBrowsingDataFragmentAdvanced();
break;
@@ -210,7 +210,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
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
@@ -2339,6 +2339,16 @@
@@ -2257,6 +2257,16 @@
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for clear browsing data button in Privacy options">
Clear browsing data
</message>
@@ -281,7 +281,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -426,6 +426,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -432,6 +432,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
delete_end_, CreateTaskCompletionClosure(TracingDataType::kHistory),
&history_task_tracker_);
}
@@ -291,7 +291,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
if (ClipboardRecentContent::GetInstance())
ClipboardRecentContent::GetInstance()->SuppressClipboardContent();
@@ -476,7 +479,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -482,7 +485,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_CONTENTS |
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_HISTORY);
}
@@ -301,7 +301,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
// The saved Autofill profiles and credit cards can include the origin from
// which these profiles and credit cards were learned. These are a form of
// history, so clear them as well.
@@ -497,7 +502,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -503,7 +508,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
if (data_manager)
data_manager->Refresh();
}
@@ -311,7 +311,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
base::ThreadPool::PostTaskAndReply(
FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
base::BindOnce(
@@ -572,9 +579,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -578,9 +585,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
}
device_event_log::Clear(delete_begin_, delete_end_);
@@ -328,9 +328,9 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -513,6 +513,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -506,6 +506,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
settings_api::PrefType::PREF_TYPE_NUMBER;
settings_api::PrefType::kNumber;
+ (*s_allowlist)[browsing_data::prefs::kDeleteBrowsingHistoryAtStart] =
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
@@ -351,11 +351,11 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
+
// Accessibility.
(*s_allowlist)[::prefs::kAccessibilityImageLabelsEnabled] =
settings_api::PrefType::PREF_TYPE_BOOLEAN;
settings_api::PrefType::kBoolean;
diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
--- a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
+++ b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
@@ -54,9 +54,14 @@ public class ProfileManagerUtils {
@@ -52,10 +52,15 @@ public class ProfileManagerUtils {
}
}
@@ -366,6 +366,7 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse
@NativeMethods
interface Natives {
void flushPersistentDataForAllProfiles();
void removeSessionCookiesForAllProfiles();
+ void removeBrowsingDataAtStart();
}
@@ -373,7 +374,7 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/browser/profiles/android/profile_manager_utils.cc
--- a/chrome/browser/profiles/android/profile_manager_utils.cc
+++ b/chrome/browser/profiles/android/profile_manager_utils.cc
@@ -67,3 +67,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles(
@@ -62,3 +62,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles(
g_browser_process->profile_manager()->GetLoadedProfiles(),
RemoveSessionCookiesForProfile);
}
@@ -385,7 +386,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1491,6 +1491,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
@@ -1495,6 +1495,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
}
}
@@ -405,7 +406,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
void ProfileManager::DoFinalInitForServices(Profile* profile,
bool go_off_the_record) {
if (!do_final_services_init_ ||
@@ -2154,7 +2167,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
@@ -2166,7 +2179,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
Profile* original_profile = profile->GetOriginalProfile();
// Do nothing if the closed window is not the last window of the same profile.
for (auto* browser_iter : *BrowserList::GetInstance()) {
@@ -429,7 +430,7 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
@@ -304,6 +304,50 @@
@@ -306,6 +306,50 @@
disabled="[[clearingInProgress_]]" no-set-pref>
</settings-checkbox>
</div>
@@ -483,7 +484,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
@@ -247,6 +247,7 @@ export class SettingsClearBrowsingDataDialogElement extends
@@ -297,6 +297,7 @@ export class SettingsClearBrowsingDataDialogElement extends
value: () =>
[loadTimeData.getString('basicPageTitle'),
loadTimeData.getString('advancedPageTitle'),
@@ -491,7 +492,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
],
},
@@ -366,6 +367,7 @@ export class SettingsClearBrowsingDataDialogElement extends
@@ -417,6 +418,7 @@ export class SettingsClearBrowsingDataDialogElement extends
}
this.clearButtonDisabled_ =
this.getSelectedDataTypes_(tab as HTMLElement).length === 0;
@@ -502,7 +503,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
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
@@ -1526,6 +1526,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1429,6 +1429,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_BASIC_TAB_TITLE" desc="The title of the tab showing the basic clear browsing data options.">
Basic
</message>
@@ -515,14 +516,14 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
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
@@ -1604,6 +1604,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
{"safeBrowsingEnableExtendedReportingDesc",
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
@@ -1660,6 +1660,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
{"safeBrowsingEnableExtendedReportingDesc",
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc
--- a/components/browsing_data/core/browsing_data_policies_utils.cc
+++ b/components/browsing_data/core/browsing_data_policies_utils.cc
@@ -655,7 +656,7 @@ diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_d
// Clear browsing data deletion time period.
const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
const char kDeleteTimePeriodBasic[] = "browser.clear_data.time_period_basic";
@@ -97,6 +107,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -99,6 +109,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterIntegerPref(
kClearBrowsingDataHistoryNoticeShownTimes, 0);
@@ -701,7 +702,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -1569,6 +1569,7 @@ void StoragePartitionImpl::Initialize(
@@ -1571,6 +1571,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache");
}
DCHECK_GE(settings.size_in_bytes(), 0);
@@ -76,7 +76,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/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
@@ -87,8 +87,9 @@ class ChromeContextMenuItem {
@@ -111,8 +111,9 @@ class ChromeContextMenuItem {
int SHARE_HIGHLIGHT = 32;
int REMOVE_HIGHLIGHT = 33;
int LEARN_MORE = 34;
@@ -86,16 +86,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
+ int NUM_ENTRIES = 36;
}
/**
@@ -130,6 +131,7 @@ class ChromeContextMenuItem {
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
R.id.contextmenu_learn_more, // Item.LEARN_MORE
/** Mapping from {@link Item} to the ID found in the ids.xml. */
@@ -152,6 +153,7 @@ class ChromeContextMenuItem {
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
R.id.contextmenu_learn_more, // Item.LEARN_MORE
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
};
/** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
@@ -169,6 +171,7 @@ class ChromeContextMenuItem {
@@ -191,6 +193,7 @@ class ChromeContextMenuItem {
R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
R.string.contextmenu_learn_more, // Item.LEARN_MORE
@@ -106,20 +106,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
@@ -241,6 +241,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -266,6 +266,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
if (mParams.isAnchor()) {
ModelList linkGroup = new ModelList();
+ if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) {
+ linkGroup.add(createListItem(Item.FOLLOW_LINK));
+ }
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl())
if (FirstRunStatus.getFirstRunFlowComplete()
&& !isEmptyUrl(mParams.getUrl())
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
if (mMode == ContextMenuMode.NORMAL) {
@@ -593,6 +596,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
ShareHelper.shareDirectly(
params, ShareHelper.getLastShareComponentName(), getProfile(), false);
});
@@ -643,6 +646,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
getProfile(),
false);
});
+ } else if (itemId == R.id.contextmenu_open_in_tab) {
+ mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer());
} else if (itemId == R.id.contextmenu_open_in_chrome) {
@@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -251,6 +251,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -266,6 +266,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
mTab.loadUrl(loadUrlParams);
}
@@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
--- a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
+++ b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
@@ -111,6 +111,8 @@ public interface ContextMenuItemDelegate {
@@ -110,6 +110,8 @@ public interface ContextMenuItemDelegate {
*/
void onOpenImageUrl(GURL url, Referrer referrer);
@@ -158,18 +158,18 @@ diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/con
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
@@ -331,6 +331,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -327,6 +327,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kTabDragDropAndroid,
&kTabAndLinkDragDropAndroid,
&kTabEngagementReportingAndroid,
+ &blink::features::kShowAlwaysContextMenuOnLinks,
&kTabStripRedesign,
&kTabletToolbarReordering,
&kTabStateFlatBuffer,
&kTabStripStartupRefactoring,
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
@@ -330,6 +330,8 @@ public abstract class ChromeFeatureList {
@@ -327,6 +327,8 @@ public abstract class ChromeFeatureList {
public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom";
@@ -178,7 +178,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
"NotificationPermissionBottomSheet";
@@ -615,6 +617,8 @@ public abstract class ChromeFeatureList {
@@ -614,6 +616,8 @@ public abstract class ChromeFeatureList {
new CachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
public static final CachedFlag sMoveTopToolbarToBottom =
new CachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
@@ -187,18 +187,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sOmniboxModernizeVisualUpdate =
new CachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
public static final CachedFlag sOptimizationGuidePushNotifications =
@@ -750,6 +754,7 @@ public abstract class ChromeFeatureList {
@@ -747,6 +751,7 @@ public abstract class ChromeFeatureList {
sTabToGTSAnimation,
sToolbarUseHardwareBitmapDraw,
sUseChimeAndroidSdk,
+ sShowAlwaysContextMenuOnLinks,
sUseLibunwindstackNativeUnwinderAndroid);
sUseLibunwindstackNativeUnwinderAndroid,
sVerticalAutomotiveBackButtonToolbar);
public static final List<CachedFlag> sFlagsCachedInMinimalBrowser =
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
@@ -1732,6 +1732,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1635,6 +1635,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_MOVE_TOOLBAR_BOTTOM_SUMMARY" desc="Summary of the preference that allows the user to move toolbar on bottom.">
Move toolbar to bottom
</message>
@@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
@@ -2772,6 +2778,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -2675,6 +2681,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
Open in new Chrome tab
</message>
@@ -239,7 +239,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -36,6 +36,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -34,6 +34,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private BooleanPreferenceDelegate mForceTabletUIDelegate;
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
@@ -247,15 +247,15 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -45,6 +46,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -43,6 +44,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private BooleanPreferenceDelegate mReaderForAccessibilityDelegate;
private double mPageZoomLatestDefaultZoomPrefValue;
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
private FontSizePrefs mFontSizePrefs;
private FontSizePrefsObserver mFontSizePrefsObserver = new FontSizePrefsObserver() {
@@ -137,6 +139,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
private FontSizePrefsObserver mFontSizePrefsObserver =
@@ -143,6 +145,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
@@ -266,9 +266,9 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
+
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS);
@@ -210,6 +218,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
captions.setOnPreferenceClickListener(
preference -> {
@@ -218,6 +226,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
} else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
mDelegate.requestRestart(getActivity());
@@ -281,15 +281,15 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
@@ -49,6 +49,8 @@ public interface AccessibilitySettingsDelegate {
@@ -43,6 +43,8 @@ public interface AccessibilitySettingsDelegate {
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
+ BooleanPreferenceDelegate getShowAlwaysContextMenuOnLinksDelegate();
+
/**
* @return The BrowserContextHandle that should be used to read and update settings.
*/
/** @return The BrowserContextHandle that should be used to read and update settings. */
BrowserContextHandle getBrowserContextHandle();
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
new file mode 100644
--- /dev/null
@@ -328,7 +328,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
@@ -456,6 +457,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
@@ -467,6 +468,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
bool is_trusted,
base::TimeTicks platform_time_stamp,
KURL completed_url) {
@@ -346,7 +346,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
LocalDOMWindow* window = GetDocument().domWindow();
if (!window) {
return;
@@ -518,6 +530,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
@@ -527,6 +539,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
/*element=*/this, request.HasUserGesture()));
}
@@ -362,7 +362,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
Frame* target_frame =
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
@@ -541,7 +562,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) {
@@ -559,7 +580,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) {
HTMLElement::SetHovered(hovered);
}
@@ -371,7 +371,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
event.SetDefaultHandled();
LocalDOMWindow* window = GetDocument().domWindow();
@@ -641,13 +662,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
@@ -659,13 +680,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
return;
}
@@ -389,7 +389,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
// We distinguish single/double click with some modifiers.
// See the comment of `EventHandler.delayed_navigation_task_handle_`.
auto task_handle = PostDelayedCancellableTask(
@@ -657,7 +677,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
@@ -675,7 +695,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
std::move(task_handle));
} else {
@@ -403,7 +403,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h
--- a/third_party/blink/renderer/core/html/html_anchor_element.h
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h
@@ -104,6 +104,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
@@ -106,6 +106,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
void SetHovered(bool hovered) override;
void Trace(Visitor*) const override;
@@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_
protected:
void ParseAttribute(const AttributeModificationParams&) override;
@@ -126,12 +127,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
@@ -130,12 +131,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
bool IsInteractiveContent() const final;
InsertionNotificationRequest InsertedInto(ContainerNode&) override;
void RemovedFrom(ContainerNode&) override;
@@ -448,8 +448,8 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
+#include "third_party/blink/renderer/core/page/context_menu_controller.h"
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/style/content_data.h"
@@ -753,6 +755,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
@@ -794,6 +796,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
}
}
@@ -474,7 +474,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h
--- a/third_party/blink/renderer/core/html/html_image_element.h
+++ b/third_party/blink/renderer/core/html/html_image_element.h
@@ -220,6 +220,8 @@ class CORE_EXPORT HTMLImageElement final
@@ -232,6 +232,8 @@ class CORE_EXPORT HTMLImageElement final
void DidAddUserAgentShadowRoot(ShadowRoot&) override;
void AdjustStyle(ComputedStyleBuilder&) override;
@@ -486,7 +486,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
@@ -231,14 +231,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
@@ -234,14 +234,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
}
}
@@ -506,7 +506,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
mouse_event->SetDefaultHandled();
}
@@ -456,7 +458,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
@@ -459,7 +461,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
const PhysicalOffset& point,
WebMenuSourceType source_type,
@@ -516,7 +516,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
// Displaying the context menu in this function is a big hack as we don't
// have context, i.e. whether this is being invoked via a script or in
// response to user input (Mouse event WM_RBUTTONDOWN,
@@ -479,6 +482,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
@@ -482,6 +485,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
if (!result.InnerNodeOrImageMapImage())
return false;
@@ -532,7 +532,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
// Clear any previously set cached results if we are resetting the hit test
// result.
image_selection_cached_result_ = nullptr;
@@ -832,11 +844,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
@@ -835,11 +847,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
SetAutofillData(result.InnerNode(), data);
SetPasswordManagerData(result.InnerElement(), data);
+16 -16
View File
@@ -83,7 +83,7 @@ Enabled by default
diff --git a/DEPS b/DEPS
--- a/DEPS
+++ b/DEPS
@@ -504,6 +504,10 @@ vars = {
@@ -485,6 +485,10 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
@@ -94,7 +94,7 @@ diff --git a/DEPS b/DEPS
'highway_revision': '8f20644eca693cfb74aa795b0006b6779c370e7a',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling ffmpeg
@@ -1134,6 +1138,9 @@ deps = {
@@ -1103,6 +1107,9 @@ deps = {
'src/third_party/dawn':
Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'),
@@ -328,7 +328,7 @@ diff --git a/media/media_options.gni b/media/media_options.gni
diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
--- a/net/base/mime_util.cc
+++ b/net/base/mime_util.cc
@@ -163,6 +163,7 @@ static const MimeInfo kPrimaryMappings[] = {
@@ -164,6 +164,7 @@ static const MimeInfo kPrimaryMappings[] = {
{"image/avif", "avif"},
{"image/gif", "gif"},
{"image/jpeg", "jpeg,jpg"},
@@ -336,7 +336,7 @@ diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
{"image/png", "png"},
{"image/apng", "png,apng"},
{"image/svg+xml", "svg,svgz"},
@@ -666,6 +667,7 @@ static const char* const kStandardImageTypes[] = {"image/avif",
@@ -667,6 +668,7 @@ static const char* const kStandardImageTypes[] = {"image/avif",
"image/gif",
"image/ief",
"image/jpeg",
@@ -466,7 +466,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -4218,6 +4218,7 @@ domain Emulation
@@ -4246,6 +4246,7 @@ domain Emulation
experimental type DisabledImageType extends string
enum
avif
@@ -491,7 +491,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent
header.Replace(String(type + ","), "");
}
return AtomicString(header);
@@ -842,6 +842,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
@@ -843,6 +843,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum;
for (protocol::Emulation::DisabledImageType type : *disabled_types) {
if (DisabledImageTypeEnum::Avif == type ||
@@ -607,7 +607,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -2256,6 +2256,10 @@ source_set("blink_platform_unittests_sources") {
@@ -2263,6 +2263,10 @@ source_set("blink_platform_unittests_sources") {
sources += [ "text/locale_icu_test.cc" ]
}
@@ -618,7 +618,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
sources += [ "testing/run_all_tests.cc" ]
configs += [
@@ -2299,6 +2303,7 @@ source_set("blink_platform_unittests_sources") {
@@ -2306,6 +2310,7 @@ source_set("blink_platform_unittests_sources") {
"//third_party/blink/renderer/platform/scheduler:unit_tests",
"//third_party/blink/renderer/platform/wtf",
"//third_party/libavif:libavif",
@@ -672,7 +672,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
+ kMaxValue = kJXL,
};
// Categories for the JPEG color space histogram. Synced with 'JpegColorSpace'
// |type| is the return value of ImageDecoder::FilenameExtension().
diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third_party/blink/renderer/platform/image-decoders/BUILD.gn
--- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn
+++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn
@@ -2221,7 +2221,7 @@ diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/bli
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -4822,6 +4822,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai
@@ -4852,6 +4852,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai
# Started failing after rolling new version of check-layout-th.js
css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ]
@@ -2231,13 +2231,13 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we
+crbug.com/1210658 virtual/jxl-enabled/images/jxl/jxl-images.html [ Crash Failure Pass Timeout ]
+crbug.com/1358616 virtual/jxl-enabled/images/jxl/progressive.html [ Crash Failure Pass Timeout ]
+
# Temporarily disabled to unblock https://crrev.com/c/3099011
crbug.com/1199701 http/tests/devtools/console/console-big-array.js [ Crash Failure Pass Timeout ]
# Sheriff 2021-11-15
crbug.com/1270362 http/tests/devtools/sources/debugger-ui/debugger-inline-values.js [ Failure Pass Timeout ]
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -429,6 +429,15 @@
@@ -441,6 +441,15 @@
"--disable-threaded-compositing", "--disable-threaded-animation"],
"expires": "Jul 1, 2023"
},
@@ -2652,7 +2652,7 @@ new file mode 100644
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -26859,7 +26859,7 @@ Called by update_debug_scenarios.py.-->
@@ -11344,7 +11344,7 @@ to ensure that the crash string is shown properly on the user-facing crash UI.
<int value="5" label="kImageICO"/>
<int value="6" label="kImageBMP"/>
<int value="7" label="kImageAVIF"/>
@@ -2660,8 +2660,8 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
+ <int value="8" label="kImageJXL"/>
</enum>
<enum name="DecodeSwapChainNotUsedReason">
@@ -66334,6 +66334,7 @@ from previous Chrome versions.
<enum name="DefaultAppName">
@@ -34310,6 +34310,7 @@ from previous Chrome versions.
<int value="188610022" label="NewMessageListView:enabled"/>
<int value="189728101" label="FasterLocationReload:disabled"/>
<int value="189777537" label="DisableInitialMostVisitedFadeIn:enabled"/>
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
--- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
+++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
@@ -372,6 +372,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
@@ -376,6 +376,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
return;
}
@@ -9,7 +9,7 @@ Subject: Always open browser controls in new tab
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -20,6 +20,7 @@ import org.chromium.base.IntentUtils;
@@ -21,6 +21,7 @@ import org.chromium.base.IntentUtils;
import org.chromium.base.PackageManagerUtils;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.Supplier;
@@ -17,7 +17,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
@@ -34,6 +35,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
@@ -35,6 +36,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge;
import org.chromium.chrome.browser.profiles.Profile;
@@ -25,15 +25,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -206,6 +208,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Override
public void onOpenInNewTab(GURL url, Referrer referrer, boolean navigateToTab,
@@ -212,6 +214,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
Referrer referrer,
boolean navigateToTab,
@Nullable AdditionalNavigationParams additionalNavigationParams) {
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
RecordUserAction.record("MobileNewTabOpened");
RecordUserAction.record("LinkOpenedInNewTab");
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
@@ -219,6 +222,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -228,6 +231,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Override
public void onOpenInNewTabInGroup(GURL url, Referrer referrer) {
@@ -64,7 +64,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -123,6 +123,12 @@
@@ -125,6 +125,12 @@
#include "url/gurl.h"
#include "url/origin.h"
@@ -75,8 +75,8 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
+#include "components/flags_ui/flags_storage.h"
+
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
#include "components/supervised_user/core/browser/supervised_user_service.h"
#include "components/supervised_user/core/browser/supervised_user_preferences.h"
#endif // BUILDFLAG(ENABLE_SUPERVISED_USERS)
@@ -520,9 +526,32 @@ std::unique_ptr<developer::ProfileInfo> DeveloperPrivateAPI::CreateProfileInfo(
info->can_load_unpacked =
ExtensionManagementFactory::GetForBrowserContext(profile)
@@ -110,7 +110,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
template <>
void BrowserContextKeyedAPIFactory<
DeveloperPrivateAPI>::DeclareFactoryDependencies() {
@@ -950,6 +979,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
@@ -951,6 +980,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
ExtensionUpdater::CheckParams params;
params.fetch_priority = DownloadFetchPriority::kForeground;
params.install_immediately = true;
@@ -118,16 +118,16 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
params.callback =
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
updater->CheckNow(std::move(params));
@@ -1089,7 +1119,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
@@ -1090,7 +1120,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
const developer::ProfileConfigurationUpdate& update = params->update;
- if (update.in_developer_mode) {
+ if (update.in_developer_mode.has_value() && update.in_developer_mode) {
Profile* profile = Profile::FromBrowserContext(browser_context());
CHECK(profile);
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
@@ -1103,6 +1133,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
@@ -1102,6 +1132,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
util::SetDeveloperModeForProfile(profile, *update.in_developer_mode);
}
@@ -163,7 +163,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
#include "extensions/common/manifest.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/permissions_parser.h"
@@ -231,12 +232,16 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
@@ -230,12 +231,16 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
// there was previously stored data, or an empty string otherwise. The Set will
// overwrite any previous login.
std::string GetWebstoreLogin(Profile* profile) {
@@ -180,7 +180,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
profile->GetPrefs()->SetString(kWebstoreLogin, login);
}
@@ -246,6 +251,8 @@ void RecordWebstoreExtensionInstallResult(bool success) {
@@ -245,6 +250,8 @@ void RecordWebstoreExtensionInstallResult(bool success) {
api::webstore_private::ExtensionInstallStatus
ConvertExtensionInstallStatusForAPI(ExtensionInstallStatus status) {
@@ -188,8 +188,8 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
+ return api::webstore_private::EXTENSION_INSTALL_STATUS_INSTALLABLE;
switch (status) {
case kCanRequest:
return api::webstore_private::ExtensionInstallStatus::
@@ -1178,7 +1185,8 @@ ExtensionFunction::ResponseAction
return api::webstore_private::ExtensionInstallStatus::kCanRequest;
@@ -1163,7 +1170,8 @@ ExtensionFunction::ResponseAction
WebstorePrivateIsInIncognitoModeFunction::Run() {
Profile* profile = Profile::FromBrowserContext(browser_context());
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
@@ -199,7 +199,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
}
WebstorePrivateIsPendingCustodianApprovalFunction::
@@ -1280,6 +1288,8 @@ WebstorePrivateGetReferrerChainFunction::Run() {
@@ -1263,6 +1271,8 @@ WebstorePrivateGetReferrerChainFunction::Run() {
recent_navigations_to_collect);
std::string serialized_referrer_proto = request.SerializeAsString();
@@ -211,7 +211,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc
--- a/chrome/browser/extensions/extension_system_impl.cc
+++ b/chrome/browser/extensions/extension_system_impl.cc
@@ -57,6 +57,7 @@
@@ -56,6 +56,7 @@
#include "extensions/browser/updater/uninstall_ping_sender.h"
#include "extensions/browser/user_script_manager.h"
#include "extensions/common/constants.h"
@@ -219,7 +219,7 @@ diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser
#include "extensions/common/features/feature_channel.h"
#include "extensions/common/manifest_url_handlers.h"
#include "ui/message_center/public/cpp/notifier_id.h"
@@ -84,6 +85,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
@@ -83,6 +84,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
Profile* profile,
const Extension* extension,
UninstallReason reason) {
@@ -343,8 +343,8 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
params.fetch_priority, &update_check_params);
} else {
@@ -518,7 +525,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
const Extension* extension = registry_->GetExtensionById(
id, extensions::ExtensionRegistry::EVERYTHING);
const Extension* extension =
registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING);
if (extension) {
- if (CanUseUpdateService(id)) {
+ if ((false) && CanUseUpdateService(id)) {
@@ -476,7 +476,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts
--- a/chrome/browser/resources/extensions/service.ts
+++ b/chrome/browser/resources/extensions/service.ts
@@ -283,6 +283,11 @@ export class Service implements ServiceInterface {
@@ -284,6 +284,11 @@ export class Service implements ServiceInterface {
{inDeveloperMode: inDevMode});
}
@@ -594,7 +594,7 @@ diff --git a/chrome/browser/resources/webstore_app/manifest.json b/chrome/browse
diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc
--- a/chrome/browser/ui/webui/extensions/extensions_ui.cc
+++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc
@@ -56,6 +56,8 @@
@@ -58,6 +58,8 @@
#include "chrome/browser/ui/webui/extensions/ash/kiosk_apps_handler.h"
#endif
@@ -603,7 +603,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
namespace extensions {
namespace {
@@ -338,6 +340,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
@@ -340,6 +342,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
{"itemSuspiciousInstallLearnMore",
IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE},
{"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE},
@@ -612,7 +612,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
{"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED},
{"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE},
{"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK},
@@ -415,6 +419,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
@@ -417,6 +421,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
source->AddString("hostPermissionsLearnMoreLink",
chrome_extension_constants::kRuntimeHostPermissionsHelpURL);
source->AddBoolean(kInDevModeKey, in_dev_mode);
@@ -767,7 +767,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
iter != extensions.end(); ++iter) {
const Extension& extension = **iter;
@@ -306,10 +333,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
absl::optional<management::Get::Params> params =
std::optional<management::Get::Params> params =
management::Get::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
- ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context());
@@ -1033,14 +1033,14 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/browser/updater/extension_downloader.h
--- a/extensions/browser/updater/extension_downloader.h
+++ b/extensions/browser/updater/extension_downloader.h
@@ -113,7 +113,6 @@ class ExtensionDownloader {
@@ -112,7 +112,6 @@ class ExtensionDownloader {
}
void set_ping_enabled_domain(const std::string& domain) {
- ping_enabled_domain_ = domain;
}
// Set backoff policy for manifest and extension queue. Set `absl::nullopt` to
// Set backoff policy for manifest and extension queue. Set `std::nullopt` to
diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/browser/updater/manifest_fetch_data.cc
--- a/extensions/browser/updater/manifest_fetch_data.cc
+++ b/extensions/browser/updater/manifest_fetch_data.cc
@@ -1075,7 +1075,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow
diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/browser/updater/safe_manifest_parser.cc
--- a/extensions/browser/updater/safe_manifest_parser.cc
+++ b/extensions/browser/updater/safe_manifest_parser.cc
@@ -203,6 +203,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
@@ -202,6 +202,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
std::move(callback).Run(/*results=*/nullptr, std::move(error));
});
@@ -1086,8 +1086,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
--- a/extensions/common/extension_features.cc
+++ b/extensions/common/extension_features.cc
@@ -226,4 +226,19 @@ BASE_FEATURE(kDeclarativeNetRequestSafeRuleLimits,
"DeclarativeNetRequestSafeDynamicRules",
@@ -154,4 +154,19 @@ BASE_FEATURE(kDeclarativeNetRequestResponseHeaderMatching,
"DeclarativeNetRequestResponseHeaderMatching",
base::FEATURE_DISABLED_BY_DEFAULT);
+// Activates the auto update of extensions.
@@ -1109,9 +1109,9 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
--- a/extensions/common/extension_features.h
+++ b/extensions/common/extension_features.h
@@ -108,6 +108,10 @@ BASE_DECLARE_FEATURE(kNewWebstoreURL);
BASE_DECLARE_FEATURE(kDeclarativeNetRequestSafeRuleLimits);
@@ -193,6 +193,10 @@ BASE_DECLARE_FEATURE(kDeclarativeNetRequestSafeRuleLimits);
// matching condition.
BASE_DECLARE_FEATURE(kDeclarativeNetRequestResponseHeaderMatching);
+BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
+
@@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p
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
@@ -1129,6 +1129,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
@@ -1136,6 +1136,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
base::BindOnce(&NetworkContext::OnHttpCacheCleared,
base::Unretained(this), std::move(callback))));
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -639,6 +639,7 @@ template("chrome_common_apk_or_module_tmpl") {
@@ -638,6 +638,7 @@ template("chrome_common_apk_or_module_tmpl") {
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
library_always_compress += [ "libchrome_crashpad_handler.so" ]
+4 -4
View File
@@ -13146,7 +13146,7 @@ e)fqMZZ`3a)Ds&5H<cfp<0000<MNUMnLSTYHt&Yn8
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2083,6 +2083,7 @@ static_library("browser") {
@@ -2051,6 +2051,7 @@ static_library("browser") {
"//build:chromeos_buildflags",
"//build/config/chromebox_for_meetings:buildflags",
"//build/config/compiler:compiler_buildflags",
@@ -13180,7 +13180,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc
--- a/chrome/browser/profiles/profile_shortcut_manager_win.cc
+++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc
@@ -77,7 +77,7 @@ const int kMaxProfileShortcutFileNameLength = 64;
@@ -78,7 +78,7 @@ const int kMaxProfileShortcutFileNameLength = 64;
// Incrementing this number will cause profile icons to be regenerated on
// profile startup (it should be incremented whenever the product/avatar icons
// change, etc).
@@ -13208,7 +13208,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html
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
@@ -2183,7 +2183,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2086,7 +2086,7 @@ Your Google account may have other forms of browsing history like searches and a
About Chrome
</message>
<message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android">
@@ -13241,7 +13241,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -1009,7 +1009,7 @@
@@ -1003,7 +1003,7 @@
<!-- Accessibility preferences -->
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
+100 -90
View File
@@ -7,41 +7,41 @@ Opens tabs in foreground, Move web search to the top of items,
Web search in tab group and Enable smart text selection
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../chrome/browser/ChromeTabbedActivity.java | 15 ++-
.../chrome/browser/ChromeTabbedActivity.java | 15 +-
.../compositor/layouts/LayoutManagerImpl.java | 8 ++
.../chrome/browser/ui/RootUiCoordinator.java | 8 +-
.../Customize-selection-popup.grdp | 34 +++++
.../res/xml/accessibility_preferences.xml | 24 ++++
.../selection/SelectActionMenuHelper.java | 121 +++++++++++++-----
.../selection/SelectActionMenuHelper.java | 131 ++++++++++++------
.../selection/SmartSelectionClient.java | 4 +
7 files changed, 177 insertions(+), 37 deletions(-)
7 files changed, 177 insertions(+), 47 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
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
@@ -658,10 +658,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@Override
public void didAddTab(Tab tab, @TabLaunchType int type,
@TabCreationState int creationState, boolean markedForSelection) {
- if (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
- || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP
- || type == TabLaunchType.FROM_RECENT_TABS
- && !DeviceClassManager.enableAnimations()) {
+ boolean selectionPopupTabsForeground =
+ ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_tabs_foreground", false);
+ boolean showToast = type == TabLaunchType.FROM_RECENT_TABS
@@ -693,10 +693,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@TabLaunchType int type,
@TabCreationState int creationState,
boolean markedForSelection) {
- if (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
- || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP
- || type == TabLaunchType.FROM_RECENT_TABS
- && !DeviceClassManager.enableAnimations()) {
+ boolean selectionPopupTabsForeground =
+ ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_tabs_foreground", false);
+ boolean showToast = type == TabLaunchType.FROM_RECENT_TABS
+ && !DeviceClassManager.enableAnimations();
+ if (!showToast && !selectionPopupTabsForeground) {
+ showToast = !DeviceClassManager.enableAnimations() &&
+ (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
+ || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP);
+ }
+ if (showToast) {
Toast.makeText(ChromeTabbedActivity.this, R.string.open_in_new_tab_toast,
Toast.LENGTH_SHORT)
.show();
+ if (!showToast && !selectionPopupTabsForeground) {
+ showToast = !DeviceClassManager.enableAnimations() &&
+ (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
+ || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP);
+ }
+ if (showToast) {
Toast.makeText(
ChromeTabbedActivity.this,
R.string.open_in_new_tab_toast,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
@@ -53,10 +53,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
import org.chromium.base.ObserverList;
import org.chromium.base.TraceEvent;
import org.chromium.base.supplier.ObservableSupplier;
@@ -221,6 +222,13 @@ public class LayoutManagerImpl
&& launchType != TabLaunchType.FROM_RECENT_TABS
&& launchType != TabLaunchType.FROM_RESTORE_TABS_UI
|| (!getTabModelSelector().isIncognitoSelected() && incognito);
@@ -228,6 +229,13 @@ public class LayoutManagerImpl
&& launchType != TabLaunchType.FROM_RECENT_TABS
&& launchType != TabLaunchType.FROM_RESTORE_TABS_UI
|| (!getTabModelSelector().isIncognitoSelected() && incognito);
+ boolean selectionPopupTabsForeground =
+ ContextUtils.getAppSharedPreferences().getBoolean(
+ "selection_popup_tabs_foreground", false);
@@ -70,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
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
@@ -28,6 +28,7 @@ import androidx.appcompat.content.res.AppCompatResources;
@@ -27,6 +27,7 @@ import androidx.appcompat.content.res.AppCompatResources;
import org.chromium.base.Callback;
import org.chromium.base.CallbackController;
@@ -78,7 +78,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.base.TraceEvent;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
@@ -758,11 +759,16 @@ public class RootUiCoordinator
@@ -785,11 +786,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -170,21 +170,25 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
@@ -24,6 +24,7 @@ import androidx.annotation.RequiresApi;
import androidx.annotation.VisibleForTesting;
@@ -25,6 +25,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.core.content.ContextCompat;
import org.chromium.base.Log;
+import org.chromium.base.ContextUtils;
import org.chromium.base.PackageManagerUtils;
import org.chromium.base.StrictModeContext;
import org.chromium.content.R;
@@ -45,28 +46,84 @@ import java.util.PriorityQueue;
@@ -50,38 +51,84 @@ import java.util.TreeSet;
public class SelectActionMenuHelper {
private static final String TAG = "SelectActionMenu"; // 20 char limit.
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({GroupItemOrder.ASSIST_ITEMS, GroupItemOrder.DEFAULT_ITEMS,
- GroupItemOrder.SECONDARY_ASSIST_ITEMS, GroupItemOrder.TEXT_PROCESSING_ITEMS})
- @IntDef({
- GroupItemOrder.ASSIST_ITEMS,
- GroupItemOrder.DEFAULT_ITEMS,
- GroupItemOrder.SECONDARY_ASSIST_ITEMS,
- GroupItemOrder.TEXT_PROCESSING_ITEMS
- })
- public @interface GroupItemOrder {
- int ASSIST_ITEMS = 1;
- int DEFAULT_ITEMS = 2;
@@ -225,16 +229,22 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
}
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({DefaultItemOrder.CUT, DefaultItemOrder.COPY, DefaultItemOrder.PASTE,
- DefaultItemOrder.SHARE, DefaultItemOrder.SELECT_ALL,
- DefaultItemOrder.PASTE_AS_PLAIN_TEXT, DefaultItemOrder.WEB_SEARCH})
- @IntDef({
- DefaultItemOrder.CUT,
- DefaultItemOrder.COPY,
- DefaultItemOrder.PASTE,
- DefaultItemOrder.PASTE_AS_PLAIN_TEXT,
- DefaultItemOrder.SHARE,
- DefaultItemOrder.SELECT_ALL,
- DefaultItemOrder.WEB_SEARCH
- })
- public @interface DefaultItemOrder {
- int CUT = 1;
- int COPY = 2;
- int PASTE = 3;
- int SHARE = 4;
- int SELECT_ALL = 5;
- int PASTE_AS_PLAIN_TEXT = 6;
- int PASTE_AS_PLAIN_TEXT = 4;
- int SHARE = 5;
- int SELECT_ALL = 6;
- int WEB_SEARCH = 7;
+ private static class DefaultItemOrderChromium {
+ static int CHROMIUM_CUT = 1;
@@ -283,52 +293,52 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
}
@Retention(RetentionPolicy.SOURCE)
@@ -127,7 +184,7 @@ public class SelectActionMenuHelper {
if (nonSelectionAdditionalItemProvider != null
&& !nonSelectionAdditionalItemProvider.getItems().isEmpty()) {
SelectionMenuGroup additionalItemGroup =
- new SelectionMenuGroup(Menu.NONE, GroupItemOrder.DEFAULT_ITEMS + 1);
+ new SelectionMenuGroup(Menu.NONE, GroupItemOrderChromium.DEFAULT_ITEMS() + 1);
additionalItemGroup.addItems(nonSelectionAdditionalItemProvider.getItems());
pasteMenuItems.add(additionalItemGroup);
@@ -158,7 +205,7 @@ public class SelectActionMenuHelper {
if (!additionalMenuItems.isEmpty()) {
// Additional menu item group which comes after default menu items.
SelectionMenuGroup additionalItemGroup =
- new SelectionMenuGroup(Menu.NONE, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
+ new SelectionMenuGroup(Menu.NONE, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
additionalItemGroup.addItems(additionalMenuItems);
pasteMenuItems.add(additionalItemGroup);
}
@@ -224,7 +271,7 @@ public class SelectActionMenuHelper {
}
@@ -177,7 +234,7 @@ public class SelectActionMenuHelper {
return null;
}
SelectionMenuGroup primaryAssistGroup = new SelectionMenuGroup(
- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
SelectionMenuGroup primaryAssistGroup =
new SelectionMenuGroup(
- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
View.OnClickListener clickListener = null;
if (classificationResult.onClickListener != null) {
clickListener = classificationResult.onClickListener;
@@ -196,7 +253,7 @@ public class SelectActionMenuHelper {
private static SelectionMenuGroup getDefaultItems(SelectActionMenuDelegate delegate) {
SelectionMenuGroup defaultGroup = new SelectionMenuGroup(
- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
defaultGroup.addItem(cut(delegate.canCut()));
defaultGroup.addItem(copy(delegate.canCopy()));
defaultGroup.addItem(paste(delegate.canPaste()));
@@ -239,7 +296,7 @@ public class SelectActionMenuHelper {
// We have to use android.R.id.textAssist as group id to make framework show icons for
@@ -250,7 +297,7 @@ public class SelectActionMenuHelper {
String selectedText) {
SelectionMenuGroup defaultGroup =
new SelectionMenuGroup(
- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
List<SelectionMenuItem.Builder> menuItemBuilders = new ArrayList<>();
menuItemBuilders.add(cut(delegate.canCut()));
menuItemBuilders.add(copy(delegate.canCopy()));
@@ -301,7 +348,7 @@ public class SelectActionMenuHelper {
// these menu items.
SelectionMenuGroup secondaryAssistItems = new SelectionMenuGroup(
- android.R.id.textAssist, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
+ android.R.id.textAssist, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
SelectionMenuGroup secondaryAssistItems =
new SelectionMenuGroup(
- android.R.id.textAssist, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
+ android.R.id.textAssist, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
// First action is reserved for primary action so start at index 1.
final int startIndex = 1;
@@ -276,7 +333,7 @@ public class SelectActionMenuHelper {
}
@@ -334,7 +381,7 @@ public class SelectActionMenuHelper {
SelectionMenuGroup textProcessingItems =
new SelectionMenuGroup(R.id.select_action_menu_text_processing_items,
new SelectionMenuGroup(
R.id.select_action_menu_text_processing_items,
- GroupItemOrder.TEXT_PROCESSING_ITEMS);
+ GroupItemOrderChromium.TEXT_PROCESSING_ITEMS());
final PackageManager packageManager = context.getPackageManager();
for (int i = 0; i < supportedActivities.size(); i++) {
ResolveInfo resolveInfo = supportedActivities.get(i);
@@ -346,7 +403,7 @@ public class SelectActionMenuHelper {
if (isSelectionPassword || intentHandler == null) {
addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
return textProcessingItems;
@@ -430,7 +477,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_cut)
.setIconAttr(android.R.attr.actionModeCutDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
@@ -337,7 +347,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -359,7 +416,7 @@ public class SelectActionMenuHelper {
@@ -442,7 +489,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_copy)
.setIconAttr(android.R.attr.actionModeCopyDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
@@ -346,7 +356,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -372,7 +429,7 @@ public class SelectActionMenuHelper {
@@ -454,7 +501,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_paste)
.setIconAttr(android.R.attr.actionModePasteDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
@@ -355,7 +365,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -384,7 +441,7 @@ public class SelectActionMenuHelper {
@@ -465,7 +512,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(R.string.actionbar_share)
.setId(R.id.select_action_menu_share)
.setIconAttr(android.R.attr.actionModeShareDrawable)
@@ -364,7 +374,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -397,7 +454,7 @@ public class SelectActionMenuHelper {
@@ -477,7 +524,7 @@ public class SelectActionMenuHelper {
.setId(R.id.select_action_menu_select_all)
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
@@ -373,16 +383,16 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -409,7 +466,7 @@ public class SelectActionMenuHelper {
private static SelectionMenuItem pasteAsPlainText(boolean isEnabled) {
return new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
.setId(R.id.select_action_menu_paste_as_plain_text)
- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled)
@@ -420,7 +477,7 @@ public class SelectActionMenuHelper {
@@ -490,7 +537,7 @@ public class SelectActionMenuHelper {
SelectionMenuItem.Builder builder =
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
.setId(R.id.select_action_menu_paste_as_plain_text)
- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
.setShowAsActionFlags(
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
.setIsEnabled(isEnabled);
@@ -506,7 +553,7 @@ public class SelectActionMenuHelper {
return new SelectionMenuItem.Builder(R.string.actionbar_web_search)
.setId(R.id.select_action_menu_web_search)
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -3232,8 +3232,8 @@
@@ -3129,8 +3129,8 @@
status: "stable",
},
{
@@ -19,7 +19,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -35,6 +35,7 @@ android_library("java") {
@@ -34,6 +34,7 @@ android_library("java") {
"//build:chromeos_buildflags",
"//build/android:build_java",
"//chrome/browser/preferences:java",
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
--- a/chrome/browser/component_updater/registration.cc
+++ b/chrome/browser/component_updater/registration.cc
@@ -100,6 +100,7 @@
@@ -102,6 +102,7 @@
namespace component_updater {
void RegisterComponentsForUpdate() {
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
diff --git a/components/component_updater/component_installer.cc b/components/component_updater/component_installer.cc
--- a/components/component_updater/component_installer.cc
+++ b/components/component_updater/component_installer.cc
@@ -88,6 +88,7 @@ void ComponentInstaller::Register(RegisterCallback register_callback,
@@ -92,6 +92,7 @@ void ComponentInstaller::Register(RegisterCallback register_callback,
base::OnceClosure callback,
base::TaskPriority task_priority,
const base::Version& registered_version) {
@@ -34,7 +34,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co
diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc
--- a/components/component_updater/component_updater_service.cc
+++ b/components/component_updater/component_updater_service.cc
@@ -522,7 +522,7 @@ std::unique_ptr<ComponentUpdateService> ComponentUpdateServiceFactory(
@@ -535,7 +535,7 @@ std::unique_ptr<ComponentUpdateService> ComponentUpdateServiceFactory(
// Register prefs required by the component update service.
void RegisterComponentUpdateServicePrefs(PrefRegistrySimple* registry) {
// The component updates are enabled by default, if the preference is not set.
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -698,16 +698,18 @@
@@ -721,16 +721,18 @@
status: "stable",
},
{
+1 -1
View File
@@ -18,7 +18,7 @@ new file mode 100644
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
@@ -1653,7 +1653,7 @@
@@ -1591,7 +1591,7 @@
{
name: "FedCm",
public: true,
@@ -4,8 +4,8 @@ Subject: Disable Feeback Collector
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../browser/feedback/FeedbackCollector.java | 27 +++----------------
1 file changed, 3 insertions(+), 24 deletions(-)
.../browser/feedback/FeedbackCollector.java | 28 ++-----------------
1 file changed, 3 insertions(+), 25 deletions(-)
diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
--- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
@@ -18,9 +18,9 @@ diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browse
import java.util.List;
import java.util.Map;
@@ -64,30 +65,8 @@ public abstract class FeedbackCollector<T> implements Runnable {
// Subclasses must invoke init() at construction time.
protected void init(Activity activity, @Nullable ScreenshotSource screenshotTask, T initParams,
@@ -69,31 +70,8 @@ public abstract class FeedbackCollector<T> implements Runnable {
@Nullable ScreenshotSource screenshotTask,
T initParams,
Profile profile) {
- // 1. Build all synchronous and asynchronous sources and determine the currently signed in
- // account.
@@ -29,8 +29,9 @@ diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browse
- IdentityManager identityManager =
- IdentityServicesProvider.get().getIdentityManager(profile);
- if (identityManager != null) {
- mAccountInUse = CoreAccountInfo.getEmailFrom(
- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN));
- mAccountInUse =
- CoreAccountInfo.getEmailFrom(
- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN));
- }
-
- // Validation check in case a source is added to the wrong list.
@@ -25,7 +25,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr
diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc
--- a/components/privacy_sandbox/tracking_protection_prefs.cc
+++ b/components/privacy_sandbox/tracking_protection_prefs.cc
@@ -58,13 +58,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -64,13 +64,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
// Tracking Protection Settings Prefs
registry->RegisterBooleanPref(
+16 -16
View File
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.renderer_host.ChromeNavigationUIData;
@@ -265,8 +264,6 @@ public class IntentHandler {
@@ -239,8 +238,6 @@ public class IntentHandler {
private static int sReferrerId;
private static String sPendingIncognitoUrl;
@@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
private static final String PACKAGE_GMAIL = "com.google.android.gm";
private static final String PACKAGE_PLUS = "com.google.android.apps.plus";
private static final String PACKAGE_HANGOUTS = "com.google.android.talk";
@@ -457,8 +454,6 @@ public class IntentHandler {
@@ -456,8 +453,6 @@ public class IntentHandler {
return ExternalAppId.LINE;
} else if (packageName.equals(PACKAGE_WHATSAPP)) {
return ExternalAppId.WHATSAPP;
@@ -50,8 +50,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
-import org.chromium.chrome.browser.gsa.GSAState;
import org.chromium.components.externalauth.ExternalAuthUtils;
/**
@@ -59,12 +58,7 @@ public class LensUtils {
/** This class provides utilities for intenting into Google Lens. */
@@ -55,12 +54,7 @@ public class LensUtils {
if (context == null) {
return "";
}
@@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
}
}
@@ -116,11 +110,7 @@ public class LensUtils {
@@ -112,11 +106,7 @@ public class LensUtils {
* @return Whether the package is valid.
*/
public static boolean isValidAgsaPackage(final ExternalAuthUtils externalAuthUtils) {
@@ -80,25 +80,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java
--- a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java
+++ b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java
@@ -34,8 +34,6 @@ import java.util.regex.Pattern;
* A class responsible for representing the current state of Chrome's integration with GSA.
*/
@@ -32,8 +32,6 @@ import java.util.regex.Pattern;
/** A class responsible for representing the current state of Chrome's integration with GSA. */
public class GSAState {
- public static final String PACKAGE_NAME = "com.google.android.googlequicksearchbox";
-
/** Used to observe state changes in the class. */
public interface Observer {
/** Called when the GSA account name is set. */
@@ -75,7 +73,7 @@ public class GSAState {
/**
* Caches the result of a computation on whether GSA is available.
*/
@@ -71,7 +69,7 @@ public class GSAState {
private final ObserverList<Observer> mObserverList = new ObserverList<>();
/** Caches the result of a computation on whether GSA is available. */
- private Boolean mGsaAvailable;
+ private Boolean mGsaAvailable = false;
/**
* The Google account email address being used by GSA according to the latest update we have
@@ -156,7 +154,7 @@ public class GSAState {
@@ -153,7 +151,7 @@ public class GSAState {
/** Returns whether the GSA package is installed on device. */
public boolean isGsaInstalled() {
@@ -107,7 +107,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
}
/**
@@ -179,6 +177,7 @@ public class GSAState {
@@ -176,6 +174,7 @@ public class GSAState {
*/
public boolean isAgsaVersionBelowMinimum(
String installedVersionName, String minimumVersionName) {
@@ -115,7 +115,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) {
return true;
}
@@ -210,7 +209,7 @@ public class GSAState {
@@ -207,7 +206,7 @@ public class GSAState {
* @return Whether the given intent can be handled by Agsa.
*/
public boolean canAgsaHandleIntent(@NonNull Intent intent) {
@@ -124,7 +124,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
ComponentName activity =
intent.resolveActivity(ContextUtils.getApplicationContext().getPackageManager());
@@ -224,7 +223,7 @@ public class GSAState {
@@ -221,7 +220,7 @@ public class GSAState {
* @return The version name of the Agsa package or null if it can't be found.
*/
public @Nullable String getAgsaVersionName() {
@@ -14,9 +14,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
--- a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
+++ b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java
@@ -155,6 +155,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
@UiThread
public void filterInstalledApps(final RelatedApplication[] relatedApps, final Url manifestUrl,
@@ -153,6 +153,7 @@ public class InstalledAppProviderImpl implements InstalledAppProvider {
final RelatedApplication[] relatedApps,
final Url manifestUrl,
final FilterInstalledApps_Response callback) {
+ assert false;
GURL url = mRenderFrameHost.getLastCommittedURL();
@@ -43,7 +43,7 @@ new file mode 100644
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
@@ -2221,9 +2221,9 @@
@@ -2133,9 +2133,9 @@
status: {"Android": "test", "default": "stable"},
},
{
+3 -3
View File
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
--- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc
@@ -135,7 +135,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly,
@@ -166,7 +166,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly,
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, logo will be shown.
@@ -35,7 +35,7 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.
// If enabled, logo will fill up less vertical space.
BASE_FEATURE(kNtpReducedLogoSpace,
@@ -212,8 +212,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
@@ -243,8 +243,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
// If enabled, OneGoogleBar will be shown.
BASE_FEATURE(kNtpOneGoogleBar,
@@ -46,7 +46,7 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.
// If enabled, Google Photos module will be shown.
BASE_FEATURE(kNtpPhotosModule,
@@ -248,8 +248,8 @@ BASE_FEATURE(kNtpFeedModule,
@@ -279,8 +279,8 @@ BASE_FEATURE(kNtpFeedModule,
// If enabled, Google Lens image search will be shown in the NTP Realbox.
BASE_FEATURE(kNtpRealboxLensSearch,
@@ -51,7 +51,7 @@ diff --git a/components/embedder_support/content_settings_utils.cc b/components/
for (const auto& it : render_frames) {
auto* rfh = content::RenderFrameHost::FromID(it);
@@ -109,19 +94,16 @@ content::AllowServiceWorkerResult AllowServiceWorker(
@@ -108,19 +93,16 @@ content::AllowServiceWorkerResult AllowServiceWorker(
scope, site_for_cookies, top_frame_origin,
cookie_settings->SettingOverridesForStorage(), &cookie_settings_metadata);
@@ -75,7 +75,7 @@ diff --git a/components/embedder_support/content_settings_utils.cc b/components/
return content::AllowServiceWorkerResult::FromPolicy(!allow_javascript,
!allow_cookies);
@@ -143,17 +125,16 @@ bool AllowSharedWorker(
@@ -142,17 +124,16 @@ bool AllowSharedWorker(
worker_url, site_for_cookies, top_frame_origin,
cookie_settings->SettingOverridesForStorage(), &cookie_settings_metadata);
+4 -4
View File
@@ -11,10 +11,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
@@ -284,7 +284,7 @@ BASE_FEATURE(kForceGpuMainThreadToNormalPriorityDrDc,
// Enable WebGPU on gpu service side only. This is used with origin trial and
@@ -300,7 +300,7 @@ BASE_FEATURE(kForceGpuMainThreadToNormalPriorityDrDc,
// enabled by default on supported platforms.
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
BUILDFLAG(IS_ANDROID)
-#define WEBGPU_ENABLED base::FEATURE_ENABLED_BY_DEFAULT
+#define WEBGPU_ENABLED base::FEATURE_DISABLED_BY_DEFAULT
#else
@@ -23,7 +23,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc
--- a/third_party/blink/renderer/modules/webgpu/gpu.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu.cc
@@ -370,6 +370,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state,
@@ -369,6 +369,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state,
"WebGPU is experimental on this platform. See "
"https://github.com/gpuweb/gpuweb/wiki/"
"Implementation-Status#implementation-status"));
@@ -10,7 +10,7 @@ This feature can be used for fingerprinting as it exposes a user preference
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
@@ -3075,8 +3075,8 @@
@@ -2957,8 +2957,8 @@
base_feature: "none",
},
{
@@ -49,7 +49,7 @@ diff --git a/chrome/browser/password_manager/generated_password_leak_detection_p
diff --git a/components/password_manager/core/browser/affiliation/affiliation_backend.cc b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
--- a/components/password_manager/core/browser/affiliation/affiliation_backend.cc
+++ b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
@@ -404,6 +404,7 @@ void AffiliationBackend::OnMalformedResponse(
@@ -409,6 +409,7 @@ void AffiliationBackend::OnMalformedResponse(
}
bool AffiliationBackend::OnCanSendNetworkRequest() {
@@ -114,9 +114,9 @@ diff --git a/components/password_manager/core/browser/affiliation/facet_manager.
diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc
--- a/components/password_manager/core/browser/features/password_features.cc
+++ b/components/password_manager/core/browser/features/password_features.cc
@@ -209,4 +209,8 @@ BASE_FEATURE(kUsernameFirstFlowWithIntermediateValuesVoting,
"UsernameFirstFlowWithIntermediateValuesVoting",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -239,4 +239,8 @@ BASE_FEATURE(kUseGMSCoreForBrandingInfo,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
+SET_CROMITE_FEATURE_ENABLED(kFillOnAccountSelect);
+SET_CROMITE_FEATURE_DISABLED(kPasswordManagerEnableReceiverService);
@@ -52,7 +52,7 @@ diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stre
diff --git a/net/quic/quic_context.h b/net/quic/quic_context.h
--- a/net/quic/quic_context.h
+++ b/net/quic/quic_context.h
@@ -179,7 +179,7 @@ struct NET_EXPORT QuicParams {
@@ -183,7 +183,7 @@ struct NET_EXPORT QuicParams {
bool allow_server_migration = false;
// If true, allows QUIC to use alternative services with a different
// hostname from the origin.
@@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -1605,7 +1605,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient(
@@ -1603,7 +1603,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient(
std::unique_ptr<media::SpeechRecognitionClient>
ChromeContentRendererClient::CreateSpeechRecognitionClient(
content::RenderFrame* render_frame) {
@@ -43,7 +43,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc
--- a/components/content_settings/renderer/content_settings_agent_impl.cc
+++ b/components/content_settings/renderer/content_settings_agent_impl.cc
@@ -496,6 +496,14 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const {
@@ -476,6 +476,14 @@ bool ContentSettingsAgentImpl::IsAllowlistedForContentSettings() const {
return false;
}
@@ -58,7 +58,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
bool ContentSettingsAgentImpl::UpdateOverrides() {
// Evaluate the content setting rules
ContentSetting setting = CONTENT_SETTING_ALLOW;
@@ -506,7 +514,6 @@ bool ContentSettingsAgentImpl::UpdateOverrides() {
@@ -486,7 +494,6 @@ bool ContentSettingsAgentImpl::UpdateOverrides() {
}
return UpdateTimeZoneOverride(
setting, content_setting_rules_->timezone_override_value);
@@ -69,7 +69,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc
diff --git a/components/content_settings/renderer/content_settings_agent_impl.h b/components/content_settings/renderer/content_settings_agent_impl.h
--- a/components/content_settings/renderer/content_settings_agent_impl.h
+++ b/components/content_settings/renderer/content_settings_agent_impl.h
@@ -117,6 +117,8 @@ class ContentSettingsAgentImpl
@@ -116,6 +116,8 @@ class ContentSettingsAgentImpl
void SetRendererContentSettingRulesForTest(
const RendererContentSettingRules& rules);
@@ -139,7 +139,7 @@ new file mode 100644
diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/third_party/blink/public/platform/web_content_settings_client.h
--- a/third_party/blink/public/platform/web_content_settings_client.h
+++ b/third_party/blink/public/platform/web_content_settings_client.h
@@ -119,6 +119,8 @@ class WebContentSettingsClient {
@@ -115,6 +115,8 @@ class WebContentSettingsClient {
// frame.
virtual bool ShouldAutoupgradeMixedContent() { return true; }
@@ -4,20 +4,15 @@ Subject: Disallowing MIDI permission by default
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
components/permissions/features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
.../Disallowing-MIDI-permission-by-default.inc | 1 +
1 file changed, 1 insertion(+)
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
--- a/components/permissions/features.cc
+++ b/components/permissions/features.cc
@@ -157,7 +157,7 @@ BASE_FEATURE(kShowRelatedWebsiteSetsPermissionGrants,
// Enables disallowing MIDI permission by default.
BASE_FEATURE(kBlockMidiByDefault,
"BlockMidiByDefault",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
} // namespace features
namespace feature_params {
diff --git a/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc b/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/content/public/common/content_features_cc/Disallowing-MIDI-permission-by-default.inc
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_ENABLED(kBlockMidiByDefault);
--
2.25.1
@@ -23,7 +23,7 @@ diff --git a/chrome/version.gni b/chrome/version.gni
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -306,9 +306,10 @@ const base::FeatureParam<double> kADPFMidFrameBoostDurationMultiplier{
@@ -303,9 +303,10 @@ BASE_FEATURE(kDelegateTransforms,
// If enabled, Chrome includes the Renderer Main thread(s) into the
// ADPF(Android Dynamic Performance Framework) hint session.
@@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -3419,70 +3419,6 @@ void Document::open(LocalDOMWindow* entered_window,
@@ -3421,70 +3421,6 @@ void Document::open(LocalDOMWindow* entered_window,
// https://chromestatus.com/metrics/feature/timeline/popularity/4375
CountUse(WebFeature::kDocumentOpenMutateSandbox);
}
@@ -85,7 +85,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
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
@@ -1490,7 +1490,6 @@
@@ -1439,7 +1439,6 @@
{
name: "DocumentOpenSandboxInheritanceRemoval",
status: "stable",
@@ -5,10 +5,10 @@ Subject: Enable ImprovedBookmarks by default
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/android/java/res/layout/bookmark_search_box_row.xml | 4 ++--
.../chromium/chrome/browser/bookmarks/BookmarkFeatures.java | 2 +-
.../browser/bookmarks/BookmarkSearchBoxRowViewBinder.java | 2 ++
.../chromium/chrome/browser/bookmarks/BookmarkUiPrefs.java | 2 +-
.../org/chromium/chrome/browser/bookmarks/BookmarkUtils.java | 3 ++-
.../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 2 +-
components/bookmarks/browser/bookmark_client.cc | 3 +--
.../Enable-ImprovedBookmarks-by-default.inc | 1 +
7 files changed, 10 insertions(+), 7 deletions(-)
@@ -28,18 +28,6 @@ diff --git a/chrome/android/java/res/layout/bookmark_search_box_row.xml b/chrome
android:orientation="horizontal">
<org.chromium.components.browser_ui.widget.chips.ChipView
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFeatures.java
@@ -12,7 +12,7 @@ import org.chromium.chrome.browser.flags.MutableFlagWithSafeDefault;
/** Self-documenting feature class for bookmarks. */
public class BookmarkFeatures {
private static final MutableFlagWithSafeDefault sAndroidImprovedBookmarksFlag =
- new MutableFlagWithSafeDefault(ChromeFeatureList.ANDROID_IMPROVED_BOOKMARKS, false);
+ new MutableFlagWithSafeDefault(ChromeFeatureList.ANDROID_IMPROVED_BOOKMARKS, true);
/** Returns whether an additional "add bookmark" item should be in the overflow menu. */
public static boolean isBookmarkMenuItemAsDedicatedRowEnabled() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSearchBoxRowViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSearchBoxRowViewBinder.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSearchBoxRowViewBinder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkSearchBoxRowViewBinder.java
@@ -82,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.chrome.browser.bookmarks.BookmarkUiPrefs.BookmarkRowDisplayPref;
import org.chromium.chrome.browser.commerce.ShoppingServiceFactory;
import org.chromium.chrome.browser.document.ChromeLauncherActivity;
@@ -486,7 +487,7 @@ public class BookmarkUtils {
@@ -491,7 +492,7 @@ public class BookmarkUtils {
RecordUserAction.record("MobileBookmarkManagerReopenBookmarksInSameSession");
}
@@ -91,6 +79,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
showBookmarkManagerOnTablet(
context,
activity == null ? null : activity.getComponentName(),
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
@@ -773,7 +773,7 @@ public abstract class ChromeFeatureList {
public static final MutableFlagWithSafeDefault sAdvancedPeripheralsSupportTabStrip =
newMutableFlagWithSafeDefault(ADVANCED_PERIPHERALS_SUPPORT_TAB_STRIP, false);
public static final MutableFlagWithSafeDefault sAndroidImprovedBookmarks =
- newMutableFlagWithSafeDefault(ANDROID_IMPROVED_BOOKMARKS, false);
+ newMutableFlagWithSafeDefault(ANDROID_IMPROVED_BOOKMARKS, true);
public static final MutableFlagWithSafeDefault sAvoidRelayoutDuringFocusAnimation =
newMutableFlagWithSafeDefault(AVOID_RELAYOUT_DURING_FOCUS_ANIMATION, true);
public static final MutableFlagWithSafeDefault sCctRealTimeEngagementSignals =
diff --git a/components/bookmarks/browser/bookmark_client.cc b/components/bookmarks/browser/bookmark_client.cc
--- a/components/bookmarks/browser/bookmark_client.cc
+++ b/components/bookmarks/browser/bookmark_client.cc
@@ -14,15 +14,14 @@ in android there is a test function accessible in the developer settings.
chrome/app/chrome_main_delegate.cc | 2 +-
chrome/browser/platform_util_android.cc | 32 +++++++++++++++++++
.../chrome/browser/util/PlatformUtil.java | 10 ++++++
components/gwp_asan/client/gwp_asan.cc | 18 ++++++++---
.../gwp_asan/client/gwp_asan_features.cc | 3 +-
components/gwp_asan/client/gwp_asan.cc | 11 ++++---
components/memory_system/memory_system.cc | 1 +
11 files changed, 86 insertions(+), 9 deletions(-)
10 files changed, 77 insertions(+), 8 deletions(-)
diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_main_delegate.cc
--- a/android_webview/lib/aw_main_delegate.cc
+++ b/android_webview/lib/aw_main_delegate.cc
@@ -464,7 +464,7 @@ void AwMainDelegate::InitializeMemorySystem(const bool is_browser_process) {
@@ -397,7 +397,7 @@ void AwMainDelegate::InitializeMemorySystem(const bool is_browser_process) {
const std::string process_type =
base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
switches::kProcessType);
@@ -91,15 +90,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting
import org.chromium.components.browser_ui.settings.SettingsUtils;
import org.chromium.components.version_info.Channel;
import org.chromium.components.version_info.VersionConstants;
@@ -22,6 +25,7 @@ import org.chromium.components.version_info.VersionInfo;
*/
@@ -20,6 +23,7 @@ import org.chromium.components.version_info.VersionInfo;
/** Settings fragment containing preferences aimed at Chrome and web developers. */
public class DeveloperSettings extends PreferenceFragmentCompat {
private static final String UI_PREF_BETA_STABLE_HINT = "beta_stable_hint";
+ private static final String TEST_GWP_ASAN_KEY = "test_gwp_asan";
// Non-translated strings:
private static final String MSG_DEVELOPER_OPTIONS_TITLE = "Developer options";
@@ -56,5 +60,21 @@ public class DeveloperSettings extends PreferenceFragmentCompat {
@@ -54,5 +58,21 @@ public class DeveloperSettings extends PreferenceFragmentCompat {
if (VersionInfo.isBetaBuild() || VersionInfo.isStableBuild()) {
getPreferenceScreen().removePreference(findPreference(UI_PREF_BETA_STABLE_HINT));
}
@@ -124,7 +123,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc
--- a/chrome/app/chrome_main_delegate.cc
+++ b/chrome/app/chrome_main_delegate.cc
@@ -1935,7 +1935,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
@@ -1939,7 +1939,7 @@ void ChromeMainDelegate::InitializeMemorySystem() {
const version_info::Channel channel = chrome::GetChannel();
const bool is_canary_dev = (channel == version_info::Channel::CANARY ||
channel == version_info::Channel::DEV);
@@ -183,7 +182,7 @@ diff --git a/chrome/browser/util/android/java/src/org/chromium/chrome/browser/ut
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
@@ -32,4 +33,13 @@ public class PlatformUtil {
@@ -30,4 +31,13 @@ public class PlatformUtil {
Log.e(TAG, "cannot find activity to launch %s", url, e);
}
}
@@ -200,42 +199,33 @@ diff --git a/chrome/browser/util/android/java/src/org/chromium/chrome/browser/ut
diff --git a/components/gwp_asan/client/gwp_asan.cc b/components/gwp_asan/client/gwp_asan.cc
--- a/components/gwp_asan/client/gwp_asan.cc
+++ b/components/gwp_asan/client/gwp_asan.cc
@@ -38,7 +38,7 @@ namespace gwp_asan {
namespace internal {
namespace {
-constexpr bool kCpuIs64Bit =
+[[maybe_unused]] constexpr bool kCpuIs64Bit =
#if defined(ARCH_CPU_64_BITS)
true;
#else
@@ -72,7 +72,15 @@ constexpr int kDefaultMaxMetadata = 210;
@@ -76,21 +76,22 @@ constexpr int kDefaultMaxMetadata = 210;
constexpr int kDefaultTotalPages = kCpuIs64Bit ? 2048 : kDefaultMaxMetadata * 2;
constexpr int kDefaultAllocationSamplingMultiplier = 1500;
constexpr int kDefaultAllocationSamplingRange = 16;
-constexpr double kDefaultProcessSamplingProbability = 0.01;
+constexpr double kDefaultProcessSamplingProbability = 0.5;
+constexpr int kDefaultProcessSamplingBoost2 = 10;
+#elif BUILDFLAG(IS_ANDROID)
+constexpr int kDefaultMaxAllocations = 70;
+constexpr int kDefaultMaxMetadata = 255;
+constexpr int kDefaultTotalPages = 512;
+constexpr int kDefaultAllocationSamplingMultiplier = 2000;
+constexpr int kDefaultAllocationSamplingRange = 20;
+constexpr double kDefaultProcessSamplingProbability = 0.5;
constexpr int kDefaultProcessSamplingBoost2 = 10;
#else // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
#elif BUILDFLAG(IS_ANDROID)
constexpr int kDefaultMaxAllocations = 70;
@@ -80,7 +88,7 @@ constexpr int kDefaultMaxMetadata = 255;
constexpr int kDefaultMaxMetadata = 255;
constexpr int kDefaultTotalPages = 512;
constexpr int kDefaultAllocationSamplingMultiplier = 2000;
constexpr int kDefaultAllocationSamplingRange = 20;
-constexpr double kDefaultProcessSamplingProbability = 0.015;
+constexpr double kDefaultProcessSamplingProbability = 0.5;
#else
constexpr int kDefaultMaxAllocations = 70;
constexpr int kDefaultMaxMetadata = 255;
constexpr int kDefaultTotalPages = kCpuIs64Bit ? 2048 : kDefaultMaxMetadata * 2;
constexpr int kDefaultAllocationSamplingMultiplier = 1000;
constexpr int kDefaultAllocationSamplingRange = 16;
-constexpr double kDefaultProcessSamplingProbability = 0.015;
+constexpr double kDefaultProcessSamplingProbability = 0.5;
constexpr int kDefaultProcessSamplingBoost2 = 10;
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
// BUILDFLAG(IS_FUCHSIA)
@@ -288,7 +296,7 @@ void EnableForMalloc(bool boost_sampling, const char* process_type) {
constexpr int kDefaultProcessSamplingBoost2 = 10;
@@ -415,7 +416,7 @@ void EnableForMalloc(bool boost_sampling, const char* process_type) {
std::ignore = init_once;
#else
std::ignore = internal::kGwpAsanMalloc;
@@ -244,7 +234,7 @@ diff --git a/components/gwp_asan/client/gwp_asan.cc b/components/gwp_asan/client
#endif // BUILDFLAG(USE_ALLOCATOR_SHIM)
}
@@ -308,7 +316,7 @@ void EnableForPartitionAlloc(bool boost_sampling, const char* process_type) {
@@ -435,7 +436,7 @@ void EnableForPartitionAlloc(bool boost_sampling, const char* process_type) {
std::ignore = init_once;
#else
std::ignore = internal::kGwpAsanPartitionAlloc;
@@ -253,23 +243,10 @@ diff --git a/components/gwp_asan/client/gwp_asan.cc b/components/gwp_asan/client
#endif // BUILDFLAG(USE_PARTITION_ALLOC)
}
diff --git a/components/gwp_asan/client/gwp_asan_features.cc b/components/gwp_asan/client/gwp_asan_features.cc
--- a/components/gwp_asan/client/gwp_asan_features.cc
+++ b/components/gwp_asan/client/gwp_asan_features.cc
@@ -9,7 +9,8 @@
namespace gwp_asan::internal {
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
- BUILDFLAG(IS_CHROMEOS)
+ BUILDFLAG(IS_CHROMEOS) || \
+ (BUILDFLAG(IS_ANDROID) && defined(ARCH_CPU_64_BITS))
constexpr base::FeatureState kDefaultEnabled = base::FEATURE_ENABLED_BY_DEFAULT;
#else
constexpr base::FeatureState kDefaultEnabled =
diff --git a/components/memory_system/memory_system.cc b/components/memory_system/memory_system.cc
--- a/components/memory_system/memory_system.cc
+++ b/components/memory_system/memory_system.cc
@@ -169,6 +169,7 @@ void MemorySystem::Impl::Initialize(
@@ -197,6 +197,7 @@ void MemorySystem::Impl::Initialize(
if (gwp_asan_parameters) {
InitializeGwpASan(*gwp_asan_parameters, initialization_data);
@@ -51,7 +51,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 | 11 +-
content/browser/webui/web_ui_impl.cc | 16 +-
content/browser/webui/web_ui_impl.h | 3 +
content/public/browser/web_ui.h | 1 +
ui/base/template_expressions.cc | 21 +-
@@ -68,7 +68,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 +-
61 files changed, 1088 insertions(+), 58 deletions(-)
61 files changed, 1091 insertions(+), 60 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
@@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.base.IntentUtils;
import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragment;
import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment;
@@ -27,6 +30,13 @@ import org.chromium.components.browser_ui.site_settings.SiteSettings;
@@ -25,6 +28,13 @@ import org.chromium.components.browser_ui.site_settings.SiteSettings;
public class SettingsLauncherImpl implements SettingsLauncher {
public SettingsLauncherImpl() {}
@@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -311,6 +311,11 @@ are declared in tools/grit/grit_rule.gni.
@@ -314,6 +314,11 @@ are declared in tools/grit/grit_rule.gni.
<part file="shared_settings_strings.grdp"/>
</if>
@@ -119,7 +119,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" />
@@ -486,7 +491,7 @@ are declared in tools/grit/grit_rule.gni.
@@ -489,7 +494,7 @@ are declared in tools/grit/grit_rule.gni.
Disable
</message>
<!-- Search strings are only used in webui, so no mobile. -->
@@ -131,7 +131,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
@@ -2509,6 +2509,9 @@
@@ -2427,6 +2427,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>
@@ -406,7 +406,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
@@ -3695,6 +3695,9 @@ static_library("browser") {
@@ -3668,6 +3668,9 @@ static_library("browser") {
"//components/user_scripts/android",
]
}
@@ -447,7 +447,7 @@ 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
@@ -46,7 +46,35 @@ export interface PrivacyPageVisibility {
@@ -47,7 +47,35 @@ export interface PrivacyPageVisibility {
*/
export let pageVisibility: PageVisibility;
@@ -610,7 +610,7 @@ diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine
diff --git a/chrome/browser/resources/settings/search_page/search_page.html b/chrome/browser/resources/settings/search_page/search_page.html
--- a/chrome/browser/resources/settings/search_page/search_page.html
+++ b/chrome/browser/resources/settings/search_page/search_page.html
@@ -121,7 +121,11 @@
@@ -129,7 +129,11 @@
associated-control="[[$$('#enginesSubpageTrigger')]]"
page-title="$i18n{searchEnginesManageSiteSearch}"
search-label="$i18n{searchEnginesSearch}"
@@ -693,10 +693,10 @@ diff --git a/chrome/browser/resources/settings_shared/BUILD.gn b/chrome/browser/
diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/search_engines/android/BUILD.gn
--- a/chrome/browser/search_engines/android/BUILD.gn
+++ b/chrome/browser/search_engines/android/BUILD.gn
@@ -75,6 +75,7 @@ android_resources("java_resources") {
sources = [
@@ -79,6 +79,7 @@ android_resources("java_resources") {
"java/res/drawable/search_sogou.xml",
"java/res/layout/search_engine.xml",
"java/res/layout/search_engine_choice_header.xml",
+ "java/res/layout/search_engine_layout.xml",
"java/res/layout/search_engine_choice_item.xml",
"java/res/layout/search_engine_choice_view.xml",
@@ -744,8 +744,8 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
+
import androidx.fragment.app.ListFragment;
import org.chromium.chrome.browser.profiles.Profile;
@@ -25,6 +29,7 @@ import org.chromium.components.browser_ui.settings.SettingsLauncher;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -27,6 +31,7 @@ import org.chromium.components.browser_ui.settings.SettingsLauncher;
public class SearchEngineSettings extends ListFragment implements ProfileDependentSetting {
private SearchEngineAdapter mSearchEngineAdapter;
private Profile mProfile;
@@ -753,7 +753,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
String getValueForTesting() {
return mSearchEngineAdapter.getValueForTesting();
@@ -46,6 +51,19 @@ public class SearchEngineSettings extends ListFragment implements ProfileDepende
@@ -48,6 +53,19 @@ public class SearchEngineSettings extends ListFragment implements ProfileDepende
setListAdapter(mSearchEngineAdapter);
}
@@ -773,7 +773,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
@@ -81,6 +99,7 @@ public class SearchEngineSettings extends ListFragment implements ProfileDepende
@@ -90,6 +108,7 @@ public class SearchEngineSettings extends ListFragment implements ProfileDepende
* @param settingsLauncher The SettingsLauncher that is injected.
*/
public void setSettingsLauncher(SettingsLauncher settingsLauncher) {
@@ -784,7 +784,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
@@ -1009,6 +1009,18 @@ static_library("ui") {
@@ -1022,6 +1022,18 @@ static_library("ui") {
"//ui/android",
"//url",
]
@@ -986,7 +986,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
@@ -133,6 +133,8 @@
@@ -130,6 +130,8 @@
#include "chrome/browser/ui/webui/webapks/webapks_ui.h"
#include "components/feed/buildflags.h"
#include "components/feed/feed_feature_list.h"
@@ -995,7 +995,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"
@@ -664,6 +666,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -649,6 +651,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<WebAppInternalsUI>;
}
#endif // !BUILDFLAG(IS_ANDROID)
@@ -1128,9 +1128,9 @@ diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/
diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome/browser/ui/webui/settings/search_engines_handler.cc
--- a/chrome/browser/ui/webui/settings/search_engines_handler.cc
+++ b/chrome/browser/ui/webui/settings/search_engines_handler.cc
@@ -31,10 +31,12 @@
@@ -30,10 +30,12 @@
#include "components/search_engines/template_url.h"
#include "components/search_engines/template_url_service.h"
#include "components/signin/public/base/signin_switches.h"
#include "content/public/browser/web_ui.h"
+#if !BUILDFLAG(IS_ANDROID)
#include "extensions/browser/extension_registry.h"
@@ -1141,7 +1141,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "ash/public/cpp/new_window_delegate.h"
@@ -46,6 +48,7 @@ namespace {
@@ -45,6 +47,7 @@ namespace {
const char kSearchEngineField[] = "searchEngine";
const char kKeywordField[] = "keyword";
const char kQueryUrlField[] = "queryUrl";
@@ -1149,7 +1149,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
// Dummy number used for indicating that a new search engine is added.
const int kNewSearchEngineIndex = -1;
@@ -218,15 +221,17 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -217,15 +220,17 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
IDS_SEARCH_ENGINES_EDITOR_DESCRIPTION_COLUMN));
dict.Set("keyword", table_model->GetText(
index, IDS_SEARCH_ENGINES_EDITOR_KEYWORD_COLUMN));
@@ -1166,9 +1166,9 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
+#if !BUILDFLAG(IS_ANDROID)
const bool is_search_engine_choice_settings_ui =
base::FeatureList::IsEnabled(switches::kSearchEngineChoiceSettingsUi) &&
search_engines::IsChoiceScreenFlagEnabled(
@@ -237,6 +242,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
search_engines::ChoicePromo::kAny);
@@ -241,6 +246,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
template_url->keyword(), /*parent_directory_path=*/u"images/");
dict.Set("iconPath", icon_path);
}
@@ -1176,7 +1176,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
dict.Set("modelIndex", base::checked_cast<int>(index));
@@ -250,8 +256,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -254,8 +260,10 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
list_controller_.ShouldConfirmDeletion(template_url));
TemplateURL::Type type = template_url->type();
dict.Set("isOmniboxExtension", type == TemplateURL::OMNIBOX_API_EXTENSION);
@@ -1187,7 +1187,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
const extensions::Extension* extension =
extensions::ExtensionRegistry::Get(profile)->GetExtensionById(
template_url->GetExtensionId(),
@@ -266,6 +274,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
@@ -270,6 +278,7 @@ base::Value::Dict SearchEnginesHandler::CreateDictionaryForEngine(
dict.Set("extension", std::move(ext_info));
}
}
@@ -1195,7 +1195,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
return dict;
}
@@ -357,12 +366,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted(
@@ -361,12 +370,13 @@ void SearchEnginesHandler::HandleSearchEngineEditStarted(
void SearchEnginesHandler::OnEditedKeyword(TemplateURL* template_url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1212,7 +1212,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
edit_controller_.reset();
}
@@ -390,6 +400,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name,
@@ -394,6 +404,8 @@ bool SearchEnginesHandler::CheckFieldValidity(const std::string& field_name,
is_valid = edit_controller_->IsKeywordValid(base::UTF8ToUTF16(field_value));
else if (field_name.compare(kQueryUrlField) == 0)
is_valid = edit_controller_->IsURLValid(field_value);
@@ -1221,7 +1221,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome
else
NOTREACHED();
@@ -409,18 +421,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted(
@@ -413,18 +425,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted(
if (!edit_controller_.get())
return;
@@ -1261,7 +1261,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
@@ -2502,6 +2502,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
@@ -2474,6 +2474,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
{"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL},
{"searchEnginesQueryURLExplanation",
IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION},
@@ -1770,7 +1770,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/webui/webui_util.cc b/chrome/browser/ui/webui/webui_util.cc
--- a/chrome/browser/ui/webui/webui_util.cc
+++ b/chrome/browser/ui/webui/webui_util.cc
@@ -94,6 +94,11 @@ void SetupChromeRefresh2023(content::WebUIDataSource* source) {
@@ -91,6 +91,11 @@ void SetupChromeRefresh2023(content::WebUIDataSource* source) {
source->AddString(
"chromeRefresh2023Attribute",
features::IsChromeWebuiRefresh2023() ? "chrome-refresh-2023" : "");
@@ -1785,7 +1785,7 @@ diff --git a/chrome/browser/ui/webui/webui_util.cc b/chrome/browser/ui/webui/web
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") {
@@ -148,6 +148,17 @@ template("chrome_extra_paks") {
sources += invoker.additional_paks
}
@@ -1806,7 +1806,7 @@ 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
@@ -40,6 +40,8 @@ public interface SettingsLauncher {
@@ -44,6 +44,8 @@ public interface SettingsLauncher {
int ACCESSIBILITY = 6;
}
@@ -1841,7 +1841,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
@@ -444,13 +444,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
@@ -466,13 +466,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
std::unique_ptr<TemplateURL> template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -1858,7 +1858,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
return Add(std::move(template_url));
}
@@ -628,7 +630,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
@@ -650,7 +652,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
void TemplateURLService::ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1868,7 +1868,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
DCHECK(!IsCreatedByExtension(url));
DCHECK(!keyword.empty());
DCHECK(!search_url.empty());
@@ -640,6 +643,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
@@ -662,6 +665,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
// The urls have changed, reset the favicon url.
data.favicon_url = GURL();
}
@@ -1879,7 +1879,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h
--- a/components/search_engines/template_url_service.h
+++ b/components/search_engines/template_url_service.h
@@ -193,7 +193,8 @@ class TemplateURLService : public WebDataServiceConsumer,
@@ -203,7 +203,8 @@ class TemplateURLService : public WebDataServiceConsumer,
TemplateURL* AddWithOverrides(std::unique_ptr<TemplateURL> template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -1889,7 +1889,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.
@@ -246,7 +247,8 @@ class TemplateURLService : public WebDataServiceConsumer,
@@ -256,7 +257,8 @@ class TemplateURLService : public WebDataServiceConsumer,
void ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1913,17 +1913,21 @@ 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,8 +272,13 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url,
@@ -268,9 +272,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url,
return;
}
- NOTREACHED() << "Unhandled chrome.send(\"" << message << "\", " << args
- DUMP_WILL_BE_NOTREACHED_NORETURN()
- << "Unhandled chrome.send(\"" << message << "\", " << args << "); from "
- << source_url;
+ if (!do_not_crash_on_unhandled_message_) {
+ NOTREACHED() << "Unhandled chrome.send(\"" << message << "\", " << args
+ << "); from " << source_url;
+ DUMP_WILL_BE_NOTREACHED_NORETURN()
+ << "Unhandled chrome.send(\"" << message << "\", " << args << "); from "
+ << source_url;
+ } else {
+ DLOG(INFO) << "---Unhandled chrome.send(\"" << message << "\", " << args
<< "); from " << source_url;
+ DLOG(INFO)
+ << "---Unhandled chrome.send(\"" << message << "\", " << args << "); from "
+ << source_url;
+ }
}
@@ -1931,7 +1935,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
@@ -84,6 +84,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI,
@@ -82,6 +82,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;
@@ -1939,7 +1943,7 @@ diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_
bool CanCallJavascript() override;
void CallJavascriptFunctionUnsafe(base::StringPiece function_name) override;
void CallJavascriptFunctionUnsafe(
@@ -155,6 +156,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI,
@@ -153,6 +154,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost {
std::unique_ptr<WebUIController> controller_;
@@ -2020,7 +2024,7 @@ diff --git a/ui/webui/BUILD.gn b/ui/webui/BUILD.gn
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
--- a/ui/webui/resources/BUILD.gn
+++ b/ui/webui/resources/BUILD.gn
@@ -73,6 +73,16 @@ generate_grd("build_grd") {
@@ -74,6 +74,16 @@ generate_grd("build_grd") {
"$target_gen_dir/cr_components/most_visited/resources.grdp",
"$target_gen_dir/cr_components/settings_prefs/resources.grdp",
]
@@ -2035,8 +2039,8 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
+ ]
+ }
if (use_nss_certs) {
public_deps += [ "cr_components/certificate_manager:build_grdp" ]
if (!optimize_webui) {
public_deps += [ "//third_party/lit/v3_0:build_grdp" ]
diff --git a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
--- a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
+++ b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn
@@ -101,7 +101,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/
diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js
--- a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js
+++ b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js
@@ -1276,6 +1276,10 @@ inspectorBackend.registerCommand("Debugger.restartFrame", [{"name": "callFrameId
@@ -1280,6 +1280,10 @@ inspectorBackend.registerCommand("Debugger.restartFrame", [{"name": "callFrameId
inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume", "type": "boolean", "optional": true, "description": "Set to true to terminate execution upon resuming execution. In contrast to Runtime.terminateExecution, this will allows to execute further JavaScript (i.e. via evaluation) until execution of the paused code is actually resumed, at which point termination is triggered. If execution is currently not paused, this parameter has no effect.", "typeRef": null}], [], "Resumes JavaScript execution.");
inspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false, "description": "Id of the script to search in.", "typeRef": "Runtime.ScriptId"}, {"name": "query", "type": "string", "optional": false, "description": "String to search for.", "typeRef": null}, {"name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive.", "typeRef": null}, {"name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex.", "typeRef": null}], ["result"], "Searches for given string in script content.");
inspectorBackend.registerCommand("Debugger.setAsyncCallStackDepth", [{"name": "maxDepth", "type": "number", "optional": false, "description": "Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async call stacks (default).", "typeRef": null}], [], "Enables or disables async call stacks tracking.");
@@ -115,7 +115,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBack
diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts
--- a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts
+++ b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts
@@ -4417,6 +4417,10 @@ export namespace ProtocolMapping {
@@ -4404,6 +4404,10 @@ export namespace ProtocolMapping {
paramsType: [Protocol.Debugger.SetAsyncCallStackDepthRequest];
returnType: void;
};
@@ -129,7 +129,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapp
diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts
--- a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts
+++ b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts
@@ -3908,6 +3908,8 @@ declare namespace ProtocolProxyApi {
@@ -3897,6 +3897,8 @@ declare namespace ProtocolProxyApi {
*/
invoke_setAsyncCallStackDepth(params: Protocol.Debugger.SetAsyncCallStackDepthRequest): Promise<Protocol.ProtocolResponseWithError>;
@@ -141,7 +141,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-prox
diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b/third_party/devtools-frontend/src/front_end/generated/protocol.ts
--- a/third_party/devtools-frontend/src/front_end/generated/protocol.ts
+++ b/third_party/devtools-frontend/src/front_end/generated/protocol.ts
@@ -16837,6 +16837,10 @@ export namespace Debugger {
@@ -16904,6 +16904,10 @@ export namespace Debugger {
maxDepth: integer;
}
@@ -155,7 +155,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b
diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json
--- a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json
+++ b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json
@@ -25238,8 +25238,17 @@
@@ -25356,8 +25356,17 @@
"$ref": "WasmDisassemblyChunk"
}
]
@@ -175,7 +175,7 @@ diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools
"name": "nextWasmDisassemblyChunk",
"description": "Disassemble the next chunk of lines for the module corresponding to the\nstream. If disassembly is complete, this API will invalidate the streamId\nand return an empty chunk. Any subsequent calls for the now invalid stream\nwill return errors.",
"experimental": true,
@@ -28367,4 +28376,4 @@
@@ -28485,4 +28494,4 @@
]
}
]
@@ -199,7 +199,7 @@ diff --git a/v8/include/js_protocol.pdl b/v8/include/js_protocol.pdl
diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h
--- a/v8/src/common/message-template.h
+++ b/v8/src/common/message-template.h
@@ -729,6 +729,7 @@ namespace internal {
@@ -733,6 +733,7 @@ namespace internal {
/* AggregateError */ \
T(AllPromisesRejected, "All promises were rejected") \
T(CannotDeepFreezeObject, "Cannot DeepFreeze object of type %") \
@@ -210,7 +210,7 @@ diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h
diff --git a/v8/src/debug/debug-interface.cc b/v8/src/debug/debug-interface.cc
--- a/v8/src/debug/debug-interface.cc
+++ b/v8/src/debug/debug-interface.cc
@@ -1013,6 +1013,11 @@ void SetAsyncEventDelegate(Isolate* v8_isolate, AsyncEventDelegate* delegate) {
@@ -1015,6 +1015,11 @@ void SetAsyncEventDelegate(Isolate* v8_isolate, AsyncEventDelegate* delegate) {
reinterpret_cast<i::Isolate*>(v8_isolate)->set_async_event_delegate(delegate);
}
@@ -260,7 +260,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h
diff --git a/v8/src/execution/messages.cc b/v8/src/execution/messages.cc
--- a/v8/src/execution/messages.cc
+++ b/v8/src/execution/messages.cc
@@ -497,6 +497,7 @@ MaybeHandle<String> MessageFormatter::TryFormat(
@@ -500,6 +500,7 @@ MaybeHandle<String> MessageFormatter::TryFormat(
MessageTemplate::kUndefinedOrNullToObject,
MessageTemplate::kUnexpectedStrictReserved,
MessageTemplate::kUnexpectedTokenIdentifier,
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
--- a/components/viz/common/features.cc
+++ b/components/viz/common/features.cc
@@ -248,7 +248,7 @@ BASE_FEATURE(kRendererAllocatesImages,
@@ -252,7 +252,7 @@ BASE_FEATURE(kRendererAllocatesImages,
// evicts itself. This differs from Destkop platforms which evict the entire
// FrameTree along with the topmost viz::Surface. When this feature is enabled,
// Android will begin also evicting the entire FrameTree.
@@ -167,7 +167,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -166,8 +166,6 @@ static_library("browser") {
@@ -157,8 +157,6 @@ static_library("browser") {
"adblock/adblock_content_browser_client.h",
"adblock/adblock_controller_factory.cc",
"adblock/adblock_controller_factory.h",
@@ -469,8 +469,8 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "chrome/browser/adblock/content_security_policy_injector_factory.h"
#include "chrome/browser/adblock/element_hider_factory.h"
#include "chrome/browser/adblock/resource_classification_runner_factory.h"
@@ -781,7 +780,6 @@ void ChromeBrowserMainExtraPartsProfiles::
ExitTypeServiceFactory::GetInstance();
@@ -823,7 +822,6 @@ void ChromeBrowserMainExtraPartsProfiles::
FakeSmartCardDeviceServiceFactory::GetInstance();
#endif
adblock::AdblockControllerFactory::GetInstance();
- adblock::AdblockTelemetryServiceFactory::GetInstance();
@@ -481,14 +481,14 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
--- a/chrome/browser/resources/settings/BUILD.gn
+++ b/chrome/browser/resources/settings/BUILD.gn
@@ -74,6 +74,7 @@ build_webui("build") {
web_component_files = [
"a11y_page/a11y_page.ts",
"about_page/about_page.ts",
"ai_page/ai_page.ts",
+ "adblock_page/adblock_page.ts",
"appearance_page/appearance_fonts_page.ts",
"appearance_page/appearance_page.ts",
"appearance_page/home_url_input.ts",
@@ -374,6 +375,7 @@ build_webui("build") {
@@ -371,6 +372,7 @@ build_webui("build") {
ts_composite = true
ts_definitions = [
"//tools/typescript/definitions/autofill_private.d.ts",
@@ -1002,8 +1002,8 @@ new file mode 100644
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html
--- a/chrome/browser/resources/settings/basic_page/basic_page.html
+++ b/chrome/browser/resources/settings/basic_page/basic_page.html
@@ -24,6 +24,13 @@
</settings-people-page>
@@ -31,6 +31,13 @@
<settings-ai-page prefs="{{prefs}}"></settings-ai-page>
</settings-section>
</template>
+ <template is="dom-if" if="[[showPage_(pageVisibility.adblock)]]"
@@ -1019,10 +1019,10 @@ diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chro
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.ts b/chrome/browser/resources/settings/basic_page/basic_page.ts
--- a/chrome/browser/resources/settings/basic_page/basic_page.ts
+++ b/chrome/browser/resources/settings/basic_page/basic_page.ts
@@ -10,6 +10,7 @@ import 'chrome://resources/cr_elements/cr_hidden_style.css.js';
import 'chrome://resources/cr_elements/cr_shared_style.css.js';
@@ -11,6 +11,7 @@ import 'chrome://resources/cr_elements/cr_shared_style.css.js';
import 'chrome://resources/cr_elements/cr_shared_vars.css.js';
import 'chrome://resources/polymer/v3_0/iron-flex-layout/iron-flex-layout-classes.js';
import '../ai_page/ai_page.js';
+import '../adblock_page/adblock_page.js';
import '../appearance_page/appearance_page.js';
import '../privacy_page/preloading_page.js';
@@ -1036,12 +1036,12 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows
a11y?: boolean;
+ adblock?: boolean;
advancedSettings?: boolean;
ai?: boolean;
appearance?: boolean|AppearancePageVisibility;
autofill?: boolean;
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -189,6 +189,10 @@ function createBrowserSettingsRoutes(): SettingsRoutes {
@@ -192,6 +192,10 @@ function createBrowserSettingsRoutes(): SettingsRoutes {
r.FONTS = r.APPEARANCE.createChild('/fonts');
}
@@ -1066,7 +1066,7 @@ diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resour
diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/resources/settings/settings.ts
--- a/chrome/browser/resources/settings/settings.ts
+++ b/chrome/browser/resources/settings/settings.ts
@@ -48,6 +48,7 @@ export {AppearanceBrowserProxy, AppearanceBrowserProxyImpl} from './appearance_p
@@ -49,6 +49,7 @@ export {AppearanceBrowserProxy, AppearanceBrowserProxyImpl} from './appearance_p
export {SettingsAppearancePageElement, SystemTheme} from './appearance_page/appearance_page.js';
export {HomeUrlInputElement} from './appearance_page/home_url_input.js';
export {SettingsAutofillPageElement} from './autofill_page/autofill_page.js';
@@ -1077,7 +1077,7 @@ diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/reso
diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html b/chrome/browser/resources/settings/settings_menu/settings_menu.html
--- a/chrome/browser/resources/settings/settings_menu/settings_menu.html
+++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html
@@ -141,6 +141,11 @@
@@ -149,6 +149,11 @@
$i18n{a11yPageTitle}
<paper-ripple></paper-ripple>
</a>
@@ -1100,7 +1100,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h"
#include "chrome/browser/browser_process.h"
@@ -362,6 +363,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -364,6 +365,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
}
}
@@ -1109,7 +1109,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
AdblockWebContentObserver::CreateForWebContents(
web_contents,
adblock::SubscriptionServiceFactory::GetForBrowserContext(
@@ -370,7 +373,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -372,7 +375,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
web_contents->GetBrowserContext()),
adblock::SitekeyStorageFactory::GetForBrowserContext(
web_contents->GetBrowserContext()),
@@ -1117,7 +1117,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
+ std::make_unique<adblock::FrameHierarchyBuilder>(),
+ HostContentSettingsMapFactory::GetForProfile(profile));
autofill::ChromeAutofillClient::CreateForWebContents(web_contents);
if (breadcrumbs::IsEnabled()) {
if (breadcrumbs::IsEnabled(g_browser_process->local_state())) {
BreadcrumbManagerTabHelper::CreateForWebContents(web_contents);
diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.cc b/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.cc
--- a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_handler_impl.cc
@@ -1184,7 +1184,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com
"autofillPrivate": {
"channel": "trunk",
"extension_types": ["extension", "platform_app"],
@@ -360,10 +356,6 @@
@@ -376,10 +372,6 @@
"extension", "legacy_packaged_app", "hosted_app", "platform_app"
]
},
@@ -1223,15 +1223,15 @@ diff --git a/chrome/common/extensions/api/adblock_private.idl b/chrome/common/ex
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -27,7 +27,6 @@ import("//chrome/services/speech/buildflags/buildflags.gni")
import("//chrome/test/include_js_tests.gni")
@@ -27,7 +27,6 @@ import("//chrome/test/include_js_tests.gni")
import("//chrome/version.gni")
import("//chromeos/ash/components/assistant/assistant.gni")
import("//components/allocation_recorder/testing/testing.gni")
-import("//components/adblock/features.gni")
import("//components/captive_portal/core/features.gni")
import("//components/compose/features.gni")
import("//components/enterprise/buildflags/buildflags.gni")
@@ -2867,10 +2866,6 @@ if (!is_android) {
@@ -2957,10 +2956,6 @@ if (!is_android) {
sources += [ "../browser/chrome_for_testing/chrome_for_testing_info_bar_browsertest.cc" ]
}
@@ -4395,7 +4395,7 @@ new file mode 100644
diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn
--- a/components/resources/BUILD.gn
+++ b/components/resources/BUILD.gn
@@ -78,7 +78,6 @@ grit("components_resources") {
@@ -80,7 +80,6 @@ grit("components_resources") {
deps += [
"//components/resources/adblocking:copy_snippets_lib",
@@ -11963,7 +11963,7 @@ new file mode 100755
diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc
--- a/third_party/blink/renderer/core/css/style_engine.cc
+++ b/third_party/blink/renderer/core/css/style_engine.cc
@@ -626,6 +626,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow(
@@ -627,6 +627,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow(
}
}
@@ -20,14 +20,14 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10
diff --git a/BUILD.gn b/BUILD.gn
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -394,7 +394,6 @@ group("gn_all") {
@@ -399,7 +399,6 @@ group("gn_all") {
"//android_webview:empty_group",
"//android_webview/test",
"//android_webview/tools/automated_ui_tests:webview_ui_test_app",
- "//android_webview/tools/captured_sites_tests:captured_sites_test_app",
"//android_webview/tools/sdk_sandbox",
"//android_webview/tools/system_webview_shell",
"//chrome/android:chrome_junit_tests",
"//chrome/android:chrome_public_apk",
diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h
--- a/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h
+++ b/chrome/browser/navigation_predictor/navigation_predictor_metrics_document_data.h
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_do
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
--- a/chrome/browser/safe_browsing/BUILD.gn
+++ b/chrome/browser/safe_browsing/BUILD.gn
@@ -182,6 +182,7 @@ static_library("safe_browsing") {
@@ -185,6 +185,7 @@ static_library("safe_browsing") {
"//components/version_info",
"//content/public/browser",
"//services/preferences/public/mojom:mojom",
@@ -109,7 +109,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc
--- a/content/browser/browser_interface_binders.cc
+++ b/content/browser/browser_interface_binders.cc
@@ -355,6 +355,7 @@ void BindDateTimeChooserForFrame(
@@ -356,6 +356,7 @@ void BindDateTimeChooserForFrame(
void BindTextSuggestionHostForFrame(
RenderFrameHost* host,
mojo::PendingReceiver<blink::mojom::TextSuggestionHost> receiver) {
@@ -133,7 +133,7 @@ diff --git a/crypto/BUILD.gn b/crypto/BUILD.gn
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1650,6 +1650,7 @@ component("net") {
@@ -1587,6 +1587,7 @@ component("net") {
configs -= [ "//build/config/compiler:default_optimization" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
@@ -144,7 +144,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn
diff --git a/third_party/libevent/BUILD.gn b/third_party/libevent/BUILD.gn
--- a/third_party/libevent/BUILD.gn
+++ b/third_party/libevent/BUILD.gn
@@ -69,6 +69,8 @@ static_library("libevent") {
@@ -58,6 +58,8 @@ static_library("libevent") {
configs += [ "//build/config/compiler:optimize_max" ]
}
@@ -115,7 +115,7 @@ diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h
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
@@ -252,6 +252,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCompressParkableStrings);
@@ -256,6 +256,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCompressParkableStrings);
BLINK_COMMON_EXPORT extern const base::FeatureParam<int>
kMaxDiskDataAllocatorCapacityMB;
@@ -128,7 +128,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -762,6 +762,7 @@ component("platform") {
@@ -759,6 +759,7 @@ component("platform") {
"fonts/simple_font_data.cc",
"fonts/simple_font_data.h",
"fonts/skia/font_cache_skia.cc",
@@ -426,7 +426,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
--- a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
+++ b/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc
@@ -58,12 +58,35 @@
@@ -59,12 +59,35 @@
#error This file should not be used by MacOS.
#endif
@@ -462,7 +462,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
// This function is called on android or when we are emulating android fonts on
// linux and the embedder has overriden the default fontManager with
@@ -201,7 +224,7 @@ scoped_refptr<SimpleFontData> FontCache::GetLastResortFallbackFont(
@@ -202,7 +225,7 @@ scoped_refptr<SimpleFontData> FontCache::GetLastResortFallbackFont(
sk_sp<SkTypeface> FontCache::CreateTypeface(
const FontDescription& font_description,
const FontFaceCreationParams& creation_params,
@@ -471,7 +471,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
#if !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
// TODO(fuchsia): Revisit this and other font code for Fuchsia.
@@ -219,6 +242,16 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
@@ -220,6 +243,16 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
DCHECK_NE(family, font_family_names::kSystemUi);
// convert the name to utf8
name = family.Utf8();
@@ -488,7 +488,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
#if BUILDFLAG(IS_ANDROID)
// If this is a locale-specific family, try looking up locale-specific
@@ -226,15 +259,15 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
@@ -227,15 +260,15 @@ sk_sp<SkTypeface> FontCache::CreateTypeface(
if (const char* locale_family = GetLocaleSpecificFamilyName(family)) {
if (sk_sp<SkTypeface> typeface =
CreateLocaleSpecificTypeface(font_description, locale_family))
@@ -499,7 +499,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
// TODO(https://crbug.com/1425390: Assign FontCache::font_manager_ in the
// ctor.
auto font_manager = font_manager_ ? font_manager_ : SkFontMgr::RefDefault();
auto font_manager = font_manager_ ? font_manager_ : skia::DefaultFontMgr();
- return sk_sp<SkTypeface>(font_manager->matchFamilyStyle(
- name.empty() ? nullptr : name.c_str(), font_description.SkiaFontStyle()));
+ return ReturnIfAllowed(sk_sp<SkTypeface>(font_manager->matchFamilyStyle(
@@ -507,7 +507,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
}
#if !BUILDFLAG(IS_WIN)
@@ -244,6 +277,7 @@ std::unique_ptr<FontPlatformData> FontCache::CreateFontPlatformData(
@@ -245,6 +278,7 @@ std::unique_ptr<FontPlatformData> FontCache::CreateFontPlatformData(
float font_size,
AlternateFontName alternate_name) {
std::string name;
@@ -515,7 +515,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
sk_sp<SkTypeface> typeface;
#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
@@ -264,7 +298,7 @@ std::unique_ptr<FontPlatformData> FontCache::CreateFontPlatformData(
@@ -265,7 +299,7 @@ std::unique_ptr<FontPlatformData> FontCache::CreateFontPlatformData(
noto_color_emoji_from_gmscore)) {
typeface = CreateTypefaceFromUniqueName(creation_params);
} else {
+23 -21
View File
@@ -35,11 +35,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
services/network/network_context.cc | 73 +++
.../network/public/cpp/simple_url_loader.cc | 18 +
.../network/public/cpp/simple_url_loader.h | 3 +
.../platform/loader/fetch/fetch_utils.cc | 191 ++++++-
.../platform/loader/fetch/fetch_utils.cc | 193 +++++++-
.../loader/fetch/url_loader/url_loader.cc | 4 +-
.../scripts/auditor/auditor.py | 1 +
.../scripts/auditor/util.py | 1 +
30 files changed, 1573 insertions(+), 20 deletions(-)
30 files changed, 1574 insertions(+), 21 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Internal-firewall.inc
create mode 100644 services/firewall/public/BUILD.gn
create mode 100644 services/firewall/public/firewall_features.cc
@@ -58,7 +58,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
@@ -2556,6 +2556,7 @@ static_library("browser") {
@@ -2527,6 +2527,7 @@ static_library("browser") {
"//third_party/ungoogled:switches",
"//services/device/public/mojom",
"//services/device/public/mojom:usb",
@@ -239,7 +239,7 @@ new file mode 100644
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1098,6 +1098,7 @@ component("net") {
@@ -1035,6 +1035,7 @@ component("net") {
"//build:chromeos_buildflags",
"//components/miracle_parameter/common",
"//net/http:transport_security_state_generated_files",
@@ -274,7 +274,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
}
URLRequestHttpJob::~URLRequestHttpJob() {
@@ -616,6 +619,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) {
@@ -611,6 +614,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) {
void URLRequestHttpJob::StartTransactionInternal() {
DCHECK(!override_response_headers_);
@@ -296,7 +296,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_request_http_job.h
--- a/net/url_request/url_request_http_job.h
+++ b/net/url_request/url_request_http_job.h
@@ -31,6 +31,7 @@
@@ -30,6 +30,7 @@
#include "net/url_request/url_request_job.h"
#include "net/url_request/url_request_throttler_entry_interface.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
@@ -304,7 +304,7 @@ diff --git a/net/url_request/url_request_http_job.h b/net/url_request/url_reques
namespace net {
@@ -81,6 +82,8 @@ class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob {
@@ -80,6 +81,8 @@ class NET_EXPORT_PRIVATE URLRequestHttpJob : public URLRequestJob {
return priority_;
}
@@ -1554,7 +1554,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
@@ -88,6 +88,7 @@
@@ -89,6 +89,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"
@@ -1562,7 +1562,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"
@@ -1626,6 +1627,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() {
@@ -1603,6 +1604,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() {
void NetworkContext::CreateUDPSocket(
mojo::PendingReceiver<mojom::UDPSocket> receiver,
mojo::PendingRemote<mojom::UDPSocketListener> listener) {
@@ -1572,7 +1572,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener));
}
@@ -1638,6 +1642,17 @@ void NetworkContext::CreateRestrictedUDPSocket(
@@ -1615,6 +1619,17 @@ void NetworkContext::CreateRestrictedUDPSocket(
mojo::PendingRemote<mojom::UDPSocketListener> listener,
CreateRestrictedUDPSocketCallback callback) {
// SimpleHostResolver is transitively owned by |this|.
@@ -1590,7 +1590,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),
@@ -1650,6 +1665,17 @@ void NetworkContext::CreateTCPServerSocket(
@@ -1627,6 +1642,17 @@ void NetworkContext::CreateTCPServerSocket(
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
mojo::PendingReceiver<mojom::TCPServerSocket> receiver,
CreateTCPServerSocketCallback callback) {
@@ -1608,7 +1608,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),
@@ -1664,6 +1690,21 @@ void NetworkContext::CreateTCPConnectedSocket(
@@ -1641,6 +1667,21 @@ void NetworkContext::CreateTCPConnectedSocket(
mojo::PendingReceiver<mojom::TCPConnectedSocket> receiver,
mojo::PendingRemote<mojom::SocketObserver> observer,
CreateTCPConnectedSocketCallback callback) {
@@ -1630,7 +1630,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),
@@ -1675,6 +1716,20 @@ void NetworkContext::CreateTCPBoundSocket(
@@ -1652,6 +1693,20 @@ void NetworkContext::CreateTCPBoundSocket(
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
mojo::PendingReceiver<mojom::TCPBoundSocket> receiver,
CreateTCPBoundSocketCallback callback) {
@@ -1651,7 +1651,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),
@@ -1741,6 +1796,24 @@ void NetworkContext::CreateWebSocket(
@@ -1718,6 +1773,24 @@ void NetworkContext::CreateWebSocket(
mojo::PendingRemote<mojom::WebSocketAuthenticationHandler> auth_handler,
mojo::PendingRemote<mojom::TrustedHeaderClient> header_client,
const absl::optional<base::UnguessableToken>& throttling_profile_id) {
@@ -1679,7 +1679,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
@@ -1240,6 +1240,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl(
@@ -1258,6 +1258,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl(
timeout_timer_(timeout_tick_clock_) {
// Allow creation and use on different threads.
DETACH_FROM_SEQUENCE(sequence_checker_);
@@ -1688,7 +1688,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 :
@@ -1659,6 +1661,22 @@ void SimpleURLLoaderImpl::StartRequest(
@@ -1695,6 +1697,22 @@ void SimpleURLLoaderImpl::StartRequest(
resource_request_->request_body->AppendDataPipe(
string_upload_data_pipe_getter_->GetRemoteForNewUpload());
}
@@ -1722,7 +1722,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.h b/services/network/
class GURL;
@@ -395,6 +396,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader {
@@ -404,6 +405,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader {
protected:
SimpleURLLoader();
@@ -1734,7 +1734,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.h b/services/network/
diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc
--- a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc
@@ -97,29 +97,198 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag(
@@ -97,30 +97,199 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag(
case network::mojom::RequestDestination::kIframe:
case network::mojom::RequestDestination::kFrame:
case network::mojom::RequestDestination::kFencedframe:
@@ -1882,6 +1882,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t
case network::mojom::RequestDestination::kAudio:
- case network::mojom::RequestDestination::kAudioWorklet:
case network::mojom::RequestDestination::kFont:
+ case network::mojom::RequestDestination::kSpeculationRules:
case network::mojom::RequestDestination::kImage:
- case network::mojom::RequestDestination::kManifest:
- case network::mojom::RequestDestination::kPaintWorklet:
@@ -1889,6 +1890,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t
case network::mojom::RequestDestination::kScript:
- case network::mojom::RequestDestination::kServiceWorker:
- case network::mojom::RequestDestination::kSharedWorker:
- case network::mojom::RequestDestination::kSpeculationRules:
case network::mojom::RequestDestination::kStyle:
case network::mojom::RequestDestination::kTrack:
case network::mojom::RequestDestination::kVideo:
@@ -1943,7 +1945,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t
semantics {
sender: "Blink Resource Loader"
description:
@@ -143,7 +312,7 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag(
@@ -144,7 +313,7 @@ net::NetworkTrafficAnnotationTag FetchUtils::GetTrafficAnnotationTag(
case network::mojom::RequestDestination::kEmbed:
case network::mojom::RequestDestination::kObject:
return net::DefineNetworkTrafficAnnotation(
@@ -1955,7 +1957,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t
diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc
--- a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loader.cc
@@ -276,7 +276,7 @@ void URLLoader::Context::Start(
@@ -275,7 +275,7 @@ void URLLoader::Context::Start(
download_to_blob_registry.InitWithNewPipeAndPassReceiver());
}
net::NetworkTrafficAnnotationTag tag =
@@ -1964,7 +1966,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/url_loa
resource_request_sender_->SendSync(
std::move(request), tag, loader_options, sync_load_response,
url_loader_factory_, std::move(throttles), timeout_interval,
@@ -289,7 +289,7 @@ void URLLoader::Context::Start(
@@ -288,7 +288,7 @@ void URLLoader::Context::Start(
TRACE_EVENT_WITH_FLOW0("loading", "URLLoader::Context::Start", this,
TRACE_EVENT_FLAG_FLOW_OUT);
net::NetworkTrafficAnnotationTag tag =
@@ -6,9 +6,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/browser/companion/core/features.cc | 6 ++++++
chrome/browser/ui/side_search/side_search_prefs.cc | 2 +-
chrome/browser/ui/ui_features.cc | 2 +-
chrome/browser/ui/ui_features.cc | 1 +
components/search_engines/template_url.cc | 2 +-
4 files changed, 9 insertions(+), 3 deletions(-)
4 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/companion/core/features.cc b/chrome/browser/companion/core/features.cc
--- a/chrome/browser/companion/core/features.cc
@@ -48,12 +48,11 @@ diff --git a/chrome/browser/ui/side_search/side_search_prefs.cc b/chrome/browser
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
@@ -106,7 +106,7 @@ BASE_FEATURE(kResponsiveToolbar,
@@ -113,6 +113,7 @@ BASE_FEATURE(kResponsiveToolbar,
// Enables the side search feature for Google Search. Presents recent Google
// search results in a browser side panel.
-BASE_FEATURE(kSideSearch, "SideSearch", base::FEATURE_ENABLED_BY_DEFAULT);
+BASE_FEATURE(kSideSearch, "SideSearch", base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSideSearch, "SideSearch", base::FEATURE_DISABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kSideSearch);
BASE_FEATURE(kSideSearchFeedback,
"SideSearchFeedback",
@@ -19,7 +19,7 @@ new file mode 100644
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
@@ -1754,8 +1754,8 @@
@@ -1686,8 +1686,8 @@
},
{
// The Blink runtime-enabled feature name for the API's IDL.
@@ -158,7 +158,7 @@ diff --git a/third_party/blink/renderer/core/events/keyboard_event.h b/third_par
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -192,6 +192,14 @@ BASE_FEATURE(kSystemKeyboardLock,
@@ -185,6 +185,14 @@ BASE_FEATURE(kSystemKeyboardLock,
"SystemKeyboardLock",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -41,7 +41,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -4556,6 +4556,14 @@ void Document::ProcessBaseElement() {
@@ -4547,6 +4547,14 @@ void Document::ProcessBaseElement() {
KURL base_element_url;
if (href) {
String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href);
@@ -56,7 +56,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
if (!stripped_href.empty())
base_element_url = KURL(FallbackBaseURL(), stripped_href);
}
@@ -4573,6 +4581,14 @@ void Document::ProcessBaseElement() {
@@ -4564,6 +4572,14 @@ void Document::ProcessBaseElement() {
!GetExecutionContext()->GetSecurityOrigin()->CanRequest(
base_element_url)) {
UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref);
@@ -71,7 +71,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
}
}
@@ -4592,6 +4608,8 @@ void Document::ProcessBaseElement() {
@@ -4583,6 +4599,8 @@ void Document::ProcessBaseElement() {
if (target->Contains('<'))
UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget);
base_target_ = *target;
@@ -83,7 +83,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -2583,8 +2583,26 @@ void Element::StripScriptingAttributes(
@@ -2626,8 +2626,26 @@ void Element::StripScriptingAttributes(
attribute_vector.Shrink(destination);
}
@@ -114,7 +114,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
@@ -579,7 +579,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable {
@@ -596,7 +596,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable {
virtual bool HasLegalLinkAttribute(const QualifiedName&) const;
// Only called by the parser immediately after element construction.
@@ -201,7 +201,7 @@ diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/t
diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third_party/blink/renderer/core/html/html_iframe_element.cc
--- a/third_party/blink/renderer/core/html/html_iframe_element.cc
+++ b/third_party/blink/renderer/core/html/html_iframe_element.cc
@@ -157,6 +157,12 @@ void HTMLIFrameElement::CollectStyleForPresentationAttribute(
@@ -159,6 +159,12 @@ void HTMLIFrameElement::CollectStyleForPresentationAttribute(
}
}
@@ -214,7 +214,7 @@ diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third
void HTMLIFrameElement::ParseAttribute(
const AttributeModificationParams& params) {
const QualifiedName& name = params.name;
@@ -171,6 +177,16 @@ void HTMLIFrameElement::ParseAttribute(
@@ -173,6 +179,16 @@ void HTMLIFrameElement::ParseAttribute(
}
AtomicString old_name = name_;
name_ = value;
@@ -282,7 +282,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl
#include "third_party/blink/renderer/core/frame/frame_client.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
@@ -42,6 +45,12 @@ namespace {
@@ -40,6 +43,12 @@ namespace {
const unsigned kInvalidChildCount = ~0U;
@@ -318,7 +318,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl
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
@@ -1578,8 +1578,8 @@
@@ -1521,8 +1521,8 @@
// Experiment with preventing some instances of mutation XSS
// by escaping "<" and ">" in attribute values.
// See: crbug.com/1175016
@@ -329,7 +329,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
},
{
name: "EventTimingInteractionCount",
@@ -2374,6 +2374,12 @@
@@ -2270,6 +2270,12 @@
// Use LongAnimationFrameMonitor to emit longtask entries
name: "LongTaskFromLongAnimationFrame"
},
@@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -341,6 +341,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
@@ -350,6 +350,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
network::mojom::NetworkContext* network_context =
profile->GetDefaultStoragePartition()->GetNetworkContext();
network_context->IsHSTSActiveForHost(
@@ -83,7 +83,7 @@ diff --git a/components/password_manager/core/browser/hsts_query.cc b/components
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
@@ -225,7 +225,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) {
@@ -223,7 +223,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.
@@ -92,7 +92,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
@@ -246,6 +246,29 @@ std::vector<uint8_t> CanonicalizeHost(const std::string& host) {
@@ -244,6 +244,29 @@ std::vector<uint8_t> CanonicalizeHost(const std::string& host) {
return new_host.value();
}
@@ -122,7 +122,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 {
@@ -337,7 +360,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
@@ -335,7 +358,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
// Ensure that |search_hostname| is a valid hostname before
// processing.
@@ -131,7 +131,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.
@@ -404,18 +427,19 @@ TransportSecurityState::TransportSecurityState(
@@ -402,18 +425,19 @@ TransportSecurityState::TransportSecurityState(
// Both HSTS and HPKP cause fatal SSL errors, so return true if a
// host has either.
@@ -154,7 +154,7 @@ 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());
@@ -423,13 +447,14 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam(
@@ -421,13 +445,14 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam(
}
bool TransportSecurityState::ShouldUpgradeToSSL(
@@ -171,7 +171,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
}
TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
@@ -442,7 +467,7 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
@@ -440,7 +465,7 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
const NetworkAnonymizationKey& network_anonymization_key,
std::string* pinning_failure_log) {
// Perform pin validation only if the server actually has public key pins.
@@ -180,8 +180,8 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
return PKPStatus::OK;
}
@@ -461,9 +486,9 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
return pin_validity;
@@ -450,9 +475,9 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
network_anonymization_key, pinning_failure_log);
}
-bool TransportSecurityState::HasPublicKeyPins(const std::string& host) {
@@ -192,7 +192,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
}
TransportSecurityState::CTRequirementsStatus
@@ -557,12 +582,13 @@ void TransportSecurityState::UpdatePinList(
@@ -546,12 +571,13 @@ void TransportSecurityState::UpdatePinList(
}
void TransportSecurityState::AddHSTSInternal(
@@ -207,7 +207,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return;
@@ -586,14 +612,15 @@ void TransportSecurityState::AddHSTSInternal(
@@ -575,14 +601,15 @@ void TransportSecurityState::AddHSTSInternal(
DirtyNotify();
}
@@ -225,7 +225,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return;
@@ -679,10 +706,12 @@ TransportSecurityState::CheckPinsAndMaybeSendReport(
@@ -668,10 +695,12 @@ TransportSecurityState::CheckPinsAndMaybeSendReport(
return PKPStatus::VIOLATED;
}
@@ -240,7 +240,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return false;
@@ -759,7 +788,8 @@ void TransportSecurityState::DirtyNotify() {
@@ -748,7 +777,8 @@ void TransportSecurityState::DirtyNotify() {
delegate_->StateIsDirty(this);
}
@@ -250,7 +250,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_);
@@ -778,24 +808,26 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host,
@@ -767,24 +797,26 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host,
upgrade_mode = STSState::MODE_FORCE_HTTPS;
}
@@ -282,7 +282,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
report_uri);
}
@@ -830,7 +862,7 @@ TransportSecurityState::CheckPublicKeyPinsImpl(
@@ -819,7 +851,7 @@ TransportSecurityState::CheckPublicKeyPinsImpl(
const NetworkAnonymizationKey& network_anonymization_key,
std::string* failure_log) {
PKPState pkp_state;
@@ -291,7 +291,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.
@@ -874,7 +906,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
@@ -863,7 +895,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
PreloadResult result;
if (host_pins_.has_value()) {
// Ensure that |host| is a valid hostname before processing.
@@ -300,7 +300,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.
@@ -962,21 +994,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
@@ -951,21 +983,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
return false;
}
@@ -331,7 +331,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
if (canonicalized_host.empty())
return false;
@@ -1013,11 +1048,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host,
@@ -1002,11 +1037,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host,
return false;
}
@@ -459,7 +459,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_
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
@@ -1343,7 +1343,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
@@ -1330,7 +1330,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(
@@ -505,7 +505,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
// Check for reasons not to return a URLRequestHttpJob. These don't apply to
// https and wss requests.
@@ -1078,7 +1079,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() {
@@ -1075,7 +1076,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() {
HttpResponseHeaders* headers = GetResponseHeaders();
std::string value;
if (headers->EnumerateHeader(nullptr, "Strict-Transport-Security", &value))
@@ -514,7 +514,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
}
void URLRequestHttpJob::OnStartCompleted(int result) {
@@ -1148,7 +1149,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) {
@@ -1145,7 +1146,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) {
TransportSecurityState* state = context->transport_security_state();
NotifySSLCertificateError(
result, transaction_->GetResponseInfo()->ssl_info,
@@ -526,7 +526,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
@@ -1890,17 +1890,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
@@ -1867,17 +1867,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
std::move(callback).Run();
}
@@ -549,7 +549,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();
@@ -1910,10 +1912,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
@@ -1887,10 +1889,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
return;
}
@@ -562,7 +562,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
GetHSTSStateCallback callback) {
base::Value::Dict result;
@@ -1951,10 +1953,10 @@ void NetworkContext::GetHSTSState(const std::string& domain,
@@ -1928,10 +1930,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(
@@ -575,7 +575,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));
@@ -1992,6 +1994,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
@@ -1969,6 +1971,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
}
void NetworkContext::DeleteDynamicDataForHost(
@@ -583,7 +583,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 =
@@ -2002,7 +2005,7 @@ void NetworkContext::DeleteDynamicDataForHost(
@@ -1979,7 +1982,7 @@ void NetworkContext::DeleteDynamicDataForHost(
}
std::move(callback).Run(
@@ -592,7 +592,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
}
void NetworkContext::EnableStaticKeyPinningForTesting(
@@ -2146,7 +2149,7 @@ void NetworkContext::PreconnectSockets(
@@ -2121,7 +2124,7 @@ void NetworkContext::PreconnectSockets(
DCHECK(!require_network_anonymization_key_ ||
!network_anonymization_key.IsEmpty());
@@ -601,7 +601,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.
@@ -2971,12 +2974,15 @@ void NetworkContext::OnConnectionError() {
@@ -2955,12 +2958,15 @@ void NetworkContext::OnConnectionError() {
std::move(on_connection_close_callback_).Run(this);
}
@@ -621,7 +621,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
@@ -421,15 +421,17 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -418,15 +418,17 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
const std::string& ocsp_result,
const std::string& sct_list,
VerifyCertForSignedExchangeCallback callback) override;
@@ -642,7 +642,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
const std::string& host,
DeleteDynamicDataForHostCallback callback) override;
void SetCorsOriginAccessListsForOrigin(
@@ -726,7 +728,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -723,7 +725,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
mojo::PendingRemote<mojom::CookieAccessObserver> cookie_observer,
net::FirstPartySetMetadata first_party_set_metadata);
@@ -655,7 +655,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -1537,16 +1537,16 @@ interface NetworkContext {
@@ -1529,16 +1529,16 @@ interface NetworkContext {
// Adds explicitly-specified data as if it was processed from an
// HSTS header. Used by tests and implementation of chrome://net-internals.
@@ -675,7 +675,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
=> (mojo_base.mojom.DictionaryValue state);
// Sets allowed and blocked origins respectively for the URLLoaderFactory
@@ -1565,7 +1565,7 @@ interface NetworkContext {
@@ -1557,7 +1557,7 @@ interface NetworkContext {
// Deletes any dynamic data stored for |host| from the transport
// security state. Returns true iff an entry was deleted.
// See net::TransportSecurityState::DeleteDynamicDataForHost for more detail.
@@ -27,7 +27,7 @@ diff --git a/components/media_device_salt/media_device_salt_service.cc b/compone
diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/content/browser/renderer_host/media/media_devices_manager.cc
--- a/content/browser/renderer_host/media/media_devices_manager.cc
+++ b/content/browser/renderer_host/media/media_devices_manager.cc
@@ -763,6 +763,11 @@ void MediaDevicesManager::OnDevicesEnumerated(
@@ -841,6 +841,11 @@ void MediaDevicesManager::OnDevicesEnumerated(
has_permissions[i], salt_and_origin, device_info));
}
}
@@ -9,7 +9,7 @@ samesite=none first-party cookies are sent in third-party contexts.
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../browser/net/profile_network_context_service.cc | 8 ++++----
.../browser/net/profile_network_context_service.cc | 12 ++++++------
.../content_settings/core/browser/cookie_settings.cc | 1 +
.../core/common/cookie_settings_base.cc | 2 +-
.../Partitioning-all-cookies-by-top-frame-domain.inc | 3 +++
@@ -26,7 +26,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../renderer/modules/cookie_store/cookie_store.cc | 12 ++++++++++++
.../cookie_store/cookie_store_delete_options.idl | 2 +-
ui/webui/webui_allowlist.cc | 1 +
17 files changed, 58 insertions(+), 21 deletions(-)
17 files changed, 60 insertions(+), 23 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
@@ -35,7 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -578,14 +578,14 @@ ProfileNetworkContextService::CreateCookieManagerParams(
@@ -560,16 +560,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.
@@ -49,15 +49,19 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow
// matching_scheme_cookies_allowed_schemes.
- out->third_party_cookies_allowed_schemes.push_back(
- extensions::kExtensionScheme);
- out->third_party_cookies_allowed_schemes.push_back(
- content::kChromeDevToolsScheme);
+ // out->third_party_cookies_allowed_schemes.push_back(
+ // extensions::kExtensionScheme);
+ // out->third_party_cookies_allowed_schemes.push_back(
+ // content::kChromeDevToolsScheme);
#endif
HostContentSettingsMap* host_content_settings_map =
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
@@ -123,6 +123,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic(
@@ -137,6 +137,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic(
const GURL& first_party_url,
base::TimeDelta ttl,
bool use_schemeless_patterns) {
@@ -111,7 +115,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
@@ -1488,8 +1488,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const {
@@ -1493,8 +1493,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const {
if (IsPartitioned()) {
if (CookiePartitionKey::HasNonce(partition_key_))
return true;
@@ -120,7 +124,7 @@ diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc
}
return true;
@@ -1746,15 +1744,7 @@ bool CanonicalCookie::IsCookiePartitionedValid(const GURL& url,
@@ -1751,15 +1749,7 @@ bool CanonicalCookie::IsCookiePartitionedValid(const GURL& url,
bool secure,
bool is_partitioned,
bool partition_has_nonce) {
@@ -161,10 +165,10 @@ 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"
@@ -86,7 +87,11 @@ class NET_EXPORT ParsedCookie {
@@ -85,7 +86,11 @@ class NET_EXPORT ParsedCookie {
CookieSameSite SameSite(
CookieSameSiteString* samesite_string = nullptr) const;
CookiePriority Priority() const;
bool IsSameParty() const { return same_party_index_ != 0; }
- bool IsPartitioned() const { return partitioned_index_ != 0; }
+ bool IsPartitioned() const {
+ if (base::FeatureList::IsEnabled(net::features::kPartitionedCookies))
@@ -177,7 +181,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h
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
@@ -741,6 +741,16 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() {
@@ -824,6 +824,16 @@ bool SQLitePersistentCookieStore::Backend::DoInitializeDatabase() {
if (!restore_old_session_cookies_)
DeleteSessionCookiesOnStartup();
@@ -197,7 +201,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
@@ -788,7 +788,7 @@ void URLRequestHttpJob::SetCookieHeaderAndStart(
@@ -784,7 +784,7 @@ void URLRequestHttpJob::SetCookieHeaderAndStart(
size_t n_partitioned_cookies = 0;
bool may_set_sec_cookie_deprecation_header =
@@ -209,7 +213,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
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
@@ -933,6 +933,12 @@ void RestrictedCookieManager::SetCookieFromString(
@@ -935,6 +935,12 @@ void RestrictedCookieManager::SetCookieFromString(
std::move(callback).Run();
@@ -7,26 +7,27 @@ without asking the native code
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../browser/download/OMADownloadHandler.java | 38 -------------
.../browser/feedback/ConnectivityChecker.java | 37 +------------
.../ConnectivityDetector.java | 54 -------------------
.../browser/download/OMADownloadHandler.java | 39 ------------
.../browser/feedback/ConnectivityChecker.java | 36 +----------
.../ConnectivityDetector.java | 63 -------------------
.../chrome/browser/omaha/OmahaBase.java | 3 +-
.../util/HttpURLConnectionFactoryImpl.java | 7 +--
.../firstrun/VariationsSeedFetcher.java | 26 +--------
.../chromium/net/ChromiumNetworkAdapter.java | 12 -----
7 files changed, 4 insertions(+), 173 deletions(-)
.../firstrun/VariationsSeedFetcher.java | 26 +-------
.../chromium/net/ChromiumNetworkAdapter.java | 13 ----
7 files changed, 4 insertions(+), 183 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java
@@ -969,44 +969,6 @@ public class OMADownloadHandler extends BroadcastReceiver {
@@ -1012,45 +1012,6 @@ public class OMADownloadHandler extends BroadcastReceiver {
protected Boolean doInBackground() {
HttpURLConnection urlConnection = null;
boolean success = false;
- try {
- URL url = new URL(mOMAInfo.getValue(OMA_INSTALL_NOTIFY_URI));
- urlConnection = (HttpURLConnection) ChromiumNetworkAdapter.openConnection(
- url, TRAFFIC_ANNOTATION);
- urlConnection =
- (HttpURLConnection)
- ChromiumNetworkAdapter.openConnection(url, TRAFFIC_ANNOTATION);
- urlConnection.setDoOutput(true);
- urlConnection.setUseCaches(false);
- urlConnection.setRequestMethod("POST");
@@ -67,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADow
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ConnectivityChecker.java
@@ -137,42 +137,7 @@ public final class ConnectivityChecker {
@@ -134,41 +134,7 @@ public final class ConnectivityChecker {
postResult(callback, ConnectivityCheckResult.ERROR);
return;
}
@@ -76,8 +77,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/Connec
- protected Integer doInBackground() {
- try {
- HttpURLConnection conn =
- (HttpURLConnection) ChromiumNetworkAdapter.openConnection(
- url, TRAFFIC_ANNOTATION);
- (HttpURLConnection)
- ChromiumNetworkAdapter.openConnection(url, TRAFFIC_ANNOTATION);
- conn.setInstanceFollowRedirects(false);
- conn.setRequestMethod("GET");
- conn.setDoInput(false);
@@ -105,8 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/Connec
- protected void onPostExecute(Integer result) {
- callback.onResult(result);
- }
- }
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ postResult(callback, ConnectivityCheckResult.ERROR);
}
@@ -114,7 +114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/Connec
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/net/connectivitydetector/ConnectivityDetector.java
@@ -390,60 +390,6 @@ public class ConnectivityDetector implements NetworkChangeNotifier.ConnectionTyp
@@ -406,69 +406,6 @@ public class ConnectivityDetector implements NetworkChangeNotifier.ConnectionTyp
new AsyncTask<Integer>() {
@Override
protected Integer doInBackground() {
@@ -125,8 +125,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivit
- Log.i(TAG, "Sending HTTP Probe now to url:" + urlString);
-
- URL url = new URL(urlString);
- urlConnection = (HttpURLConnection) ChromiumNetworkAdapter.openConnection(
- url, NetworkTrafficAnnotationTag.MISSING_TRAFFIC_ANNOTATION);
- urlConnection =
- (HttpURLConnection)
- ChromiumNetworkAdapter.openConnection(
- url,
- NetworkTrafficAnnotationTag.MISSING_TRAFFIC_ANNOTATION);
- urlConnection.setInstanceFollowRedirects(false);
- urlConnection.setRequestMethod(sProbeMethod);
- urlConnection.setConnectTimeout(timeoutMs);
@@ -139,10 +142,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivit
- long responseTimestamp = SystemClock.elapsedRealtime();
- int responseCode = urlConnection.getResponseCode();
-
- Log.i(TAG,
- "Probe " + urlString + " time=" + (responseTimestamp - requestTimestamp)
- + "ms ret=" + responseCode
- + " headers=" + urlConnection.getHeaderFields());
- Log.i(
- TAG,
- "Probe "
- + urlString
- + " time="
- + (responseTimestamp - requestTimestamp)
- + "ms ret="
- + responseCode
- + " headers="
- + urlConnection.getHeaderFields());
-
- if (responseCode == HttpURLConnection.HTTP_NO_CONTENT) {
- return ProbeResult.VALIDATED_WITH_NO_CONTENT;
@@ -178,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivit
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
@@ -463,8 +463,7 @@ public class OmahaBase {
@@ -483,8 +483,7 @@ public class OmahaBase {
}""");
try {
URL url = new URL(getRequestGenerator().getServerUrl());
@@ -191,13 +200,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java
--- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java
+++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java
@@ -37,11 +37,6 @@ public class HttpURLConnectionFactoryImpl implements HttpURLConnectionFactory {
@@ -36,11 +36,6 @@ public class HttpURLConnectionFactoryImpl implements HttpURLConnectionFactory {
@Override
public HttpURLConnection createHttpURLConnection(String url) {
- try {
- return (HttpURLConnection) ChromiumNetworkAdapter.openConnection(
- new URL(url), TRAFFIC_ANNOTATION);
- return (HttpURLConnection)
- ChromiumNetworkAdapter.openConnection(new URL(url), TRAFFIC_ANNOTATION);
- } catch (IOException e) {
- return null;
- }
@@ -207,7 +216,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen
diff --git a/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java
--- a/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java
+++ b/components/variations/android/java/src/org/chromium/components/variations/firstrun/VariationsSeedFetcher.java
@@ -186,14 +186,6 @@ public class VariationsSeedFetcher {
@@ -187,14 +187,6 @@ public class VariationsSeedFetcher {
ResettersForTesting.register(() -> sInstance = oldValue);
}
@@ -222,7 +231,7 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari
@VisibleForTesting
protected List<String> getAvailableInstanceManipulations() {
List<String> compressions = new ArrayList<String>();
@@ -508,24 +500,8 @@ public class VariationsSeedFetcher {
@@ -531,24 +523,8 @@ public class VariationsSeedFetcher {
HttpURLConnection connection = null;
try {
long startTimeMillis = SystemClock.elapsedRealtime();
@@ -251,7 +260,7 @@ diff --git a/components/variations/android/java/src/org/chromium/components/vari
diff --git a/net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java b/net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java
--- a/net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java
+++ b/net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java
@@ -25,10 +25,6 @@ public final class ChromiumNetworkAdapter {
@@ -23,10 +23,6 @@ public final class ChromiumNetworkAdapter {
* what data gets sent, what triggers it, etc.
* @return a URLConnection linking to the URL.
*/
@@ -262,18 +271,19 @@ diff --git a/net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java b
/**
* Wrapper around URL#openConnection(Proxy), with an extra argument for static analysis/privacy
@@ -40,10 +36,6 @@ public final class ChromiumNetworkAdapter {
@@ -38,11 +34,6 @@ public final class ChromiumNetworkAdapter {
* what data gets sent, what triggers it, etc.
* @return a URLConnection linking to the URL.
*/
- public static URLConnection openConnection(URL url, Proxy proxy,
- NetworkTrafficAnnotationTag trafficAnnotation) throws IOException {
- public static URLConnection openConnection(
- URL url, Proxy proxy, NetworkTrafficAnnotationTag trafficAnnotation)
- throws IOException {
- return url.openConnection(proxy);
- }
/**
* Wrapper around URL#openStream(), with an extra argument for static analysis/privacy
@@ -54,8 +46,4 @@ public final class ChromiumNetworkAdapter {
@@ -53,8 +44,4 @@ public final class ChromiumNetworkAdapter {
* what data gets sent, what triggers it, etc.
* @return an InputStream linking to the URL.
*/
@@ -19,7 +19,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
--- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc
@@ -544,6 +544,9 @@ bool ResourceLoader::WillFollowRedirect(
@@ -543,6 +543,9 @@ bool ResourceLoader::WillFollowRedirect(
new_url)) {
fetcher_->GetUseCounter().CountUse(
mojom::WebFeature::kAuthorizationCrossOrigin);
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -364,7 +364,7 @@ void ProfileNetworkContextService::UpdateAdditionalCertificates() {
@@ -360,7 +360,7 @@ void ProfileNetworkContextService::UpdateAdditionalCertificates() {
void ProfileNetworkContextService::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled,
@@ -187,7 +187,7 @@ diff --git a/third_party/blink/renderer/core/timing/memory_info.cc b/third_party
diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc
--- a/third_party/blink/renderer/core/timing/window_performance.cc
+++ b/third_party/blink/renderer/core/timing/window_performance.cc
@@ -255,7 +255,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const {
@@ -254,7 +254,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const {
auto* memory_info = MakeGarbageCollected<MemoryInfo>(
Platform::Current()->IsLockedToSite()
? MemoryInfo::Precision::kPrecise
@@ -27,7 +27,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
@@ -1974,6 +1974,16 @@ static_library("browser") {
@@ -1939,6 +1939,16 @@ static_library("browser") {
]
}
@@ -378,7 +378,7 @@ new file mode 100644
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -112,6 +112,7 @@
@@ -111,6 +111,7 @@
#include "chrome/browser/password_manager/password_reuse_manager_factory.h"
#include "chrome/browser/password_manager/profile_password_store_factory.h"
#include "chrome/browser/permissions/adaptive_quiet_notification_permission_ui_enabler.h"
@@ -386,7 +386,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "chrome/browser/permissions/notifications_engagement_service_factory.h"
#include "chrome/browser/permissions/one_time_permissions_tracker_factory.h"
#include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h"
@@ -908,6 +909,7 @@ void ChromeBrowserMainExtraPartsProfiles::
@@ -947,6 +948,7 @@ void ChromeBrowserMainExtraPartsProfiles::
#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
OnDeviceTailModelServiceFactory::GetInstance();
#endif
@@ -397,7 +397,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
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
@@ -54,6 +54,7 @@
@@ -52,6 +52,7 @@
#include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h"
#include "chrome/browser/password_manager/chrome_password_manager_client.h"
#include "chrome/browser/performance_manager/public/user_tuning/user_performance_tuning_manager.h"
@@ -405,7 +405,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
#include "chrome/browser/permissions/one_time_permissions_tracker_helper.h"
#include "chrome/browser/predictors/loading_predictor_factory.h"
#include "chrome/browser/predictors/loading_predictor_tab_helper.h"
@@ -388,6 +389,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -390,6 +391,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
HistoryClustersTabHelper::CreateForWebContents(web_contents);
HttpsOnlyModeTabHelper::CreateForWebContents(web_contents);
webapps::InstallableManager::CreateForWebContents(web_contents);
@@ -13,7 +13,7 @@ See https://source.chromium.org/chromium/chromium/src/+/4a9dd5ab3709d60f40beb2f8
diff --git a/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkItem.java b/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkItem.java
--- a/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkItem.java
+++ b/components/bookmarks/common/android/java/src/org/chromium/components/bookmarks/BookmarkItem.java
@@ -51,6 +51,7 @@ public class BookmarkItem {
@@ -57,6 +57,7 @@ public class BookmarkItem {
/** Returns the string to display for the item's url. */
public String getUrlForDisplay() {
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -2974,6 +2974,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id,
@@ -2982,6 +2982,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id,
if (it == active_streams_.end()) {
// NOTE: it may just be that the stream was cancelled.
LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id;
@@ -19,7 +19,7 @@ diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timin
if (loader) {
switch (loader->GetTiming().SystemEntropyAtNavigationStart()) {
case mojom::blink::SystemEntropy::kHigh:
@@ -215,6 +216,7 @@ AtomicString PerformanceNavigationTiming::type() const {
@@ -216,6 +217,7 @@ AtomicString PerformanceNavigationTiming::type() const {
}
AtomicString PerformanceNavigationTiming::deliveryType() const {
@@ -10,7 +10,7 @@ Subject: Temp guard FileSystemAccessPersistentPermissions
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
@@ -375,7 +375,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& check_path,
@@ -377,7 +377,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& check_path,
}
if (check_path == blocked_path || check_path.IsParent(blocked_path)) {
@@ -19,7 +19,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
<< " because it is a parent of " << blocked_path << " ("
<< block.base_path_key << ")";
return true;
@@ -404,7 +404,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& check_path,
@@ -406,7 +406,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& check_path,
}
// The nearest ancestor blocks access to its children, so block access.
@@ -22,13 +22,13 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java
@@ -15,6 +15,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.IntCachedFieldTrialParameter;
import org.chromium.chrome.browser.flags.MutableFlagWithSafeDefault;
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.ui.base.DeviceFormFactor;
+import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode;
/**
* A class to handle the state of flags for tab_management.
@@ -115,8 +116,7 @@ public class TabUiFeatureUtilities {
/** A class to handle the state of flags for tab_management. */
public class TabUiFeatureUtilities {
@@ -71,8 +72,7 @@ public class TabUiFeatureUtilities {
* @param context The activity context.
*/
public static boolean shouldUseListMode(Context context) {
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -221,11 +221,7 @@ BASE_FEATURE(kTabHoverCardImageSettings,
@@ -232,11 +232,7 @@ BASE_FEATURE(kTabHoverCardImageSettings,
// https://crbug.com/928954
BASE_FEATURE(kTabHoverCardImages,
"TabHoverCardImages",
@@ -42,7 +42,7 @@ diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -1589,6 +1589,7 @@ void SendTabToSelfFromPageAction(Browser* browser) {
@@ -1593,6 +1593,7 @@ void SendTabToSelfFromPageAction(Browser* browser) {
}
bool CanGenerateQrCode(const Browser* browser) {
@@ -4,31 +4,17 @@ Subject: WIN enable file system access blocklist
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
content/browser/file_system_access/features.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
content/browser/file_system_access/features.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/content/browser/file_system_access/features.cc b/content/browser/file_system_access/features.cc
--- a/content/browser/file_system_access/features.cc
+++ b/content/browser/file_system_access/features.cc
@@ -15,7 +15,7 @@ namespace content::features {
// some applications.
BASE_FEATURE(kFileSystemAccessDragAndDropCheckBlocklist,
"FileSystemAccessDragAndDropCheckBlocklist",
- base::FEATURE_DISABLED_BY_DEFAULT);
+ base::FEATURE_ENABLED_BY_DEFAULT);
@@ -33,4 +33,5 @@ BASE_FEATURE(kFileSystemAccessDirectoryIterationSymbolicLinkCheck,
"FileSystemAccessDirectoryIterationSymbolicLinkCheck",
base::FEATURE_DISABLED_BY_DEFAULT);
// TODO(crbug.com/1381621): Remove this flag eventually.
// When enabled, move() will result in a promise rejection when the specified
@@ -44,8 +44,8 @@ BASE_FEATURE(kFileSystemAccessRemove,
// When enabled, a user gesture is required to rename a file if the site does
// not have write access to the parent. See http://b/254157070 for more context.
BASE_FEATURE(kFileSystemAccessRenameWithoutParentAccessRequiresUserActivation,
- "FileSystemAccessRenameWithoutParentAccessRequiresUserActivation",
- base::FEATURE_ENABLED_BY_DEFAULT);
+ "FileSystemAccessRenameWithoutParentAccessRequiresUserActivation", // enabled by default
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
// TODO(crbug.com/1247850): Remove this flag eventually.
// When enabled, move operations within the same file system that do not change
+CROMITE_SET_FEATURE_ENABLED(kFileSystemAccessDragAndDropCheckBlocklist);
} // namespace content::features
--
2.25.1
+1 -1
View File
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -2080,7 +2080,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -2114,7 +2114,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
}
PluginData* LocalFrame::GetPluginData() const {
@@ -51,7 +51,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -449,6 +449,7 @@ if (is_win) {
@@ -445,6 +445,7 @@ if (is_win) {
"//components/policy:generated",
"//content/public/app",
"//crypto",
@@ -59,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
"//headless:headless_non_renderer",
"//headless:headless_shell_browser_lib",
"//net:net_resources",
@@ -1714,6 +1715,8 @@ if (is_android) {
@@ -1699,6 +1700,8 @@ if (is_android) {
"//chrome/common/profiler",
"//chrome/gpu",
"//chrome/renderer",
@@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat
#if BUILDFLAG(IS_WIN)
#include <malloc.h>
@@ -1165,6 +1168,13 @@ absl::optional<int> ChromeMainDelegate::BasicStartupComplete() {
@@ -1169,6 +1172,13 @@ absl::optional<int> ChromeMainDelegate::BasicStartupComplete() {
return chrome::RESULT_CODE_INVALID_SANDBOX_STATE;
#endif
@@ -98,7 +98,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -7122,6 +7122,10 @@ Keep your key file in a safe place. You will need it to create new versions of y
@@ -7195,6 +7195,10 @@ Keep your key file in a safe place. You will need it to create new versions of y
You are using an unsupported feature flag: <ph name="BAD_FLAG">$1<ex>SignedHTTPExchange</ex></ph>. Stability and security will suffer.
</message>
@@ -131,7 +131,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s
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
@@ -3563,6 +3563,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
@@ -3560,6 +3560,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kLacrosUseChromeosProtectedAv1,
#endif
switches::kDesktopModeViewportMetaEnabled,
+11 -11
View File
@@ -35,7 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/base/win/win_util.cc b/base/win/win_util.cc
--- a/base/win/win_util.cc
+++ b/base/win/win_util.cc
@@ -126,76 +126,19 @@ bool EnablePerMonitorV2() {
@@ -127,76 +127,19 @@ bool EnablePerMonitorV2() {
}
bool* GetDomainEnrollmentStateStorage() {
@@ -162,7 +162,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl
diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/browser/metrics/chrome_feature_list_creator.cc
--- a/chrome/browser/metrics/chrome_feature_list_creator.cc
+++ b/chrome/browser/metrics/chrome_feature_list_creator.cc
@@ -57,6 +57,8 @@
@@ -58,6 +58,8 @@
#include "content/public/common/content_switches.h"
#include "services/network/public/cpp/network_switches.h"
#include "ui/base/resource/resource_bundle.h"
@@ -171,7 +171,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h"
@@ -219,6 +221,16 @@ void ChromeFeatureListCreator::CreatePrefService() {
@@ -221,6 +223,16 @@ void ChromeFeatureListCreator::CreatePrefService() {
// ManagementService's cache.
if (local_state_pref_store->ReadPrefs() ==
JsonPrefStore::PREF_READ_ERROR_NONE) {
@@ -191,7 +191,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow
diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/browser/policy/chrome_browser_policy_connector.cc
--- a/chrome/browser/policy/chrome_browser_policy_connector.cc
+++ b/chrome/browser/policy/chrome_browser_policy_connector.cc
@@ -149,8 +149,6 @@ bool ChromeBrowserPolicyConnector::HasMachineLevelPolicies() {
@@ -154,8 +154,6 @@ bool ChromeBrowserPolicyConnector::HasMachineLevelPolicies() {
if (ProviderHasPolicies(machine_level_user_cloud_policy_manager()))
return true;
#endif // !BUILDFLAG(IS_CHROMEOS_ASH)
@@ -203,7 +203,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -2088,9 +2088,9 @@ bool AreFuturePoliciesEnabledByDefault() {
@@ -2099,9 +2099,9 @@ bool AreFuturePoliciesEnabledByDefault() {
if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
return true;
}
@@ -260,7 +260,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager_factory.cc b
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc
--- a/chrome/browser/signin/chrome_signin_client.cc
+++ b/chrome/browser/signin/chrome_signin_client.cc
@@ -214,7 +214,9 @@ void ChromeSigninClient::DoFinalInit() {
@@ -227,7 +227,9 @@ void ChromeSigninClient::DoFinalInit() {
bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) {
scoped_refptr<content_settings::CookieSettings> cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
@@ -271,7 +271,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign
}
PrefService* ChromeSigninClient::GetPrefs() {
@@ -328,6 +330,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() {
@@ -346,6 +348,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() {
}
void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) {
@@ -311,7 +311,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse
web_ui()->RegisterMessageCallback(
"listenPoliciesUpdates",
base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates,
@@ -386,8 +392,102 @@ void PolicyUIHandler::SendPolicies() {
@@ -406,8 +412,102 @@ void PolicyUIHandler::SendPolicies() {
"policies-updated",
base::Value(
policy_value_and_status_aggregator_->GetAggregatedPolicyNames()),
@@ -431,7 +431,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser
diff --git a/components/commerce/core/commerce_feature_list.cc b/components/commerce/core/commerce_feature_list.cc
--- a/components/commerce/core/commerce_feature_list.cc
+++ b/components/commerce/core/commerce_feature_list.cc
@@ -301,6 +301,13 @@ const char kParcelTrackingTestDataParamDelivered[] = "Delivered";
@@ -325,6 +325,13 @@ const char kParcelTrackingTestDataParamDelivered[] = "Delivered";
const char kParcelTrackingTestDataParamInProgress[] = "InProgress";
const char kParcelTrackingTestDataParamOutForDelivery[] = "OutForDelivery";
@@ -767,7 +767,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy
diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp
--- a/components/policy_strings.grdp
+++ b/components/policy_strings.grdp
@@ -588,8 +588,8 @@ Additional details:
@@ -624,8 +624,8 @@ Additional details:
<message name="IDS_POLICY_SOURCE_DEFAULT" desc="Indicates that a policy is set by default and can be overridden.">
Default
</message>
@@ -802,7 +802,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser
diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc
--- a/google_apis/gaia/gaia_auth_fetcher.cc
+++ b/google_apis/gaia/gaia_auth_fetcher.cc
@@ -482,6 +482,7 @@ void GaiaAuthFetcher::StartListAccounts() {
@@ -486,6 +486,7 @@ void GaiaAuthFetcher::StartListAccounts() {
}
}
})");
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/v8/BUILD.gn b/v8/BUILD.gn
--- a/v8/BUILD.gn
+++ b/v8/BUILD.gn
@@ -2382,7 +2382,7 @@ template("run_mksnapshot") {
@@ -2398,7 +2398,7 @@ template("run_mksnapshot") {
# Replace this with --warn-about-builtin-profile-data to see the full
# list of builtins with incompatible profiles.
@@ -86,7 +86,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2842,9 +2842,9 @@
@@ -2923,9 +2923,9 @@
"expiry_milestone": 125
},
{
@@ -117,7 +117,7 @@ new file mode 100644
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
--- a/gpu/config/gpu_driver_bug_list.json
+++ b/gpu/config/gpu_driver_bug_list.json
@@ -3212,6 +3212,22 @@
@@ -2689,6 +2689,22 @@
"no_downscaled_overlay_promotion"
]
},
@@ -179,7 +179,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
if (!gpu_preferences.enable_android_surface_control)
return kGpuFeatureStatusDisabled;
@@ -347,6 +350,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
@@ -355,6 +358,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] =
kGpuFeatureStatusBlocklisted;
}
@@ -194,8 +194,8 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
--- a/gpu/config/gpu_workaround_list.txt
+++ b/gpu/config/gpu_workaround_list.txt
@@ -13,6 +13,7 @@ count_all_in_varyings_packing
decode_encode_srgb_for_generatemipmap
@@ -11,6 +11,7 @@ clamp_texture_base_level_and_max_level
clear_pixel_unpack_buffer_before_copyteximage
disable_2d_canvas_auto_flush
disable_accelerated_av1_decode
+disable_aimagereader
@@ -205,7 +205,7 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
--- a/gpu/ipc/service/gpu_init.cc
+++ b/gpu/ipc/service/gpu_init.cc
@@ -668,6 +668,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
@@ -675,6 +675,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
}
#endif // BUILDFLAG(IS_WIN)
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -229,6 +229,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
@@ -228,6 +228,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
import org.chromium.content_public.browser.SelectionPopupController;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.common.ContentSwitches;
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.printing.PrintManagerDelegateImpl;
import org.chromium.printing.PrintingController;
import org.chromium.printing.PrintingControllerImpl;
@@ -988,6 +989,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1097,6 +1098,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
super.onStartWithNative();
ChromeActivitySessionTracker.getInstance().onStartWithNative();
ChromeCachedFlags.getInstance().cacheNativeFlags();
@@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
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
@@ -146,6 +146,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -144,6 +144,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&feed::kFeedShowSignInCommand,
&feed::kFeedSignedOutViewDemotion,
&feed::kFeedUserInteractionReliabilityReport,
@@ -51,7 +51,7 @@ 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
@@ -98,6 +98,7 @@ public abstract class ChromeFeatureList {
@@ -103,6 +103,7 @@ public abstract class ChromeFeatureList {
}
/* Alphabetical: */
@@ -59,7 +59,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE =
"AdaptiveButtonInTopToolbarTranslate";
@@ -517,6 +518,8 @@ public abstract class ChromeFeatureList {
@@ -522,6 +523,8 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAndroidAppIntegration =
new CachedFlag(ANDROID_APP_INTEGRATION, false);
public static final CachedFlag sAndroidHub = new CachedFlag(ANDROID_HUB, false);
@@ -67,7 +67,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
+ new CachedFlag(ALLOW_USER_CERTIFICATES, false);
public static final CachedFlag sAppMenuMobileSiteOption =
new CachedFlag(APP_MENU_MOBILE_SITE_OPTION, false);
public static final CachedFlag sBackGestureActivityTabProvider =
public static final CachedFlag sArchiveTabService = new CachedFlag(ARCHIVE_TAB_SERVICE, false);
@@ -662,6 +665,7 @@ public abstract class ChromeFeatureList {
public static final List<CachedFlag> sFlagsCachedFullBrowser =
@@ -111,24 +111,24 @@ new file mode 100644
diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
--- a/net/android/java/src/org/chromium/net/X509Util.java
+++ b/net/android/java/src/org/chromium/net/X509Util.java
@@ -544,6 +544,8 @@ public class X509Util {
@@ -525,6 +525,8 @@ public class X509Util {
return userRootBytes.toArray(new byte[0][]);
}
+ public static boolean AllowUserCertificates = false;
+
public static AndroidCertVerifyResult verifyServerCertificates(byte[][] certChain,
String authType,
String host)
@@ -630,6 +632,9 @@ public class X509Util {
public static AndroidCertVerifyResult verifyServerCertificates(
byte[][] certChain, String authType, String host)
throws KeyStoreException, NoSuchAlgorithmException {
@@ -613,6 +615,9 @@ public class X509Util {
isIssuedByKnownRoot = isKnownRoot(root);
}
+ if (AllowUserCertificates == false && isIssuedByKnownRoot == false)
+ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
+
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK,
isIssuedByKnownRoot, verifiedChain);
return new AndroidCertVerifyResult(
CertVerifyStatusAndroid.OK, isIssuedByKnownRoot, verifiedChain);
}
--
2.25.1
@@ -10,14 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
@@ -152,6 +152,8 @@ public class KeyboardShortcuts {
KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);
@@ -198,6 +198,8 @@ public class KeyboardShortcuts {
R.string.keyboard_shortcut_address_bar,
KeyEvent.KEYCODE_L,
KeyEvent.META_CTRL_ON);
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
shortcutGroups.add(chromeFeatureShortcutGroup);
KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup(
KeyboardShortcutGroup webpageShortcutGroup =
--
2.25.1
@@ -50,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
--- a/chrome/android/java/res/values/values.xml
+++ b/chrome/android/java/res/values/values.xml
@@ -27,6 +27,9 @@ found in the LICENSE file.
@@ -25,6 +25,9 @@ found in the LICENSE file.
<!-- Compositor Tab Title Text -->
<bool name="compositor_tab_title_fake_bold_text">true</bool>
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
@@ -78,6 +78,7 @@ public class PrivacySettings
@@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private static final String PREF_SAFE_BROWSING = "safe_browsing";
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
@@ -197,7 +197,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -185,6 +185,8 @@
@@ -191,6 +191,8 @@
#include "rlz/buildflags/buildflags.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
@@ -206,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
#include "chrome/browser/background/background_mode_manager.h"
#endif
@@ -1387,6 +1389,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
@@ -1451,6 +1453,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
component_updater::RegisterPrefs(registry);
domain_reliability::RegisterPrefs(registry);
embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
@@ -661,7 +661,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -297,6 +297,8 @@ static_library("ui") {
@@ -301,6 +301,8 @@ static_library("ui") {
"webui/metrics_internals/metrics_internals_ui.h",
"webui/net_export_ui.cc",
"webui/net_export_ui.h",
@@ -673,7 +673,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -58,6 +58,7 @@
@@ -56,6 +56,7 @@
#include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h"
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
#include "chrome/browser/ui/webui/policy/policy_ui.h"
@@ -681,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
#include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h"
#include "chrome/browser/ui/webui/signin_internals_ui.h"
@@ -494,6 +495,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -489,6 +490,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MetricsInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>;
@@ -1136,15 +1136,15 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
const char kChromeUIChromeURLsHost[] = "chrome-urls";
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
const char kChromeUIComponentsHost[] = "components";
@@ -457,6 +459,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUILockScreenNetworkHost,
kChromeUILockScreenStartReauthHost,
kChromeUIMobileSetupHost,
+ kChromeUIProxyConfigHost,
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
kChromeUINotificationTesterHost,
@@ -771,6 +774,7 @@ const char* const kChromeHostURLs[] = {
@@ -454,6 +456,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUILockScreenNetworkHost,
kChromeUILockScreenStartReauthHost,
kChromeUIMobileSetupHost,
+ kChromeUIProxyConfigHost,
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
kChromeUINotificationTesterHost,
@@ -758,6 +761,7 @@ const char* const kChromeHostURLs[] = {
#if !BUILDFLAG(IS_ANDROID)
#if !BUILDFLAG(IS_CHROMEOS)
kChromeUIAppLauncherPageHost,
@@ -1155,7 +1155,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -139,6 +139,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
@@ -137,6 +137,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
extern const char kChromeUINaClHost[];
extern const char kChromeUINetExportHost[];
extern const char kChromeUINetExportURL[];
+168 -162
View File
@@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../chrome/browser/app/ChromeActivity.java | 4 +
.../AppMenuPropertiesDelegateImpl.java | 26 ++-
.../ChromeContextMenuPopulator.java | 7 +-
.../CustomTabActivityLifecycleUmaTracker.java | 25 ---
.../CustomTabActivityLifecycleUmaTracker.java | 31 ----
.../CustomTabAppMenuPropertiesDelegate.java | 4 +
.../CustomTabIntentDataProvider.java | 5 +-
.../browser/download/DownloadUtils.java | 16 +-
@@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/tabmodel/ChromeTabCreator.java | 5 +-
.../tabmodel/TabModelSelectorImpl.java | 3 +
.../browser/tabmodel/TabPersistentStore.java | 9 +
.../browser/toolbar/ToolbarManager.java | 4 +-
.../browser/toolbar/ToolbarManager.java | 3 +-
.../webapps/WebappIntentDataProvider.java | 14 ++
.../browser/android/historical_tab_saver.cc | 24 ++-
.../chrome_autocomplete_provider_client.cc | 9 +
@@ -85,7 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../add-an-always-incognito-mode.inc | 3 +
.../add-an-always-incognito-mode.inc | 1 +
net/base/file_stream_context.cc | 2 +-
66 files changed, 774 insertions(+), 96 deletions(-)
66 files changed, 773 insertions(+), 102 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -98,7 +98,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
@@ -666,6 +666,7 @@ chrome_java_resources = [
@@ -649,6 +649,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences.xml",
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
@@ -117,7 +117,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
@@ -975,6 +976,7 @@ chrome_java_sources = [
@@ -968,6 +969,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java",
@@ -243,7 +243,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -62,6 +62,10 @@ import org.chromium.base.task.TaskTraits;
@@ -63,6 +63,10 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.UsedByReflection;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
@@ -254,7 +254,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics;
@@ -602,9 +606,14 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -632,9 +636,14 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModelOrchestrator.onNativeLibraryReady(getTabContentManager());
// For saving non-incognito tab closures for Recent Tabs.
@@ -272,30 +272,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Defer initialization of this helper so it triggers after TabModelFilter
// observers.
UndoRefocusHelper.initialize(
@@ -1973,8 +1982,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Bundle savedInstanceState = getSavedInstanceState();
@@ -2229,8 +2238,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// We determine the model as soon as possible so every systems get initialized coherently.
- boolean startIncognito = savedInstanceState != null
- && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false);
+ boolean startIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()
boolean startIncognito =
- savedInstanceState != null
- && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false);
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()
+ || (savedInstanceState != null
+ && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false));
+ && savedInstanceState.getBoolean(IS_INCOGNITO_SELECTED, false));
mNextTabPolicySupplier = new ChromeNextTabPolicySupplier(mLayoutStateProviderSupplier);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -94,6 +94,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
import org.chromium.chrome.browser.customtabs.features.minimizedcustomtab.MinimizedFeatureUtils;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
import org.chromium.chrome.browser.device.DeviceClassManager;
@@ -1885,6 +1886,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2005,6 +2006,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -313,10 +313,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.banners.AppMenuVerbiage;
import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
@@ -102,6 +103,10 @@ import java.lang.annotation.RetentionPolicy;
import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
@@ -100,6 +101,10 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
@@ -327,7 +327,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
/**
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
* items based on activity state.
@@ -569,6 +574,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -597,6 +602,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@@ -341,7 +341,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
// We have to iterate all menu items since same menu item ID may be associated with more
// than one menu items.
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
@@ -626,7 +638,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -659,7 +671,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
@@ -358,12 +358,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
}
if (item.getItemId() == R.id.menu_select_tabs) {
item.setVisible(isMenuSelectTabsVisible);
@@ -840,7 +860,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
// is not persisted when adding to the homescreen.
// * If creating shortcuts it not supported by the current home screen.
return WebappsUtils.isAddToHomeIntentSupported() && !isChromeScheme && !isFileScheme
- && !isContentScheme && !isIncognito && !url.isEmpty();
+ && !isContentScheme && !url.isEmpty()
@@ -866,7 +886,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
&& !isFileScheme
&& !isContentScheme
&& !isIncognito
- && !url.isEmpty();
+ && !url.isEmpty()
+ && (!isIncognito ||
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
}
@@ -380,7 +380,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabCoordinator;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType;
@@ -233,6 +234,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -258,6 +259,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
public List<Pair<Integer, ModelList>> buildContextMenu() {
mShowEphemeralTabNewLabel = null;
@@ -390,7 +390,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
List<Pair<Integer, ModelList>> groupedItems = new ArrayList<>();
if (mParams.isAnchor()) {
@@ -242,6 +246,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -268,6 +272,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
if (mMode == ContextMenuMode.NORMAL) {
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP));
linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB));
@@ -398,7 +398,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
if (!mItemDelegate.isIncognito() && mItemDelegate.isIncognitoSupported()) {
linkGroup.add(createListItem(Item.OPEN_IN_INCOGNITO_TAB));
}
@@ -266,7 +271,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
@@ -292,7 +297,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
}
}
if (FirstRunStatus.getFirstRunFlowComplete()) {
@@ -410,7 +410,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java
@@ -68,31 +68,6 @@ public class CustomTabActivityLifecycleUmaTracker
@@ -70,37 +70,6 @@ public class CustomTabActivityLifecycleUmaTracker
private boolean mIsInitialResume = true;
private void recordIncognitoLaunchReason() {
@@ -419,8 +419,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
-
- @IntentHandler.IncognitoCCTCallerId
- int incognitoCCTCallerId = incognitoProvider.getFeatureIdForMetricsCollection();
- RecordHistogram.recordEnumeratedHistogram("CustomTabs.IncognitoCCTCallerId",
- incognitoCCTCallerId, IntentHandler.IncognitoCCTCallerId.NUM_ENTRIES);
- RecordHistogram.recordEnumeratedHistogram(
- "CustomTabs.IncognitoCCTCallerId",
- incognitoCCTCallerId,
- IntentHandler.IncognitoCCTCallerId.NUM_ENTRIES);
-
- // Record which 1P app launched Incognito CCT.
- if (incognitoCCTCallerId == IntentHandler.IncognitoCCTCallerId.GOOGLE_APPS) {
@@ -428,15 +430,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
- @IntentHandler.ExternalAppId
- int externalId = IntentHandler.mapPackageToExternalAppId(sendersPackageName);
- if (externalId != IntentHandler.ExternalAppId.OTHER) {
- RecordHistogram.recordEnumeratedHistogram("CustomTabs.ClientAppId.Incognito",
- externalId, IntentHandler.ExternalAppId.NUM_ENTRIES);
- RecordHistogram.recordEnumeratedHistogram(
- "CustomTabs.ClientAppId.Incognito",
- externalId,
- IntentHandler.ExternalAppId.NUM_ENTRIES);
- } else {
- // Using package name didn't give any meaningful insight on who launched the
- // Incognito CCT, falling back to check if they provided EXTRA_APPLICATION_ID.
- externalId =
- IntentHandler.determineExternalIntentSource(incognitoProvider.getIntent());
- RecordHistogram.recordEnumeratedHistogram("CustomTabs.ClientAppId.Incognito",
- externalId, IntentHandler.ExternalAppId.NUM_ENTRIES);
- RecordHistogram.recordEnumeratedHistogram(
- "CustomTabs.ClientAppId.Incognito",
- externalId,
- IntentHandler.ExternalAppId.NUM_ENTRIES);
- }
- }
}
@@ -453,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder;
@@ -179,6 +180,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -195,6 +196,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
downloadItemVisible = false;
openInChromeItemVisible = false;
}
@@ -461,12 +467,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
+ downloadItemVisible = true;
+ }
boolean isChromeScheme = url.getScheme().equals(UrlConstants.CHROME_SCHEME)
|| url.getScheme().equals(UrlConstants.CHROME_NATIVE_SCHEME);
boolean isChromeScheme =
url.getScheme().equals(UrlConstants.CHROME_SCHEME)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
@@ -67,6 +67,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
@@ -83,6 +83,9 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.version_info.VersionInfo;
import org.chromium.device.mojom.ScreenOrientationLockType;
@@ -476,7 +482,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
@@ -1288,7 +1291,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@@ -1294,7 +1297,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
@Override
public boolean isIncognito() {
@@ -488,15 +494,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
@@ -36,6 +36,7 @@ import org.chromium.base.Log;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
@@ -34,6 +34,7 @@ import org.chromium.base.FileUtils;
import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.ChromeTabbedActivity;
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.download.home.DownloadActivity;
@@ -77,6 +78,10 @@ import org.chromium.url.GURL;
@@ -74,6 +75,10 @@ import org.chromium.url.GURL;
import java.io.File;
@@ -504,10 +510,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
+import org.chromium.components.user_prefs.UserPrefs;
+import org.chromium.chrome.browser.preferences.Pref;
+
/**
* A class containing some utility static methods.
*/
@@ -345,7 +350,16 @@ public class DownloadUtils {
/** A class containing some utility static methods. */
public class DownloadUtils {
private static final String TAG = "download";
@@ -311,7 +316,16 @@ public class DownloadUtils {
// Offline pages isn't supported in Incognito. This should be checked before calling
// OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found
// for incognito profile.
@@ -528,7 +534,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
@@ -231,7 +231,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -243,7 +243,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.generateFooterItems();
// Listen to changes in sign in state.
@@ -539,7 +545,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
// Create PrefChangeRegistrar to receive notifications on preference changes.
mPrefChangeRegistrar = new PrefChangeRegistrar();
@@ -266,7 +268,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -278,7 +280,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.onDestroyed();
mLargeIconBridge.destroy();
mLargeIconBridge = null;
@@ -570,10 +576,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+import org.chromium.components.user_prefs.UserPrefs;
+import org.chromium.chrome.browser.preferences.Pref;
+
/**
* Combines and manages the different UI components of browsing history.
*/
@@ -158,7 +165,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
/** Combines and manages the different UI components of browsing history. */
public class HistoryManager
implements OnMenuItemClickListener,
@@ -164,7 +171,7 @@ public class HistoryManager
recordUserAction("Show");
// If incognito placeholder is shown, we don't need to create History UI elements.
@@ -582,7 +588,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
mSelectableListLayout = null;
mRootView = getIncognitoHistoryPlaceholderView();
return;
@@ -626,7 +633,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
@@ -672,7 +679,7 @@ public class HistoryManager
private void swapContentView() {
boolean toHistoryClusters;
@@ -591,7 +597,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
return;
} else if (isHistoryClustersUIShowing()) {
toHistoryClusters = false;
@@ -689,11 +696,24 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
@@ -736,9 +743,22 @@ public class HistoryManager
&& mContentView == mHistoryClustersCoordinator.getActivityContentView();
}
@@ -608,16 +614,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+ return mIsIncognito;
+ }
+
/**
* Called when the activity/native page is destroyed.
*/
/** Called when the activity/native page is destroyed. */
public void onDestroyed() {
- if (mIsIncognito) {
+ if (shouldShowIncognitoPlaceholder()) {
// If Incognito placeholder is shown no need to call any destroy method.
return;
}
@@ -713,7 +733,7 @@ public class HistoryManager implements OnMenuItemClickListener, SelectionObserve
@@ -758,7 +778,7 @@ public class HistoryManager
* @return True if manager handles this event, false if it decides to ignore.
*/
public boolean onBackPressed() {
@@ -647,11 +651,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+import org.chromium.components.user_prefs.UserPrefs;
+import org.chromium.chrome.browser.preferences.Pref;
+
/**
* Native page for managing browsing history.
*/
@@ -39,6 +46,14 @@ public class HistoryPage extends BasicNativePage {
Profile profile, Supplier<Tab> tabSupplier, String url) {
/** Native page for managing browsing history. */
public class HistoryPage extends BasicNativePage {
private HistoryManager mHistoryManager;
@@ -42,6 +49,14 @@ public class HistoryPage extends BasicNativePage {
String url) {
super(host);
+ if (profile.isOffTheRecord() &&
@@ -676,7 +680,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
@@ -238,7 +239,8 @@ public class NativePageFactory {
@@ -276,7 +277,8 @@ public class NativePageFactory {
String url, NativePage candidatePage, Tab tab, boolean isIncognito) {
NativePage page;
@@ -705,17 +709,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -99,7 +108,8 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
*/
public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile,
Context context, Runnable showHistoryManager) {
@@ -101,7 +110,8 @@ public class RecentTabsManager
Profile profile,
Context context,
Runnable showHistoryManager) {
- mProfile = profile;
+ mProfile = profile.getOriginalProfile();
+ profile = mProfile;
mActiveTab = tab;
mTabModelSelector = tabModelSelector;
mShowHistoryManager = showHistoryManager;
@@ -255,6 +265,22 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
@@ -258,6 +268,22 @@ public class RecentTabsManager
*/
public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
if (mIsDestroyed) return;
@@ -906,7 +910,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -73,6 +73,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
@@ -74,6 +74,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
import org.chromium.chrome.browser.sync.SyncServiceFactory;
import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
@@ -914,7 +918,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
@@ -348,6 +349,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -359,6 +360,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((PrivacySandboxSettingsBaseFragment) fragment)
.setSnackbarManager(getSnackbarManager());
}
@@ -933,10 +937,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
/**
* A tab model observer for managing bulk closures.
*/
@@ -40,7 +42,8 @@ public class HistoricalTabModelObserver implements TabModelObserver {
/** A tab model observer for managing bulk closures. */
public class HistoricalTabModelObserver implements TabModelObserver {
private final TabModel mTabModel;
@@ -38,7 +40,8 @@ public class HistoricalTabModelObserver implements TabModelObserver {
if (tabs.isEmpty()) return;
if (tabs.size() == 1) {
@@ -946,7 +950,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
return;
}
@@ -71,7 +74,6 @@ public class HistoricalTabModelObserver implements TabModelObserver {
@@ -69,7 +72,6 @@ public class HistoricalTabModelObserver implements TabModelObserver {
entries.add(historicalGroup);
idToGroup.put(groupId, historicalGroup);
}
@@ -957,7 +961,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaver.java
@@ -16,7 +16,7 @@ public interface HistoricalTabSaver {
@@ -14,7 +14,7 @@ public interface HistoricalTabSaver {
* Creates a Tab entry in TabRestoreService.
* @param tab The {@link Tab} to create an entry for.
*/
@@ -975,10 +979,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
/**
* Creates historical entries in TabRestoreService.
*/
@@ -59,10 +61,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
/** Creates historical entries in TabRestoreService. */
@JNINamespace("historical_tab_saver")
public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -64,10 +66,10 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
// HistoricalTabSaver implementation.
@Override
@@ -991,7 +995,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
}
@Override
@@ -114,7 +116,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -119,7 +121,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
// If there is only a single valid tab remaining save it individually.
if (validEntries.size() == 1 && validEntries.get(0).isSingleTab()) {
@@ -1000,22 +1004,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
return;
}
@@ -140,11 +142,12 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
CollectionUtil.integerCollectionToIntArray(savedStateVersions));
@@ -155,14 +157,15 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
CollectionUtil.integerCollectionToIntArray(savedStateVersions));
}
- private void createHistoricalTabInternal(Tab tab) {
+ private void createHistoricalTabInternal(Tab tab, boolean is_always_incognito) {
RecordHistogram.recordEnumeratedHistogram("Tabs.RecentlyClosed.HistoricalSaverCloseType",
HistoricalSaverCloseType.TAB, HistoricalSaverCloseType.COUNT);
HistoricalTabSaverImplJni.get().createHistoricalTab(
- tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version());
+ tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version(),
RecordHistogram.recordEnumeratedHistogram(
"Tabs.RecentlyClosed.HistoricalSaverCloseType",
HistoricalSaverCloseType.TAB,
HistoricalSaverCloseType.COUNT);
HistoricalTabSaverImplJni.get()
.createHistoricalTab(
- tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version());
+ tab, getWebContentsState(tab).buffer(), getWebContentsState(tab).version(),
+ is_always_incognito);
}
/**
@@ -152,7 +155,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -170,7 +173,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
* internal Chrome scheme, about:blank, or a native page and it cannot be incognito.
*/
private boolean shouldSave(Tab tab) {
@@ -1024,20 +1031,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
// {@link GURL#getScheme()} is not available in unit tests.
if (mIgnoreUrlSchemesForTesting) return true;
@@ -224,7 +227,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@@ -243,7 +246,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver {
@NativeMethods
interface Natives {
- void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion);
+ void createHistoricalTab(Tab tab, ByteBuffer state, int savedStateVersion, boolean is_always_incognito);
void createHistoricalGroup(TabModel model, String title, Tab[] tabs,
ByteBuffer[] byteBuffers, int[] savedStationsVersions);
void createHistoricalBulkClosure(TabModel model, int[] groupIds, String[] titles,
void createHistoricalGroup(
TabModel model,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -125,6 +125,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto
import org.chromium.content_public.browser.WebContents;
@@ -129,6 +129,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController;
import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFactory;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
+import org.chromium.base.ContextUtils;
@@ -1045,19 +1052,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -802,7 +804,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mAppMenuCoordinator.getAppMenuHandler(), mActivityTabProvider,
mToolbarManager.getMenuButtonView(), () -> {
mTabCreatorManagerSupplier.get()
- .getTabCreator(/*incognito=*/false)
+ .getTabCreator(AlwaysIncognitoLinkInterceptor.isAlwaysIncognito())
.launchUrl(NewTabPageUtils.encodeNtpUrl(
NewTabPageLaunchOrigin.WEB_FEED),
TabLaunchType.FROM_CHROME_UI);
@@ -942,7 +944,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
- .getTabCreator(/* incognito= */ false)
+ .getTabCreator(AlwaysIncognitoLinkInterceptor.isAlwaysIncognito())
.launchUrl(
NewTabPageUtils.encodeNtpUrl(
NewTabPageLaunchOrigin.WEB_FEED),
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -53,6 +53,10 @@ import org.chromium.ui.base.PageTransition;
@@ -50,6 +50,10 @@ import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@@ -1065,10 +1072,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+import org.chromium.chrome.browser.tab.TabObserver;
+
/**
* This class creates various kinds of new tabs and adds them to the right {@link TabModel}.
*/
@@ -512,7 +516,6 @@ public class ChromeTabCreator extends TabCreator {
/** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */
public class ChromeTabCreator extends TabCreator {
/** Interface to handle showing overview instead of NTP if needed. */
@@ -499,7 +503,6 @@ public class ChromeTabCreator extends TabCreator {
// TODO(crbug.com/1081924): Clean up the launches from SearchActivity/Chrome.
public Tab launchUrlFromExternalApp(
LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) {
@@ -1082,14 +1089,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
@@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import org.chromium.base.supplier.Supplier;
import org.chromium.base.supplier.OneshotSupplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.chrome.browser.ntp.RecentlyClosedBridge;
@@ -109,6 +110,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
public void onNativeLibraryReady(TabContentManager tabContentProvider) {
assert mTabContentManager == null : "onNativeLibraryReady called twice!";
@@ -107,6 +108,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod
ProfileProvider profileProvider = mProfileProviderSupplier.get();
assert profileProvider != null;
+ AlwaysIncognitoLinkInterceptor.migrateSettingToNative();
+
@@ -1108,7 +1115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -651,6 +653,13 @@ public class TabPersistentStore {
@@ -673,6 +675,13 @@ public class TabPersistentStore {
}
}
}
@@ -1133,13 +1140,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
@@ -561,7 +562,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
return ret;
}
},
- SearchEngineLogoUtils.getInstance());
+ SearchEngineLogoUtils.getInstance(),
+ AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
@@ -590,7 +591,7 @@ public class ToolbarManager
TraceEvent.end("isOfflinePage");
return ret;
}
- });
+ }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
mControlContainer = controlContainer;
assert mControlContainer != null;
@@ -1153,19 +1159,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
+import org.chromium.base.ContextUtils;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
/**
* Stores info about a web app.
*/
@@ -47,6 +50,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
/** Stores info about a web app. */
public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider {
private final Drawable mCloseButtonIcon;
@@ -45,6 +48,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
private final ColorProviderImpl mColorProvider;
private final ColorProviderImpl mDarkColorProvider;
+ private boolean mIsIncognito = false;
+
/**
* Returns the toolbar color to use if a custom color is not specified by the webapp.
*/
@@ -78,6 +83,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
/** Returns the toolbar color to use if a custom color is not specified by the webapp. */
public static int getDefaultToolbarColor() {
return Color.WHITE;
@@ -80,6 +85,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
mWebappExtras = webappExtras;
mWebApkExtras = webApkExtras;
mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP;
@@ -1176,7 +1182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI
}
@Override
@@ -172,6 +181,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
@@ -175,6 +184,11 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider
return mWebApkExtras;
}
@@ -1368,7 +1374,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
#else
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_finder.h"
@@ -482,6 +485,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
@@ -445,6 +448,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) {
history::HistoryService* HistoryTabHelper::GetHistoryService() {
Profile* profile =
Profile::FromBrowserContext(web_contents()->GetBrowserContext());
@@ -1382,7 +1388,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo
if (profile->IsOffTheRecord())
return nullptr;
@@ -489,6 +499,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
@@ -452,6 +462,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() {
profile, ServiceAccessType::IMPLICIT_ACCESS);
}
@@ -1423,7 +1429,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor
private:
explicit HistoryTabHelper(content::WebContents* web_contents);
friend class content::WebContentsUserData<HistoryTabHelper>;
@@ -85,9 +92,6 @@ class HistoryTabHelper
@@ -83,9 +90,6 @@ class HistoryTabHelper
void OnLanguageDetermined(
const translate::LanguageDetectionDetails& details) override;
@@ -1446,7 +1452,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom
using base::android::ConvertJavaStringToUTF8;
using base::android::ConvertUTF16ToJavaString;
@@ -786,9 +789,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
@@ -780,9 +783,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone(
}
if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) {
@@ -1731,7 +1737,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -249,6 +249,7 @@
@@ -256,6 +256,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
@@ -1739,7 +1745,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
@@ -1789,6 +1790,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1857,6 +1858,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1761,8 +1767,8 @@ diff --git a/chrome/browser/profiles/profile_selections.cc b/chrome/browser/prof
+#include "components/prefs/pref_service.h"
+#include "chrome/common/pref_names.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_types_ash.h"
#include "components/profile_metrics/browser_profile_type.h"
@@ -110,6 +113,13 @@ Profile* ProfileSelections::ApplyProfileSelection(Profile* profile) const {
return nullptr;
case ProfileSelection::kOriginalOnly:
@@ -1823,10 +1829,10 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
+import org.chromium.base.ContextUtils;
+
/**
* An interface for pages that will be using Android views instead of html/rendered Web content.
*/
@@ -120,12 +122,12 @@ public interface NativePage {
/** An interface for pages that will be using Android views instead of html/rendered Web content. */
public interface NativePage {
/**
@@ -118,12 +120,12 @@ public interface NativePage {
*/
@Deprecated // Use GURL-variant instead.
static boolean isNativePageUrl(String url, boolean isIncognito) {
@@ -1838,10 +1844,10 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
return url != null
- && nativePageType(url.getHost(), url.getScheme(), null, isIncognito)
+ && nativePageType(url.getHost(), url.getScheme(), null, isIncognito, false)
!= NativePageType.NONE;
!= NativePageType.NONE;
}
@@ -137,11 +139,12 @@ public interface NativePage {
@@ -135,11 +137,12 @@ public interface NativePage {
*/
// TODO(crbug/783819) - Convert to using GURL.
static @NativePageType int nativePageType(
@@ -1856,7 +1862,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
}
/**
@@ -150,7 +153,7 @@ public interface NativePage {
@@ -148,7 +151,7 @@ public interface NativePage {
* @return Type of the native page defined in {@link NativePageType}.
*/
private static @NativePageType int nativePageType(
@@ -1865,7 +1871,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme)
&& !UrlConstants.CHROME_SCHEME.equals(scheme)) {
return NativePageType.NONE;
@@ -168,7 +171,8 @@ public interface NativePage {
@@ -166,7 +169,8 @@ public interface NativePage {
return NativePageType.DOWNLOADS;
} else if (UrlConstants.HISTORY_HOST.equals(host)) {
return NativePageType.HISTORY;
@@ -1878,7 +1884,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
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
@@ -1322,6 +1322,37 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1225,6 +1225,37 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
Clears history from all synced devices
</message>
@@ -1919,7 +1925,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
@@ -178,6 +178,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
@@ -165,6 +165,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
protected String mFormattedFullUrl;
protected String mUrlForDisplay;
private boolean mOmniboxUpdatedConnectionSecurityIndicatorsEnabled;
@@ -1927,12 +1933,12 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
// notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same
// document navigation. The first call is usually necessary, which updates the UrlBar to reflect
@@ -200,7 +201,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
public LocationBarModel(Context context, NewTabPageDelegate newTabPageDelegate,
@NonNull UrlFormatter urlFormatter, @NonNull ProfileProvider profileProvider,
@NonNull OfflineStatus offlineStatus,
- @NonNull SearchEngineLogoUtils searchEngineLogoUtils) {
+ @NonNull SearchEngineLogoUtils searchEngineLogoUtils,
@@ -188,7 +189,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro
Context context,
NewTabPageDelegate newTabPageDelegate,
@NonNull UrlFormatter urlFormatter,
- @NonNull OfflineStatus offlineStatus) {
+ @NonNull OfflineStatus offlineStatus,
+ boolean isAlwaysIncognito) {
+ mIsAlwaysIncognito = isAlwaysIncognito; // (uazo) to do, check
mContext = context;
@@ -1984,7 +1990,7 @@ new file mode 100644
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
@@ -3917,6 +3917,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -3938,6 +3938,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2000,7 +2006,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
@@ -87,10 +87,12 @@ void PrefProvider::RegisterProfilePrefs(
@@ -91,10 +91,12 @@ void PrefProvider::RegisterProfilePrefs(
PrefProvider::PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -2013,7 +2019,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
store_last_modified_(store_last_modified),
clock_(base::DefaultClock::GetInstance()) {
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
@@ -113,10 +115,14 @@ PrefProvider::PrefProvider(PrefService* prefs,
@@ -117,10 +119,14 @@ PrefProvider::PrefProvider(PrefService* prefs,
WebsiteSettingsRegistry* website_settings =
WebsiteSettingsRegistry::GetInstance();
for (const WebsiteSettingsInfo* info : *website_settings) {
@@ -2040,7 +2046,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
bool store_last_modified,
bool restore_session);
@@ -110,6 +111,7 @@ class PrefProvider : public UserModifiableProvider {
@@ -116,6 +117,7 @@ class PrefProvider : public UserModifiableProvider {
raw_ptr<PrefService> prefs_;
const bool off_the_record_;
@@ -2133,7 +2139,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -781,7 +781,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
@@ -767,7 +767,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
// keyword input to a keyword suggest server, if any.)
const TemplateURL* default_url = providers_.GetDefaultProviderURL();
const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
@@ -278,13 +278,13 @@ new file mode 100644
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -246,7 +246,7 @@ void ContentSettingsRegistry::Init() {
@@ -250,7 +250,7 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
- Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
+ Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK,
WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_schemes=*/{},
WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{},
/*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
@@ -298,7 +298,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
#include "third_party/blink/public/platform/web_media_player.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/public/web/web_local_frame_client.h"
@@ -310,6 +311,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
@@ -332,6 +333,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
}
bool AutoplayPolicy::IsGestureNeededForPlayback() const {
@@ -307,7 +307,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
if (!IsLockedPendingUserGesture())
return false;
@@ -408,6 +411,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
@@ -430,6 +433,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
}
}
@@ -328,7 +328,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
@@ -133,6 +133,10 @@ class CORE_EXPORT AutoplayPolicy final
@@ -137,6 +137,10 @@ class CORE_EXPORT AutoplayPolicy final
// should use, if checking to see if an action is allowed.
bool IsLockedPendingUserGesture() const;
@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../DownloadLocationDialogCoordinator.java | 8 +-
.../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
chrome/browser/importer/profile_writer.cc | 12 +
chrome/browser/importer/profile_writer.cc | 10 +
chrome/browser/importer/profile_writer.h | 6 +
.../preferences/ChromePreferenceKeys.java | 3 +
.../strings/android_chrome_strings.grd | 18 ++
@@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
ui/shell_dialogs/select_file_dialog_linux.cc | 4 +
ui/shell_dialogs/select_file_dialog_linux.h | 2 +
ui/shell_dialogs/select_file_dialog_win.cc | 5 +
43 files changed, 920 insertions(+), 29 deletions(-)
43 files changed, 918 insertions(+), 29 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc
@@ -137,12 +137,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
private final Supplier<ShareDelegate> mShareDelegateSupplier;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
@@ -76,7 +77,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -77,7 +78,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private NativePageFactory mNativePageFactory;
- public TabbedModeTabDelegateFactory(Activity activity,
+ public TabbedModeTabDelegateFactory(ChromeActivity activity,
public TabbedModeTabDelegateFactory(
- Activity activity,
+ ChromeActivity activity,
BrowserControlsVisibilityDelegate appBrowserControlsVisibilityDelegate,
Supplier<ShareDelegate> shareDelegateSupplier,
Supplier<EphemeralTabCoordinator> ephemeralTabCoordinatorSupplier,
@@ -171,9 +171,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -54,8 +62,23 @@ public class BookmarkActivity extends SnackbarActivity {
BackPressHelper.create(this, getOnBackPressedDispatcher(),
mBookmarkManagerCoordinator::onBackPressed, SecondaryActivity.BOOKMARK);
@@ -66,8 +74,23 @@ public class BookmarkActivity extends SnackbarActivity {
mBookmarkManagerCoordinator::onBackPressed,
SecondaryActivity.BOOKMARK);
}
+
+ final boolean listenToActivityState = true;
@@ -195,15 +195,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
@Override
protected void onDestroy() {
super.onDestroy();
@@ -65,6 +88,7 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -77,6 +100,7 @@ public class BookmarkActivity extends SnackbarActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
+ mWindowAndroid.getIntentRequestTracker().onActivityResult(requestCode, resultCode, data);
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(
data.getStringExtra(INTENT_VISIT_BOOKMARK_ID));
@@ -72,6 +96,14 @@ public class BookmarkActivity extends SnackbarActivity {
BookmarkId bookmarkId =
BookmarkId.getBookmarkIdFromString(
@@ -85,6 +109,14 @@ public class BookmarkActivity extends SnackbarActivity {
}
}
@@ -242,7 +242,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import android.text.TextUtils;
import android.util.Pair;
@@ -38,6 +51,33 @@ import org.chromium.url.GURL;
@@ -36,6 +49,33 @@ import org.chromium.url.GURL;
import java.util.ArrayList;
import java.util.List;
@@ -276,7 +276,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Provides the communication channel for Android to fetch and manipulate the bookmark model stored
* in native.
@@ -451,6 +491,209 @@ class BookmarkBridge {
@@ -435,6 +475,209 @@ class BookmarkBridge {
.getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType());
}
@@ -486,7 +486,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Synchronously gets a list of bookmarks that match the specified search query.
*
@@ -979,6 +1222,39 @@ class BookmarkBridge {
@@ -950,6 +1193,39 @@ class BookmarkBridge {
depthList.add(depth);
}
@@ -526,7 +526,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
List<Pair<Integer, Integer>> pairList = new ArrayList<>();
for (int i = 0; i < left.length; i++) {
@@ -1024,6 +1300,10 @@ class BookmarkBridge {
@@ -994,6 +1270,10 @@ class BookmarkBridge {
void getChildIds(
long nativeBookmarkBridge, long id, int type, List<BookmarkId> bookmarksList);
@@ -560,7 +560,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
@@ -49,6 +49,8 @@ import org.chromium.components.image_fetcher.ImageFetcher;
@@ -47,6 +47,8 @@ import org.chromium.components.image_fetcher.ImageFetcher;
import org.chromium.components.image_fetcher.ImageFetcherConfig;
import org.chromium.components.image_fetcher.ImageFetcherFactory;
import org.chromium.ui.KeyboardVisibilityDelegate;
@@ -569,7 +569,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
@@ -326,6 +328,13 @@ public class BookmarkManagerCoordinator
@@ -320,6 +322,13 @@ public class BookmarkManagerCoordinator
// Public API implementation.
@@ -586,7 +586,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
@@ -55,6 +55,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
@@ -53,6 +53,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver;
import org.chromium.components.commerce.core.CommerceSubscription;
import org.chromium.components.commerce.core.ShoppingService;
@@ -605,7 +605,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** Keeps track of whether drag is enabled / active for bookmark lists. */
private class BookmarkDragStateDelegate implements DragStateDelegate {
private BookmarkDelegate mBookmarkDelegate;
@@ -566,6 +571,14 @@ class BookmarkManagerMediator
@@ -551,6 +556,14 @@ class BookmarkManagerMediator
mNativePage = nativePage;
}
@@ -620,7 +620,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** See BookmarkManager(Coordinator)#updateForUrl */
void updateForUrl(String url) {
// Bookmark model is null if the manager has been destroyed.
@@ -742,6 +755,16 @@ class BookmarkManagerMediator
@@ -727,6 +740,16 @@ class BookmarkManagerMediator
}
}
@@ -788,7 +788,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
@@ -53,7 +54,7 @@ import org.chromium.ui.util.ColorUtils;
@@ -52,7 +53,7 @@ import org.chromium.ui.util.ColorUtils;
* Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
*/
public class NativePageFactory {
@@ -798,15 +798,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BrowserControlsManager mBrowserControlsManager;
private final Supplier<Tab> mCurrentTabSupplier;
@@ -70,7 +71,7 @@ public class NativePageFactory {
private NativePageBuilder mNativePageBuilder;
- public NativePageFactory(@NonNull Activity activity,
+ public NativePageFactory(@NonNull ChromeActivity activity,
public NativePageFactory(
- @NonNull Activity activity,
+ @NonNull ChromeActivity activity,
@NonNull BottomSheetController sheetController,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull Supplier<Tab> currentTabSupplier,
@@ -118,7 +119,7 @@ public class NativePageFactory {
@@ -130,7 +131,7 @@ public class NativePageFactory {
@VisibleForTesting
static class NativePageBuilder {
@@ -815,18 +815,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController;
private final Supplier<NewTabPageUma> mUma;
private final BrowserControlsManager mBrowserControlsManager;
@@ -133,7 +134,7 @@ public class NativePageFactory {
private final HomeSurfaceTracker mHomeSurfaceTracker;
@@ -146,7 +147,7 @@ public class NativePageFactory {
private final ObservableSupplier<TabContentManager> mTabContentManagerSupplier;
- public NativePageBuilder(Activity activity, Supplier<NewTabPageUma> uma,
+ public NativePageBuilder(ChromeActivity activity, Supplier<NewTabPageUma> uma,
public NativePageBuilder(
- Activity activity,
+ ChromeActivity activity,
Supplier<NewTabPageUma> uma,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager, Supplier<Tab> currentTabSupplier,
Supplier<SnackbarManager> snackbarManagerSupplier,
@@ -175,7 +176,7 @@ public class NativePageFactory {
protected NativePage buildBookmarksPage(Tab tab) {
return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(),
BrowserControlsManager browserControlsManager,
@@ -208,7 +209,7 @@ public class NativePageFactory {
mActivity.getComponentName(),
mSnackbarManagerSupplier.get(),
mTabModelSelector.isIncognitoSelected(),
- new TabShim(tab, mBrowserControlsManager, mTabModelSelector));
+ new TabShim(tab, mBrowserControlsManager, mTabModelSelector), mActivity);
@@ -836,7 +836,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -208,6 +208,8 @@ static_library("browser") {
@@ -199,6 +199,8 @@ static_library("browser") {
"bluetooth/chrome_bluetooth_delegate_impl_client.h",
"bookmarks/bookmark_model_factory.cc",
"bookmarks/bookmark_model_factory.h",
@@ -845,7 +845,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"bookmarks/chrome_bookmark_client.cc",
"bookmarks/chrome_bookmark_client.h",
"bookmarks/managed_bookmark_service_factory.cc",
@@ -1974,6 +1976,13 @@ static_library("browser") {
@@ -1939,6 +1941,13 @@ static_library("browser") {
]
}
@@ -859,7 +859,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers",
@@ -3691,8 +3700,6 @@ static_library("browser") {
@@ -3664,8 +3673,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@@ -871,7 +871,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
@@ -58,6 +58,25 @@
@@ -56,6 +56,25 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
@@ -897,7 +897,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
using base::android::AttachCurrentThread;
using base::android::ConvertUTF16ToJavaString;
using base::android::ConvertUTF8ToJavaString;
@@ -75,8 +94,92 @@ using bookmarks::android::JavaBookmarkIdGetType;
@@ -73,12 +92,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
using content::BrowserThread;
using power_bookmarks::PowerBookmarkMeta;
@@ -952,7 +952,11 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
+} // internal
+
namespace {
// The key used to connect the instance of the bookmark bridge to the bookmark
// model.
const char kBookmarkBridgeUserDataKey[] = "bookmark_bridge";
// Compares titles of different instance of BookmarkNode.
+class FileBookmarksExportObserver: public BookmarksExportObserver {
+ public:
+ FileBookmarksExportObserver(
@@ -990,7 +994,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
class BookmarkTitleComparer {
public:
explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
@@ -198,6 +301,10 @@ BookmarkBridge::~BookmarkBridge() {
@@ -199,6 +302,10 @@ BookmarkBridge::~BookmarkBridge() {
if (partner_bookmarks_shim_)
partner_bookmarks_shim_->RemoveObserver(this);
reading_list_manager_->RemoveObserver(this);
@@ -1001,7 +1005,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
}
void BookmarkBridge::Destroy(JNIEnv*) {
@@ -556,6 +663,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
@@ -539,6 +646,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count;
}
@@ -1187,7 +1191,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
@@ -19,6 +19,7 @@
@@ -20,6 +20,7 @@
#include "base/supports_user_data.h"
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/image_service/image_service_factory.h"
@@ -1195,17 +1199,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_observer.h"
#include "chrome/browser/reading_list/android/reading_list_manager.h"
@@ -27,6 +28,9 @@
@@ -31,6 +32,9 @@
#include "components/prefs/pref_change_registrar.h"
#include "url/android/gurl_android.h"
+#include "components/search_engines/template_url.h"
+#include "ui/shell_dialogs/select_file_dialog.h"
+
namespace bookmarks {
class BookmarkModel;
class ManagedBookmarkService;
@@ -44,7 +48,8 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
class BookmarkBridgeTest;
// The delegate to fetch bookmarks information for the Android native
@@ -42,7 +46,8 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
public PartnerBookmarksShim::Observer,
public ReadingListManager::Observer,
public ProfileObserver,
@@ -1215,7 +1219,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
public:
BookmarkBridge(Profile* profile,
bookmarks::BookmarkModel* model,
@@ -72,6 +77,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -69,6 +74,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
bool IsDoingExtensiveChanges(JNIEnv* env);
@@ -1228,7 +1232,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
jboolean IsEditBookmarksEnabled(JNIEnv* env);
void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env);
@@ -84,6 +95,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -81,6 +92,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
jlong id,
jint type);
@@ -1241,9 +1245,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
+ const base::android::JavaParamRef<jobject>& java_window,
+ const base::android::JavaParamRef<jstring>& j_export_path);
+
void GetTopLevelFolderIds(
void GetAllFoldersWithDepths(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& j_result_obj);
const base::android::JavaParamRef<jobject>& j_folders_obj,
@@ -310,12 +330,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
void DestroyJavaObject();
@@ -1304,7 +1308,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
@@ -49,7 +49,7 @@ public class DownloadLocationCustomView
@@ -47,7 +47,7 @@ public class DownloadLocationCustomView extends ScrollView
private TextView mFileSize;
private Spinner mFileLocation;
private TextView mLocationAvailableSpace;
@@ -1313,7 +1317,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
private @DownloadLocationDialogType int mDialogType;
private long mTotalBytes;
@@ -72,7 +72,7 @@ public class DownloadLocationCustomView
@@ -70,7 +70,7 @@ public class DownloadLocationCustomView extends ScrollView
mDontShowAgain = findViewById(R.id.show_again_checkbox);
}
@@ -1322,8 +1326,8 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
// TODO(xingliu): Remove this function, currently used by smart suggestion.
mDialogType = dialogType;
mTotalBytes = totalBytes;
@@ -125,7 +125,7 @@ public class DownloadLocationCustomView
* @return The text that the user inputted as the name of the file.
@@ -123,7 +123,7 @@ public class DownloadLocationCustomView extends ScrollView
* @return The text that the user inputted as the name of the file.
*/
@Nullable
- String getFileName() {
@@ -1331,8 +1335,8 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
if (mFileName == null || mFileName.getText() == null) return null;
return mFileName.getText().toString();
}
@@ -134,7 +134,7 @@ public class DownloadLocationCustomView
* @return The file path based on what the user selected as the location of the file.
@@ -132,7 +132,7 @@ public class DownloadLocationCustomView extends ScrollView
* @return The file path based on what the user selected as the location of the file.
*/
@Nullable
- DirectoryOption getDirectoryOption() {
@@ -1343,10 +1347,10 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
@@ -36,12 +36,12 @@ import java.util.ArrayList;
@@ -35,12 +35,12 @@ import java.util.ArrayList;
*/
public class DownloadLocationDialogCoordinator implements ModalDialogProperties.Controller {
@NonNull
private DownloadLocationDialogController mController;
@NonNull private DownloadLocationDialogController mController;
- private PropertyModel mDialogModel;
+ protected PropertyModel mDialogModel;
private PropertyModel mDownloadLocationDialogModel;
@@ -1359,7 +1363,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
private long mTotalBytes;
private @DownloadLocationDialogType int mDialogType;
private String mSuggestedPath;
@@ -130,7 +130,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
@@ -137,7 +137,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
* Called after retrieved the download directory options.
* @param dirs An list of available download directories.
*/
@@ -1371,9 +1375,9 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
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
@@ -191,6 +191,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -189,6 +189,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kCastDeviceFilter,
&kClearOmniboxFocusAfterNavigation,
&kCloseTabSuggestions,
&kCloseTabSaveTabList,
+ &kBookmarksExportUseSaf,
&kCriticalPersistedTabData,
@@ -1382,10 +1386,10 @@ 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
@@ -489,6 +489,7 @@ public abstract class ChromeFeatureList {
public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID =
"UseLibunwindstackNativeUnwinderAndroid";
@@ -494,6 +494,7 @@ public abstract class ChromeFeatureList {
public static final String USER_BYPASS_UI = "UserBypassUI";
public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR =
"VerticalAutomotiveBackButtonToolbar";
+ public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf";
public static final String VOICE_BUTTON_IN_TOP_TOOLBAR = "VoiceButtonInTopToolbar";
public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy";
@@ -1393,22 +1397,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc
--- a/chrome/browser/importer/profile_writer.cc
+++ b/chrome/browser/importer/profile_writer.cc
@@ -105,12 +105,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
HistoryServiceFactory::GetForProfile(profile_,
ServiceAccessType::EXPLICIT_ACCESS)
->AddPagesWithDetails(page, visit_source);
+#if !BUILDFLAG(IS_ANDROID)
// Measure the size of the history page after Auto Import on first run.
if (first_run::IsChromeFirstRun() &&
visit_source == history::SOURCE_IE_IMPORTED) {
UMA_HISTOGRAM_COUNTS_1M("Import.ImportedHistorySize.AutoImportFromIE",
page.size());
}
+#endif
}
void ProfileWriter::AddHomepage(const GURL& home_page) {
@@ -131,6 +133,16 @@ void ProfileWriter::AddBookmarks(
@@ -125,6 +125,16 @@ void ProfileWriter::AddBookmarks(
return;
BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_);
@@ -1451,7 +1440,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -101,6 +101,8 @@ public final class ChromePreferenceKeys {
@@ -104,6 +104,8 @@ public final class ChromePreferenceKeys {
"enhanced_bookmark_last_used_parent_folder";
public static final String BOOKMARKS_SORT_ORDER = "Chrome.Bookmarks.BookmarkRowSortOrder";
public static final String BOOKMARKS_VISUALS_PREF = "Chrome.Bookmarks.BookmarkRowDisplay";
@@ -1460,7 +1449,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
/**
* Whether Chrome is set as the default browser.
@@ -986,6 +988,7 @@ public final class ChromePreferenceKeys {
@@ -938,6 +940,7 @@ public final class ChromePreferenceKeys {
AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED,
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@@ -1499,7 +1488,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -402,6 +402,9 @@ static_library("common_lib") {
@@ -403,6 +403,9 @@ static_library("common_lib") {
sources += [
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
@@ -1720,25 +1709,25 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
// The permission scenario for accessing media has evolved a bit over the years:
// Early on, READ_EXTERNAL_STORAGE was required to access media, but that permission was
// later deprecated. In its place (starting with Android T) READ_MEDIA_IMAGES and
@@ -381,7 +388,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
}
@@ -385,7 +392,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
// TODO(finnur): Remove once we figure out the cause of crbug.com/950024.
- if (shouldUsePhotoPicker) {
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
if (permissions.length != requestPermissions.length) {
throw new RuntimeException(
String.format("Permissions arrays misaligned: %d != %d",
@@ -395,7 +402,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
}
}
// TODO(finnur): Remove once we figure out the cause of
// crbug.com/950024.
- if (shouldUsePhotoPicker) {
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
if (permissions.length != requestPermissions.length) {
throw new RuntimeException(
String.format(
@@ -402,7 +409,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
}
}
- if (shouldUsePhotoPicker) {
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
if (permissions[i].equals(storagePermission)
|| permissions[i].equals(Manifest.permission.READ_MEDIA_IMAGES)
|| permissions[i].equals(
@@ -672,6 +679,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
- if (shouldUsePhotoPicker) {
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
if (permissions[i].equals(storagePermission)
|| permissions[i].equals(
Manifest.permission.READ_MEDIA_IMAGES)
@@ -685,6 +692,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
}
if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
}
@@ -1746,7 +1735,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
return mimeTypes;
}
@@ -1000,6 +1008,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
@@ -1032,6 +1040,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
return countAcceptTypesFor(superType) == mFileTypes.size();
}
@@ -62,10 +62,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
+ if (!ContextUtils.getAppSharedPreferences()
+ .getBoolean(PrivacySettings.PREF_ALLOW_CUSTOM_TAB_INTENTS, false))
+ return false;
if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent)
|| !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) {
return false;
@@ -266,6 +272,10 @@ public class LaunchIntentDispatcher {
Log.w(
TAG,
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
@@ -268,6 +274,10 @@ public class LaunchIntentDispatcher {
newIntent.setData(uri);
newIntent.setClassName(context, CustomTabActivity.class.getName());
@@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
// Since configureIntentForResizableCustomTab() might change the componenet/class
// associated with the passed intent, it needs to be called after #setClassName(context,
// CustomTabActivity.class.getName());
@@ -412,6 +422,17 @@ public class LaunchIntentDispatcher {
@@ -413,6 +423,17 @@ public class LaunchIntentDispatcher {
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
@@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
/**
* A model class that parses the incoming intent for incognito Custom Tabs specific customization
* data.
@@ -113,6 +116,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
@@ -115,6 +118,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
}
private static boolean isIntentFromThirdPartyAllowed() {
@@ -120,7 +120,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
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
@@ -98,6 +98,9 @@ public class PrivacySettings
@@ -96,6 +96,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings;
@@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
getActivity().setTitle(R.string.prefs_privacy_security);
@@ -246,6 +249,9 @@ public class PrivacySettings
@@ -276,6 +279,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
}
@@ -140,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@@ -262,6 +268,14 @@ public class PrivacySettings
@@ -292,6 +298,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
UserPrefs.get(getProfile())
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
@@ -155,7 +155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
}
return true;
}
@@ -286,6 +300,16 @@ public class PrivacySettings
@@ -314,6 +328,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
}
@@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
@@ -84,7 +84,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
@@ -85,7 +85,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
public static boolean isOpenedFromExternalApp(Tab tab) {
TabAssociatedApp app = get(tab);
if (app == null) return false;
@@ -191,7 +191,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso
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
@@ -5165,6 +5165,20 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -5056,6 +5056,20 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_NEAR_OOM_INTERVENTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can resume what it was doing.">
Resume
</message>
+10 -10
View File
@@ -46,9 +46,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
import org.chromium.base.ObserverList;
+import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
/**
* Watches for when Chrome is told to restart itself.
@@ -43,6 +44,7 @@ public class ApplicationLifetime {
/** Watches for when Chrome is told to restart itself. */
public class ApplicationLifetime {
@@ -39,6 +40,7 @@ public class ApplicationLifetime {
@CalledByNative
public static void terminate(boolean restart) {
@@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
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
@@ -242,6 +242,8 @@ import java.util.Locale;
@@ -252,6 +252,8 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
/**
* This is the main activity for ChromeMobile when not running in document mode. All the tabs
* are accessible via a chrome specific tab switching UI.
@@ -2337,6 +2339,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2762,6 +2764,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} else if (id == R.id.close_tab) {
getCurrentTabModel().closeTab(currentTab, true, false, true);
RecordUserAction.record("MobileTabClosed");
@@ -76,11 +76,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+ ApplicationLifetime.terminate(false);
} else if (id == R.id.close_all_tabs_menu_id) {
// Close both incognito and normal tabs.
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
CloseAllTabsDialog.show(
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
@@ -62,6 +62,7 @@ import org.chromium.chrome.R;
@@ -61,6 +61,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityUtils;
import org.chromium.chrome.browser.AppHooks;
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplicationImpl;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
@@ -2404,6 +2405,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2577,6 +2578,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
@@ -103,7 +103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
@@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
@@ -81,7 +81,11 @@ class ChromeLifetimeController
// Kick off a timer to kill the process after a delay, which fires only if the Activities
// take too long to be finished.
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3765,6 +3765,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3659,6 +3659,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
Dark theme
</message>
@@ -26,7 +26,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
#include "base/feature_list.h"
#include "base/format_macros.h"
#include "base/functional/bind.h"
@@ -334,6 +335,15 @@ AutocompleteController::AutocompleteController(
@@ -336,6 +337,15 @@ AutocompleteController::AutocompleteController(
provider_client_->GetOmniboxTriggeredFeatureService()),
steady_state_omnibox_position_(
metrics::OmniboxEventProto::UNKNOWN_POSITION) {
@@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
#include "base/functional/callback.h"
#include "base/i18n/break_iterator.h"
#include "base/i18n/case_conversion.h"
@@ -650,6 +651,9 @@ void SearchProvider::Run(bool query_is_private) {
@@ -636,6 +637,9 @@ void SearchProvider::Run(bool query_is_private) {
}
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
@@ -88,7 +88,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
#include "base/files/file_path.h"
#include "base/files/file_util.h"
#include "base/i18n/char_iterator.h"
@@ -608,6 +610,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
@@ -621,6 +623,8 @@ GURL FixupURLInternal(const std::string& text,
FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
if (chrome_url && !parts.host.is_valid())
@@ -103,7 +103,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
#include "net/ssl/ssl_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "url/gurl.h"
@@ -174,6 +178,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
@@ -183,6 +187,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
int ClientSocketPoolManager::max_sockets_per_group(
HttpNetworkSession::SocketPoolType pool_type) {
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
@@ -45,7 +45,7 @@ new file mode 100644
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1096,6 +1096,7 @@ component("net") {
@@ -1033,6 +1033,7 @@ component("net") {
"//build:chromeos_buildflags",
"//components/miracle_parameter/common",
"//net/http:transport_security_state_generated_files",
@@ -56,7 +56,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
--- a/net/dns/host_resolver_manager.cc
+++ b/net/dns/host_resolver_manager.cc
@@ -111,6 +111,7 @@
@@ -109,6 +109,7 @@
#include "net/log/net_log_event_type.h"
#include "net/log/net_log_source.h"
#include "net/log/net_log_source_type.h"
@@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
#include "net/log/net_log_with_source.h"
#include "net/socket/client_socket_factory.h"
#include "net/url_request/url_request_context.h"
@@ -684,6 +685,9 @@ class HostResolverManager::RequestImpl
@@ -681,6 +682,9 @@ class HostResolverManager::RequestImpl
// request source is LOCAL_ONLY. This is due to LOCAL_ONLY requiring a
// synchronous response, so it cannot wait on an async probe result and
// cannot make assumptions about reachability.
@@ -74,7 +74,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
if (parameters_.source == HostResolverSource::LOCAL_ONLY) {
int rv = resolver_->StartIPv6ReachabilityCheck(
source_net_log_, GetClientSocketFactory(),
@@ -3903,6 +3907,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
@@ -3899,6 +3903,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
return OK;
}
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -104,6 +104,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
WebRuntimeFeatures::EnableMediaSession(false);
}
@@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2718,6 +2718,10 @@
@@ -2621,6 +2621,10 @@
status: {"Android": "stable"},
base_feature: "none",
},
@@ -14,9 +14,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1889,6 +1889,11 @@ config("default_warnings") {
# TODO(crbug.com/1495100): Evaluate and possibly enable.
"-Wno-delayed-template-parsing-in-cxx20",
@@ -1888,6 +1888,11 @@ config("default_warnings") {
# TODO(https://crbug.com/1490607): Fix and re-enable.
"-Wno-thread-safety-reference-return",
]
+ if (skip_clangd_unsupported_options) {
+ cflags -= [
@@ -233,7 +233,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc
diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc
--- a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc
+++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc
@@ -177,7 +177,7 @@ void EmbeddedPermissionPrompt::Allow() {
@@ -236,7 +236,7 @@ void EmbeddedPermissionPrompt::Allow() {
}
void EmbeddedPermissionPrompt::AllowThisTime() {
@@ -257,7 +257,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v
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
@@ -489,8 +489,8 @@ void ContentAutofillDriver::FormsSeen(
@@ -455,8 +455,8 @@ void ContentAutofillDriver::FormsSeen(
const std::vector<FormGlobalId>& removed_forms) {
target->GetAutofillManager().OnFormsSeen(
WithNewVersion(updated_forms), removed_forms);
@@ -268,7 +268,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(updated_forms), removed_forms);
}
});
@@ -520,8 +520,8 @@ void ContentAutofillDriver::FormSubmitted(
@@ -486,8 +486,8 @@ void ContentAutofillDriver::FormSubmitted(
}
target->GetAutofillManager().OnFormSubmitted(
WithNewVersion(form), known_success, submission_source);
@@ -279,7 +279,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form), known_success, submission_source);
}
});
@@ -545,8 +545,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form,
@@ -511,8 +511,8 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form,
base::TimeTicks timestamp) {
target->GetAutofillManager().OnTextFieldDidChange(
WithNewVersion(form), field, bounding_box, timestamp);
@@ -290,7 +290,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form), field, bounding_box, timestamp);
}
});
@@ -568,8 +568,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form,
@@ -534,8 +534,8 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form,
const FormFieldData& field, const gfx::RectF& bounding_box) {
target->GetAutofillManager().OnTextFieldDidScroll(WithNewVersion(form),
field, bounding_box);
@@ -301,7 +301,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form), field, bounding_box);
}
});
@@ -592,8 +592,8 @@ void ContentAutofillDriver::SelectControlDidChange(
@@ -558,8 +558,8 @@ void ContentAutofillDriver::SelectControlDidChange(
const FormFieldData& field, const gfx::RectF& bounding_box) {
target->GetAutofillManager().OnSelectControlDidChange(
WithNewVersion(form), field, bounding_box);
@@ -312,7 +312,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form), field, bounding_box);
}
});
@@ -618,8 +618,8 @@ void ContentAutofillDriver::AskForValuesToFill(
@@ -584,8 +584,8 @@ void ContentAutofillDriver::AskForValuesToFill(
AutofillSuggestionTriggerSource trigger_source) {
target->GetAutofillManager().OnAskForValuesToFill(
WithNewVersion(form), field, bounding_box, trigger_source);
@@ -323,7 +323,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form), field, bounding_box, trigger_source);
}
});
@@ -633,8 +633,8 @@ void ContentAutofillDriver::HidePopup() {
@@ -599,8 +599,8 @@ void ContentAutofillDriver::HidePopup() {
DCHECK(!target->IsPrerendering())
<< "We should never affect UI while prerendering";
target->GetAutofillManager().OnHidePopup();
@@ -334,7 +334,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -646,8 +646,8 @@ void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) {
@@ -612,8 +612,8 @@ void ContentAutofillDriver::FocusNoLongerOnForm(bool had_interacted_form) {
this, had_interacted_form,
[](autofill::AutofillDriver* target, bool had_interacted_form) {
target->GetAutofillManager().OnFocusNoLongerOnForm(had_interacted_form);
@@ -345,7 +345,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -667,15 +667,15 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form,
@@ -633,15 +633,15 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form,
const FormFieldData& field, const gfx::RectF& bounding_box) {
target->GetAutofillManager().OnFocusOnFormField(WithNewVersion(form),
field, bounding_box);
@@ -365,7 +365,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
}
});
}
@@ -691,8 +691,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form,
@@ -657,8 +657,8 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form,
base::TimeTicks timestamp) {
target->GetAutofillManager().OnDidFillAutofillFormData(
WithNewVersion(form), timestamp);
@@ -376,7 +376,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form), timestamp);
}
});
@@ -704,8 +704,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() {
@@ -670,8 +670,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() {
}
router().DidEndTextFieldEditing(this, [](autofill::AutofillDriver* target) {
target->GetAutofillManager().OnDidEndTextFieldEditing();
@@ -387,7 +387,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -720,8 +720,8 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange(
@@ -686,8 +686,8 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange(
cast(target)
->GetAutofillManager()
.OnSelectOrSelectListFieldOptionsDidChange(WithNewVersion(form));
@@ -398,7 +398,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form));
}
});
@@ -743,8 +743,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue(
@@ -709,8 +709,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue(
const FormFieldData& field, const std::u16string& old_value) {
target->GetAutofillManager().OnJavaScriptChangedAutofilledValue(
WithNewVersion(form), field, old_value);
@@ -409,7 +409,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
WithNewVersion(form), field, old_value);
}
});
@@ -759,8 +759,8 @@ void ContentAutofillDriver::OnContextMenuShownInField(
@@ -725,8 +725,8 @@ void ContentAutofillDriver::OnContextMenuShownInField(
const FieldGlobalId& field_global_id) {
target->GetAutofillManager().OnContextMenuShownInField(form_global_id,
field_global_id);
@@ -420,7 +420,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co
});
}
@@ -785,6 +785,10 @@ ContentAutofillDriver::GetAutofillAgent() {
@@ -751,6 +751,10 @@ ContentAutofillDriver::GetAutofillAgent() {
return autofill_agent_;
}
@@ -466,7 +466,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
import java.io.Serializable;
@@ -20,9 +21,15 @@ public class PermissionInfo implements Serializable {
@@ -18,9 +19,15 @@ public class PermissionInfo implements Serializable {
private final String mEmbedder;
private final String mOrigin;
private final @ContentSettingsType int mContentSettingsType;
@@ -481,9 +481,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
+ @ContentSettingsType int type, String origin, String embedder, boolean isEmbargoed,
+ @SessionModel int sessionModel) {
assert WebsitePermissionsFetcher.getPermissionsType(type)
== WebsitePermissionsFetcher.WebsitePermissionsType.PERMISSION_INFO
: "invalid type: "
@@ -31,6 +38,11 @@ public class PermissionInfo implements Serializable {
== WebsitePermissionsFetcher.WebsitePermissionsType.PERMISSION_INFO
: "invalid type: " + type;
@@ -28,6 +35,11 @@ public class PermissionInfo implements Serializable {
mEmbedder = embedder;
mContentSettingsType = type;
mIsEmbargoed = isEmbargoed;
@@ -504,9 +504,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.components.content_settings.SessionModel;
import org.chromium.components.embedder_support.util.Origin;
import org.chromium.content_public.browser.BrowserContextHandle;
@@ -551,6 +552,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
import org.chromium.components.permissions.PermissionsAndroidFeatureList;
import org.chromium.components.permissions.PermissionsAndroidFeatureMap;
@@ -567,6 +568,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
}
}
@@ -518,7 +518,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private void setUpClearDataPreference() {
ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
long usage = mSite.getTotalUsage();
@@ -1034,6 +1040,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1094,6 +1100,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (contentType == mHighlightedPermission) {
switchPreference.setBackgroundColor(mHighlightColor);
}
@@ -540,17 +540,17 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
import org.chromium.components.location.LocationUtils;
import org.chromium.content_public.browser.BrowserContextHandle;
import org.chromium.url.GURL;
@@ -56,7 +57,8 @@ public class WebsitePreferenceBridge {
@CalledByNative
private static void insertPermissionInfoIntoList(@ContentSettingsType int type,
- ArrayList<PermissionInfo> list, String origin, String embedder, boolean isEmbargoed) {
+ ArrayList<PermissionInfo> list, String origin, String embedder, boolean isEmbargoed,
@@ -54,7 +55,8 @@ public class WebsitePreferenceBridge {
ArrayList<PermissionInfo> list,
String origin,
String embedder,
- boolean isEmbargoed) {
+ boolean isEmbargoed,
+ @SessionModel int sessionModel) {
if (type == ContentSettingsType.MEDIASTREAM_CAMERA
|| type == ContentSettingsType.MEDIASTREAM_MIC) {
for (PermissionInfo info : list) {
@@ -65,7 +67,7 @@ public class WebsitePreferenceBridge {
@@ -63,7 +65,7 @@ public class WebsitePreferenceBridge {
}
}
}
@@ -593,7 +593,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -688,6 +688,11 @@
@@ -682,6 +682,11 @@
<message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
URL truncated
</message>
@@ -709,10 +709,10 @@ diff --git a/components/content_settings/core/common/content_settings_constraint
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java
@@ -337,9 +337,9 @@ public class PageInfoController implements PageInfoMainController, ModalDialogPr
*/
@CalledByNative
private void addPermissionSection(String name, String nameMidSentence, int type,
@@ -378,9 +378,9 @@ public class PageInfoController
String name,
String nameMidSentence,
int type,
- @ContentSettingValues int currentSettingValue) {
+ @ContentSettingValues int currentSettingValue, boolean is_user_session) {
mPermissionParamsListBuilder.addPermissionEntry(
@@ -720,7 +720,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
+ name, nameMidSentence, type, currentSettingValue, is_user_session);
}
/**
/** Update the permissions view based on the contents of mDisplayedPermissions. */
diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
--- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
+++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java
@@ -747,7 +747,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_
}
}
@@ -123,13 +128,15 @@ public class PermissionParamsListBuilder {
@@ -126,13 +131,15 @@ public class PermissionParamsListBuilder {
public final String nameMidSentence;
public final int type;
public final @ContentSettingValues int setting;
@@ -808,7 +808,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -1188,6 +1188,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1187,6 +1187,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
permission_info.source = info.source;
permission_info.is_one_time = (info.metadata.session_model() ==
content_settings::SessionModel::OneTime);
@@ -884,10 +884,10 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
+import org.chromium.components.content_settings.ContentSettingsType;
+import org.chromium.components.content_settings.LifetimeMode;
+
/**
* This class creates the model for the permission dialog.
*/
@@ -27,7 +39,7 @@ class PermissionDialogModelFactory {
/** This class creates the model for the permission dialog. */
class PermissionDialogModelFactory {
public static PropertyModel getModel(
@@ -25,7 +37,7 @@ class PermissionDialogModelFactory {
String messageText = delegate.getMessageText();
assert !TextUtils.isEmpty(messageText);
@@ -896,8 +896,8 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
.with(ModalDialogProperties.CONTROLLER, controller)
.with(ModalDialogProperties.FOCUS_DIALOG, true)
.with(ModalDialogProperties.CUSTOM_VIEW, customView)
@@ -39,5 +51,73 @@ class PermissionDialogModelFactory {
.with(ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS,
@@ -38,5 +50,73 @@ class PermissionDialogModelFactory {
ModalDialogProperties.BUTTON_TAP_PROTECTION_PERIOD_MS,
UiUtils.PROMPT_INPUT_PROTECTION_SHORT_DELAY_MS)
.build();
+
@@ -1215,7 +1215,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc
--- a/components/permissions/permission_context_base.cc
+++ b/components/permissions/permission_context_base.cc
@@ -262,6 +262,16 @@ PermissionContextBase::CreatePermissionRequest(
@@ -261,6 +261,16 @@ PermissionContextBase::CreatePermissionRequest(
std::move(delete_callback));
}
@@ -1232,7 +1232,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
content::PermissionResult PermissionContextBase::GetPermissionStatus(
content::RenderFrameHost* render_frame_host,
const GURL& requesting_origin,
@@ -506,7 +516,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
@@ -505,7 +515,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
const GURL& embedding_origin,
ContentSetting content_setting,
bool is_one_time,
@@ -1242,7 +1242,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
content_setting == CONTENT_SETTING_BLOCK ||
content_setting == CONTENT_SETTING_DEFAULT);
@@ -521,13 +532,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
@@ -520,13 +531,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id,
// missing if a permission prompt was preignored and we already notified an
// origin about it.
if (request->second.second) {
@@ -1261,7 +1261,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
}
}
@@ -573,11 +585,27 @@ void PermissionContextBase::NotifyPermissionSet(
@@ -572,11 +584,27 @@ void PermissionContextBase::NotifyPermissionSet(
ContentSetting content_setting,
bool is_one_time,
bool is_final_decision) {
@@ -1290,7 +1290,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
}
if (is_final_decision) {
@@ -607,6 +635,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
@@ -606,6 +634,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
const GURL& embedding_origin,
ContentSetting content_setting,
bool is_one_time) {
@@ -1306,7 +1306,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
@@ -616,6 +653,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
@@ -615,6 +652,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
constraints.set_session_model(is_one_time
? content_settings::SessionModel::OneTime
: content_settings::SessionModel::Durable);
@@ -1314,11 +1314,11 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
+ constraints = content_settings::GetConstraintSessionExpiration(lifetime_option);
#if !BUILDFLAG(IS_ANDROID)
if (base::FeatureList::IsEnabled(
// The Permissions module in Safety check will revoke permissions after
diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h
--- a/components/permissions/permission_context_base.h
+++ b/components/permissions/permission_context_base.h
@@ -149,6 +149,15 @@ class PermissionContextBase : public content_settings::Observer {
@@ -153,6 +153,15 @@ class PermissionContextBase : public content_settings::Observer {
// Updates stored content setting if persist is set, updates tab indicators
// and runs the callback to finish the request.
@@ -1334,7 +1334,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
virtual void NotifyPermissionSet(const PermissionRequestID& id,
const GURL& requesting_origin,
const GURL& embedding_origin,
@@ -170,6 +179,11 @@ class PermissionContextBase : public content_settings::Observer {
@@ -174,6 +183,11 @@ class PermissionContextBase : public content_settings::Observer {
// Store the decided permission as a content setting.
// virtual since the permission might be stored with different restrictions
// (for example for desktop notifications).
@@ -1346,7 +1346,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
virtual void UpdateContentSetting(const GURL& requesting_origin,
const GURL& embedding_origin,
ContentSetting content_setting,
@@ -200,6 +214,12 @@ class PermissionContextBase : public content_settings::Observer {
@@ -204,6 +218,12 @@ class PermissionContextBase : public content_settings::Observer {
PermissionRequest::PermissionDecidedCallback permission_decided_callback,
base::OnceClosure delete_callback) const;
@@ -1359,7 +1359,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
base::ObserverList<permissions::Observer> permission_observers_;
// Set by subclasses to inform the base class that they will handle adding
@@ -222,7 +242,8 @@ class PermissionContextBase : public content_settings::Observer {
@@ -226,7 +246,8 @@ class PermissionContextBase : public content_settings::Observer {
const GURL& embedding_origin,
ContentSetting content_setting,
bool is_one_time,
@@ -1438,9 +1438,9 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
+ content_settings::LifetimeMode::Always);
+ return;
+ }
permission_decided_callback_.Run(CONTENT_SETTING_DEFAULT,
/*is_one_time=*/false, is_final_decision);
}
if (permission_decided_callback_) {
permission_decided_callback_.Run(CONTENT_SETTING_DEFAULT,
/*is_one_time=*/false, is_final_decision);
diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h
--- a/components/permissions/permission_request.h
+++ b/components/permissions/permission_request.h
@@ -1565,7 +1565,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
NotifyRequestDecided(PermissionAction::DENIED);
@@ -1184,32 +1195,32 @@ PermissionRequestManager::VisitDuplicateRequests(
@@ -1190,32 +1201,32 @@ PermissionRequestManager::VisitDuplicateRequests(
void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
PermissionRequest* request,
@@ -1608,7 +1608,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
request);
}
@@ -1458,7 +1469,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) {
@@ -1467,7 +1478,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) {
void PermissionRequestManager::DoAutoResponseForTesting() {
switch (auto_response_for_test_) {
case ACCEPT_ONCE:
@@ -7,7 +7,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/android/java/res/menu/main_menu.xml | 7 ++
.../chrome/browser/ChromeTabbedActivity.java | 24 +++++++
.../browser/bookmarks/BookmarkBridge.java | 66 +++++++++++++++++++
.../bookmarks/android/bookmark_bridge.cc | 43 ++++++++++++
.../bookmarks/android/bookmark_bridge.cc | 44 +++++++++++++
.../bookmarks/android/bookmark_bridge.h | 8 +++
.../browser/bookmarks/bookmark_html_writer.cc | 8 ++-
.../dialogs/DownloadLocationCustomView.java | 4 +-
@@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/bookmarks/browser/bookmark_uuids.h | 1 +
components/bookmarks/browser/model_loader.cc | 3 +-
.../bookmark_specifics_conversions.cc | 1 +
22 files changed, 230 insertions(+), 10 deletions(-)
22 files changed, 231 insertions(+), 10 deletions(-)
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
@@ -55,7 +55,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -85,6 +85,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
@@ -86,6 +86,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -2360,6 +2361,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2787,6 +2788,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
getTabModelSelectorSupplier().get(),
() -> getTabModelSelector().closeAllTabs());
RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -71,8 +71,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+ bookmarkAllTabs();
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
@@ -2424,6 +2427,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
CloseAllTabsDialog.show(
@@ -2858,6 +2861,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
}
@@ -111,10 +111,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.base.ObserverList;
import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordHistogram;
@@ -40,6 +41,10 @@ import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
@@ -39,6 +40,10 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.read_later.ReadingListUtils;
import org.chromium.chrome.browser.tab.Tab;
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
@@ -122,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkItem;
import org.chromium.components.bookmarks.BookmarkType;
@@ -85,6 +90,8 @@ import java.io.File;
@@ -83,6 +88,8 @@ import java.io.File;
class BookmarkBridge {
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
@@ -131,7 +131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private long mNativeBookmarkBridge;
private boolean mIsDestroyed;
private boolean mIsDoingExtensiveChanges;
@@ -390,6 +397,16 @@ class BookmarkBridge {
@@ -374,6 +381,16 @@ class BookmarkBridge {
return mMobileFolderId;
}
@@ -148,7 +148,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* @return Id representing the special "other" folder from bookmark model.
*/
@@ -1034,6 +1051,50 @@ class BookmarkBridge {
@@ -1018,6 +1035,50 @@ class BookmarkBridge {
return BookmarkBridgeJni.get().addToReadingList(mNativeBookmarkBridge, title, url);
}
@@ -197,11 +197,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ }
+
/**
* @param url The URL of the reading list item.
* @return The reading list item with the URL, or null if no such reading list item.
@@ -1273,6 +1334,9 @@ class BookmarkBridge {
BookmarkId getBookmarkIdForWebContents(
long nativeBookmarkBridge, WebContents webContents, boolean onlyEditable);
* Helper method to mark an article as read.
*
@@ -1243,6 +1304,9 @@ class BookmarkBridge {
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url);
+ BookmarkId getBookmarkIdForTabsCollection(
+ long nativeBookmarkBridge, GURL url);
@@ -209,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
void getTopLevelFolderIds(long nativeBookmarkBridge, List<BookmarkId> bookmarksList);
@@ -1284,6 +1348,8 @@ class BookmarkBridge {
@@ -1254,6 +1318,8 @@ class BookmarkBridge {
BookmarkId getRootFolderId(long nativeBookmarkBridge);
@@ -221,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
@@ -330,6 +330,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
@@ -331,6 +331,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
base::BindOnce(&HandleImageUrlResponse, callback));
}
@@ -253,20 +253,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
+}
+
base::android::ScopedJavaLocalRef<jobject>
BookmarkBridge::GetBookmarkIdForWebContents(
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(
JNIEnv* env,
@@ -438,6 +465,10 @@ void BookmarkBridge::GetTopLevelFolderIds(
}
top_level_folders.push_back(root_child.get());
}
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
+ if (node->is_folder())
+ top_level_folders.push_back(node.get());
+ }
if (partner_bookmarks_shim_->HasPartnerBookmarks() &&
IsReachable(partner_bookmarks_shim_->GetPartnerBookmarksRoot())) {
@@ -477,6 +508,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
@@ -421,6 +448,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
// Vector to temporarily contain all child bookmarks at same level for sorting
std::vector<const BookmarkNode*> bookmarks = {
bookmark_model_->mobile_node(),
@@ -274,8 +263,20 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(),
};
@@ -1049,6 +1081,17 @@ void BookmarkBridge::GetBookmarksOfType(
@@ -474,6 +502,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl() {
top_level_folders.push_back(root_child.get());
}
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
+ if (node->is_folder())
+ top_level_folders.push_back(node.get());
+ }
+
if (reading_list_manager_->GetRoot()) {
top_level_folders.push_back(reading_list_manager_->GetRoot());
}
@@ -1027,6 +1060,17 @@ void BookmarkBridge::GetBookmarksOfType(
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
}
+ScopedJavaLocalRef<jobject> BookmarkBridge::GetTabsCollectionFolderId(
@@ -295,7 +296,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
@@ -69,6 +69,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -67,6 +67,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
const base::android::JavaParamRef<jobject>& j_url,
const base::android::JavaParamRef<jobject>& j_callback);
@@ -303,10 +304,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& url);
+
base::android::ScopedJavaLocalRef<jobject> GetBookmarkIdForWebContents(
base::android::ScopedJavaLocalRef<jobject>
GetMostRecentlyAddedUserBookmarkIdForUrl(
JNIEnv* env,
@@ -205,6 +209,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -197,6 +201,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
const base::android::JavaParamRef<jobject>& j_list,
jint type);
@@ -353,7 +354,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
@@ -79,7 +79,7 @@ public class DownloadLocationCustomView
@@ -77,7 +77,7 @@ public class DownloadLocationCustomView extends ScrollView
mDirectoryAdapter.update();
}
@@ -362,7 +363,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
mTitle.setText(title);
}
@@ -87,7 +87,7 @@ public class DownloadLocationCustomView
@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView
mSubtitleView.setText(subtitle);
}
@@ -374,7 +375,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3895,6 +3895,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3789,6 +3789,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
Select tabs
</message>
@@ -612,7 +613,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc
@@ -801,7 +801,7 @@ bool BookmarkModel::HasBookmarks() const {
@@ -829,7 +829,7 @@ bool BookmarkModel::HasBookmarks() const {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() &&
@@ -621,20 +622,20 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
}
bool BookmarkModel::IsBookmarked(const GURL& url) const {
@@ -1111,6 +1111,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
@@ -1166,6 +1166,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node();
+ tabs_collection_node_ = details->tabs_collection_folder_node();
titled_url_index_->SetNodeSorter(
std::make_unique<TypedCountSorter>(client_.get()));
// TODO(crbug.com/1494120): Load nodes for account storage as well.
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
--- a/components/bookmarks/browser/bookmark_model.h
+++ b/components/bookmarks/browser/bookmark_model.h
@@ -132,6 +132,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
return mobile_node_;
}
@@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
// bookmarks in the account storage).
const BookmarkNode* account_mobile_node() const;
+ // Returns the 'mobile' node. This is NULL until loaded.
+ const BookmarkNode* tabs_collection_node() const {
@@ -645,10 +646,10 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
bool is_root_node(const BookmarkNode* node) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return node == root_;
@@ -475,6 +481,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
nullptr;
raw_ptr<BookmarkPermanentNode, AcrossTasksDanglingUntriaged> mobile_node_ =
nullptr;
@@ -528,6 +534,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
+ raw_ptr<BookmarkPermanentNode> tabs_collection_node_ = nullptr;
// The maximum ID assigned to the bookmark nodes in the model.
@@ -685,7 +686,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
MOBILE
};
@@ -245,6 +246,9 @@ class BookmarkPermanentNode : public BookmarkNode {
@@ -246,6 +247,9 @@ class BookmarkPermanentNode : public BookmarkNode {
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
int64_t id,
bool visible_when_empty);
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -2384,6 +2384,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2813,6 +2813,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -2537,6 +2537,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2722,6 +2722,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return doOpenWebApk(currentTab);
}
@@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -550,6 +550,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -578,6 +578,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
@@ -1148,6 +1149,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -1182,6 +1183,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
}
@@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -241,6 +241,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -260,6 +260,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
updateRequestDesktopSiteMenuItem(
menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
@@ -13,13 +13,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../LegacyChromePreferenceKeys.java | 1 +
.../omnibox/LocationBarCoordinator.java | 2 +-
.../strings/android_chrome_strings.grd | 7 +++++++
.../toolbar/top/ToolbarControlContainer.java | 5 ++---
components/BUILD.gn | 6 +++---
.../res/xml/accessibility_preferences.xml | 5 +++++
.../accessibility/AccessibilitySettings.java | 10 ++++++++++
.../AccessibilitySettingsDelegate.java | 2 ++
.../chromium/ui/base/DeviceFormFactor.java | 6 ++++++
15 files changed, 73 insertions(+), 9 deletions(-)
14 files changed, 71 insertions(+), 6 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
@@ -53,7 +52,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/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
@@ -948,7 +948,9 @@ public final class ReturnToChromeUtil {
@@ -987,7 +987,9 @@ public final class ReturnToChromeUtil {
public static boolean isScrollableMvtEnabled(Context context) {
boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled();
@@ -63,11 +62,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
+ 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
// 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
@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
@@ -75,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
@@ -1454,7 +1455,9 @@ public class RootUiCoordinator
@@ -1588,7 +1589,9 @@ public class RootUiCoordinator
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
int stubId = R.id.find_toolbar_stub;
@@ -85,7 +84,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
stubId = R.id.find_toolbar_tablet_stub;
}
mFindToolbarManager = new FindToolbarManager(mActivity.findViewById(stubId),
mFindToolbarManager =
diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
--- a/chrome/browser/preferences/BUILD.gn
+++ b/chrome/browser/preferences/BUILD.gn
@@ -100,7 +99,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
@@ -349,6 +349,7 @@ public final class ChromePreferenceKeys {
@@ -310,6 +310,7 @@ public final class ChromePreferenceKeys {
AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM;
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
@@ -121,8 +120,8 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
public class ChromeSharedPreferences {
public static final PreferenceKeyRegistry REGISTRY =
@@ -22,6 +24,12 @@ public class ChromeSharedPreferences {
LegacyChromePreferenceKeys.getPrefixesInUse())
: null);
LegacyChromePreferenceKeys.getPrefixesInUse())
: null);
+ static {
+ DeviceFormFactor.setForceTabletUI(
@@ -136,9 +135,9 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
@@ -63,6 +63,7 @@ public class LegacyChromePreferenceKeys {
ChromePreferenceKeys.FLAGS_CACHED_START_SURFACE_ENABLED,
ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED,
@@ -58,6 +58,7 @@ public class LegacyChromePreferenceKeys {
ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE,
ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE,
ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR,
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED,
ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM,
@@ -147,7 +146,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
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
@@ -779,7 +779,7 @@ public class LocationBarCoordinator
@@ -777,7 +777,7 @@ public class LocationBarCoordinator
}
private boolean isTabletWindow() {
@@ -159,7 +158,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
@@ -1658,6 +1658,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1561,6 +1561,13 @@ Your Google account may have other forms of browsing history like searches and a
Manage third-party cookies and tracking protections
</message>
@@ -173,21 +172,6 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
Safety check
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
@@ -166,9 +166,8 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
return backgroundDrawable;
} else {
- final Drawable backgroundDrawable =
- AppCompatResources.getDrawable(getContext(), R.drawable.toolbar_background)
- .mutate();
+ Drawable backgroundDrawable = new ColorDrawable(
+ ChromeColors.getPrimaryBackgroundColor(getContext(), incognito));
backgroundDrawable.setTint(ChromeColors.getDefaultThemeColor(getContext(), incognito));
backgroundDrawable.setTintMode(PorterDuff.Mode.MULTIPLY);
diff --git a/components/BUILD.gn b/components/BUILD.gn
--- a/components/BUILD.gn
+++ b/components/BUILD.gn
@@ -200,7 +184,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
@@ -811,7 +811,7 @@ test("components_unittests") {
@@ -819,7 +819,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.
@@ -209,7 +193,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
assert_no_deps = [ "//chrome/*" ]
assert_no_deps += disallowed_extension_deps_
}
@@ -1099,7 +1099,7 @@ if (use_blink) {
@@ -1107,7 +1107,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.
@@ -236,7 +220,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -33,6 +33,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -31,6 +31,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
public static final String PREF_CAPTIONS = "captions";
public static final String PREF_ZOOM_INFO = "zoom_info";
@@ -245,7 +229,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private TextScalePreference mTextScalePref;
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
@@ -117,6 +119,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
@@ -123,6 +125,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
getPreferenceScreen().removePreference(readerForAccessibilityPref);
}
@@ -256,9 +240,9 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
+
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(preference -> {
Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS);
@@ -174,6 +182,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
captions.setOnPreferenceClickListener(
preference -> {
@@ -182,6 +190,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
@@ -270,7 +254,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
@@ -60,6 +60,8 @@ public interface AccessibilitySettingsDelegate {
@@ -52,6 +52,8 @@ public interface AccessibilitySettingsDelegate {
*/
IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate();
@@ -282,8 +266,8 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
@@ -38,6 +38,11 @@ public class DeviceFormFactor {
*/
@@ -31,6 +31,11 @@ public class DeviceFormFactor {
/** Matches the value set in res/values-sw720dp/values.xml */
private static final int SCREEN_BUCKET_LARGET_TABLET = 3;
+ private static boolean mForceTabletUI;
@@ -294,7 +278,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
/**
* Each activity could be on a different display, and this will just tell you whether the
* display associated with the application context is "tablet sized".
@@ -63,6 +68,7 @@ public class DeviceFormFactor {
@@ -56,6 +61,7 @@ public class DeviceFormFactor {
* E.g. http://developer.samsung.com/samsung-dex/testing
*/
public static boolean isNonMultiDisplayContextOnTablet(Context context) {
@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
import org.chromium.base.MemoryPressureListener;
@@ -1333,8 +1334,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1484,8 +1485,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
@@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
+ CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE) ||
+ ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false);
boolean shouldShowNtpAsHomeSurfaceAtStartup = false;
final AtomicBoolean isActiveUrlNTP = new AtomicBoolean(false);
final AtomicBoolean isActiveUrlNtp = new AtomicBoolean(false);
if (noRestoreState) {
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
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
import org.chromium.chrome.R;
import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
@@ -89,6 +92,8 @@ public class PrivacySettings
@@ -87,6 +90,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
private final SharedPreferencesManager mSharedPreferencesManager =
ChromeSharedPreferences.getInstance();
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
private IncognitoLockSettings mIncognitoLockSettings;
@@ -243,7 +248,11 @@ public class PrivacySettings
@@ -273,7 +278,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
String key = preference.getKey();
@@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
UserPrefs.get(getProfile())
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
@@ -290,6 +299,11 @@ public class PrivacySettings
@@ -318,6 +327,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
}
@@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4806,6 +4806,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4697,6 +4697,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
IMAGE
</message>
@@ -39,7 +39,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import java.util.ArrayList;
import java.util.List;
@@ -564,9 +566,14 @@ public class TabGridDialogMediator
@@ -615,11 +617,16 @@ public class TabGridDialogMediator
assert relatedTabs.size() > 0;
@@ -49,12 +49,14 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
+ url = gurl != null ? gurl.getSpec() : url;
+ }
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
mTabCreatorManager.getTabCreator(currentTab.isIncognito())
- .createNewTab(new LoadUrlParams(UrlConstants.NTP_URL),
+ .createNewTab(new LoadUrlParams(url),
TabLaunchType.FROM_TAB_GROUP_UI, parentTabToAttach);
mTabCreatorManager
.getTabCreator(currentTab.isIncognito())
.createNewTab(
- new LoadUrlParams(UrlConstants.NTP_URL),
+ new LoadUrlParams(url),
TabLaunchType.FROM_TAB_GROUP_UI,
parentTabToAttach);
RecordUserAction.record("MobileNewTabOpened." + mComponentName);
};
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
@@ -66,21 +68,23 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
import org.chromium.chrome.browser.layouts.LayoutType;
@@ -351,8 +352,13 @@ public class TabGroupUiMediator implements BackPressHandler {
assert relatedTabs.size() > 0;
@@ -371,10 +372,15 @@ public class TabGroupUiMediator implements BackPressHandler {
assert relatedTabs.size() > 0;
parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
+ String url = UrlConstants.NTP_URL;
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
+ url = gurl != null ? gurl.getSpec() : url;
+ }
mTabCreatorManager.getTabCreator(currentTab.isIncognito())
- .createNewTab(new LoadUrlParams(UrlConstants.NTP_URL),
+ .createNewTab(new LoadUrlParams(url),
TabLaunchType.FROM_TAB_GROUP_UI, parentTabToAttach);
RecordUserAction.record("MobileNewTabOpened." + TabGroupUiCoordinator.COMPONENT_NAME);
};
parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
+ String url = UrlConstants.NTP_URL;
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
+ url = gurl != null ? gurl.getSpec() : url;
+ }
mTabCreatorManager
.getTabCreator(currentTab.isIncognito())
.createNewTab(
- new LoadUrlParams(UrlConstants.NTP_URL),
+ new LoadUrlParams(url),
TabLaunchType.FROM_TAB_GROUP_UI,
parentTabToAttach);
RecordUserAction.record(
diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml
--- a/chrome/android/java/res/xml/homepage_preferences.xml
+++ b/chrome/android/java/res/xml/homepage_preferences.xml
@@ -99,7 +103,7 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -247,6 +247,22 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
@@ -233,6 +233,22 @@ public class HomepageManager
notifyHomepageUpdated();
}
@@ -131,9 +135,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
import org.chromium.url.GURL;
+import org.chromium.components.embedder_support.util.UrlConstants;
/**
* Fragment that allows the user to configure homepage related preferences.
@@ -32,6 +33,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
/** Fragment that allows the user to configure homepage related preferences. */
public class HomepageSettings extends ChromeBaseSettingsFragment {
@@ -30,6 +31,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
@VisibleForTesting
public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group";
@@ -142,8 +146,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
private HomepageManager mHomepageManager;
private RadioButtonGroupHomepagePreference mRadioButtons;
@@ -65,6 +68,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
});
@@ -64,6 +67,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
});
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
+ ChromeSwitchPreference mNTPIsHomepageSwitch =
@@ -161,26 +165,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
@@ -104,7 +104,6 @@ public class LaunchMetrics {
@@ -112,7 +112,6 @@ public class LaunchMetrics {
public static void recordHomePageLaunchMetrics(
boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
if (homepageGurl.isEmpty()) {
- assert !showHomeButton : "Homepage should be disabled for an empty GURL";
}
LaunchMetricsJni.get().recordHomePageLaunchMetrics(
showHomeButton, homepageIsNtp, homepageGurl);
LaunchMetricsJni.get()
.recordHomePageLaunchMetrics(showHomeButton, homepageIsNtp, homepageGurl);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.new_tab_url.DseNewTabUrlManager;
+import org.chromium.chrome.browser.homepage.HomepageManager;
import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
import org.chromium.chrome.browser.ntp.NewTabPageUtils;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
@@ -497,6 +498,13 @@ public class ChromeTabCreator extends TabCreator {
@@ -484,6 +485,13 @@ public class ChromeTabCreator extends TabCreator {
* @return the created tab.
*/
public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) {
@@ -197,18 +201,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
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
@@ -361,6 +361,7 @@ public final class ChromePreferenceKeys {
@@ -323,6 +323,7 @@ public final class ChromePreferenceKeys {
public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
+ public static final String HOMEPAGE_NTP_IS_HOMEPAGE = "newtabpage_is_homepage";
/**
* Key used to save homepage location set by enterprise policy
*/
/** Key used to save homepage location set by enterprise policy */
public static final String DEPRECATED_HOMEPAGE_LOCATION_POLICY =
"Chrome.Policy.HomepageLocation";
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
@@ -67,6 +67,7 @@ public class LegacyChromePreferenceKeys {
@@ -62,6 +62,7 @@ public class LegacyChromePreferenceKeys {
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
ChromePreferenceKeys.HOMEPAGE_ENABLED,
ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI,
@@ -219,7 +223,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
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
@@ -1431,6 +1431,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1334,6 +1334,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
Last hour
</message>
@@ -244,7 +248,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
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
@@ -1296,6 +1296,10 @@ inline constexpr char kUsedPolicyCertificates[] =
@@ -1311,6 +1311,10 @@ inline constexpr char kUsedPolicyCertificates[] =
// visible on the toolbar.
inline constexpr char kShowHomeButton[] = "browser.show_home_button";
+2 -2
View File
@@ -76,7 +76,7 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -56,6 +56,7 @@ struct EngineAndTier {
@@ -61,6 +61,7 @@ struct EngineAndTier {
// Default (for countries with no better engine set)
constexpr EngineAndTier engines_default[] = {
@@ -84,7 +84,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
{SearchEngineTier::kTopEngines, &google},
{SearchEngineTier::kTopEngines, &bing},
{SearchEngineTier::kTopEngines, &yahoo},
@@ -1608,6 +1609,8 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
@@ -1613,6 +1614,8 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
for (size_t i = 0; i < num_engines; i++) {
t_url.push_back(engines[i]);
}
+3 -3
View File
@@ -62,10 +62,10 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co
#include "components/feature_engagement/public/configuration.h"
#include "components/feature_engagement/public/event_constants.h"
#include "components/feature_engagement/public/feature_constants.h"
@@ -48,6 +49,12 @@ FeatureConfig CreateAlwaysTriggerConfig(const base::Feature* feature) {
@@ -66,6 +67,12 @@ absl::optional<FeatureConfig> GetClientSideFeatureConfig(
}
absl::optional<FeatureConfig> GetClientSideFeatureConfig(
const base::Feature* feature) {
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
+ absl::optional<FeatureConfig> config = FeatureConfig();
+ config->valid = false;
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -84,6 +84,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
@@ -85,6 +85,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
import org.chromium.components.browser_ui.settings.PaddedItemDecorationWithDivider;
import org.chromium.components.browser_ui.settings.SettingsLauncher;
@@ -20,17 +20,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment;
import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat;
@@ -436,8 +437,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -454,8 +455,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
finish();
return true;
} else if (item.getItemId() == R.id.menu_id_general_help) {
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show(
- this, getString(R.string.help_context_settings), null);
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
- .show(this, getString(R.string.help_context_settings), null);
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
+ ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed();
+ } else {
+ HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show(
+ this, getString(R.string.help_context_settings), null);
+ HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
+ .show(this, getString(R.string.help_context_settings), null);
+ }
return true;
}
@@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
@@ -97,4 +97,8 @@ public class SettingsUtils {
@@ -91,4 +91,8 @@ public class SettingsUtils {
ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility);
return true;
}
@@ -56,10 +56,10 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base
+import android.system.Os;
+import android.content.ContentProviderClient;
+
/**
* This class provides methods to access content URI schemes.
*/
@@ -89,6 +92,36 @@ public abstract class ContentUriUtils {
/** This class provides methods to access content URI schemes. */
public abstract class ContentUriUtils {
private static final String TAG = "ContentUriUtils";
@@ -87,6 +90,36 @@ public abstract class ContentUriUtils {
return -1;
}
+7 -7
View File
@@ -217,7 +217,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -271,6 +271,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
@@ -309,6 +309,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
}
}
@@ -231,7 +231,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() {
base::AutoLock locker(WebGLContextLimitLock());
DCHECK(webgl_context_limits_initialized_);
@@ -544,25 +551,6 @@ static String ExtractWebGLContextCreationError(
@@ -582,25 +589,6 @@ static String ExtractWebGLContextCreationError(
const Platform::GraphicsInfo& info) {
StringBuilder builder;
builder.Append("Could not create a WebGL context");
@@ -257,7 +257,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(),
builder);
builder.Append('.');
@@ -622,6 +610,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
@@ -660,6 +648,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
const CanvasContextCreationAttributesCore& attributes,
Platform::ContextType context_type,
Platform::GraphicsInfo* graphics_info) {
@@ -273,14 +273,14 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
@@ -1944,6 +1944,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
@@ -1952,6 +1952,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
DOMArrayBufferView* pixels,
int64_t offset);
+ static bool AllowWebglForHost(blink::CanvasRenderingContextHost* host);
+
// Record Canvas/OffscreenCanvas.RenderingContextDrawnTo at the first draw
// call.
void RecordUKMCanvasDrawnToAtFirstDrawCall();
void RecordANGLEImplementation();
private:
--
2.25.1
+3 -3
View File
@@ -194,7 +194,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
#include "third_party/blink/public/web/web_document.h"
@@ -781,6 +782,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -774,6 +775,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
// origin.
WebRTCIPHandlingPolicy policy =
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
@@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
@@ -255,6 +257,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
@@ -287,6 +289,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
if (kind != "audio" && kind != "video")
return nullptr;
@@ -245,7 +245,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
@@ -1004,6 +1006,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
@@ -1034,6 +1036,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
if (kind != "audio" && kind != "video")
return nullptr;
@@ -20,11 +20,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../network/public/mojom/network_context.mojom | 2 ++
.../core/frame/csp/content_security_policy.cc | 3 +++
.../blink/renderer/core/frame/local_frame.cc | 3 +++
.../blink/renderer/core/frame/local_frame.h | 6 +++---
.../blink/renderer/core/frame/local_frame.h | 4 +++-
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
.../renderer/core/frame/reporting_context.h | 7 +++++--
.../renderer/core/frame/reporting_observer.cc | 3 +--
20 files changed, 58 insertions(+), 27 deletions(-)
20 files changed, 58 insertions(+), 25 deletions(-)
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc
diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc
@@ -41,7 +41,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1314,6 +1314,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
@@ -1326,6 +1326,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
}
}
@@ -49,7 +49,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
std::vector<GURL> urls;
frame_host->ForEachRenderFrameHostWithAction(
@@ -1327,6 +1328,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
@@ -1339,6 +1340,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
});
return urls;
}
@@ -201,7 +201,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -13639,12 +13639,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
@@ -13593,12 +13593,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
base::Value::Dict body;
if (!reason.empty())
body.Set("reason", reason);
@@ -254,7 +254,7 @@ new file mode 100644
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -228,6 +228,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
@@ -227,6 +227,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
base::Seconds(30));
#if BUILDFLAG(ENABLE_REPORTING)
@@ -281,7 +281,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
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
@@ -475,10 +475,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
@@ -472,10 +472,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
const absl::optional<base::UnguessableToken>& reporting_source,
const net::NetworkAnonymizationKey& network_anonymization_key,
const absl::optional<std::string>& user_agent,
@@ -297,7 +297,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
--- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn
@@ -1438,7 +1438,6 @@ mojom("mojom") {
@@ -1435,7 +1435,6 @@ mojom("mojom") {
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
if (enable_reporting) {
@@ -308,7 +308,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -1201,6 +1201,7 @@ interface NetworkContext {
@@ -1197,6 +1197,7 @@ interface NetworkContext {
// provided |network_isolation_key|.
//
// Spec: https://w3c.github.io/reporting/#concept-reports
@@ -316,7 +316,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueReport(string type,
string group,
url.mojom.Url url,
@@ -1214,6 +1215,7 @@ interface NetworkContext {
@@ -1210,6 +1211,7 @@ interface NetworkContext {
// Note that this queued report will never be delivered if no reporting
// endpoint matching is registered for with the provided
// |network_isolation_key|.
@@ -335,7 +335,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
#include "base/containers/contains.h"
#include "base/debug/dump_without_crashing.h"
#include "services/network/public/cpp/web_sandbox_flags.h"
@@ -1164,6 +1165,7 @@ void ContentSecurityPolicy::ReportViolation(
@@ -1169,6 +1170,7 @@ void ContentSecurityPolicy::ReportViolation(
return;
}
@@ -343,7 +343,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
PostViolationReport(violation_data, context_frame, report_endpoints,
use_reporting_api);
@@ -1171,6 +1173,7 @@ void ContentSecurityPolicy::ReportViolation(
@@ -1176,6 +1178,7 @@ void ContentSecurityPolicy::ReportViolation(
// `context_frame` (i.e. we're not processing 'frame-ancestors').
if (delegate_ && !context_frame)
delegate_->DispatchViolationEvent(*violation_data, element);
@@ -354,7 +354,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -42,6 +42,7 @@
@@ -45,6 +45,7 @@
#include "build/build_config.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "mojo/public/cpp/system/message_pipe.h"
@@ -362,8 +362,8 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/content_security_policy.mojom-blink.h"
#include "services/network/public/mojom/source_location.mojom-blink.h"
@@ -2533,9 +2534,11 @@ void LocalFrame::MainFrameInteractive() {
}
@@ -2585,9 +2586,11 @@ void LocalFrame::MainFrameInteractive() {
v8_local_compile_hints_producer_->GenerateData();
}
+#if BUILDFLAG(ENABLE_REPORTING)
@@ -372,34 +372,30 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
}
+#endif
// static
void LocalFrame::NotifyUserActivation(
device::mojom::blink::DevicePostureProvider*
LocalFrame::GetDevicePostureProvider() {
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -35,9 +35,9 @@
#include "base/time/default_tick_clock.h"
#include "base/time/time.h"
#include "base/unguessable_token.h"
-#include "build/build_config.h"
@@ -38,6 +38,7 @@
#include "build/build_config.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "net/net_buildflags.h"
#include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
@@ -636,9 +636,9 @@ class CORE_EXPORT LocalFrame final
@@ -657,8 +658,9 @@ class CORE_EXPORT LocalFrame final
void FinishedScrollSequence();
SmoothScrollSequencer* GetSmoothScrollSequencer() const;
-
+#if BUILDFLAG(ENABLE_REPORTING)
mojom::blink::ReportingServiceProxy* GetReportingService();
-
+#endif
device::mojom::blink::DevicePostureProvider* GetDevicePostureProvider();
// Returns the frame host ptr. The interface returned is backed by an
// associated interface with the legacy Chrome IPC channel.
mojom::blink::LocalFrameHost& GetLocalFrameHostRemote() const;
diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc
--- a/third_party/blink/renderer/core/frame/reporting_context.cc
+++ b/third_party/blink/renderer/core/frame/reporting_context.cc
@@ -4,26 +4,27 @@ Subject: Allow building without supervised users
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 1 -
chrome/android/chrome_java_sources.gni | 1 -
.../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +----
chrome/browser/BUILD.gn | 6 ------
.../browser/extensions/api/settings_private/prefs_util.cc | 2 ++
chrome/browser/profiles/profile_impl.cc | 4 ++++
chrome/browser/profiles/profile_manager.cc | 4 ++++
chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++
.../browser/ui/webui/management/management_ui_handler.cc | 2 ++
components/supervised_user/buildflags.gni | 6 +-----
components/supervised_user/core/common/features.cc | 1 +
components/supervised_user/core/common/pref_names.h | 4 ++++
.../core/common/supervised_user_constants.cc | 2 ++
.../supervised_user/core/common/supervised_user_utils.cc | 8 ++++++++
14 files changed, 31 insertions(+), 17 deletions(-)
chrome/android/BUILD.gn | 1 -
chrome/android/chrome_java_sources.gni | 1 -
.../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +----
chrome/browser/BUILD.gn | 6 ------
.../extensions/api/settings_private/prefs_util.cc | 2 ++
chrome/browser/profiles/profile_impl.cc | 4 ++++
chrome/browser/profiles/profile_manager.cc | 4 ++++
chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++
.../browser/ui/webui/management/management_ui_handler.cc | 2 ++
components/supervised_user/buildflags.gni | 6 +-----
.../core/browser/supervised_user_preferences.cc | 2 +-
components/supervised_user/core/common/features.cc | 1 +
components/supervised_user/core/common/pref_names.h | 4 ++++
.../core/common/supervised_user_constants.cc | 2 ++
.../supervised_user/core/common/supervised_user_utils.cc | 9 ++++++---
15 files changed, 30 insertions(+), 21 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -3642,7 +3642,6 @@ generate_jni("chrome_jni_headers") {
@@ -3657,7 +3657,6 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java",
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java",
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java",
@@ -34,7 +35,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
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
@@ -1082,7 +1082,6 @@ chrome_java_sources = [
@@ -1075,7 +1075,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/suggestions/tile/TileGroupDelegateImpl.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/TopSitesTileView.java",
@@ -53,7 +54,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.third_party.android.swiperefresh.SwipeRefreshLayout;
import org.chromium.ui.base.DeviceFormFactor;
@@ -788,9 +787,7 @@ public class FeedSurfaceCoordinator
@@ -848,9 +847,7 @@ public class FeedSurfaceCoordinator
* Returns true if the supervised user feed should be displayed.
*/
public boolean shouldDisplaySupervisedFeed() {
@@ -67,7 +68,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3194,8 +3194,6 @@ static_library("browser") {
@@ -3161,8 +3161,6 @@ static_library("browser") {
"feed/android/refresh_task_scheduler_impl.cc",
"feed/android/refresh_task_scheduler_impl.h",
"feed/android/web_feed_bridge.cc",
@@ -76,7 +77,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"file_select_helper_contacts_android.cc",
"file_select_helper_contacts_android.h",
"first_run/android/first_run_prefs.cc",
@@ -3413,10 +3411,6 @@ static_library("browser") {
@@ -3381,10 +3379,6 @@ static_library("browser") {
"ssl/chrome_security_state_model_delegate.h",
"ssl/known_interception_disclosure_infobar.cc",
"ssl/known_interception_disclosure_infobar.h",
@@ -90,18 +91,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -1018,9 +1018,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
settings_api::PrefType::PREF_TYPE_BOOLEAN;
@@ -1001,9 +1001,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
settings_api::PrefType::kBoolean;
#endif
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
// Supervised Users. This setting is queried in our Tast tests (b/241943380).
(*s_allowlist)[::prefs::kSupervisedUserExtensionsMayRequestPermissions] =
settings_api::PrefType::PREF_TYPE_BOOLEAN;
settings_api::PrefType::kBoolean;
+#endif
#if BUILDFLAG(IS_CHROMEOS_LACROS)
(*s_allowlist)[::prefs::kUseAshProxy] =
(*s_allowlist)[::prefs::kUseAshProxy] = settings_api::PrefType::kBoolean;
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -135,7 +136,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1218,6 +1218,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1222,6 +1222,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
}
@@ -143,7 +144,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
bool force_supervised_user_id =
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -1239,6 +1240,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1243,6 +1244,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
supervised_user_id);
}
@@ -151,7 +152,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
#if !BUILDFLAG(IS_ANDROID)
if (profile->IsNewProfile()) {
profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false);
@@ -2034,8 +2036,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
@@ -2046,8 +2048,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
init_params.icon_index =
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
@@ -207,10 +208,22 @@ diff --git a/components/supervised_user/buildflags.gni b/components/supervised_u
- is_ios || is_linux || is_mac || is_win
+ enable_supervised_users = false
}
diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc
--- a/components/supervised_user/core/browser/supervised_user_preferences.cc
+++ b/components/supervised_user/core/browser/supervised_user_preferences.cc
@@ -173,7 +173,7 @@ bool IsChildAccountStatusKnown(const PrefService& pref_service) {
}
bool IsChildAccount(const PrefService& pref_service) {
- return pref_service.GetString(prefs::kSupervisedUserId) == kChildAccountSUID;
+ return false;
}
bool IsSafeSitesEnabled(const PrefService& pref_service) {
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
--- a/components/supervised_user/core/common/features.cc
+++ b/components/supervised_user/core/common/features.cc
@@ -171,4 +171,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
@@ -165,4 +165,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites);
}
@@ -259,36 +272,23 @@ diff --git a/components/supervised_user/core/common/supervised_user_constants.cc
diff --git a/components/supervised_user/core/common/supervised_user_utils.cc b/components/supervised_user/core/common/supervised_user_utils.cc
--- a/components/supervised_user/core/common/supervised_user_utils.cc
+++ b/components/supervised_user/core/common/supervised_user_utils.cc
@@ -76,11 +76,15 @@ GURL NormalizeUrl(const GURL& url) {
@@ -75,11 +75,14 @@ GURL NormalizeUrl(const GURL& url) {
}
bool AreWebFilterPrefsDefault(const PrefService& pref_service) {
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
return pref_service
.FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior)
->IsDefaultValue() ||
pref_service.FindPreference(prefs::kSupervisedUserSafeSites)
->IsDefaultValue();
+#else
+ return true;
+#endif // BUILDFLAG(ENABLE_SUPERVISED_USERS)
}
bool EmitLogSegmentHistogram(const std::vector<AccountInfo>& primary_accounts) {
@@ -107,10 +111,14 @@ bool EmitLogSegmentHistogram(const std::vector<AccountInfo>& primary_accounts) {
}
bool IsSubjectToParentalControls(const PrefService* pref_service) {
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
return pref_service &&
pref_service->GetString(prefs::kSupervisedUserId) ==
kChildAccountSUID &&
IsChildAccountSupervisionEnabled();
- ->IsDefaultValue() ||
- pref_service.FindPreference(prefs::kSupervisedUserSafeSites)
- ->IsDefaultValue();
+ kChildAccountSUID &&
+ IsChildAccountSupervisionEnabled();
+#else
+ return false;
+#endif
}
} // namespace supervised_user
bool EmitLogSegmentHistogram(const std::vector<AccountInfo>& primary_accounts) {
--
2.25.1
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
@@ -1178,6 +1178,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
@@ -1177,6 +1177,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
return pipeline_metadata_.has_audio;
}
@@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
const WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -3502,7 +3508,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
@@ -3504,7 +3510,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
: HasAudio();
// Audio only stream is allowed to play when in background.
@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
@@ -169,10 +169,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
@@ -152,10 +152,6 @@ public class HomepageManager
* tab page if the homepage button is force enabled via flag.
*/
public static GURL getDefaultHomepageGurl() {
@@ -26,25 +26,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
- }
-
String homepagePartnerDefaultGurlSerialized =
ChromeSharedPreferences.getInstance().readString(
ChromePreferenceKeys.HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL, "");
ChromeSharedPreferences.getInstance()
.readString(
diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
--- a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
+++ b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
@@ -215,7 +215,7 @@ public class PartnerBrowserCustomizations {
boolean systemOrPreStable =
(context.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) == 1
|| !VersionInfo.isStableBuild();
- if (!systemOrPreStable) {
+ if ((true)) {
// Only allow partner customization if this browser is a system package, or
// is in pre-stable channels.
return null;
@@ -212,7 +212,7 @@ public class PartnerBrowserCustomizations {
& ApplicationInfo.FLAG_SYSTEM)
== 1
|| !VersionInfo.isStableBuild();
- if (!systemOrPreStable) {
+ if ((true)) {
// Only allow partner customization if this browser is a system
// package, or is in pre-stable channels.
return null;
diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
--- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
+++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
@@ -75,6 +75,7 @@ public class TemplateUrl {
* prepopulated_engines.json.
@@ -69,6 +69,7 @@ public class TemplateUrl {
* prepopulated_engines.json.
*/
public String getNewTabURL() {
+ if ((true)) return null;
@@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -710,6 +710,22 @@ void ExecutionContext::WriteIntoTrace(
@@ -701,6 +701,22 @@ void ExecutionContext::WriteIntoTrace(
proto->set_world_type(GetWorldType(*this));
}
@@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -592,6 +592,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
@@ -593,6 +593,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
return should_block_request;
}
@@ -94,7 +94,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
--- a/components/url_formatter/url_fixer.cc
+++ b/components/url_formatter/url_fixer.cc
@@ -563,6 +563,10 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
@@ -576,6 +576,10 @@ GURL FixupURLInternal(const std::string& text,
}
}
@@ -108,7 +108,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -829,6 +829,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
@@ -841,6 +841,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
RegisterPseudoScheme(url::kJavaScriptScheme);
RegisterPseudoScheme(kViewSourceScheme);
RegisterPseudoScheme(kGoogleChromeScheme);
@@ -119,7 +119,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1058,6 +1058,8 @@ component("net") {
@@ -995,6 +995,8 @@ component("net") {
"url_request/url_request_http_job.cc",
"url_request/url_request_http_job.h",
"url_request/url_request_interceptor.cc",
@@ -212,7 +212,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
namespace net {
@@ -597,6 +599,12 @@ URLRequest::URLRequest(base::PassKey<URLRequestContext> pass_key,
@@ -591,6 +593,12 @@ URLRequest::URLRequest(base::PassKey<URLRequestContext> pass_key,
// Sanity check out environment.
DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault());
+68 -69
View File
@@ -14,16 +14,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../java/res/xml/about_chrome_preferences.xml | 5 +
.../about_settings/AboutChromeSettings.java | 28 +-
.../chrome/browser/omaha/OmahaBase.java | 57 +++-
.../chrome/browser/omaha/UpdateConfigs.java | 30 +-
.../chrome/browser/omaha/UpdateConfigs.java | 27 +-
.../browser/omaha/UpdateMenuItemHelper.java | 82 +++++-
.../browser/omaha/UpdateStatusProvider.java | 163 ++++++++---
.../browser/omaha/UpdateStatusProvider.java | 165 ++++++++---
.../browser/omaha/VersionNumberGetter.java | 3 +-
.../inline/BromiteInlineUpdateController.java | 272 ++++++++++++++++++
.../omaha/inline/InlineUpdateController.java | 51 ++++
.../inline/InlineUpdateControllerFactory.java | 21 ++
chrome/browser/endpoint_fetcher/BUILD.gn | 2 +
.../endpoint_fetcher_android.cc | 50 ++++
.../endpoint_fetcher/EndpointFetcher.java | 26 +-
.../endpoint_fetcher/EndpointFetcher.java | 27 ++
.../EndpointHeaderResponse.java | 31 ++
.../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
@@ -55,7 +55,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -1899,6 +1899,9 @@ if (enable_java_templates && is_android) {
@@ -1908,6 +1908,9 @@ if (enable_java_templates && is_android) {
sources = [ "//build/android/java/templates/BuildConfig.template" ]
defines = []
@@ -68,7 +68,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
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
@@ -878,6 +878,9 @@ chrome_java_sources = [
@@ -872,6 +872,9 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
@@ -96,7 +96,7 @@ diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/a
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java
@@ -21,14 +21,20 @@ import org.chromium.ui.widget.Toast;
@@ -21,12 +21,18 @@ import org.chromium.ui.widget.Toast;
import java.util.Calendar;
@@ -104,13 +104,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/
+import org.chromium.chrome.browser.omaha.OmahaBase;
+import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
+
/**
* Settings fragment that displays information about Chrome.
*/
public class AboutChromeSettings
- extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener {
+ extends PreferenceFragmentCompat implements Preference.OnPreferenceClickListener,
+ Preference.OnPreferenceChangeListener {
/** Settings fragment that displays information about Chrome. */
public class AboutChromeSettings extends PreferenceFragmentCompat
- implements Preference.OnPreferenceClickListener {
+ implements Preference.OnPreferenceClickListener,
+ Preference.OnPreferenceChangeListener {
private static final int TAPS_FOR_DEVELOPER_SETTINGS = 7;
private static final String PREF_APPLICATION_VERSION = "application_version";
@@ -118,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/
private static final String PREF_OS_VERSION = "os_version";
private static final String PREF_LEGAL_INFORMATION = "legal_information";
@@ -59,6 +65,13 @@ public class AboutChromeSettings
@@ -57,6 +63,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat
p = findPreference(PREF_LEGAL_INFORMATION);
int currentYear = Calendar.getInstance().get(Calendar.YEAR);
p.setSummary(getString(R.string.legal_information_summary, currentYear));
@@ -132,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/
}
/**
@@ -122,4 +135,17 @@ public class AboutChromeSettings
@@ -121,4 +134,17 @@ public class AboutChromeSettings extends PreferenceFragmentCompat
}
return true;
}
@@ -162,7 +160,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
/**
* Keeps tabs on the current state of Chrome, tracking if and when a request should be sent to the
* Omaha Server.
@@ -99,7 +101,10 @@ public class OmahaBase {
@@ -103,7 +105,10 @@ public class OmahaBase {
static final String PREF_TIMESTAMP_FOR_NEW_REQUEST = "timestampForNewRequest";
static final String PREF_TIMESTAMP_FOR_NEXT_POST_ATTEMPT = "timestampForNextPostAttempt";
static final String PREF_TIMESTAMP_OF_INSTALL = "timestampOfInstall";
@@ -174,7 +172,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
private static final int UNKNOWN_DATE = -2;
@@ -157,7 +162,8 @@ public class OmahaBase {
@@ -161,7 +166,8 @@ public class OmahaBase {
}
static boolean isDisabled() {
@@ -184,7 +182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
}
/**
@@ -569,6 +575,10 @@ public class OmahaBase {
@@ -599,6 +605,10 @@ public class OmahaBase {
/** Sends the request to the server and returns the response. */
static String sendRequestToServer(HttpURLConnection urlConnection, String request)
throws RequestFailureException {
@@ -195,7 +193,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase
try {
OutputStream out = new BufferedOutputStream(urlConnection.getOutputStream());
OutputStreamWriter writer = new OutputStreamWriter(out);
@@ -639,4 +649,47 @@ public class OmahaBase {
@@ -679,4 +689,47 @@ public class OmahaBase {
// updateStatus is only used for the on-demand check.
null);
}
@@ -281,7 +279,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateCon
}
/**
@@ -123,6 +132,13 @@ public class UpdateConfigs {
@@ -124,6 +133,13 @@ public class UpdateConfigs {
return DEFAULT_UPDATE_ATTRIBUTION_WINDOW_MS;
}
@@ -295,12 +293,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateCon
/**
* Gets a String VariationsAssociatedData parameter. Also checks for a command-line switch
* with the same name, for easy local testing.
@@ -137,4 +153,14 @@ public class UpdateConfigs {
@@ -137,4 +153,13 @@ public class UpdateConfigs {
}
return value;
}
-}
\ No newline at end of file
+
+ @UpdateFlowConfiguration
+ public static int getConfiguration() {
@@ -308,10 +304,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateCon
+ // Always use the the old flow if the inline update flow feature is not enabled.
+ return UpdateFlowConfiguration.INLINE_ONLY;
+ }
+
+ return UpdateFlowConfiguration.NEVER_SHOW;
+ }
+}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
@@ -323,7 +318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
import org.chromium.base.BuildInfo;
import org.chromium.base.Callback;
@@ -135,8 +136,21 @@ public class UpdateMenuItemHelper {
@@ -138,8 +139,21 @@ public class UpdateMenuItemHelper {
Log.e(TAG, "Failed to launch Activity for: %s", mStatus.updateUrl);
}
break;
@@ -339,13 +334,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
+ UpdateStatusProvider.getInstance().retryInlineUpdate(activity);
+ break;
case UpdateState.UNSUPPORTED_OS_VERSION:
// Intentional fall through.
// Intentional fall through.
+ case UpdateState.INLINE_UPDATE_DOWNLOADING:
+ // Intentional fall through.
default:
return;
}
@@ -182,7 +196,7 @@ public class UpdateMenuItemHelper {
@@ -188,7 +202,7 @@ public class UpdateMenuItemHelper {
mMenuUiState = new MenuUiState();
switch (mStatus.updateState) {
@@ -353,8 +348,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
+ case UpdateState.UPDATE_AVAILABLE: // this is not used in Bromite
// The badge is hidden if the update menu item has been clicked until there is an
// even newer version of Chrome available.
showBadge |= !TextUtils.equals(
@@ -237,6 +251,72 @@ public class UpdateMenuItemHelper {
showBadge |=
@@ -247,6 +261,72 @@ public class UpdateMenuItemHelper {
mMenuUiState.itemState.icon = R.drawable.ic_error_24dp_filled;
mMenuUiState.itemState.enabled = false;
break;
@@ -425,7 +420,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen
+ mMenuUiState.itemState.enabled = true;
+ break;
case UpdateState.NONE:
// Intentional fall through.
// Intentional fall through.
default:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java
@@ -667,7 +662,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
}
@Override
@@ -263,6 +348,8 @@ public class UpdateStatusProvider {
@@ -262,6 +347,8 @@ public class UpdateStatusProvider {
status.mIsSimulated = true;
status.updateState = forcedUpdateState;
@@ -676,7 +671,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
// Push custom configurations for certain update states.
switch (forcedUpdateState) {
case UpdateState.UPDATE_AVAILABLE:
@@ -279,29 +366,33 @@ public class UpdateStatusProvider {
@@ -279,31 +366,33 @@ public class UpdateStatusProvider {
return status;
}
@@ -688,20 +683,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
- status.updateUrl = MarketURLGetter.getMarketUrl();
- status.latestVersion = VersionNumberGetter.getInstance().getLatestKnownVersion();
-
- boolean allowedToUpdate = checkForSufficientStorage()
- // Disable the version update check for automotive. See b/297925838.
- && !BuildInfo.getInstance().isAutomotive
- && PackageUtils.isPackageInstalled(
- GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE);
- boolean allowedToUpdate =
- checkForSufficientStorage()
- // Disable the version update check for automotive. See b/297925838.
- && !BuildInfo.getInstance().isAutomotive
- && PackageUtils.isPackageInstalled(
- GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE);
- status.updateState =
- allowedToUpdate ? UpdateState.UPDATE_AVAILABLE : UpdateState.NONE;
-
- ChromeSharedPreferences.getInstance().removeKey(
- ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION);
- ChromeSharedPreferences.getInstance()
- .removeKey(ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION);
- } else if (!VersionNumberGetter.isCurrentOsVersionSupported()) {
- status.updateState = UpdateState.UNSUPPORTED_OS_VERSION;
- status.latestUnsupportedVersion = ChromeSharedPreferences.getInstance().readString(
- ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION, null);
- status.latestUnsupportedVersion =
- ChromeSharedPreferences.getInstance()
- .readString(ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION, null);
- } else {
- status.updateState = UpdateState.NONE;
+ SharedPreferences preferences = OmahaBase.getSharedPreferences();
@@ -734,7 +731,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
@@ -50,7 +50,8 @@ public class VersionNumberGetter {
@@ -51,7 +51,8 @@ public class VersionNumberGetter {
private static VersionNumberGetter sInstanceForTests;
/** If false, OmahaClient will never report that a newer version is available. */
@@ -742,7 +739,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNu
+ // it must be false to disable version control via Omaha server
+ private static boolean sEnableUpdateDetection = false;
protected VersionNumberGetter() { }
protected VersionNumberGetter() {}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
new file mode 100644
@@ -1209,8 +1206,8 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom
diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
--- a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
+++ b/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browser/endpoint_fetcher/EndpointFetcher.java
@@ -71,6 +71,24 @@ public final class EndpointFetcher {
postData, timeout, headers, annotation.getHashCode(), callback);
@@ -104,6 +104,24 @@ public final class EndpointFetcher {
callback);
}
+ @MainThread
@@ -1233,18 +1230,20 @@ diff --git a/chrome/browser/endpoint_fetcher/java/src/org/chromium/chrome/browse
+
@NativeMethods
public interface Natives {
void nativeFetchOAuth(Profile profile, String oathConsumerName, String url,
@@ -79,7 +97,13 @@ public final class EndpointFetcher {
void nativeFetchChromeAPIKey(Profile profile, String url, String httpsMethod,
String contentType, String postData, long timeout, String[] headers,
int annotationHashCode, Callback<EndpointResponse> callback);
- void nativeFetchWithNoAuth(Profile profile, String url, int annotationHashCode,
+ void nativeFetchWithNoAuth(
+ Profile profile, String url, long timeout, boolean allow_redirect,
+ int annotationHashCode,
void nativeFetchOAuth(
@@ -132,7 +150,16 @@ public final class EndpointFetcher {
void nativeFetchWithNoAuth(
Profile profile,
String url,
+ long timeout,
+ boolean allow_redirect,
int annotationHashCode,
Callback<EndpointResponse> callback);
+ void nativeHeadWithNoAuth(
+ Profile profile, String url, long timeout, boolean allow_redirect,
+ Profile profile,
+ String url,
+ long timeout,
+ boolean allow_redirect,
+ int annotationHashCode,
+ Callback<EndpointHeaderResponse> callback);
}
@@ -1288,10 +1287,10 @@ new file mode 100644
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
@@ -269,6 +269,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kPageAnnotationsService,
&kPaintPreviewNewColdStartHeuristic,
@@ -264,6 +264,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kPreconnectOnTabCreation,
&kPriceChangeModule,
&kPwaRestoreUi,
+ &kInlineUpdateFlow,
&kBookmarksImprovedSaveFlow,
&kBookmarksRefresh,
@@ -1299,18 +1298,18 @@ 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
@@ -304,6 +304,7 @@ public abstract class ChromeFeatureList {
@@ -303,6 +303,7 @@ public abstract class ChromeFeatureList {
"IncognitoReauthenticationForAndroid";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INFOBAR_SCROLL_OPTIMIZATION = "InfobarScrollOptimization";
+ public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow";
public static final String INSTALLABLE_AMBIENT_BADGE_INFOBAR = "InstallableAmbientBadgeInfoBar";
public static final String INSTALLABLE_AMBIENT_BADGE_MESSAGE = "InstallableAmbientBadgeMessage";
public static final String INSTANCE_SWITCHER = "InstanceSwitcher";
public static final String INSTANT_START = "InstantStart";
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
@@ -2109,6 +2109,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2012,6 +2012,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
Chrome updates are no longer supported for this version of Android
</message>
@@ -1323,7 +1322,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Account management UI strings. -->
<message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
@@ -3746,7 +3752,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3640,7 +3646,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@@ -1335,7 +1334,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
Newer version is available
@@ -3757,6 +3766,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3651,6 +3660,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
Android version is unsupported
</message>
@@ -1474,7 +1473,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
network::SimpleURLLoader::RETRY_ON_5XX);
- simple_url_loader_->SetTimeoutDuration(base::Milliseconds(timeout_ms_));
- simple_url_loader_->SetAllowHttpErrorResults(true);
- network::SimpleURLLoader::BodyAsStringCallback body_as_string_callback =
- network::SimpleURLLoader::BodyAsStringCallbackDeprecated
+
+ LOG(INFO) << "performing " << http_method_ << " request to " << url_;
+ if (base::EqualsCaseInsensitiveASCII(http_method_, "HEAD")) {
@@ -1485,10 +1484,10 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
+ base::BindOnce(&EndpointFetcher::OnURLLoadComplete,
+ base::Unretained(this)));
+ } else {
+ network::SimpleURLLoader::BodyAsStringCallback body_as_string_callback =
base::BindOnce(&EndpointFetcher::OnResponseFetched,
weak_ptr_factory_.GetWeakPtr(),
std::move(endpoint_fetcher_callback));
+ network::SimpleURLLoader::BodyAsStringCallbackDeprecated
body_as_string_callback = base::BindOnce(
&EndpointFetcher::OnResponseFetched, weak_ptr_factory_.GetWeakPtr(),
std::move(endpoint_fetcher_callback));
- simple_url_loader_->DownloadToString(
- url_loader_factory_.get(), std::move(body_as_string_callback),
- network::SimpleURLLoader::kMaxBoundedStringDownloadSize);

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