Patches for v133 (need check)
This commit is contained in:
@@ -145,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -61,8 +67,23 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -62,8 +68,23 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
getOnBackPressedDispatcher(),
|
||||
mBookmarkManagerCoordinator,
|
||||
SecondaryActivity.BOOKMARK);
|
||||
@@ -169,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
@@ -72,6 +93,7 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -73,6 +94,7 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
@@ -177,7 +177,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
|
||||
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
|
||||
BookmarkId bookmarkId =
|
||||
BookmarkId.getBookmarkIdFromString(
|
||||
@@ -85,6 +107,14 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
@@ -86,6 +108,14 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
return new ModalDialogManager(new AppModalPresenter(this), ModalDialogType.APP);
|
||||
}
|
||||
|
||||
@@ -195,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
@@ -33,6 +33,48 @@ import org.chromium.url.GURL;
|
||||
@@ -34,6 +34,48 @@ import org.chromium.url.GURL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -244,10 +244,43 @@ 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.
|
||||
@@ -474,6 +516,212 @@ class BookmarkBridge {
|
||||
@@ -490,6 +532,245 @@ class BookmarkBridge {
|
||||
.getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType());
|
||||
}
|
||||
|
||||
+ @CalledByNative
|
||||
+ public void bookmarksExported(WindowAndroid window, String bookmarksPath, boolean success) {
|
||||
+ Uri uri = Uri.parse(bookmarksPath);
|
||||
+
|
||||
+ if (success == false) {
|
||||
+ ((Activity)window.getContext().get()).runOnUiThread(new Runnable() {
|
||||
+ public void run() {
|
||||
+ window.showError(R.string.saving_file_error);
|
||||
+ }
|
||||
+ });
|
||||
+ } else {
|
||||
+ SharedPreferencesManager sharedPrefs = ChromeSharedPreferences.getInstance();
|
||||
+ sharedPrefs.writeString(ChromePreferenceKeys.BOOKMARKS_LAST_EXPORT_URI, bookmarksPath);
|
||||
+
|
||||
+ Context context = ContextUtils.getApplicationContext();
|
||||
+
|
||||
+ Intent intent = new Intent(Intent.ACTION_VIEW,
|
||||
+ ContentUriUtils.isContentUri(bookmarksPath) ?
|
||||
+ Uri.parse(bookmarksPath) : Uri.parse("file://" + bookmarksPath));
|
||||
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID,
|
||||
+ context.getPackageName());
|
||||
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
+ intent.putExtra(IntentHandler.EXTRA_PAGE_TRANSITION_TYPE, PageTransition.AUTO_BOOKMARK);
|
||||
+
|
||||
+ // If the bookmark manager is shown in a tab on a phone (rather than in a separate
|
||||
+ // activity) the component name may be null. Send the intent through
|
||||
+ // ChromeLauncherActivity instead to avoid crashing. See crbug.com/615012.
|
||||
+ intent.setClass(context, ChromeLauncherActivity.class);
|
||||
+
|
||||
+ IntentHandler.startActivityForTrustedIntent(intent);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Import bookmarks from a selected file.
|
||||
+ * @param window The current window of the bookmarks activity or page.
|
||||
@@ -457,47 +490,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.
|
||||
*
|
||||
@@ -1032,6 +1280,39 @@ class BookmarkBridge {
|
||||
BookmarkUtils.clearLastUsedPrefs();
|
||||
}
|
||||
|
||||
+ @CalledByNative
|
||||
+ public void bookmarksExported(WindowAndroid window, String bookmarksPath, boolean success) {
|
||||
+ Uri uri = Uri.parse(bookmarksPath);
|
||||
+
|
||||
+ if (success == false) {
|
||||
+ ((Activity)window.getContext().get()).runOnUiThread(new Runnable() {
|
||||
+ public void run() {
|
||||
+ window.showError(R.string.saving_file_error);
|
||||
+ }
|
||||
+ });
|
||||
+ } else {
|
||||
+ SharedPreferencesManager sharedPrefs = ChromeSharedPreferences.getInstance();
|
||||
+ sharedPrefs.writeString(ChromePreferenceKeys.BOOKMARKS_LAST_EXPORT_URI, bookmarksPath);
|
||||
+
|
||||
+ Context context = ContextUtils.getApplicationContext();
|
||||
+
|
||||
+ Intent intent = new Intent(Intent.ACTION_VIEW,
|
||||
+ ContentUriUtils.isContentUri(bookmarksPath) ?
|
||||
+ Uri.parse(bookmarksPath) : Uri.parse("file://" + bookmarksPath));
|
||||
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID,
|
||||
+ context.getPackageName());
|
||||
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
+ intent.putExtra(IntentHandler.EXTRA_PAGE_TRANSITION_TYPE, PageTransition.AUTO_BOOKMARK);
|
||||
+
|
||||
+ // If the bookmark manager is shown in a tab on a phone (rather than in a separate
|
||||
+ // activity) the component name may be null. Send the intent through
|
||||
+ // ChromeLauncherActivity instead to avoid crashing. See crbug.com/615012.
|
||||
+ intent.setClass(context, ChromeLauncherActivity.class);
|
||||
+
|
||||
+ IntentHandler.startActivityForTrustedIntent(intent);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
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++) {
|
||||
@@ -1094,6 +1375,10 @@ class BookmarkBridge {
|
||||
@@ -1102,6 +1383,10 @@ class BookmarkBridge {
|
||||
void getChildIds(
|
||||
long nativeBookmarkBridge, long id, int type, List<BookmarkId> bookmarksList);
|
||||
|
||||
@@ -531,7 +524,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;
|
||||
@@ -54,6 +54,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;
|
||||
@@ -540,7 +533,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;
|
||||
@@ -302,6 +304,13 @@ public class BookmarkManagerCoordinator
|
||||
@@ -334,6 +336,13 @@ public class BookmarkManagerCoordinator
|
||||
|
||||
// Public API implementation.
|
||||
|
||||
@@ -557,7 +550,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
|
||||
@@ -57,6 +57,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver;
|
||||
@@ -59,6 +59,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver;
|
||||
import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
import org.chromium.components.power_bookmarks.PowerBookmarkMeta;
|
||||
import org.chromium.components.power_bookmarks.PowerBookmarkType;
|
||||
@@ -566,7 +559,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
import org.chromium.ui.accessibility.AccessibilityState;
|
||||
import org.chromium.ui.listmenu.ListMenu;
|
||||
import org.chromium.ui.listmenu.ListMenuItemProperties;
|
||||
@@ -81,6 +83,9 @@ class BookmarkManagerMediator
|
||||
@@ -85,6 +87,9 @@ class BookmarkManagerMediator
|
||||
|
||||
private static boolean sPreventLoadingForTesting;
|
||||
|
||||
@@ -576,7 +569,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;
|
||||
@@ -552,6 +557,14 @@ class BookmarkManagerMediator
|
||||
@@ -571,6 +576,14 @@ class BookmarkManagerMediator
|
||||
mNativePage = nativePage;
|
||||
}
|
||||
|
||||
@@ -591,7 +584,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.
|
||||
@@ -732,6 +745,16 @@ class BookmarkManagerMediator
|
||||
@@ -752,6 +765,16 @@ class BookmarkManagerMediator
|
||||
}
|
||||
}
|
||||
|
||||
@@ -630,9 +623,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
super(host);
|
||||
|
||||
mBookmarkManagerCoordinator =
|
||||
@@ -43,6 +46,9 @@ public class BookmarkPage extends BasicNativePage {
|
||||
profile,
|
||||
new BookmarkUiPrefs(ChromeSharedPreferences.getInstance()));
|
||||
@@ -44,6 +47,9 @@ public class BookmarkPage extends BasicNativePage {
|
||||
new BookmarkUiPrefs(ChromeSharedPreferences.getInstance()),
|
||||
/* bookmarkOpenedCallback= */ null);
|
||||
mBookmarkManagerCoordinator.setBasicNativePage(this);
|
||||
+ mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(),
|
||||
+ new ModalDialogManager(
|
||||
@@ -800,7 +793,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
|
||||
Supplier<NewTabPageUma> uma,
|
||||
BottomSheetController sheetController,
|
||||
BrowserControlsManager browserControlsManager,
|
||||
@@ -243,7 +244,7 @@ public class NativePageFactory {
|
||||
@@ -242,7 +243,7 @@ public class NativePageFactory {
|
||||
mActivity.getComponentName(),
|
||||
mSnackbarManagerSupplier.get(),
|
||||
tab.getProfile(),
|
||||
@@ -812,7 +805,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
|
||||
@@ -205,6 +205,8 @@ static_library("browser") {
|
||||
@@ -207,6 +207,8 @@ static_library("browser") {
|
||||
"bluetooth/chrome_bluetooth_delegate_impl_client.h",
|
||||
"bookmarks/bookmark_model_factory.cc",
|
||||
"bookmarks/bookmark_model_factory.h",
|
||||
@@ -821,7 +814,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",
|
||||
@@ -1679,6 +1681,13 @@ static_library("browser") {
|
||||
@@ -1661,6 +1663,13 @@ static_library("browser") {
|
||||
"webid/identity_provider_permission_request.h",
|
||||
]
|
||||
|
||||
@@ -835,7 +828,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
configs += [
|
||||
"//build/config/compiler:wexit_time_destructors",
|
||||
"//build/config:precompiled_headers",
|
||||
@@ -3486,8 +3495,6 @@ static_library("browser") {
|
||||
@@ -3475,8 +3484,6 @@ static_library("browser") {
|
||||
"bookmarks/bookmark_expanded_state_tracker.h",
|
||||
"bookmarks/bookmark_expanded_state_tracker_factory.cc",
|
||||
"bookmarks/bookmark_expanded_state_tracker_factory.h",
|
||||
@@ -974,7 +967,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
class BookmarkTitleComparer {
|
||||
public:
|
||||
explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
|
||||
@@ -228,6 +335,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
@@ -229,6 +336,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
partner_bookmarks_shim_observation_.Reset();
|
||||
bookmark_model_observation_.Reset();
|
||||
profile_observation_.Reset();
|
||||
@@ -985,7 +978,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv* env) {
|
||||
@@ -767,6 +878,172 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -768,6 +879,172 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -1164,7 +1157,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "base/supports_user_data.h"
|
||||
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
|
||||
#include "chrome/browser/partnerbookmarks/partner_bookmarks_shim.h"
|
||||
+#include "chrome/browser/bookmarks/bookmark_html_writer.h"
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/profiles/profile_observer.h"
|
||||
@@ -1336,7 +1329,7 @@ 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
|
||||
@@ -206,6 +206,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
@@ -216,6 +216,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kCCTAuthTab,
|
||||
&kCCTAuthTabDisableAllExternalIntents,
|
||||
&kCCTAuthTabEnableHttpsRedirects,
|
||||
@@ -1347,7 +1340,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
|
||||
@@ -546,6 +546,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -579,6 +579,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID =
|
||||
"UseLibunwindstackNativeUnwinderAndroid";
|
||||
public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService";
|
||||
@@ -1401,7 +1394,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
|
||||
@@ -103,6 +103,8 @@ public final class ChromePreferenceKeys {
|
||||
@@ -115,6 +115,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";
|
||||
@@ -1410,8 +1403,8 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
||||
|
||||
/** Whether Chrome is set as the default browser. Default value is false. */
|
||||
public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser";
|
||||
@@ -919,6 +921,7 @@ public final class ChromePreferenceKeys {
|
||||
AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED,
|
||||
@@ -935,6 +937,7 @@ public final class ChromePreferenceKeys {
|
||||
AUXILIARY_SEARCH_IS_SCHEMA_SET,
|
||||
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
|
||||
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
|
||||
+ BOOKMARKS_LAST_EXPORT_URI,
|
||||
@@ -1449,7 +1442,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
|
||||
@@ -359,6 +359,9 @@ static_library("common_lib") {
|
||||
@@ -360,6 +360,9 @@ static_library("common_lib") {
|
||||
sources += [
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
@@ -1633,15 +1626,15 @@ new file mode 100644
|
||||
diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
--- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
+++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
||||
@@ -45,6 +45,7 @@ import org.chromium.base.task.AsyncTask;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.base.task.TaskTraits;
|
||||
@@ -49,6 +49,7 @@ import org.chromium.build.annotations.NullMarked;
|
||||
import org.chromium.build.annotations.NullUnmarked;
|
||||
import org.chromium.build.annotations.Nullable;
|
||||
import org.chromium.ui.R;
|
||||
+import org.chromium.ui.widget.Toast;
|
||||
import org.chromium.ui.UiUtils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -67,6 +68,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -72,6 +73,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
private static final String TAG = "SelectFileDialog";
|
||||
private static final String IMAGE_TYPE = "image";
|
||||
private static final String VIDEO_TYPE = "video";
|
||||
@@ -1649,7 +1642,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
||||
private static final String AUDIO_TYPE = "audio";
|
||||
private static final String ALL_TYPES = "*/*";
|
||||
private static final String GENERIC_TYPE = "application/octet-stream";
|
||||
@@ -312,6 +314,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -324,6 +326,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
mMimeTypes = convertToSupportedMimeTypes(mFileTypes);
|
||||
}
|
||||
|
||||
@@ -1661,7 +1654,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
||||
/**
|
||||
* Creates and starts an intent based on the passed fileTypes and capture value.
|
||||
*
|
||||
@@ -374,7 +381,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -399,7 +406,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
List<String> missingPermissions = new ArrayList<>();
|
||||
String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE;
|
||||
boolean shouldUsePhotoPicker = shouldUsePhotoPicker();
|
||||
@@ -1670,7 +1663,7 @@ 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
|
||||
@@ -427,7 +434,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -452,7 +459,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
|
||||
// TODO(finnur): Remove once we figure out the cause of
|
||||
// crbug.com/950024.
|
||||
@@ -1679,7 +1672,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
||||
if (permissions.length != requestPermissions.length) {
|
||||
throw new RuntimeException(
|
||||
String.format(
|
||||
@@ -444,7 +451,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -469,7 +476,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1688,7 +1681,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
||||
if (permissions[i].equals(storagePermission)
|
||||
|| permissions[i].equals(
|
||||
Manifest.permission.READ_MEDIA_IMAGES)
|
||||
@@ -751,6 +758,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -775,6 +782,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
mimeTypes.add(mimeType);
|
||||
}
|
||||
}
|
||||
@@ -1696,7 +1689,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
||||
return mimeTypes;
|
||||
}
|
||||
|
||||
@@ -1121,6 +1129,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -1149,6 +1157,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
return countAcceptTypesFor(superType) == mMimeTypes.size();
|
||||
}
|
||||
|
||||
@@ -1735,8 +1728,8 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
--- a/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
+++ b/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
@@ -161,6 +161,12 @@ void SelectFileDialogImpl::SelectFileImpl(
|
||||
accept_multiple_files, owning_window->GetJavaObject());
|
||||
@@ -175,6 +175,12 @@ void SelectFileDialogImpl::SelectFileImpl(
|
||||
owning_window->GetJavaObject());
|
||||
}
|
||||
|
||||
+void SelectFileDialogImpl::ShowToast(const std::string& message) {
|
||||
|
||||
@@ -21,7 +21,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
build/android/gyp/java_cpp_features.py | 17 ++
|
||||
chrome/android/java/res/values/values.xml | 3 +
|
||||
.../java/res/xml/privacy_preferences.xml | 4 +
|
||||
.../settings/AccessibilitySettings.java | 5 +-
|
||||
.../homepage/settings/HomepageSettings.java | 2 +-
|
||||
.../privacy/settings/PrivacySettings.java | 2 +-
|
||||
.../settings/FragmentDependencyProvider.java | 10 +-
|
||||
@@ -43,6 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
chrome/browser/ui/ui_features.cc | 1 +
|
||||
chrome/common/chrome_features.cc | 1 +
|
||||
.../res/xml/accessibility_preferences.xml | 3 +-
|
||||
.../accessibility/AccessibilitySettings.java | 6 +-
|
||||
.../android/java/res/values/attrs.xml | 4 +
|
||||
.../settings/ChromeSwitchPreference.java | 20 ++
|
||||
.../components/cached_flags/CachedFlag.java | 9 +-
|
||||
@@ -104,7 +104,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
third_party/blink/public/common/features.h | 1 +
|
||||
ui/base/ui_base_features.cc | 1 +
|
||||
ui/base/ui_base_features.h | 1 +
|
||||
91 files changed, 801 insertions(+), 28 deletions(-)
|
||||
91 files changed, 802 insertions(+), 28 deletions(-)
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp
|
||||
@@ -141,7 +141,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
diff --git a/base/BUILD.gn b/base/BUILD.gn
|
||||
--- a/base/BUILD.gn
|
||||
+++ b/base/BUILD.gn
|
||||
@@ -163,6 +163,8 @@ use_epoll = is_linux || is_chromeos || is_android
|
||||
@@ -165,6 +165,8 @@ use_epoll = is_linux || is_chromeos || is_android
|
||||
# This does not include test code (test support and anything in the test
|
||||
# directory) which should use source_set as is recommended for GN targets).
|
||||
component("base") {
|
||||
@@ -150,7 +150,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
|
||||
sources = [
|
||||
"allocator/allocator_check.cc",
|
||||
"allocator/allocator_check.h",
|
||||
@@ -1005,7 +1007,7 @@ component("base") {
|
||||
@@ -1017,7 +1019,7 @@ component("base") {
|
||||
"//build/config/compiler:wglobal_constructors",
|
||||
]
|
||||
|
||||
@@ -177,8 +177,8 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
|
||||
diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java
|
||||
--- a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java
|
||||
+++ b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java
|
||||
@@ -16,7 +16,7 @@ import java.util.Map;
|
||||
/** Keeps track of values returned for cached flags and field trial parameters. */
|
||||
@@ -18,7 +18,7 @@ import java.util.Map;
|
||||
@NullMarked
|
||||
public abstract class ValuesReturned {
|
||||
@GuardedBy("sBoolValues")
|
||||
- private static final Map<String, Boolean> sBoolValues = new HashMap<>();
|
||||
@@ -221,7 +221,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
|
||||
namespace {
|
||||
|
||||
// Pointer to the FeatureList instance singleton that was set via
|
||||
@@ -469,6 +494,46 @@ bool FeatureList::IsEnabled(const Feature& feature) {
|
||||
@@ -473,6 +498,46 @@ bool FeatureList::IsEnabled(const Feature& feature) {
|
||||
return g_feature_list_instance->IsFeatureEnabled(feature);
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
|
||||
// static
|
||||
bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) {
|
||||
return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos;
|
||||
@@ -735,6 +800,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor,
|
||||
@@ -743,6 +808,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor,
|
||||
|
||||
void FeatureList::FinalizeInitialization() {
|
||||
DCHECK(!initialized_);
|
||||
@@ -289,7 +289,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
|
||||
@@ -166,8 +166,10 @@ enum class FeatureMacroHandshake { kSecret };
|
||||
@@ -170,8 +170,10 @@ enum class FeatureMacroHandshake { kSecret };
|
||||
struct BASE_EXPORT LOGICALLY_CONST Feature {
|
||||
constexpr Feature(const char* name,
|
||||
FeatureState default_state,
|
||||
@@ -302,7 +302,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
|
||||
#if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX)
|
||||
if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) ==
|
||||
0) {
|
||||
@@ -194,6 +196,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
|
||||
@@ -198,6 +200,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
|
||||
// command line switch.
|
||||
const FeatureState default_state;
|
||||
|
||||
@@ -312,7 +312,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
|
||||
private:
|
||||
friend class FeatureList;
|
||||
|
||||
@@ -469,6 +474,11 @@ class BASE_EXPORT FeatureList {
|
||||
@@ -477,6 +482,11 @@ class BASE_EXPORT FeatureList {
|
||||
// instance, which is checked in builds with DCHECKs enabled.
|
||||
static bool IsEnabled(const Feature& feature);
|
||||
|
||||
@@ -324,7 +324,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
|
||||
@@ -734,4 +744,62 @@ class BASE_EXPORT FeatureList {
|
||||
@@ -746,4 +756,62 @@ class BASE_EXPORT FeatureList {
|
||||
|
||||
} // namespace base
|
||||
|
||||
@@ -434,7 +434,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -55,6 +55,10 @@ found in the LICENSE file.
|
||||
@@ -54,6 +54,10 @@ found in the LICENSE file.
|
||||
android:key="do_not_track"
|
||||
android:title="@string/do_not_track_title"
|
||||
android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" />
|
||||
@@ -445,35 +445,6 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
<Preference
|
||||
android:key="preload_pages"
|
||||
android:title="@string/preload_pages_title"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
@@ -19,6 +19,7 @@ import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.image_descriptions.ImageDescriptionsController;
|
||||
import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
|
||||
+import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||
import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate;
|
||||
import org.chromium.components.browser_ui.accessibility.FontSizePrefs;
|
||||
import org.chromium.components.browser_ui.accessibility.PageZoomPreference;
|
||||
@@ -37,7 +38,7 @@ import org.chromium.content_public.browser.ContentFeatureList;
|
||||
import org.chromium.content_public.browser.ContentFeatureMap;
|
||||
|
||||
/** Fragment to keep track of all the accessibility related preferences. */
|
||||
-public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
+public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener {
|
||||
public static final String PREF_PAGE_ZOOM_DEFAULT_ZOOM = "page_zoom_default_zoom";
|
||||
public static final String PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT =
|
||||
@@ -85,7 +86,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
}
|
||||
|
||||
@Override
|
||||
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
+ public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) {
|
||||
SettingsUtils.addPreferencesFromResource(this, R.xml.accessibility_preferences);
|
||||
|
||||
mPageZoomDefaultZoomPref = (PageZoomPreference) findPreference(PREF_PAGE_ZOOM_DEFAULT_ZOOM);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||
@@ -489,7 +460,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -81,7 +81,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
@@ -89,7 +89,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
|
||||
|
||||
@Override
|
||||
@@ -509,7 +480,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
|
||||
import org.chromium.base.supplier.ObservableSupplier;
|
||||
import org.chromium.base.supplier.OneshotSupplier;
|
||||
import org.chromium.chrome.browser.LaunchIntentDispatcher;
|
||||
@@ -78,18 +79,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
@@ -76,18 +77,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
private final OneshotSupplier<SnackbarManager> mSnackbarManagerSupplier;
|
||||
private final OneshotSupplier<BottomSheetController> mBottomSheetControllerSupplier;
|
||||
private final ObservableSupplier<ModalDialogManager> mModalDialogManagerSupplier;
|
||||
@@ -532,7 +503,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,6 +102,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
@@ -96,6 +100,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
@NonNull Fragment fragment,
|
||||
@NonNull Context unusedContext) {
|
||||
// Common dependencies attachments.
|
||||
@@ -644,9 +615,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
namespace about_flags {
|
||||
|
||||
namespace {
|
||||
@@ -4315,6 +4319,10 @@ const FeatureEntry::FeatureVariation kServiceWorkerAutoPreloadVariations[] = {
|
||||
std::size(kServiceWorkerAutoPreload_SWNotRunningOnly), nullptr},
|
||||
};
|
||||
@@ -4313,6 +4317,10 @@ const FeatureEntry::FeatureVariation kMerchantTrustVariations[] = {
|
||||
std::size(kMerchantTrustEnabledWithSampleData), nullptr}};
|
||||
#endif // !BUILDFLAG(IS_ANDROID)
|
||||
|
||||
+#define FEATURE_PARAM_SECTION
|
||||
+#include "cromite_flags/chrome_browser_about_flags_cc.inc"
|
||||
@@ -655,7 +626,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.
|
||||
@@ -4341,6 +4349,9 @@ const FeatureEntry::FeatureVariation kServiceWorkerAutoPreloadVariations[] = {
|
||||
@@ -4339,6 +4347,9 @@ const FeatureEntry::FeatureVariation kMerchantTrustVariations[] = {
|
||||
const FeatureEntry kFeatureEntries[] = {
|
||||
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
|
||||
// //tools/flags/generate_unexpire_flags.py.
|
||||
@@ -668,7 +639,7 @@ 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
|
||||
@@ -372,4 +372,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture,
|
||||
@@ -352,4 +352,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture,
|
||||
"RemovalOfIWAsFromTabCapture",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
@@ -677,7 +648,7 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature
|
||||
diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h
|
||||
--- a/chrome/browser/browser_features.h
|
||||
+++ b/chrome/browser/browser_features.h
|
||||
@@ -145,6 +145,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture);
|
||||
@@ -136,6 +136,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture);
|
||||
// module, e.g.
|
||||
// //chrome/browser/<foo_module>/features.h
|
||||
//
|
||||
@@ -701,9 +672,9 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
||||
"//base:base_java",
|
||||
+ "//base:base_cached_flags_java",
|
||||
"//base/version_info/android:version_constants_java",
|
||||
"//build:android_buildflags",
|
||||
"//build:chromeos_buildflags",
|
||||
"//build/android:build_java",
|
||||
@@ -24,12 +29,20 @@ android_library("java") {
|
||||
@@ -25,12 +30,20 @@ android_library("java") {
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
]
|
||||
srcjar_deps = [
|
||||
@@ -727,7 +698,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
|
||||
@@ -1063,5 +1063,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString,
|
||||
@@ -1133,5 +1133,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString,
|
||||
"WebOtpCrossDeviceSimpleString",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
@@ -737,7 +708,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
|
||||
@@ -215,6 +215,7 @@ constexpr base::FeatureParam<std::string> kQuickDeleteAndroidSurveyTriggerId(
|
||||
@@ -225,6 +225,7 @@ constexpr base::FeatureParam<std::string> kQuickDeleteAndroidSurveyTriggerId(
|
||||
"trigger_id",
|
||||
/*default_value=*/"");
|
||||
|
||||
@@ -748,9 +719,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
|
||||
@@ -17,6 +17,10 @@ import org.chromium.components.cached_flags.DoubleCachedFieldTrialParameter;
|
||||
import org.chromium.components.cached_flags.IntCachedFieldTrialParameter;
|
||||
import org.chromium.components.cached_flags.StringCachedFieldTrialParameter;
|
||||
@@ -20,6 +20,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam;
|
||||
import org.chromium.components.cached_flags.IntCachedFeatureParam;
|
||||
import org.chromium.components.cached_flags.StringCachedFeatureParam;
|
||||
|
||||
+import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase;
|
||||
+import java.util.Arrays;
|
||||
@@ -759,16 +730,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -730,7 +734,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -818,7 +822,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sWebApkMinShellApkVersion =
|
||||
newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true);
|
||||
|
||||
- public static final List<CachedFlag> sFlagsCachedFullBrowser =
|
||||
+ public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
|
||||
List.of(
|
||||
sAccountReauthenticationRecentTimeWindow,
|
||||
sAndroidAppIntegration,
|
||||
@@ -823,6 +827,13 @@ public abstract class ChromeFeatureList {
|
||||
sAndroidAppIntegrationModule,
|
||||
@@ -916,6 +920,13 @@ public abstract class ChromeFeatureList {
|
||||
sUseLibunwindstackNativeUnwinderAndroid,
|
||||
sWebApkMinShellApkVersion);
|
||||
|
||||
@@ -854,7 +825,7 @@ diff --git a/chrome/browser/settings/BUILD.gn b/chrome/browser/settings/BUILD.gn
|
||||
diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java
|
||||
--- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java
|
||||
+++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java
|
||||
@@ -7,11 +7,18 @@ package org.chromium.chrome.browser.settings;
|
||||
@@ -7,12 +7,19 @@ package org.chromium.chrome.browser.settings;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
@@ -863,6 +834,7 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse
|
||||
import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage;
|
||||
import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher;
|
||||
|
||||
+import android.os.Bundle;
|
||||
+import androidx.preference.Preference;
|
||||
@@ -873,9 +845,9 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse
|
||||
/**
|
||||
* Base class for settings in Chrome.
|
||||
*
|
||||
@@ -22,6 +29,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa
|
||||
implements EmbeddableSettingsPage, ProfileDependentSetting {
|
||||
@@ -26,6 +33,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa
|
||||
private Profile mProfile;
|
||||
private SettingsCustomTabLauncher mCustomTabLauncher;
|
||||
|
||||
+ private Supplier<ChromeBaseSettingsFragment.RequireRestartDelegate> mRequireRestartDelegateSupplier;
|
||||
+
|
||||
@@ -957,18 +929,18 @@ 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
|
||||
@@ -487,4 +487,5 @@ BASE_FEATURE(kInlineFullscreenPerfExperiment,
|
||||
"InlineFullscreenPerfExperiment",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
@@ -440,4 +440,5 @@ BASE_FEATURE(kPageActionsMigration,
|
||||
"PageActionsMigration",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc"
|
||||
} // namespace features
|
||||
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
|
||||
@@ -1629,4 +1629,5 @@ BASE_FEATURE(kPeriodicLogUploadMigration,
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
@@ -1561,4 +1561,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy,
|
||||
"DisableShortcutsEnableDiy",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
+#include "cromite_flags/chrome_common_chrome_features_cc.inc"
|
||||
} // namespace features
|
||||
@@ -985,6 +957,30 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
|
||||
<org.chromium.components.browser_ui.accessibility.PageZoomPreference
|
||||
android:key="page_zoom_default_zoom"
|
||||
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
|
||||
@@ -24,8 +24,10 @@ import org.chromium.components.omnibox.OmniboxFeatures;
|
||||
import org.chromium.content_public.browser.ContentFeatureList;
|
||||
import org.chromium.content_public.browser.ContentFeatureMap;
|
||||
|
||||
+import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||
+
|
||||
/** Fragment to keep track of all the accessibility related preferences. */
|
||||
-public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
+public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener {
|
||||
public static final String PREF_PAGE_ZOOM_DEFAULT_ZOOM = "page_zoom_default_zoom";
|
||||
public static final String PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT =
|
||||
@@ -64,7 +66,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
}
|
||||
|
||||
@Override
|
||||
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
+ public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) {
|
||||
SettingsUtils.addPreferencesFromResource(this, R.xml.accessibility_preferences);
|
||||
|
||||
mPageZoomDefaultZoomPref = (PageZoomPreference) findPreference(PREF_PAGE_ZOOM_DEFAULT_ZOOM);
|
||||
diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/components/browser_ui/settings/android/java/res/values/attrs.xml
|
||||
--- a/components/browser_ui/settings/android/java/res/values/attrs.xml
|
||||
+++ b/components/browser_ui/settings/android/java/res/values/attrs.xml
|
||||
@@ -1054,7 +1050,7 @@ diff --git a/components/cached_flags/android/java/src/org/chromium/components/ca
|
||||
|
||||
import org.chromium.base.FeatureList;
|
||||
import org.chromium.base.FeatureMap;
|
||||
@@ -136,7 +137,7 @@ public class CachedFlag extends Flag {
|
||||
@@ -143,7 +144,7 @@ public class CachedFlag extends Flag {
|
||||
editor.putBoolean(getSharedPreferenceKey(), isEnabledInNative);
|
||||
}
|
||||
|
||||
@@ -1063,7 +1059,7 @@ diff --git a/components/cached_flags/android/java/src/org/chromium/components/ca
|
||||
// Create the key only once to avoid String concatenation every flag check.
|
||||
if (mPreferenceKey == null) {
|
||||
mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName);
|
||||
@@ -144,6 +145,12 @@ public class CachedFlag extends Flag {
|
||||
@@ -151,6 +152,12 @@ public class CachedFlag extends Flag {
|
||||
return mPreferenceKey;
|
||||
}
|
||||
|
||||
@@ -1079,9 +1075,9 @@ diff --git a/components/cached_flags/android/java/src/org/chromium/components/ca
|
||||
diff --git a/components/components_strings.grd b/components/components_strings.grd
|
||||
--- a/components/components_strings.grd
|
||||
+++ b/components/components_strings.grd
|
||||
@@ -281,6 +281,7 @@
|
||||
</translations>
|
||||
@@ -282,6 +282,7 @@
|
||||
<release seq="1">
|
||||
<!-- IMPORTANT: .grdp files must be in the same directory as this file -->
|
||||
<messages fallback_to_english="true">
|
||||
+ <part file="cromite_components_strings_grd/placeholder.txt"/>
|
||||
<part file="arc_strings.grdp" />
|
||||
@@ -1090,7 +1086,7 @@ 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
|
||||
@@ -113,5 +113,6 @@ BASE_FEATURE(kContentSettingsPartitioning,
|
||||
@@ -163,5 +163,6 @@ BASE_FEATURE(kContentSettingsPartitioning,
|
||||
"ContentSettingsPartitioning",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
@@ -1106,7 +1102,7 @@ new file mode 100644
|
||||
diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_state.cc
|
||||
--- a/components/flags_ui/flags_state.cc
|
||||
+++ b/components/flags_ui/flags_state.cc
|
||||
@@ -365,6 +365,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags(
|
||||
@@ -363,6 +363,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags(
|
||||
|
||||
for (const std::string& entry_name : enabled_entries) {
|
||||
const auto& entry_it = name_to_switch_map.find(entry_name);
|
||||
@@ -1128,7 +1124,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat
|
||||
CHECK(entry_it != name_to_switch_map.end(), base::NotFatalUntil::M130);
|
||||
|
||||
const SwitchEntry& entry = entry_it->second;
|
||||
@@ -682,6 +697,27 @@ void FlagsState::GetFlagFeatureEntries(
|
||||
@@ -680,6 +695,27 @@ void FlagsState::GetFlagFeatureEntries(
|
||||
data.Set("links", std::move(links));
|
||||
}
|
||||
|
||||
@@ -1156,7 +1152,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat
|
||||
switch (entry.type) {
|
||||
case FeatureEntry::SINGLE_VALUE:
|
||||
case FeatureEntry::SINGLE_DISABLE_VALUE:
|
||||
@@ -810,6 +846,16 @@ void FlagsState::AddSwitchesToCommandLine(
|
||||
@@ -806,6 +842,16 @@ void FlagsState::AddSwitchesToCommandLine(
|
||||
for (const std::string& entry_name : enabled_entries) {
|
||||
const auto& entry_it = name_to_switch_map.find(entry_name);
|
||||
if (entry_it == name_to_switch_map.end()) {
|
||||
@@ -1170,10 +1166,10 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat
|
||||
+ continue;
|
||||
+ }
|
||||
+ }
|
||||
NOTREACHED_IN_MIGRATION();
|
||||
continue;
|
||||
NOTREACHED();
|
||||
}
|
||||
@@ -1062,6 +1108,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName(
|
||||
|
||||
@@ -1057,6 +1103,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName(
|
||||
bool FlagsState::IsSupportedFeature(const FlagsStorage* storage,
|
||||
const std::string& name,
|
||||
int platform_mask) const {
|
||||
@@ -1230,7 +1226,7 @@ diff --git a/components/flags_ui/resources/app.html.ts b/components/flags_ui/res
|
||||
<div id="header">
|
||||
<div class="flex-container">
|
||||
<div class="flex search-container">
|
||||
@@ -120,6 +121,32 @@ export function getHtml(this: AppElement) {
|
||||
@@ -107,6 +108,32 @@ export function getHtml(this: AppElement) {
|
||||
<div class="no-match" role="alert" hidden>$i18n{no-results}</div>
|
||||
</div>
|
||||
</if>
|
||||
@@ -1261,9 +1257,9 @@ diff --git a/components/flags_ui/resources/app.html.ts b/components/flags_ui/res
|
||||
+ <div class="no-match" role="alert" hidden>$i18n{no-results}</div>
|
||||
+ </div>
|
||||
</div>
|
||||
<div id="needs-restart">
|
||||
<div class="flex-container">
|
||||
@@ -138,6 +165,7 @@ export function getHtml(this: AppElement) {
|
||||
<div id="needs-restart" ?show="${this.needsRestart}"
|
||||
role="${this.getNeedsRestartRole_()}">
|
||||
@@ -127,6 +154,7 @@ export function getHtml(this: AppElement) {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1274,7 +1270,7 @@ diff --git a/components/flags_ui/resources/app.html.ts b/components/flags_ui/res
|
||||
diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resources/app.ts
|
||||
--- a/components/flags_ui/resources/app.ts
|
||||
+++ b/components/flags_ui/resources/app.ts
|
||||
@@ -128,6 +128,7 @@ export class FlagsAppElement extends CrLitElement {
|
||||
@@ -132,6 +132,7 @@ export class FlagsAppElement extends CrLitElement {
|
||||
// <if expr="not is_ios">
|
||||
loadTimeData.getString('unavailable'),
|
||||
// </if>
|
||||
@@ -1282,19 +1278,20 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
|
||||
];
|
||||
protected selectedTabIndex_: number = 0;
|
||||
|
||||
@@ -149,8 +150,11 @@ export class FlagsAppElement extends CrLitElement {
|
||||
@@ -150,9 +151,12 @@ export class FlagsAppElement extends CrLitElement {
|
||||
|
||||
protected defaultFeatures: Feature[] = [];
|
||||
protected nonDefaultFeatures: Feature[] = [];
|
||||
+ protected defaultCromiteFeatures: Feature[] = [];
|
||||
+ protected nonDefaultCromiteFeatures: Feature[] = [];
|
||||
protected searching: boolean = false;
|
||||
protected needsRestart: boolean = false;
|
||||
|
||||
+ private onlyCromiteFlags: boolean = false;
|
||||
private announceStatusDelayMs: number = 100;
|
||||
private featuresResolver: PromiseResolver<void> = new PromiseResolver();
|
||||
private flagSearch: FlagSearch|null = null;
|
||||
@@ -184,10 +188,24 @@ export class FlagsAppElement extends CrLitElement {
|
||||
@@ -186,10 +190,24 @@ export class FlagsAppElement extends CrLitElement {
|
||||
if (changedPrivateProperties.has('data')) {
|
||||
const defaultFeatures: Feature[] = [];
|
||||
const nonDefaultFeatures: Feature[] = [];
|
||||
@@ -1318,8 +1315,8 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
|
||||
+ this.nonDefaultCromiteFeatures = nonDefaultCromiteFeatures;
|
||||
this.defaultFeatures = defaultFeatures;
|
||||
this.nonDefaultFeatures = nonDefaultFeatures;
|
||||
}
|
||||
@@ -228,6 +246,11 @@ export class FlagsAppElement extends CrLitElement {
|
||||
|
||||
@@ -233,6 +251,11 @@ export class FlagsAppElement extends CrLitElement {
|
||||
override connectedCallback() {
|
||||
super.connectedCallback();
|
||||
|
||||
@@ -1458,7 +1455,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o
|
||||
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
|
||||
@@ -193,4 +193,5 @@ BASE_FEATURE(kImprovedPasswordChangeService,
|
||||
@@ -188,4 +188,5 @@ BASE_FEATURE(kImprovedPasswordChangeService,
|
||||
"ImprovedPasswordChangeService",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
@@ -1467,7 +1464,7 @@ diff --git a/components/password_manager/core/browser/features/password_features
|
||||
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
|
||||
--- a/components/permissions/features.cc
|
||||
+++ b/components/permissions/features.cc
|
||||
@@ -153,6 +153,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
|
||||
@@ -122,6 +122,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
|
||||
BASE_FEATURE(kCpssUseTfliteSignatureRunner,
|
||||
"CpssUseTfliteSignatureRunner",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
@@ -1541,7 +1538,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
|
||||
@@ -619,4 +619,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding,
|
||||
@@ -475,4 +475,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding,
|
||||
|
||||
// Please keep features in alphabetical order.
|
||||
|
||||
@@ -1550,7 +1547,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
|
||||
@@ -1498,4 +1498,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
|
||||
@@ -1421,4 +1421,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
|
||||
VideoCaptureServiceConfiguration::kEnabledForBrowserProcess;
|
||||
}
|
||||
|
||||
@@ -1559,7 +1556,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
|
||||
@@ -352,6 +352,7 @@ CONTENT_EXPORT extern const base::FeatureParam<std::string>
|
||||
@@ -341,6 +341,7 @@ CONTENT_EXPORT extern const base::FeatureParam<std::string>
|
||||
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess();
|
||||
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess();
|
||||
|
||||
@@ -1905,7 +1902,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
|
||||
@@ -1837,5 +1837,5 @@ uint32_t GetPassthroughAudioFormats() {
|
||||
@@ -1819,5 +1819,5 @@ uint32_t GetPassthroughAudioFormats() {
|
||||
return 0;
|
||||
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
|
||||
}
|
||||
@@ -1915,7 +1912,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
|
||||
@@ -572,5 +572,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode();
|
||||
@@ -570,5 +570,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode();
|
||||
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
|
||||
|
||||
} // namespace media
|
||||
@@ -1925,18 +1922,18 @@ 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
|
||||
@@ -629,4 +629,5 @@ BASE_FEATURE(kIgnoreHSTSForLocalhost,
|
||||
"IgnoreHSTSForLocalhost",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
@@ -666,4 +666,5 @@ BASE_FEATURE(kHstsTopLevelNavigationsOnly,
|
||||
"HstsTopLevelNavigationsOnly",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+#include "cromite_flags/net_base_features_cc.inc"
|
||||
} // namespace net::features
|
||||
diff --git a/net/base/features.h b/net/base/features.h
|
||||
--- a/net/base/features.h
|
||||
+++ b/net/base/features.h
|
||||
@@ -650,6 +650,7 @@ NET_EXPORT extern const base::FeatureParam<DiskCacheBackend>
|
||||
// If enabled, ignore Strict-Transport-Security for [*.]localhost hosts.
|
||||
NET_EXPORT BASE_DECLARE_FEATURE(kIgnoreHSTSForLocalhost);
|
||||
@@ -687,6 +687,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kNewClientCertPathBuilding);
|
||||
// When enabled HSTS upgrades will only apply to top-level navigations.
|
||||
NET_EXPORT BASE_DECLARE_FEATURE(kHstsTopLevelNavigationsOnly);
|
||||
|
||||
+#include "cromite_flags/net_base_features_h.inc"
|
||||
} // namespace net::features
|
||||
@@ -1945,18 +1942,18 @@ 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
|
||||
@@ -475,4 +475,5 @@ BASE_FEATURE(kEnableLockCookieDatabaseByDefault,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
@@ -366,4 +366,5 @@ BASE_FEATURE(kSRIMessageSignatureEnforcement,
|
||||
"SRIMessageSignatureEnforcement",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+#include "cromite_flags/services_network_public_cpp_features_cc.inc"
|
||||
} // namespace network::features
|
||||
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
||||
--- a/services/network/public/cpp/features.h
|
||||
+++ b/services/network/public/cpp/features.h
|
||||
@@ -211,6 +211,7 @@ COMPONENT_EXPORT(NETWORK_CPP)
|
||||
BASE_DECLARE_FEATURE(kEnableLockCookieDatabaseByDefault);
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
@@ -155,6 +155,7 @@ BASE_DECLARE_FEATURE(kEnableLockCookieDatabaseByDefault);
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
BASE_DECLARE_FEATURE(kSRIMessageSignatureEnforcement);
|
||||
|
||||
+#include "cromite_flags/services_network_public_cpp_features_h.inc"
|
||||
} // namespace network::features
|
||||
@@ -1965,7 +1962,7 @@ 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
|
||||
@@ -2932,4 +2932,5 @@ bool IsCanvasSharedBitmapConversionEnabled() {
|
||||
@@ -2898,4 +2898,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) {
|
||||
//
|
||||
// DO NOT ADD NEW FEATURES HERE.
|
||||
|
||||
@@ -1974,7 +1971,7 @@ 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
|
||||
@@ -1886,6 +1886,7 @@ BLINK_COMMON_EXPORT bool IsCanvasSharedBitmapConversionEnabled();
|
||||
@@ -1874,6 +1874,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled();
|
||||
//
|
||||
// DO NOT ADD NEW FEATURES HERE.
|
||||
|
||||
@@ -1985,7 +1982,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ
|
||||
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
|
||||
@@ -503,4 +503,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState,
|
||||
@@ -454,4 +454,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState,
|
||||
"AsyncFullscreenWindowState",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
@@ -1994,7 +1991,7 @@ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
|
||||
diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h
|
||||
--- a/ui/base/ui_base_features.h
|
||||
+++ b/ui/base/ui_base_features.h
|
||||
@@ -259,6 +259,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle);
|
||||
@@ -235,6 +235,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle);
|
||||
COMPONENT_EXPORT(UI_BASE_FEATURES)
|
||||
BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState);
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../dialogs/DownloadLocationCustomView.java | 4 +-
|
||||
.../strings/android_chrome_strings.grd | 3 +
|
||||
.../bookmark_ui_operations_helper.cc | 2 +
|
||||
.../views/bookmarks/bookmark_menu_delegate.cc | 2 +
|
||||
components/bookmark_bar_strings.grdp | 6 ++
|
||||
.../bookmarks/browser/bookmark_codec.cc | 20 +++++-
|
||||
components/bookmarks/browser/bookmark_codec.h | 7 +-
|
||||
@@ -29,7 +28,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 | 8 ++-
|
||||
.../bookmark_specifics_conversions.cc | 1 +
|
||||
25 files changed, 247 insertions(+), 15 deletions(-)
|
||||
24 files changed, 245 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
|
||||
--- a/chrome/android/java/res/menu/main_menu.xml
|
||||
@@ -45,7 +44,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
|
||||
<item android:id="@+id/recent_tabs_menu_id"
|
||||
android:title="@string/menu_recent_tabs"
|
||||
android:icon="@drawable/devices_black_24dp" />
|
||||
@@ -183,6 +187,9 @@ found in the LICENSE file.
|
||||
@@ -186,6 +190,9 @@ found in the LICENSE file.
|
||||
<item android:id="@id/tinker_tank_menu_id"
|
||||
android:title="@string/menu_tinker_tank"
|
||||
android:icon="@drawable/ic_add_box_rounded_corner" />
|
||||
@@ -58,7 +57,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
|
||||
@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
|
||||
@@ -96,6 +96,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
|
||||
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
|
||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||
@@ -66,7 +65,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;
|
||||
@@ -2919,6 +2920,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -3032,6 +3033,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
getTabModelSelectorSupplier().get(),
|
||||
closeAllTabsRunnable);
|
||||
RecordUserAction.record("MobileMenuCloseAllTabs");
|
||||
@@ -75,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
|
||||
// Close only incognito tabs
|
||||
Runnable closeAllTabsRunnable =
|
||||
@@ -3005,6 +3008,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -3117,6 +3120,27 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
|
||||
}
|
||||
|
||||
@@ -106,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
|
||||
@@ -18,11 +18,17 @@ import org.jni_zero.JniType;
|
||||
@@ -17,6 +17,7 @@ import org.jni_zero.JniType;
|
||||
import org.jni_zero.NativeMethods;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
@@ -114,6 +113,8 @@ 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.RecordUserAction;
|
||||
@@ -24,6 +25,11 @@ import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmark;
|
||||
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
+import org.chromium.chrome.browser.tab.Tab;
|
||||
@@ -124,16 +125,16 @@ 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;
|
||||
@@ -82,6 +88,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
|
||||
@@ -83,6 +89,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
|
||||
class BookmarkBridge {
|
||||
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
|
||||
|
||||
+ private static final String TAG = "BookmarkBridge";
|
||||
+
|
||||
private long mNativeBookmarkBridge;
|
||||
private boolean mIsDestroyed;
|
||||
private Profile mProfile;
|
||||
private boolean mIsDoingExtensiveChanges;
|
||||
@@ -395,6 +403,16 @@ class BookmarkBridge {
|
||||
@@ -411,6 +419,16 @@ class BookmarkBridge {
|
||||
return mMobileFolderId;
|
||||
}
|
||||
|
||||
@@ -150,7 +151,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
/** Returns Id representing the special "other" folder from bookmark model. */
|
||||
public BookmarkId getOtherFolderId() {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
@@ -1083,6 +1101,50 @@ class BookmarkBridge {
|
||||
@@ -1132,6 +1150,50 @@ class BookmarkBridge {
|
||||
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
|
||||
}
|
||||
|
||||
@@ -201,7 +202,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
/**
|
||||
* Helper method to mark an item as read.
|
||||
*
|
||||
@@ -1331,6 +1393,9 @@ class BookmarkBridge {
|
||||
@@ -1339,6 +1401,9 @@ class BookmarkBridge {
|
||||
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(
|
||||
long nativeBookmarkBridge, @JniType("GURL") GURL url);
|
||||
|
||||
@@ -211,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
|
||||
|
||||
void getTopLevelFolderIds(
|
||||
@@ -1352,6 +1417,8 @@ class BookmarkBridge {
|
||||
@@ -1360,6 +1425,8 @@ class BookmarkBridge {
|
||||
|
||||
BookmarkId getRootFolderId(long nativeBookmarkBridge);
|
||||
|
||||
@@ -232,7 +233,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
result == Result::kSuccess);
|
||||
delete this;
|
||||
}
|
||||
@@ -355,6 +355,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) {
|
||||
@@ -356,6 +356,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) {
|
||||
return bookmark_model_->account_mobile_node() != nullptr;
|
||||
}
|
||||
|
||||
@@ -266,7 +267,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
base::android::ScopedJavaLocalRef<jobject>
|
||||
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env,
|
||||
const GURL& url) {
|
||||
@@ -467,6 +494,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
|
||||
@@ -468,6 +495,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,7 +275,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
bookmark_model_->bookmark_bar_node(),
|
||||
bookmark_model_->other_node(),
|
||||
};
|
||||
@@ -560,6 +588,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
||||
@@ -561,6 +589,9 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
||||
top_level_folders.push_back(other_node);
|
||||
}
|
||||
|
||||
@@ -284,7 +285,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
const BookmarkNode* reading_list_node =
|
||||
local_or_syncable_reading_list_manager_->GetRoot();
|
||||
if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) {
|
||||
@@ -1261,6 +1292,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||
@@ -1262,6 +1293,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
|
||||
}
|
||||
|
||||
@@ -373,7 +374,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
|
||||
diff --git a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc
|
||||
--- a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc
|
||||
+++ b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc
|
||||
@@ -43,6 +43,8 @@ std::optional<PermanentFolderType> GetIfPermanentFolderType(
|
||||
@@ -44,6 +44,8 @@ std::optional<PermanentFolderType> GetIfPermanentFolderType(
|
||||
|
||||
case BookmarkNode::Type::URL:
|
||||
NOTREACHED();
|
||||
@@ -406,7 +407,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
|
||||
@@ -4512,6 +4512,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||
@@ -4515,6 +4515,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
|
||||
Select tabs
|
||||
</message>
|
||||
@@ -419,31 +420,19 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
||||
--- a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
||||
+++ b/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc
|
||||
@@ -54,6 +54,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks(
|
||||
@@ -137,6 +137,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks(
|
||||
if (is_reorder) {
|
||||
base::UmaHistogramEnumeration("Bookmarks.ReorderDropTarget", target);
|
||||
switch (GetParentType()) {
|
||||
switch (target_parent()->GetType()) {
|
||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||
+ break;
|
||||
case bookmarks::BookmarkNode::URL:
|
||||
NOTREACHED();
|
||||
case bookmarks::BookmarkNode::FOLDER:
|
||||
diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
|
||||
--- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
|
||||
+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc
|
||||
@@ -103,6 +103,8 @@ BookmarkParentFolder GetBookmarkParentFolderForNode(
|
||||
return BookmarkParentFolder::OtherFolder();
|
||||
case bookmarks::BookmarkNode::MOBILE:
|
||||
return BookmarkParentFolder::MobileFolder();
|
||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||
+ NOTREACHED();
|
||||
}
|
||||
NOTREACHED();
|
||||
}
|
||||
diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp
|
||||
--- a/components/bookmark_bar_strings.grdp
|
||||
+++ b/components/bookmark_bar_strings.grdp
|
||||
@@ -20,6 +20,9 @@
|
||||
@@ -15,6 +15,9 @@
|
||||
<message name="IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME" desc="Name shown in the tree for the mobile bookmarks folder">
|
||||
Mobile bookmarks
|
||||
</message>
|
||||
@@ -453,7 +442,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
|
||||
<message name="IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME" desc="Name shown in the tree for the other bookmarks folder">
|
||||
Other bookmarks
|
||||
</message>
|
||||
@@ -34,6 +37,9 @@
|
||||
@@ -29,6 +32,9 @@
|
||||
<message name="IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME" desc="In Title Case: Name shown in the tree for the mobile bookmarks folder">
|
||||
Mobile Bookmarks
|
||||
</message>
|
||||
@@ -551,7 +540,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
||||
|
||||
// Need to reset the title as the title is persisted and restored from
|
||||
// the file.
|
||||
@@ -477,12 +489,14 @@ void BookmarkCodec::DecodeMetaInfoHelper(
|
||||
@@ -475,12 +487,14 @@ void BookmarkCodec::DecodeMetaInfoHelper(
|
||||
|
||||
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_node,
|
||||
@@ -702,7 +691,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
||||
}
|
||||
|
||||
bool BookmarkModel::IsBookmarked(const GURL& url) const {
|
||||
@@ -1134,6 +1134,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
|
||||
@@ -1147,6 +1147,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();
|
||||
@@ -713,7 +702,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
||||
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
|
||||
@@ -149,6 +149,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
@@ -151,6 +151,12 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
// bookmarks in the account storage).
|
||||
const BookmarkNode* account_mobile_node() const;
|
||||
|
||||
@@ -726,7 +715,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
||||
bool is_root_node(const BookmarkNode* node) const {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
return node == root_;
|
||||
@@ -566,6 +572,7 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
@@ -592,6 +598,7 @@ class BookmarkModel : public BookmarkUndoProvider,
|
||||
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
|
||||
raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
|
||||
raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
|
||||
@@ -860,7 +849,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks
|
||||
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
|
||||
@@ -444,6 +444,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
|
||||
@@ -442,6 +442,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode(
|
||||
case bookmarks::BookmarkNode::BOOKMARK_BAR:
|
||||
case bookmarks::BookmarkNode::OTHER_NODE:
|
||||
case bookmarks::BookmarkNode::MOBILE:
|
||||
|
||||
@@ -10,7 +10,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
chrome/android/java/res/values/dimens.xml | 6 ++++-
|
||||
.../browser/ChromeBaseAppCompatActivity.java | 3 +++
|
||||
.../chrome/browser/WarmupManager.java | 5 +++-
|
||||
.../settings/AccessibilitySettings.java | 13 ++++++++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++
|
||||
.../chrome/browser/app/ChromeActivity.java | 4 +++-
|
||||
.../overlays/strip/StripLayoutHelper.java | 10 ++++++--
|
||||
@@ -25,7 +24,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../AppHeaderCoordinator.java | 2 ++
|
||||
.../omnibox/LocationBarCoordinator.java | 2 +-
|
||||
.../strings/android_chrome_strings.grd | 7 ++++++
|
||||
.../java/res/layout/control_container.xml | 10 ++++----
|
||||
.../java/res/layout/control_container.xml | 8 +++----
|
||||
.../java/res/layout/toolbar_tablet.xml | 2 +-
|
||||
.../java/res/values-sw600dp/dimens.xml | 5 ++--
|
||||
.../toolbar/java/res/values/dimens.xml | 6 +++--
|
||||
@@ -35,9 +34,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../tab_strip/HeightTransitionHandler.java | 2 ++
|
||||
.../TabStripTransitionCoordinator.java | 6 ++++-
|
||||
.../res/xml/accessibility_preferences.xml | 5 ++++
|
||||
.../accessibility/AccessibilitySettings.java | 13 ++++++++++
|
||||
.../AccessibilitySettingsDelegate.java | 11 +++++++++
|
||||
.../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++
|
||||
33 files changed, 177 insertions(+), 27 deletions(-)
|
||||
33 files changed, 176 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
||||
--- a/chrome/android/java/res/layout/custom_tabs_control_container.xml
|
||||
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/
|
||||
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
|
||||
--- a/chrome/android/java/res/values/dimens.xml
|
||||
+++ b/chrome/android/java/res/values/dimens.xml
|
||||
@@ -115,9 +115,13 @@ found in the LICENSE file.
|
||||
@@ -125,9 +125,13 @@ found in the LICENSE file.
|
||||
<dimen name="tab_modal_scrim_vertical_margin">16dp</dimen>
|
||||
|
||||
<!-- Should match toolbar_height_no_shadow -->
|
||||
@@ -98,7 +98,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java
|
||||
@@ -51,6 +51,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats;
|
||||
@@ -57,6 +57,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats;
|
||||
import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder;
|
||||
import org.chromium.chrome.browser.night_mode.NightModeStateProvider;
|
||||
import org.chromium.chrome.browser.night_mode.NightModeUtils;
|
||||
@@ -106,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo
|
||||
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
|
||||
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager;
|
||||
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider;
|
||||
@@ -115,6 +116,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
|
||||
@@ -128,6 +129,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
|
||||
protected void attachBaseContext(Context newBase) {
|
||||
super.attachBaseContext(newBase);
|
||||
|
||||
@@ -126,7 +126,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.ui.display.DisplayUtil;
|
||||
import org.chromium.url.GURL;
|
||||
@@ -469,7 +470,9 @@ public class WarmupManager {
|
||||
@@ -473,7 +474,9 @@ public class WarmupManager {
|
||||
ControlContainer controlContainer = mainView.findViewById(R.id.control_container);
|
||||
|
||||
if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
|
||||
@@ -137,54 +137,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j
|
||||
}
|
||||
return mainView;
|
||||
} catch (InflateException e) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
|
||||
import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||
import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate;
|
||||
+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
|
||||
import org.chromium.components.browser_ui.accessibility.FontSizePrefs;
|
||||
import org.chromium.components.browser_ui.accessibility.PageZoomPreference;
|
||||
import org.chromium.components.browser_ui.accessibility.PageZoomUma;
|
||||
@@ -50,6 +51,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
public static final String PREF_ZOOM_INFO = "zoom_info";
|
||||
public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
|
||||
|
||||
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
+
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
@@ -124,6 +128,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
mPrefService.getBoolean(Pref.READER_FOR_ACCESSIBILITY));
|
||||
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
+ ChromeSwitchPreference forceTabletUiPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
|
||||
+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate();
|
||||
+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
|
||||
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -185,6 +195,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
|
||||
mFontSizePrefs.setForceEnableZoom((Boolean) newValue);
|
||||
+ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) {
|
||||
+ mForceTabletUIDelegate.setEnabled((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
|
||||
mPrefService.setBoolean(Pref.READER_FOR_ACCESSIBILITY, (Boolean) newValue);
|
||||
} else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) {
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -38,6 +38,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -62,6 +62,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
}
|
||||
}
|
||||
|
||||
@@ -213,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
|
||||
@@ -850,7 +850,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -757,7 +757,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
|
||||
// Inflate the correct toolbar layout for the device.
|
||||
int toolbarLayoutId = getToolbarLayoutId();
|
||||
if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) {
|
||||
@@ -227,15 +183,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java
|
||||
@@ -99,6 +99,7 @@ import org.chromium.components.feature_engagement.Tracker;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
@@ -112,6 +112,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup;
|
||||
import org.chromium.components.tab_group_sync.TabGroupSyncService;
|
||||
import org.chromium.components.tab_groups.TabGroupColorId;
|
||||
import org.chromium.ui.MotionEventUtils;
|
||||
+import org.chromium.ui.base.DeviceFormFactor;
|
||||
import org.chromium.ui.base.LocalizationUtils;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
@@ -4277,8 +4278,13 @@ public class StripLayoutHelper
|
||||
@@ -3999,8 +4000,13 @@ public class StripLayoutHelper
|
||||
mTabMenu.setAnchorView(tabView);
|
||||
// 3. Set the vertical offset to align the tab menu with bottom of the tab strip
|
||||
int tabHeight = mManagerHost.getHeight();
|
||||
@@ -262,7 +218,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
|
||||
import org.chromium.ui.base.LocalizationUtils;
|
||||
import org.chromium.ui.base.PageTransition;
|
||||
import org.chromium.ui.base.WindowAndroid;
|
||||
@@ -439,7 +440,10 @@ public class StripLayoutHelperManager
|
||||
@@ -438,7 +439,10 @@ public class StripLayoutHelperManager
|
||||
|
||||
mIsLayoutOptimizationsEnabled =
|
||||
ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true);
|
||||
@@ -296,7 +252,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow
|
||||
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
|
||||
@@ -576,7 +576,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
@@ -602,7 +602,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
|
||||
@Override
|
||||
public int getControlContainerHeightResource() {
|
||||
@@ -310,7 +266,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
|
||||
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
|
||||
@@ -104,6 +104,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
|
||||
@@ -105,6 +105,8 @@ 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.pdf.PdfPage;
|
||||
@@ -319,7 +275,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
|
||||
import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController;
|
||||
import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier;
|
||||
import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
|
||||
@@ -1773,7 +1775,9 @@ public class RootUiCoordinator
|
||||
@@ -1788,7 +1790,9 @@ public class RootUiCoordinator
|
||||
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
|
||||
|
||||
int stubId = R.id.find_toolbar_stub;
|
||||
@@ -333,7 +289,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
|
||||
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
|
||||
@@ -26,6 +26,7 @@ android_library("java") {
|
||||
@@ -25,6 +25,7 @@ android_library("java") {
|
||||
"//components/cached_flags:java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
@@ -344,7 +300,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
|
||||
@@ -262,6 +262,7 @@ public final class ChromePreferenceKeys {
|
||||
@@ -274,6 +274,7 @@ public final class ChromePreferenceKeys {
|
||||
/** Whether the app-specific history info text was already seen by users. */
|
||||
public static final String HISTORY_APP_SPECIFIC_INFO_SEEN =
|
||||
"Chrome.History.AppSpecificInfoSeen";
|
||||
@@ -395,26 +351,26 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
||||
diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
|
||||
--- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
|
||||
+++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java
|
||||
@@ -34,6 +34,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils.DesktopWi
|
||||
@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils.Windowing
|
||||
import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
|
||||
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
|
||||
import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider;
|
||||
+import org.chromium.ui.base.DeviceFormFactor;
|
||||
import org.chromium.ui.InsetObserver;
|
||||
import org.chromium.ui.InsetObserver.WindowInsetObserver;
|
||||
import org.chromium.ui.InsetObserver.WindowInsetsConsumer;
|
||||
import org.chromium.ui.InsetsRectProvider;
|
||||
@@ -273,6 +274,7 @@ public class AppHeaderCoordinator
|
||||
InsetObserver insetObserver,
|
||||
@@ -259,6 +260,7 @@ public class AppHeaderCoordinator
|
||||
private static @DesktopWindowHeuristicResult int checkIsInDesktopWindow(
|
||||
InsetsRectProvider insetsRectProvider,
|
||||
@DesktopWindowHeuristicResult int currentResult) {
|
||||
+ if (DeviceFormFactor.isForceTabletUI()) return DesktopWindowHeuristicResult.IN_DESKTOP_WINDOW;
|
||||
@DesktopWindowHeuristicResult int newResult;
|
||||
|
||||
assert insetObserver.getLastRawWindowInsets() != null
|
||||
Insets captionBarInset = insetsRectProvider.getCachedInset();
|
||||
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
|
||||
@@ -786,7 +786,7 @@ public class LocationBarCoordinator
|
||||
@@ -814,7 +814,7 @@ public class LocationBarCoordinator
|
||||
}
|
||||
|
||||
private boolean isTabletWindow() {
|
||||
@@ -479,15 +435,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/toolbar_height_no_shadow"
|
||||
android:layout="@layout/find_toolbar" />
|
||||
@@ -55,7 +55,7 @@ found in the LICENSE file.
|
||||
android:id="@+id/target_view_stub"
|
||||
android:inflatedId="@+id/toolbar_drag_drop_target_view"
|
||||
android:layout_width="match_parent"
|
||||
- android:layout_marginTop="@dimen/tab_strip_height"
|
||||
+ android:layout_marginTop="@dimen/tab_strip_height_cromite"
|
||||
android:layout_height="@dimen/toolbar_height_no_shadow"
|
||||
android:layout="@layout/drag_drop_target_view" />
|
||||
</org.chromium.chrome.browser.toolbar.top.ToolbarControlContainer>
|
||||
diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
||||
--- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
||||
+++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml
|
||||
@@ -616,7 +563,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
||||
import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback;
|
||||
import org.chromium.ui.util.TokenHolder;
|
||||
|
||||
@@ -542,6 +543,7 @@ class HeightTransitionHandler {
|
||||
@@ -544,6 +545,7 @@ class HeightTransitionHandler {
|
||||
if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) {
|
||||
return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting;
|
||||
}
|
||||
@@ -627,7 +574,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
|
||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java
|
||||
@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
|
||||
@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
|
||||
import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState;
|
||||
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager;
|
||||
import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver;
|
||||
@@ -662,10 +609,54 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
<Preference
|
||||
android:key="captions"
|
||||
android:title="@string/accessibility_captions_title"/>
|
||||
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
|
||||
@@ -25,6 +25,7 @@ import org.chromium.content_public.browser.ContentFeatureList;
|
||||
import org.chromium.content_public.browser.ContentFeatureMap;
|
||||
|
||||
import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment;
|
||||
+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate;
|
||||
|
||||
/** Fragment to keep track of all the accessibility related preferences. */
|
||||
public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
@@ -39,6 +40,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
public static final String PREF_ZOOM_INFO = "zoom_info";
|
||||
public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
|
||||
|
||||
+ private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
+
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
@@ -105,6 +109,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
mDelegate.getReaderAccessibilityDelegate().getValue());
|
||||
readerForAccessibilityPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
+ ChromeSwitchPreference forceTabletUiPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI);
|
||||
+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate();
|
||||
+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled());
|
||||
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -165,6 +175,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
|
||||
mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue);
|
||||
+ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) {
|
||||
+ mForceTabletUIDelegate.setEnabled((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) {
|
||||
mDelegate.getReaderAccessibilityDelegate().setValue((Boolean) newValue);
|
||||
} else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) {
|
||||
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
|
||||
@@ -11,6 +11,15 @@ import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
@@ -12,6 +12,15 @@ import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
* embedder-specific logic.
|
||||
*/
|
||||
public interface AccessibilitySettingsDelegate {
|
||||
@@ -681,21 +672,21 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
/** An interface to control a single integer preference. */
|
||||
interface IntegerPreferenceDelegate {
|
||||
/**
|
||||
@@ -25,6 +34,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
/** @return The BrowserContextHandle that should be used to read and update settings. */
|
||||
@@ -39,6 +48,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
*/
|
||||
BrowserContextHandle getBrowserContextHandle();
|
||||
|
||||
+ BooleanPreferenceDelegate getForceTabletUIDelegate();
|
||||
+
|
||||
/**
|
||||
* @return the InterPreferenceDelegate instance that should be used for reading and setting the
|
||||
* text size contrast value for accessibility settings. Return null to omit the preference.
|
||||
* @return boolean value specifying if the Image Descriptions user setting should be shown.
|
||||
*/
|
||||
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
|
||||
@@ -49,6 +49,14 @@ public class DeviceFormFactor {
|
||||
/** See {@link #setIsTabletForTesting(boolean)}. */
|
||||
private static Boolean sIsTabletForTesting;
|
||||
@@ -69,6 +69,14 @@ public class DeviceFormFactor {
|
||||
return BuildConfig.IS_DESKTOP_ANDROID;
|
||||
}
|
||||
|
||||
+ private static boolean mForceTabletUI = false;
|
||||
+ public static void setForceTabletUI(boolean forceTabletUI) {
|
||||
@@ -708,7 +699,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". Use {@link
|
||||
@@ -57,6 +65,7 @@ public class DeviceFormFactor {
|
||||
@@ -77,6 +85,7 @@ public class DeviceFormFactor {
|
||||
@CalledByNative
|
||||
@Deprecated
|
||||
public static boolean isTablet() {
|
||||
@@ -716,7 +707,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
||||
if (sIsTabletForTesting != null) {
|
||||
return sIsTabletForTesting;
|
||||
}
|
||||
@@ -87,6 +96,7 @@ public class DeviceFormFactor {
|
||||
@@ -107,6 +116,7 @@ public class DeviceFormFactor {
|
||||
* E.g. http://developer.samsung.com/samsung-dex/testing
|
||||
*/
|
||||
public static boolean isNonMultiDisplayContextOnTablet(Context context) {
|
||||
@@ -724,7 +715,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
||||
return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET;
|
||||
}
|
||||
|
||||
@@ -122,6 +132,7 @@ public class DeviceFormFactor {
|
||||
@@ -142,6 +152,7 @@ public class DeviceFormFactor {
|
||||
* @return The screen width bucket the device is in (see constants at the top of this class).
|
||||
*/
|
||||
private static int detectScreenWidthBucket(Context context) {
|
||||
@@ -732,7 +723,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
||||
return context.getResources().getInteger(R.integer.min_screen_width_bucket);
|
||||
}
|
||||
|
||||
@@ -129,6 +140,7 @@ public class DeviceFormFactor {
|
||||
@@ -149,6 +160,7 @@ public class DeviceFormFactor {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
Context context = windowAndroid.getContext().get();
|
||||
if (context == null) return 0;
|
||||
@@ -740,7 +731,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
||||
return context.getResources().getInteger(R.integer.min_screen_width_bucket);
|
||||
}
|
||||
|
||||
@@ -138,6 +150,7 @@ public class DeviceFormFactor {
|
||||
@@ -158,6 +170,7 @@ public class DeviceFormFactor {
|
||||
*/
|
||||
@UiThread
|
||||
public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) {
|
||||
@@ -748,7 +739,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
||||
return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context));
|
||||
}
|
||||
|
||||
@@ -146,6 +159,7 @@ public class DeviceFormFactor {
|
||||
@@ -166,6 +179,7 @@ public class DeviceFormFactor {
|
||||
* layout.
|
||||
*/
|
||||
public static int getMinimumTabletWidthPx(DisplayAndroid display) {
|
||||
|
||||
@@ -7,7 +7,6 @@ And allow use about:blank as default homepage
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++-
|
||||
.../browser/tasks/tab_management/TabUiUtils.java | 9 ++++++++-
|
||||
.../java/res/xml/homepage_preferences.xml | 5 +++++
|
||||
.../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++
|
||||
.../homepage/settings/HomepageSettings.java | 12 ++++++++++++
|
||||
@@ -15,15 +14,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../browser/tabmodel/ChromeTabCreator.java | 8 ++++++++
|
||||
.../preferences/ChromePreferenceKeys.java | 1 +
|
||||
.../preferences/LegacyChromePreferenceKeys.java | 1 +
|
||||
.../chrome/browser/tabmodel/TabGroupUtils.java | 8 ++++++++
|
||||
.../android/strings/android_chrome_strings.grd | 3 +++
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 2 ++
|
||||
chrome/common/pref_names.h | 4 ++++
|
||||
12 files changed, 67 insertions(+), 3 deletions(-)
|
||||
12 files changed, 67 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -22,6 +22,7 @@ import org.chromium.base.supplier.OneshotSupplier;
|
||||
@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.collaboration.CollaborationServiceFactory;
|
||||
import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory;
|
||||
import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -31,7 +31,7 @@ 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;
|
||||
@@ -408,10 +409,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver,
|
||||
@@ -367,10 +368,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver,
|
||||
assert relatedTabs.size() > 0;
|
||||
|
||||
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||
@@ -48,33 +48,6 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
TabLaunchType.FROM_TAB_GROUP_UI,
|
||||
parentTabToAttach);
|
||||
RecordUserAction.record(
|
||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java
|
||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java
|
||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java
|
||||
@@ -48,6 +48,8 @@ import org.chromium.components.tab_groups.TabGroupColorId;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
import org.chromium.ui.modaldialog.ModalDialogUtils;
|
||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||
+import org.chromium.url.GURL;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -210,8 +212,13 @@ public class TabUiUtils {
|
||||
List<Tab> relatedTabs = filter.getRelatedTabList(tabId);
|
||||
assert relatedTabs.size() > 0;
|
||||
|
||||
+ String url = UrlConstants.NTP_URL;
|
||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||
- tabCreator.createNewTab(new LoadUrlParams(UrlConstants.NTP_URL), type, parentTabToAttach);
|
||||
+ tabCreator.createNewTab(new LoadUrlParams(url), type, parentTabToAttach);
|
||||
}
|
||||
|
||||
/**
|
||||
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
|
||||
@@ -155,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
|
||||
@@ -112,7 +112,6 @@ public class LaunchMetrics {
|
||||
@@ -113,7 +113,6 @@ public class LaunchMetrics {
|
||||
public static void recordHomePageLaunchMetrics(
|
||||
boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
|
||||
if (homepageGurl.isEmpty()) {
|
||||
@@ -174,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
|
||||
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
|
||||
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
@@ -492,6 +493,13 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -485,6 +486,13 @@ public class ChromeTabCreator extends TabCreator {
|
||||
* @return the created tab.
|
||||
*/
|
||||
public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) {
|
||||
@@ -191,7 +164,7 @@ 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
|
||||
@@ -275,6 +275,7 @@ public final class ChromePreferenceKeys {
|
||||
@@ -287,6 +287,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";
|
||||
|
||||
@@ -210,10 +183,35 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
||||
ChromePreferenceKeys.INCOGNITO_SHORTCUT_ADDED,
|
||||
ChromePreferenceKeys.LATEST_UNSUPPORTED_VERSION,
|
||||
ChromePreferenceKeys.LOCALE_MANAGER_AUTO_SWITCH,
|
||||
diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabGroupUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabGroupUtils.java
|
||||
--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabGroupUtils.java
|
||||
+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabGroupUtils.java
|
||||
@@ -7,6 +7,8 @@ package org.chromium.chrome.browser.tabmodel;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
import org.chromium.content_public.browser.LoadUrlParams;
|
||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||
+import org.chromium.url.GURL;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -65,6 +67,12 @@ public class TabGroupUtils {
|
||||
List<Tab> relatedTabs = tabGroupModelFilter.getRelatedTabList(parentId);
|
||||
if (relatedTabs.isEmpty()) return;
|
||||
|
||||
+ if (UrlConstants.NTP_URL.equals(url)
|
||||
+ && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
+
|
||||
Tab lastTab = relatedTabs.get(relatedTabs.size() - 1);
|
||||
TabCreator tabCreator = tabGroupModelFilter.getTabModel().getTabCreator();
|
||||
LoadUrlParams loadUrlParams = new LoadUrlParams(url);
|
||||
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
|
||||
@@ -1520,6 +1520,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1528,6 +1528,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>
|
||||
@@ -226,7 +224,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -89,6 +89,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -91,6 +91,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kShowForwardButton, true,
|
||||
GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags());
|
||||
@@ -238,7 +236,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
|
||||
@@ -1339,6 +1339,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button";
|
||||
@@ -1342,6 +1342,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button";
|
||||
// toolbar.
|
||||
inline constexpr char kShowForwardButton[] = "browser.show_forward_button";
|
||||
|
||||
|
||||
@@ -14,7 +14,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../chrome_browsing_data_lifetime_manager.cc | 22 +++++-
|
||||
.../chrome_browsing_data_remover_constants.h | 3 +-
|
||||
.../chrome_browsing_data_remover_delegate.cc | 14 ++++
|
||||
chrome/browser/dips/dips_service_impl.cc | 3 +-
|
||||
.../api/settings_private/prefs_util.cc | 17 +++++
|
||||
.../browser/profiles/ProfileManagerUtils.java | 5 ++
|
||||
.../profiles/android/profile_manager_utils.cc | 5 ++
|
||||
@@ -32,14 +31,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
components/browsing_data/core/pref_names.cc | 17 +++++
|
||||
components/browsing_data/core/pref_names.h | 10 +++
|
||||
.../search_engines/template_url_service.cc | 1 +
|
||||
content/browser/dips/dips_service_impl.cc | 2 +-
|
||||
content/browser/storage_partition_impl.cc | 1 +
|
||||
29 files changed, 324 insertions(+), 23 deletions(-)
|
||||
29 files changed, 323 insertions(+), 23 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -309,6 +309,7 @@ chrome_java_sources = [
|
||||
@@ -316,6 +316,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",
|
||||
@@ -50,7 +50,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
|
||||
@@ -180,6 +180,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
@@ -184,6 +184,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;
|
||||
@@ -58,7 +58,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.recent_tabs.CrossDevicePaneFactory;
|
||||
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
|
||||
@@ -1590,7 +1591,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1652,7 +1653,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn
|
||||
Intent intent = getIntent();
|
||||
|
||||
boolean hadCipherData =
|
||||
@@ -74,7 +74,7 @@ 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
|
||||
@@ -456,6 +456,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
@@ -475,6 +475,10 @@ public abstract class ClearBrowsingDataFragment extends ChromeBaseSettingsFragme
|
||||
/** Returns whether is a basic or advanced Clear Browsing Data tab. */
|
||||
protected abstract @ClearBrowsingDataTab int getClearBrowsingDataTabType();
|
||||
|
||||
@@ -85,7 +85,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.
|
||||
*
|
||||
@@ -534,6 +538,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
@@ -555,6 +559,7 @@ public abstract class ClearBrowsingDataFragment extends ChromeBaseSettingsFragme
|
||||
* options.
|
||||
*/
|
||||
private void onClearButtonClicked() {
|
||||
@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
if (shouldShowImportantSitesDialog()) {
|
||||
showImportantDialogThenClear();
|
||||
return;
|
||||
@@ -566,6 +571,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
|
||||
@@ -585,6 +590,7 @@ public abstract class ClearBrowsingDataFragment extends ChromeBaseSettingsFragme
|
||||
Button clearButton = (Button) getView().findViewById(R.id.clear_button);
|
||||
boolean isEnabled = !getSelectedOptions().isEmpty();
|
||||
clearButton.setEnabled(isEnabled);
|
||||
@@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
|
||||
private Profile mProfile;
|
||||
private ClearBrowsingDataFetcher mFetcher;
|
||||
@@ -117,6 +117,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment
|
||||
@@ -115,6 +115,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);
|
||||
@@ -201,7 +201,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
|
||||
default:
|
||||
throw new RuntimeException("invalid position: " + position);
|
||||
}
|
||||
@@ -167,6 +169,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment
|
||||
@@ -166,6 +168,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment
|
||||
case 1:
|
||||
fragment = new ClearBrowsingDataFragmentAdvanced();
|
||||
break;
|
||||
@@ -214,7 +214,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
|
||||
@@ -2324,6 +2324,16 @@
|
||||
@@ -2220,6 +2220,16 @@
|
||||
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for delete browsing data button in Privacy options">
|
||||
Delete browsing data
|
||||
</message>
|
||||
@@ -234,13 +234,13 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
|
||||
diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
--- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
+++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
|
||||
@@ -340,7 +340,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
|
||||
const JavaParamRef<jobject>& jprofile,
|
||||
jint tab_index) {
|
||||
@@ -304,7 +304,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(JNIEnv* env,
|
||||
Profile* profile,
|
||||
jint tab_index) {
|
||||
DCHECK_GE(tab_index, 0);
|
||||
- DCHECK_LT(tab_index, 2);
|
||||
+ DCHECK_LT(tab_index, 3);
|
||||
GetPrefService(jprofile)->SetInteger(
|
||||
GetPrefService(profile)->SetInteger(
|
||||
browsing_data::prefs::kLastClearBrowsingDataTab, tab_index);
|
||||
}
|
||||
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
|
||||
@@ -298,7 +298,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_constants
|
||||
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
|
||||
@@ -464,6 +464,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -462,6 +462,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
CreateTaskCompletionClosure(TracingDataType::kHistory),
|
||||
&history_task_tracker_);
|
||||
}
|
||||
@@ -308,7 +308,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
if (ClipboardRecentContent::GetInstance())
|
||||
ClipboardRecentContent::GetInstance()->SuppressClipboardContent();
|
||||
|
||||
@@ -572,6 +575,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -570,6 +573,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
// and SSL host state are scoped to hosts and represent them as std::string.
|
||||
// Rename the method to indicate its more general usage.
|
||||
if (profile_->GetSSLHostStateDelegate()) {
|
||||
@@ -320,7 +320,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
profile_->GetSSLHostStateDelegate()->Clear(
|
||||
filter_builder->MatchesAllOriginsAndDomains()
|
||||
? base::RepeatingCallback<bool(const std::string&)>()
|
||||
@@ -600,9 +608,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -598,9 +606,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
}
|
||||
|
||||
device_event_log::Clear(delete_begin_, delete_end_);
|
||||
@@ -334,7 +334,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange(
|
||||
delete_begin_, delete_end_);
|
||||
|
||||
@@ -1302,6 +1314,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -1281,6 +1293,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
|
||||
if (should_clear_zero_suggest_and_session_token && template_url_service)
|
||||
template_url_service->ClearSessionToken();
|
||||
@@ -343,30 +343,10 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
diff --git a/chrome/browser/dips/dips_service_impl.cc b/chrome/browser/dips/dips_service_impl.cc
|
||||
--- a/chrome/browser/dips/dips_service_impl.cc
|
||||
+++ b/chrome/browser/dips/dips_service_impl.cc
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "base/time/time.h"
|
||||
#include "base/types/pass_key.h"
|
||||
#include "chrome/browser/chrome_content_browser_client.h"
|
||||
+#include "chrome/browser/browsing_data/chrome_browsing_data_remover_constants.h"
|
||||
#include "chrome/browser/dips/chrome_dips_delegate.h"
|
||||
#include "chrome/browser/dips/dips_redirect_info.h"
|
||||
#include "chrome/browser/dips/dips_service_factory.h"
|
||||
@@ -195,7 +196,7 @@ class StateClearer : public content::BrowsingDataRemover::Observer {
|
||||
}
|
||||
remover->RemoveWithFilterAndReply(
|
||||
base::Time::Min(), base::Time::Max(),
|
||||
- remove_mask |
|
||||
+ remove_mask | chrome_browsing_data_remover::DATA_TYPE_SKIP_SSL_HOST_STATE |
|
||||
content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS,
|
||||
content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
|
||||
content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
|
||||
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
|
||||
@@ -540,6 +540,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
@@ -535,6 +535,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
|
||||
settings_api::PrefType::kNumber;
|
||||
|
||||
@@ -424,7 +404,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
|
||||
@@ -1428,6 +1428,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
@@ -1427,6 +1427,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -444,7 +424,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_ ||
|
||||
@@ -2114,7 +2127,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
|
||||
@@ -2109,7 +2122,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 (Browser* browser_iter : *BrowserList::GetInstance()) {
|
||||
@@ -468,7 +448,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
|
||||
@@ -318,6 +318,50 @@
|
||||
@@ -297,6 +297,50 @@
|
||||
disabled="[[clearingInProgress_]]" no-set-pref>
|
||||
</settings-checkbox>
|
||||
</div>
|
||||
@@ -522,7 +502,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
|
||||
@@ -297,6 +297,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
@@ -239,6 +239,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
value: () =>
|
||||
[loadTimeData.getString('basicPageTitle'),
|
||||
loadTimeData.getString('advancedPageTitle'),
|
||||
@@ -530,7 +510,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
],
|
||||
},
|
||||
|
||||
@@ -423,6 +424,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
@@ -363,6 +364,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
}
|
||||
this.clearButtonDisabled_ =
|
||||
this.getSelectedDataTypes_(page as HTMLElement).length === 0;
|
||||
@@ -541,7 +521,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
|
||||
@@ -1454,7 +1454,7 @@ For example, some websites may respond to this request by showing you ads that a
|
||||
@@ -1462,7 +1462,7 @@ For example, some websites may respond to this request by showing you ads that a
|
||||
Delete browsing data
|
||||
</message>
|
||||
<message name="IDS_CLEAR_BROWSING_DATA_SUMMARY" desc="Summary of the settings item that opens the Delete Browsing Data dialog.">
|
||||
@@ -550,7 +530,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
</message>
|
||||
<message name="IDS_CLEAR_BROWSING_DATA_HISTORY_DIALOG_TITLE" desc="Title of a dialog that is shown after the deletion of browsing history finished.">
|
||||
Deleted Chrome data
|
||||
@@ -1615,6 +1615,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1623,6 +1623,9 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_ANDROID_APP_HISTORY_OPEN_FULL_OTHER_FORMS" desc="The informational message at the top of the history page letting users know that app-specific history may be missing some entries, followed by the info on the other forms of browing history.">
|
||||
Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK"><link></ph>myactivity.google.com<ph name="END_LINK"></link></ph>.
|
||||
</message>
|
||||
@@ -563,7 +543,7 @@ 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
|
||||
@@ -1839,6 +1839,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
|
||||
@@ -1895,6 +1895,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
|
||||
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
|
||||
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
|
||||
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
|
||||
@@ -574,7 +554,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
|
||||
diff --git a/components/browsing_data/content/browsing_data_helper.cc b/components/browsing_data/content/browsing_data_helper.cc
|
||||
--- a/components/browsing_data/content/browsing_data_helper.cc
|
||||
+++ b/components/browsing_data/content/browsing_data_helper.cc
|
||||
@@ -40,8 +40,13 @@ bool WebsiteSettingsFilterAdapter(
|
||||
@@ -39,8 +39,13 @@ bool WebsiteSettingsFilterAdapter(
|
||||
// this filter is used for is DURABLE_STORAGE, which also only uses
|
||||
// origin-scoped patterns. Such patterns can be directly translated to a GURL.
|
||||
GURL url(primary_pattern.ToString());
|
||||
@@ -649,7 +629,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp
|
||||
diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc
|
||||
--- a/components/browsing_data/core/browsing_data_utils.cc
|
||||
+++ b/components/browsing_data/core/browsing_data_utils.cc
|
||||
@@ -347,6 +347,37 @@ bool GetDeletionPreferenceFromDataType(
|
||||
@@ -346,6 +346,37 @@ bool GetDeletionPreferenceFromDataType(
|
||||
BrowsingDataType data_type,
|
||||
ClearBrowsingDataTab clear_browsing_data_tab,
|
||||
std::string* out_pref) {
|
||||
@@ -702,7 +682,7 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component
|
||||
diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_data/core/pref_names.cc
|
||||
--- a/components/browsing_data/core/pref_names.cc
|
||||
+++ b/components/browsing_data/core/pref_names.cc
|
||||
@@ -65,6 +65,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -63,6 +63,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterIntegerPref(
|
||||
kClearBrowsingDataHistoryNoticeShownTimes, 0);
|
||||
|
||||
@@ -749,7 +729,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da
|
||||
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
|
||||
@@ -777,6 +777,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
|
||||
@@ -778,6 +778,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween(
|
||||
if (turl->date_created() >= created_after &&
|
||||
(created_before.is_null() || turl->date_created() < created_before) &&
|
||||
turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 &&
|
||||
@@ -757,10 +737,22 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
|
||||
turl->starter_pack_id() == 0 && !MatchesDefaultSearchProvider(turl) &&
|
||||
(url_filter.is_null() ||
|
||||
url_filter.Run(turl->GenerateSearchURL(search_terms_data())))) {
|
||||
diff --git a/content/browser/dips/dips_service_impl.cc b/content/browser/dips/dips_service_impl.cc
|
||||
--- a/content/browser/dips/dips_service_impl.cc
|
||||
+++ b/content/browser/dips/dips_service_impl.cc
|
||||
@@ -198,7 +198,7 @@ class StateClearer : public content::BrowsingDataRemover::Observer {
|
||||
remove_mask &= ~content::BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX;
|
||||
remover->RemoveWithFilterAndReply(
|
||||
base::Time::Min(), base::Time::Max(),
|
||||
- remove_mask |
|
||||
+ remove_mask | chrome_browsing_data_remover::DATA_TYPE_SKIP_SSL_HOST_STATE |
|
||||
content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS,
|
||||
content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB |
|
||||
content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB,
|
||||
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
|
||||
@@ -1499,6 +1499,7 @@ void StoragePartitionImpl::Initialize(
|
||||
@@ -1529,6 +1529,7 @@ void StoragePartitionImpl::Initialize(
|
||||
.AppendASCII("Code Cache");
|
||||
}
|
||||
DCHECK_GE(settings.size_in_bytes(), 0);
|
||||
|
||||
@@ -10,7 +10,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../AwContextMenuItemDelegate.java | 4 +++
|
||||
chrome/android/java/res/values/ids.xml | 1 +
|
||||
.../settings/AccessibilitySettings.java | 12 +++++++
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 18 ++++++++++
|
||||
.../contextmenu/ChromeContextMenuItem.java | 5 ++-
|
||||
.../ChromeContextMenuPopulator.java | 5 +++
|
||||
@@ -19,6 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../browser/flags/ChromeFeatureList.java | 5 +++
|
||||
.../strings/android_chrome_strings.grd | 9 +++++
|
||||
.../res/xml/accessibility_preferences.xml | 5 +++
|
||||
.../accessibility/AccessibilitySettings.java | 12 +++++++
|
||||
.../AccessibilitySettingsDelegate.java | 2 ++
|
||||
.../contextmenu/ContextMenuItemDelegate.java | 3 ++
|
||||
...Add-setting-to-invert-tap-and-long-tap.inc | 8 +++++
|
||||
@@ -67,46 +67,10 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va
|
||||
|
||||
<!-- Tags -->
|
||||
<item type="id" name="highlight_color" />
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
|
||||
@@ -59,6 +59,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
|
||||
private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate;
|
||||
|
||||
+ static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links";
|
||||
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
|
||||
+
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
@@ -155,6 +158,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.isEnabled());
|
||||
mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
+ ChromeSwitchPreference mShowAlwaysContextMenuOnLinksPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS);
|
||||
+ mShowAlwaysContextMenuOnLinksDelegate = mDelegate.getShowAlwaysContextMenuOnLinksDelegate();
|
||||
+ mShowAlwaysContextMenuOnLinksPref.setChecked(mShowAlwaysContextMenuOnLinksDelegate.isEnabled());
|
||||
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -233,6 +242,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
|
||||
mDisableToolbarSwipeUpDelegate.setEnabled((Boolean) newValue);
|
||||
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
|
||||
+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
|
||||
// TODO(mschillaci): Implement the override behavior for OS level.
|
||||
} else if (OmniboxFeatures.KEY_JUMP_START_OMNIBOX.equals(preference.getKey())) {
|
||||
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
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -137,6 +137,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
@@ -162,6 +162,24 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting
|
||||
mSnackbarManagerSupplier.get().showSnackbar(mSnackbar);
|
||||
}
|
||||
|
||||
@@ -164,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/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
|
||||
@@ -275,6 +275,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -337,6 +337,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
|
||||
if (mParams.isAnchor()) {
|
||||
ModelList linkGroup = new ModelList();
|
||||
@@ -174,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
if (FirstRunStatus.getFirstRunFlowComplete()
|
||||
&& !isEmptyUrl(mParams.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
||||
@@ -657,6 +660,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -725,6 +728,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
getProfile(),
|
||||
false);
|
||||
});
|
||||
@@ -186,7 +150,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
|
||||
@@ -326,6 +326,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
@@ -301,6 +301,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
mTab.loadUrl(loadUrlParams);
|
||||
}
|
||||
|
||||
@@ -204,18 +168,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
|
||||
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
|
||||
@@ -325,6 +325,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
@@ -340,6 +340,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kTabDragDropAndroid,
|
||||
&kToolbarPhoneCleanup,
|
||||
&kTabGroupCreationDialogAndroid,
|
||||
+ &blink::features::kShowAlwaysContextMenuOnLinks,
|
||||
&kTabletToolbarReordering,
|
||||
&kTabResumptionModuleAndroid,
|
||||
&kTabStateFlatBuffer,
|
||||
&kTabStripGroupCollapseAndroid,
|
||||
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
|
||||
@@ -390,6 +390,8 @@ public abstract class ChromeFeatureList {
|
||||
@@ -407,6 +407,8 @@ public abstract class ChromeFeatureList {
|
||||
"DisableToolbarSwipeUp";
|
||||
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
|
||||
"MoveTopToolbarToBottom";
|
||||
@@ -224,7 +188,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";
|
||||
@@ -695,6 +697,8 @@ public abstract class ChromeFeatureList {
|
||||
@@ -761,6 +763,8 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false);
|
||||
public static final CachedFlag sMoveTopToolbarToBottom =
|
||||
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
||||
@@ -233,7 +197,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
||||
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
|
||||
public static final CachedFlag sPostGetMyMemoryStateToBackground =
|
||||
newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, false);
|
||||
@@ -848,6 +852,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -941,6 +945,7 @@ public abstract class ChromeFeatureList {
|
||||
sTabWindowManagerReportIndicesMismatch,
|
||||
sTraceBinderIpc,
|
||||
sUseChimeAndroidSdk,
|
||||
@@ -282,18 +246,54 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
|
||||
android:key="force_enable_zoom"
|
||||
android:summary="@string/force_enable_zoom_summary"
|
||||
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
|
||||
@@ -48,6 +48,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate;
|
||||
private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate;
|
||||
|
||||
+ static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links";
|
||||
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
|
||||
+
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
@@ -136,6 +139,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.isEnabled());
|
||||
mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
+ ChromeSwitchPreference mShowAlwaysContextMenuOnLinksPref =
|
||||
+ (ChromeSwitchPreference) findPreference(PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS);
|
||||
+ mShowAlwaysContextMenuOnLinksDelegate = mDelegate.getShowAlwaysContextMenuOnLinksDelegate();
|
||||
+ mShowAlwaysContextMenuOnLinksPref.setChecked(mShowAlwaysContextMenuOnLinksDelegate.isEnabled());
|
||||
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -213,6 +222,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
|
||||
mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) {
|
||||
mDisableToolbarSwipeUpDelegate.setEnabled((Boolean) newValue);
|
||||
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
|
||||
+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
|
||||
// TODO(mschillaci): Implement the override behavior for OS level.
|
||||
} else if (OmniboxFeatures.KEY_JUMP_START_OMNIBOX.equals(preference.getKey())) {
|
||||
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
|
||||
@@ -38,6 +38,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -51,6 +51,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
|
||||
BooleanPreferenceDelegate getDisableToolbarSwipeUpDelegate();
|
||||
|
||||
+ BooleanPreferenceDelegate getShowAlwaysContextMenuOnLinksDelegate();
|
||||
+
|
||||
/** @return The BrowserContextHandle that should be used to read and update settings. */
|
||||
BrowserContextHandle getBrowserContextHandle();
|
||||
|
||||
/**
|
||||
* @return The BrowserContextHandle that should be used to read and update settings.
|
||||
*/
|
||||
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
||||
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
||||
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/contextmenu/ContextMenuItemDelegate.java
|
||||
@@ -370,7 +370,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
LocalDOMWindow* window = GetDocument().domWindow();
|
||||
if (!window) {
|
||||
return;
|
||||
@@ -568,6 +580,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
||||
@@ -582,6 +594,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink(
|
||||
request.GetReferrerPolicy()));
|
||||
}
|
||||
|
||||
@@ -386,7 +386,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;
|
||||
|
||||
@@ -622,7 +643,7 @@ AtomicString HTMLAnchorElementBase::interestAction() const {
|
||||
@@ -636,7 +657,7 @@ AtomicString HTMLAnchorElementBase::interestAction() const {
|
||||
return g_empty_atom;
|
||||
}
|
||||
|
||||
@@ -395,7 +395,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
event.SetDefaultHandled();
|
||||
|
||||
LocalDOMWindow* window = GetDocument().domWindow();
|
||||
@@ -718,13 +739,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
||||
@@ -732,13 +753,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -413,7 +413,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(
|
||||
@@ -734,7 +754,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
||||
@@ -748,7 +768,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) {
|
||||
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
|
||||
std::move(task_handle));
|
||||
} else {
|
||||
@@ -504,7 +504,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
|
||||
@@ -190,14 +190,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
|
||||
@@ -196,14 +196,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -524,7 +524,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
|
||||
mouse_event->SetDefaultHandled();
|
||||
}
|
||||
|
||||
@@ -415,7 +417,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
|
||||
@@ -427,7 +429,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
|
||||
bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
const PhysicalOffset& point,
|
||||
WebMenuSourceType source_type,
|
||||
@@ -534,7 +534,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,
|
||||
@@ -438,6 +441,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
@@ -450,6 +453,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
if (!result.InnerNodeOrImageMapImage())
|
||||
return false;
|
||||
|
||||
@@ -573,7 +573,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
|
||||
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/third_party/blink/renderer/core/page/context_menu_controller.h
|
||||
--- a/third_party/blink/renderer/core/page/context_menu_controller.h
|
||||
+++ b/third_party/blink/renderer/core/page/context_menu_controller.h
|
||||
@@ -57,7 +57,7 @@ class CORE_EXPORT ContextMenuController final
|
||||
@@ -58,7 +58,7 @@ class CORE_EXPORT ContextMenuController final
|
||||
|
||||
void DocumentDetached(Document*);
|
||||
|
||||
@@ -582,7 +582,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/th
|
||||
void ShowContextMenuAtPoint(LocalFrame*,
|
||||
float x,
|
||||
float y,
|
||||
@@ -123,7 +123,8 @@ class CORE_EXPORT ContextMenuController final
|
||||
@@ -125,7 +125,8 @@ class CORE_EXPORT ContextMenuController final
|
||||
bool ShowContextMenu(LocalFrame*,
|
||||
const PhysicalOffset&,
|
||||
WebMenuSourceType,
|
||||
|
||||
@@ -187,7 +187,7 @@ new file mode 100644
|
||||
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
@@ -40,6 +40,7 @@
|
||||
@@ -41,6 +41,7 @@
|
||||
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
||||
#include "third_party/blink/public/platform/platform.h"
|
||||
#include "third_party/blink/public/platform/task_type.h"
|
||||
@@ -195,22 +195,22 @@ 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"
|
||||
@@ -879,6 +880,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
@@ -936,6 +937,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
// |request_multiple_routes|. Whether local IP addresses could be
|
||||
// collected depends on if mic/camera permission is granted for this
|
||||
// origin.
|
||||
WebRTCIPHandlingPolicy policy =
|
||||
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
|
||||
+ blink::WebContentSettingsClient* settings = web_frame->GetContentSettingsClient();
|
||||
+ if (settings && settings->AllowContentSetting(ContentSettingsType::WEBRTC, false)) {
|
||||
+ policy = kDefault;
|
||||
+ }
|
||||
+
|
||||
switch (policy) {
|
||||
switch (webrtc_ip_handling_policy) {
|
||||
// TODO(guoweis): specify the flag of disabling local candidate
|
||||
// collection when webrtc is updated.
|
||||
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
||||
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
||||
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
|
||||
@@ -12,6 +12,8 @@
|
||||
@@ -13,6 +13,8 @@
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h"
|
||||
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
||||
@@ -219,7 +219,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"
|
||||
@@ -283,6 +285,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
||||
@@ -284,6 +286,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
||||
if (kind != "audio" && kind != "video")
|
||||
return nullptr;
|
||||
|
||||
@@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.
|
||||
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||
--- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||
+++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||
@@ -17,6 +17,8 @@
|
||||
@@ -18,6 +18,8 @@
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h"
|
||||
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
|
||||
@@ -246,7 +246,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_encoding_options.h"
|
||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
|
||||
@@ -1030,6 +1032,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
||||
@@ -1031,6 +1033,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
||||
if (kind != "audio" && kind != "video")
|
||||
return nullptr;
|
||||
|
||||
|
||||
@@ -13,9 +13,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../web_package/signed_exchange_reporter.cc | 2 ++
|
||||
...content_switch_dependent_feature_overrides.cc | 1 +
|
||||
.../Allow-building-without-enable_reporting.inc | 2 ++
|
||||
net/base/features.cc | 1 +
|
||||
net/reporting/reporting_header_parser.cc | 1 +
|
||||
net/reporting/reporting_service.cc | 6 ++++++
|
||||
services/network/network_context.h | 6 +++---
|
||||
services/network/public/cpp/parsed_headers.cc | 1 +
|
||||
services/network/public/mojom/BUILD.gn | 1 -
|
||||
.../network/public/mojom/network_context.mojom | 3 +++
|
||||
.../core/frame/csp/content_security_policy.cc | 3 +++
|
||||
@@ -24,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
|
||||
.../renderer/core/frame/reporting_context.h | 7 +++++--
|
||||
.../renderer/core/frame/reporting_observer.cc | 3 +--
|
||||
20 files changed, 60 insertions(+), 26 deletions(-)
|
||||
21 files changed, 61 insertions(+), 26 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,15 +42,15 @@ 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
|
||||
@@ -1464,6 +1464,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
|
||||
@@ -1470,6 +1470,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
|
||||
}
|
||||
}
|
||||
|
||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||
std::vector<GURL> urls;
|
||||
frame_host->ForEachRenderFrameHostWithAction(
|
||||
@@ -1477,6 +1478,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||
frame_host->ForEachRenderFrameHostImplWithAction(
|
||||
@@ -1483,6 +1484,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||
});
|
||||
return urls;
|
||||
}
|
||||
@@ -106,7 +107,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
|
||||
#include "content/browser/service_worker/service_worker_host.h"
|
||||
#include "content/browser/worker_host/dedicated_worker_host.h"
|
||||
#include "content/browser/worker_host/shared_worker_host.h"
|
||||
@@ -175,12 +176,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
|
||||
@@ -190,12 +191,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy {
|
||||
const std::string& group,
|
||||
const std::string& type,
|
||||
base::Value::Dict body) {
|
||||
@@ -124,7 +125,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
|
||||
@@ -15172,12 +15172,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
||||
@@ -15257,12 +15257,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -251,17 +252,17 @@ new file mode 100644
|
||||
@@ -0,0 +1,2 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kNetworkErrorLogging);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kReporting);
|
||||
diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
--- a/net/base/features.cc
|
||||
+++ b/net/base/features.cc
|
||||
@@ -207,6 +207,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
|
||||
base::Seconds(30));
|
||||
|
||||
#if BUILDFLAG(ENABLE_REPORTING)
|
||||
+#error Attempting to build with enable_reporting
|
||||
BASE_FEATURE(kDocumentReporting,
|
||||
"DocumentReporting",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc
|
||||
--- a/net/reporting/reporting_header_parser.cc
|
||||
+++ b/net/reporting/reporting_header_parser.cc
|
||||
@@ -332,6 +332,7 @@ void ReportingHeaderParser::ProcessParsedReportingEndpointsHeader(
|
||||
const NetworkAnonymizationKey& network_anonymization_key,
|
||||
const url::Origin& origin,
|
||||
base::flat_map<std::string, std::string> header) {
|
||||
+ CHECK(false);
|
||||
DCHECK(GURL::SchemeIsCryptographic(origin.scheme()));
|
||||
DCHECK(!reporting_source.is_empty());
|
||||
DCHECK(network_anonymization_key.IsEmpty() ||
|
||||
diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
|
||||
--- a/net/reporting/reporting_service.cc
|
||||
+++ b/net/reporting/reporting_service.cc
|
||||
@@ -299,10 +300,21 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
|
||||
void AddDomainReliabilityContextForTesting(
|
||||
const url::Origin& origin,
|
||||
const GURL& upload_url,
|
||||
diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc
|
||||
--- a/services/network/public/cpp/parsed_headers.cc
|
||||
+++ b/services/network/public/cpp/parsed_headers.cc
|
||||
@@ -115,6 +115,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders(
|
||||
}
|
||||
|
||||
#if BUILDFLAG(ENABLE_REPORTING)
|
||||
+#error Attempting to build with enable_reporting
|
||||
if (std::optional<std::string> reporting_endpoints =
|
||||
headers->GetNormalizedHeader("Reporting-Endpoints")) {
|
||||
parsed_headers->reporting_endpoints =
|
||||
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
|
||||
@@ -1560,7 +1560,6 @@ mojom("mojom") {
|
||||
@@ -1557,7 +1557,6 @@ mojom("mojom") {
|
||||
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
|
||||
export_header_blink = "third_party/blink/public/platform/web_common.h"
|
||||
if (enable_reporting) {
|
||||
@@ -313,7 +325,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
|
||||
@@ -1181,6 +1181,7 @@ interface NetworkContext {
|
||||
@@ -1208,6 +1208,7 @@ interface NetworkContext {
|
||||
// provided `network_anonymization_key`.
|
||||
//
|
||||
// Spec: https://w3c.github.io/reporting/#concept-reports
|
||||
@@ -321,15 +333,15 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
|
||||
QueueReport(string type,
|
||||
string group,
|
||||
url.mojom.Url url,
|
||||
@@ -1188,6 +1189,7 @@ interface NetworkContext {
|
||||
@@ -1215,6 +1216,7 @@ interface NetworkContext {
|
||||
NetworkAnonymizationKey network_anonymization_key,
|
||||
mojo_base.mojom.DictionaryValue body);
|
||||
|
||||
+ [EnableIf=enable_reporting]
|
||||
QueueEnterpriseReport(string type,
|
||||
string group,
|
||||
url.mojom.Url url,
|
||||
@@ -1198,6 +1200,7 @@ interface NetworkContext {
|
||||
string group,
|
||||
url.mojom.Url url,
|
||||
@@ -1225,6 +1227,7 @@ interface NetworkContext {
|
||||
// Note that this queued report will never be delivered if no reporting
|
||||
// endpoint matching is registered for with the provided
|
||||
// `network_anonymization_key`.
|
||||
@@ -340,15 +352,15 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
|
||||
diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
||||
--- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <optional>
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <set>
|
||||
#include <utility>
|
||||
|
||||
+#include "net/net_buildflags.h"
|
||||
#include "base/containers/contains.h"
|
||||
#include "base/debug/dump_without_crashing.h"
|
||||
#include "base/ranges/algorithm.h"
|
||||
@@ -1243,6 +1244,7 @@ void ContentSecurityPolicy::ReportViolation(
|
||||
@@ -1284,6 +1285,7 @@ void ContentSecurityPolicy::ReportViolation(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -356,7 +368,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);
|
||||
|
||||
@@ -1250,6 +1252,7 @@ void ContentSecurityPolicy::ReportViolation(
|
||||
@@ -1291,6 +1293,7 @@ void ContentSecurityPolicy::ReportViolation(
|
||||
// `context_frame` (i.e. we're not processing 'frame-ancestors').
|
||||
if (delegate_ && !context_frame)
|
||||
delegate_->DispatchViolationEvent(*violation_data, element);
|
||||
@@ -375,7 +387,7 @@ 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"
|
||||
@@ -2789,9 +2790,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
|
||||
@@ -2791,9 +2792,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() {
|
||||
return CHECK_DEREF(GetDocument()).GetResourceCoordinator();
|
||||
}
|
||||
|
||||
@@ -398,7 +410,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
|
||||
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
|
||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||
#include "services/metrics/public/cpp/ukm_source_id.h"
|
||||
@@ -659,8 +660,9 @@ class CORE_EXPORT LocalFrame final
|
||||
@@ -660,8 +661,9 @@ class CORE_EXPORT LocalFrame final
|
||||
void FinishedScrollSequence();
|
||||
|
||||
SmoothScrollSequencer* GetSmoothScrollSequencer() const;
|
||||
@@ -420,7 +432,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
||||
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
|
||||
#include "third_party/blink/public/platform/platform.h"
|
||||
#include "third_party/blink/public/platform/task_type.h"
|
||||
@@ -53,7 +54,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext";
|
||||
@@ -58,7 +59,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext";
|
||||
ReportingContext::ReportingContext(ExecutionContext& context)
|
||||
: Supplement<ExecutionContext>(context),
|
||||
execution_context_(context),
|
||||
@@ -430,7 +442,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
||||
receiver_(this, &context) {}
|
||||
|
||||
// static
|
||||
@@ -121,7 +124,9 @@ void ReportingContext::Trace(Visitor* visitor) const {
|
||||
@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const {
|
||||
visitor->Trace(observers_);
|
||||
visitor->Trace(report_buffer_);
|
||||
visitor->Trace(execution_context_);
|
||||
@@ -440,7 +452,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
||||
visitor->Trace(receiver_);
|
||||
Supplement<ExecutionContext>::Trace(visitor);
|
||||
}
|
||||
@@ -143,6 +148,7 @@ void ReportingContext::CountReport(Report* report) {
|
||||
@@ -148,6 +153,7 @@ void ReportingContext::CountReport(Report* report) {
|
||||
UseCounter::Count(execution_context_, feature);
|
||||
}
|
||||
|
||||
@@ -448,23 +460,23 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_
|
||||
const HeapMojoRemote<mojom::blink::ReportingServiceProxy>&
|
||||
ReportingContext::GetReportingService() const {
|
||||
if (!reporting_service_.is_bound()) {
|
||||
@@ -152,6 +158,7 @@ ReportingContext::GetReportingService() const {
|
||||
@@ -157,6 +163,7 @@ ReportingContext::GetReportingService() const {
|
||||
}
|
||||
return reporting_service_;
|
||||
}
|
||||
+#endif
|
||||
|
||||
void ReportingContext::NotifyInternal(Report* report) {
|
||||
// Buffer the report.
|
||||
@@ -174,6 +181,7 @@ void ReportingContext::NotifyInternal(Report* report) {
|
||||
if (!ShouldReportBeVisibleToObservers(report)) {
|
||||
@@ -183,6 +190,7 @@ void ReportingContext::NotifyInternal(Report* report) {
|
||||
|
||||
void ReportingContext::SendToReportingAPI(Report* report,
|
||||
const String& endpoint) const {
|
||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||
const String& type = report->type();
|
||||
if (!(type == ReportType::kCSPViolation || type == ReportType::kDeprecation ||
|
||||
type == ReportType::kPermissionsPolicyViolation ||
|
||||
@@ -230,6 +238,7 @@ void ReportingContext::SendToReportingAPI(Report* report,
|
||||
if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash ||
|
||||
type == ReportType::kDeprecation ||
|
||||
@@ -246,6 +254,7 @@ void ReportingContext::SendToReportingAPI(Report* report,
|
||||
url, endpoint, body->featureId(), body->disposition(), body->message(),
|
||||
body->sourceFile(), line_number, column_number);
|
||||
}
|
||||
|
||||
@@ -4,20 +4,20 @@ Subject: Disable all promo dialogs
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 1 +
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 2 +-
|
||||
.../views/profiles/profile_picker_feature_promo_controller.cc | 1 +
|
||||
.../user_education/impl/browser_feature_promo_controller_20.cc | 1 +
|
||||
.../chrome/browser/user_education/UserEducationHelper.java | 1 +
|
||||
.../common/feature_promo/feature_promo_registry.cc | 2 ++
|
||||
.../common/feature_promo/impl/feature_promo_controller_20.cc | 1 +
|
||||
.../common/feature_promo/impl/feature_promo_controller_25.cc | 1 +
|
||||
8 files changed, 9 insertions(+), 1 deletion(-)
|
||||
.../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 1 +
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 2 +-
|
||||
.../views/profiles/profile_picker_feature_promo_controller.cc | 1 +
|
||||
.../user_education/impl/browser_feature_promo_controller_20.cc | 1 +
|
||||
.../chrome/browser/user_education/UserEducationHelper.java | 1 +
|
||||
.../common/feature_promo/feature_promo_registry.cc | 2 ++
|
||||
.../common/feature_promo/impl/feature_promo_controller_20.cc | 1 +
|
||||
.../common/feature_promo/impl/feature_promo_controller_25.cc | 3 ++-
|
||||
8 files changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -1379,6 +1379,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
@@ -1465,6 +1465,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
|
||||
}
|
||||
|
||||
private boolean maybeShowPromo(Profile profile) {
|
||||
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -148,7 +148,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -151,7 +151,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled,
|
||||
false);
|
||||
@@ -57,8 +57,8 @@ diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_c
|
||||
ui::TrackedElement* anchor_element) const {
|
||||
+ if ((true)) return false;
|
||||
// Trying to show an IPH while the browser is closing can cause problems;
|
||||
// see crbug.com/346461762 for an example.
|
||||
if (browser_view_->browser()->IsBrowserClosing()) {
|
||||
// see crbug.com/346461762 for an example. This can also crash unit_tests that
|
||||
// use a BrowserWindow but not a browser, so also check if the browser view's
|
||||
diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
|
||||
--- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
|
||||
+++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
|
||||
@@ -92,7 +92,7 @@ diff --git a/components/user_education/common/feature_promo/feature_promo_regist
|
||||
diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc
|
||||
--- a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc
|
||||
+++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc
|
||||
@@ -89,6 +89,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon(
|
||||
@@ -99,6 +99,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon(
|
||||
const FeaturePromoParams& params,
|
||||
ShowSource source,
|
||||
CanShowPromoOutputs* outputs) const {
|
||||
@@ -103,12 +103,21 @@ diff --git a/components/user_education/common/feature_promo/impl/feature_promo_c
|
||||
diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc
|
||||
--- a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc
|
||||
+++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc
|
||||
@@ -48,6 +48,7 @@ FeaturePromoResult FeaturePromoController25::CanShowPromoCommon(
|
||||
const FeaturePromoParams& params,
|
||||
ShowSource source,
|
||||
CanShowPromoOutputs* outputs) const {
|
||||
+ if ((true)) return FeaturePromoResult::kBlockedByContext;
|
||||
return FeaturePromoResult::kError;
|
||||
}
|
||||
@@ -172,6 +172,7 @@ FeaturePromoController25::~FeaturePromoController25() {
|
||||
|
||||
FeaturePromoResult FeaturePromoController25::CanShowPromo(
|
||||
const FeaturePromoParams& params) const {
|
||||
+ if ((true)) return FeaturePromoResult::kBlockedByContext;
|
||||
auto* const spec = registry()->GetParamsForFeature(*params.feature);
|
||||
return spec ? private_->queues.CanShow(*spec, params)
|
||||
: FeaturePromoResult::kError;
|
||||
@@ -184,7 +185,7 @@ void FeaturePromoController25::MaybeShowStartupPromo(
|
||||
|
||||
void FeaturePromoController25::MaybeShowPromo(FeaturePromoParams params) {
|
||||
auto* const spec = registry()->GetParamsForFeature(*params.feature);
|
||||
- if (!spec) {
|
||||
+ if (((true)) || !spec) {
|
||||
PostShowPromoResult(std::move(params.show_promo_result_callback),
|
||||
FeaturePromoResult::kError);
|
||||
return;
|
||||
--
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../web_package/signed_exchange_loader.h | 2 +
|
||||
.../signed_exchange_prefetch_handler.cc | 2 +-
|
||||
.../signed_exchange_request_handler.cc | 1 +
|
||||
net/http/transport_security_state.cc | 109 ++++++++++++------
|
||||
net/http/transport_security_state.cc | 100 ++++++++++++------
|
||||
net/http/transport_security_state.h | 39 ++++---
|
||||
net/quic/crypto/proof_verifier_chromium.cc | 5 +-
|
||||
net/quic/quic_chromium_client_session.cc | 2 +-
|
||||
@@ -21,16 +21,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
net/spdy/spdy_session.cc | 11 +-
|
||||
net/spdy/spdy_session.h | 3 +-
|
||||
.../url_request_context_builder.cc | 14 ---
|
||||
net/url_request/url_request_http_job.cc | 7 +-
|
||||
services/network/network_context.cc | 31 +++--
|
||||
net/url_request/url_request_http_job.cc | 5 +-
|
||||
services/network/network_context.cc | 31 ++++--
|
||||
services/network/network_context.h | 13 ++-
|
||||
.../public/mojom/network_context.mojom | 9 +-
|
||||
21 files changed, 180 insertions(+), 103 deletions(-)
|
||||
21 files changed, 171 insertions(+), 101 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc
|
||||
--- a/chrome/browser/ssl/https_upgrades_interceptor.cc
|
||||
+++ b/chrome/browser/ssl/https_upgrades_interceptor.cc
|
||||
@@ -409,6 +409,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
|
||||
@@ -410,6 +410,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
|
||||
network::mojom::NetworkContext* network_context =
|
||||
profile->GetDefaultStoragePartition()->GetNetworkContext();
|
||||
network_context->IsHSTSActiveForHost(
|
||||
@@ -41,7 +41,7 @@ diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/s
|
||||
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
|
||||
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
|
||||
@@ -410,7 +410,10 @@ void NetInternalsMessageHandler::OnDomainSecurityPolicyDelete(
|
||||
@@ -402,7 +402,10 @@ void NetInternalsMessageHandler::OnDomainSecurityPolicyDelete(
|
||||
// There cannot be a unicode entry in the HSTS set.
|
||||
return;
|
||||
}
|
||||
@@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/
|
||||
*domain, base::BindOnce(&IgnoreBoolCallback));
|
||||
}
|
||||
|
||||
@@ -420,7 +423,10 @@ void NetInternalsMessageHandler::OnHSTSQuery(const base::Value::List& list) {
|
||||
@@ -412,7 +415,10 @@ void NetInternalsMessageHandler::OnHSTSQuery(const base::Value::List& list) {
|
||||
DCHECK(callback_id && domain);
|
||||
|
||||
AllowJavascript();
|
||||
@@ -63,7 +63,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/
|
||||
*domain,
|
||||
base::BindOnce(&NetInternalsMessageHandler::ResolveCallbackWithResult,
|
||||
weak_factory_.GetWeakPtr(), *callback_id));
|
||||
@@ -446,8 +452,12 @@ void NetInternalsMessageHandler::OnHSTSAdd(const base::Value::List& list) {
|
||||
@@ -438,8 +444,12 @@ void NetInternalsMessageHandler::OnHSTSAdd(const base::Value::List& list) {
|
||||
const bool sts_include_subdomains = list[1].GetBool();
|
||||
|
||||
base::Time expiry = base::Time::Now() + base::Days(1000);
|
||||
@@ -125,7 +125,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br
|
||||
outer_request_isolation_info_(std::move(outer_request_isolation_info)),
|
||||
load_flags_(load_flags),
|
||||
remote_endpoint_(remote_endpoint),
|
||||
@@ -532,7 +535,7 @@ void SignedExchangeHandler::OnCertReceived(
|
||||
@@ -531,7 +534,7 @@ void SignedExchangeHandler::OnCertReceived(
|
||||
// property, or
|
||||
const std::string& stapled_ocsp_response = unverified_cert_chain_->ocsp();
|
||||
|
||||
@@ -220,7 +220,7 @@ diff --git a/content/browser/web_package/signed_exchange_request_handler.cc b/co
|
||||
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
|
||||
@@ -88,7 +88,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) {
|
||||
@@ -87,7 +87,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) {
|
||||
// Converts |hostname| from dotted form ("www.google.com") to the form
|
||||
// used in DNS: "\x03www\x06google\x03com", lowercases that, and returns
|
||||
// the result.
|
||||
@@ -229,7 +229,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
|
||||
@@ -109,6 +109,29 @@ std::vector<uint8_t> CanonicalizeHost(std::string_view host) {
|
||||
@@ -108,6 +108,29 @@ std::vector<uint8_t> CanonicalizeHost(std::string_view host) {
|
||||
return std::move(new_host).value();
|
||||
}
|
||||
|
||||
@@ -259,7 +259,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 {
|
||||
@@ -200,7 +223,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) {
|
||||
@@ -199,7 +222,7 @@ bool DecodeHSTSPreload(std::string_view search_hostname, PreloadResult* out) {
|
||||
|
||||
// Ensure that |search_hostname| is a valid hostname before
|
||||
// processing.
|
||||
@@ -268,12 +268,12 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
return false;
|
||||
}
|
||||
// Normalize any trailing '.' used for DNS suffix searches.
|
||||
@@ -261,18 +284,19 @@ TransportSecurityState::TransportSecurityState(
|
||||
@@ -259,18 +282,19 @@ TransportSecurityState::TransportSecurityState(
|
||||
|
||||
// Both HSTS and HPKP cause fatal SSL errors, so return true if a
|
||||
// host has either.
|
||||
-bool TransportSecurityState::ShouldSSLErrorsBeFatal(const std::string& host) {
|
||||
+bool TransportSecurityState::ShouldSSLErrorsBeFatal(const NetworkAnonymizationKey& nak, const std::string& host) {
|
||||
-bool TransportSecurityState::ShouldSSLErrorsBeFatal(std::string_view host) {
|
||||
+bool TransportSecurityState::ShouldSSLErrorsBeFatal(const NetworkAnonymizationKey& nak, std::string_view host) {
|
||||
STSState unused_sts;
|
||||
PKPState unused_pkp;
|
||||
- return GetSTSState(host, &unused_sts) || GetPKPState(host, &unused_pkp);
|
||||
@@ -282,7 +282,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
|
||||
base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam(
|
||||
+ const NetworkAnonymizationKey& nak,
|
||||
const std::string& host) {
|
||||
std::string_view host) {
|
||||
STSState sts_state;
|
||||
base::Value::Dict dict;
|
||||
dict.Set("host", host);
|
||||
@@ -291,17 +291,23 @@ 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());
|
||||
@@ -280,14 +304,15 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam(
|
||||
@@ -278,12 +302,13 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam(
|
||||
}
|
||||
|
||||
SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision(
|
||||
+ const NetworkAnonymizationKey& nak,
|
||||
const std::string& host,
|
||||
std::string_view host,
|
||||
bool is_top_level_nav,
|
||||
const NetLogWithSource& net_log) {
|
||||
net_log.AddEvent(
|
||||
NetLogEventType::TRANSPORT_SECURITY_STATE_SHOULD_UPGRADE_TO_SSL,
|
||||
- [&] { return NetLogUpgradeToSSLParam(host); });
|
||||
+ [&] { return NetLogUpgradeToSSLParam(nak, host); });
|
||||
|
||||
// Only top level navigations should be upgraded when
|
||||
// kHstsTopLevelNavigationsOnly is enabled.
|
||||
@@ -294,7 +319,7 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision(
|
||||
|
||||
STSState sts_state;
|
||||
// Check the dynamic list first (removing the entry if expired).
|
||||
- if (GetDynamicSTSState(host, &sts_state)) {
|
||||
@@ -309,43 +315,42 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
// [*.]localhost hosts now ignore Strict-Transport-Security response
|
||||
// headers, but an entry may have been stored before this restriction
|
||||
// was introduced (crbug.com/41251622).
|
||||
@@ -312,27 +337,29 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision(
|
||||
@@ -319,10 +344,11 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision(
|
||||
}
|
||||
|
||||
bool TransportSecurityState::ShouldUpgradeToSSL(
|
||||
+ const NetworkAnonymizationKey& nak,
|
||||
const std::string& host,
|
||||
std::string_view host,
|
||||
const NetLogWithSource& net_log) {
|
||||
- return GetSSLUpgradeDecision(host, net_log) != SSLUpgradeDecision::kNoUpgrade;
|
||||
+ return GetSSLUpgradeDecision(nak, host, net_log) != SSLUpgradeDecision::kNoUpgrade;
|
||||
// TODO(crbug.com/361746120): Propagate `is_top_level_nav` to callers.
|
||||
- return GetSSLUpgradeDecision(host, true, net_log) !=
|
||||
+ return GetSSLUpgradeDecision(nak, host, true, net_log) !=
|
||||
SSLUpgradeDecision::kNoUpgrade;
|
||||
}
|
||||
|
||||
TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
|
||||
const HostPortPair& host_port_pair,
|
||||
@@ -331,17 +357,17 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins(
|
||||
bool is_issued_by_known_root,
|
||||
- const HashValueVector& public_key_hashes) {
|
||||
+ const HashValueVector& public_key_hashes,
|
||||
+ const NetworkAnonymizationKey& network_anonymization_key) {
|
||||
const HashValueVector& public_key_hashes) {
|
||||
// Perform pin validation only if the server actually has public key pins.
|
||||
- if (!HasPublicKeyPins(host_port_pair.host())) {
|
||||
+ if (!HasPublicKeyPins(network_anonymization_key, host_port_pair.host())) {
|
||||
- if (!HasPublicKeyPins(host)) {
|
||||
+ if (!HasPublicKeyPins(network_anonymization_key, host)) {
|
||||
return PKPStatus::OK;
|
||||
}
|
||||
|
||||
return CheckPublicKeyPinsImpl(host_port_pair, is_issued_by_known_root,
|
||||
return CheckPublicKeyPinsImpl(host, is_issued_by_known_root,
|
||||
- public_key_hashes);
|
||||
+ public_key_hashes, network_anonymization_key);
|
||||
}
|
||||
|
||||
-bool TransportSecurityState::HasPublicKeyPins(const std::string& host) {
|
||||
+bool TransportSecurityState::HasPublicKeyPins(const NetworkAnonymizationKey& nak, const std::string& host) {
|
||||
-bool TransportSecurityState::HasPublicKeyPins(std::string_view host) {
|
||||
+bool TransportSecurityState::HasPublicKeyPins(const NetworkAnonymizationKey& nak, std::string_view host) {
|
||||
PKPState pkp_state;
|
||||
- return GetPKPState(host, &pkp_state) && pkp_state.HasPublicKeyPins();
|
||||
+ return GetPKPState(nak, host, &pkp_state) && pkp_state.HasPublicKeyPins();
|
||||
}
|
||||
|
||||
TransportSecurityState::CTRequirementsStatus
|
||||
@@ -412,12 +439,13 @@ void TransportSecurityState::UpdatePinList(
|
||||
@@ -421,12 +447,13 @@ void TransportSecurityState::UpdatePinList(
|
||||
}
|
||||
|
||||
void TransportSecurityState::AddHSTSInternal(
|
||||
@@ -360,7 +365,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
if (canonicalized_host.empty())
|
||||
return;
|
||||
|
||||
@@ -441,13 +469,14 @@ void TransportSecurityState::AddHSTSInternal(
|
||||
@@ -450,13 +477,14 @@ void TransportSecurityState::AddHSTSInternal(
|
||||
DirtyNotify();
|
||||
}
|
||||
|
||||
@@ -377,14 +382,12 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
if (canonicalized_host.empty())
|
||||
return;
|
||||
|
||||
@@ -492,10 +521,12 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins(
|
||||
@@ -500,10 +528,10 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins(
|
||||
return PKPStatus::VIOLATED;
|
||||
}
|
||||
|
||||
-bool TransportSecurityState::DeleteDynamicDataForHost(const std::string& host) {
|
||||
+bool TransportSecurityState::DeleteDynamicDataForHost(
|
||||
+ const NetworkAnonymizationKey& nak,
|
||||
+ const std::string& host) {
|
||||
-bool TransportSecurityState::DeleteDynamicDataForHost(std::string_view host) {
|
||||
+bool TransportSecurityState::DeleteDynamicDataForHost(const NetworkAnonymizationKey& nak, std::string_view host) {
|
||||
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
||||
|
||||
- const std::vector<uint8_t> canonicalized_host = CanonicalizeHost(host);
|
||||
@@ -392,7 +395,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
if (canonicalized_host.empty())
|
||||
return false;
|
||||
|
||||
@@ -572,7 +603,8 @@ void TransportSecurityState::DirtyNotify() {
|
||||
@@ -580,7 +608,8 @@ void TransportSecurityState::DirtyNotify() {
|
||||
delegate_->StateIsDirty(this);
|
||||
}
|
||||
|
||||
@@ -402,7 +405,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
std::string_view value) {
|
||||
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
||||
|
||||
@@ -591,23 +623,25 @@ bool TransportSecurityState::AddHSTSHeader(std::string_view host,
|
||||
@@ -599,23 +628,25 @@ bool TransportSecurityState::AddHSTSHeader(std::string_view host,
|
||||
upgrade_mode = STSState::MODE_FORCE_HTTPS;
|
||||
}
|
||||
|
||||
@@ -433,20 +436,20 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
}
|
||||
|
||||
size_t TransportSecurityState::num_sts_entries() const {
|
||||
@@ -632,9 +666,10 @@ TransportSecurityState::PKPStatus
|
||||
TransportSecurityState::CheckPublicKeyPinsImpl(
|
||||
const HostPortPair& host_port_pair,
|
||||
bool is_issued_by_known_root,
|
||||
- const HashValueVector& hashes) {
|
||||
+ const HashValueVector& hashes,
|
||||
+ const NetworkAnonymizationKey& network_anonymization_key) {
|
||||
@@ -639,9 +670,10 @@ bool TransportSecurityState::IsBuildTimely() {
|
||||
TransportSecurityState::PKPStatus
|
||||
TransportSecurityState::CheckPublicKeyPinsImpl(std::string_view host,
|
||||
bool is_issued_by_known_root,
|
||||
- const HashValueVector& hashes) {
|
||||
+ const HashValueVector& hashes,
|
||||
+ const NetworkAnonymizationKey& network_anonymization_key) {
|
||||
PKPState pkp_state;
|
||||
- bool found_state = GetPKPState(host_port_pair.host(), &pkp_state);
|
||||
+ bool found_state = GetPKPState(network_anonymization_key, host_port_pair.host(), &pkp_state);
|
||||
- bool found_state = GetPKPState(host, &pkp_state);
|
||||
+ bool found_state = GetPKPState(network_anonymization_key, host, &pkp_state);
|
||||
|
||||
// HasPublicKeyPins should have returned true in order for this method to have
|
||||
// been called.
|
||||
@@ -675,7 +710,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
|
||||
@@ -682,7 +714,7 @@ bool TransportSecurityState::GetStaticPKPState(std::string_view host,
|
||||
PreloadResult result;
|
||||
if (host_pins_.has_value()) {
|
||||
// Ensure that |host| is a valid hostname before processing.
|
||||
@@ -455,29 +458,26 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
return false;
|
||||
}
|
||||
// Normalize any trailing '.' used for DNS suffix searches.
|
||||
@@ -758,21 +793,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host,
|
||||
@@ -764,21 +796,21 @@ bool TransportSecurityState::GetStaticPKPState(std::string_view host,
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool TransportSecurityState::GetSTSState(const std::string& host,
|
||||
+bool TransportSecurityState::GetSTSState(const NetworkAnonymizationKey& nak,
|
||||
+ const std::string& host,
|
||||
-bool TransportSecurityState::GetSTSState(std::string_view host,
|
||||
+bool TransportSecurityState::GetSTSState(const NetworkAnonymizationKey& nak, std::string_view host,
|
||||
STSState* result) {
|
||||
- return GetDynamicSTSState(host, result) || GetStaticSTSState(host, result);
|
||||
+ return GetDynamicSTSState(nak, host, result) || GetStaticSTSState(host, result);
|
||||
}
|
||||
|
||||
-bool TransportSecurityState::GetPKPState(const std::string& host,
|
||||
+bool TransportSecurityState::GetPKPState(const NetworkAnonymizationKey& nak,
|
||||
+ const std::string& host,
|
||||
-bool TransportSecurityState::GetPKPState(std::string_view host,
|
||||
+bool TransportSecurityState::GetPKPState(const NetworkAnonymizationKey& nak, std::string_view host,
|
||||
PKPState* result) {
|
||||
- return GetDynamicPKPState(host, result) || GetStaticPKPState(host, result);
|
||||
+ return GetDynamicPKPState(nak, host, result) || GetStaticPKPState(host, result);
|
||||
}
|
||||
|
||||
-bool TransportSecurityState::GetDynamicSTSState(const std::string& host,
|
||||
+bool TransportSecurityState::GetDynamicSTSState(const NetworkAnonymizationKey& nak,
|
||||
+ const std::string& host,
|
||||
-bool TransportSecurityState::GetDynamicSTSState(std::string_view host,
|
||||
+bool TransportSecurityState::GetDynamicSTSState(const NetworkAnonymizationKey& nak, std::string_view host,
|
||||
STSState* result) {
|
||||
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
||||
|
||||
@@ -486,13 +486,12 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
if (canonicalized_host.empty())
|
||||
return false;
|
||||
|
||||
@@ -809,11 +847,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host,
|
||||
@@ -815,11 +847,11 @@ bool TransportSecurityState::GetDynamicSTSState(std::string_view host,
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool TransportSecurityState::GetDynamicPKPState(const std::string& host,
|
||||
+bool TransportSecurityState::GetDynamicPKPState(const NetworkAnonymizationKey& nak,
|
||||
+ const std::string& host,
|
||||
-bool TransportSecurityState::GetDynamicPKPState(std::string_view host,
|
||||
+bool TransportSecurityState::GetDynamicPKPState(const NetworkAnonymizationKey& nak, std::string_view host,
|
||||
PKPState* result) {
|
||||
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
|
||||
|
||||
@@ -504,30 +503,30 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_
|
||||
diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h
|
||||
--- a/net/http/transport_security_state.h
|
||||
+++ b/net/http/transport_security_state.h
|
||||
@@ -291,6 +291,7 @@ class NET_EXPORT TransportSecurityState {
|
||||
@@ -290,6 +290,7 @@ class NET_EXPORT TransportSecurityState {
|
||||
// As ShouldUpgradeToSSL(), but also returns whether the decision came from
|
||||
// static or dynamic state, for metrics.
|
||||
SSLUpgradeDecision GetSSLUpgradeDecision(
|
||||
+ const NetworkAnonymizationKey& nak,
|
||||
const std::string& host,
|
||||
std::string_view host,
|
||||
bool is_top_level_nav,
|
||||
const NetLogWithSource& net_log = NetLogWithSource());
|
||||
|
||||
@@ -299,13 +300,14 @@ class NET_EXPORT TransportSecurityState {
|
||||
// primary public interface; direct access to STS and PKP states is best
|
||||
// left to tests. The caller needs to handle the optional pinning override
|
||||
// when is_issued_by_known_root is false.
|
||||
- bool ShouldSSLErrorsBeFatal(const std::string& host);
|
||||
- bool ShouldUpgradeToSSL(const std::string& host,
|
||||
+ bool ShouldSSLErrorsBeFatal(const NetworkAnonymizationKey& nak, const std::string& host);
|
||||
+ bool ShouldUpgradeToSSL(const NetworkAnonymizationKey& nak, const std::string& host,
|
||||
- bool ShouldSSLErrorsBeFatal(std::string_view host);
|
||||
- bool ShouldUpgradeToSSL(std::string_view host,
|
||||
+ bool ShouldSSLErrorsBeFatal(const NetworkAnonymizationKey& nak, std::string_view host);
|
||||
+ bool ShouldUpgradeToSSL(const NetworkAnonymizationKey& nak, std::string_view host,
|
||||
const NetLogWithSource& net_log = NetLogWithSource());
|
||||
PKPStatus CheckPublicKeyPins(const HostPortPair& host_port_pair,
|
||||
PKPStatus CheckPublicKeyPins(std::string_view host,
|
||||
bool is_issued_by_known_root,
|
||||
- const HashValueVector& hashes);
|
||||
- bool HasPublicKeyPins(const std::string& host);
|
||||
- bool HasPublicKeyPins(std::string_view host);
|
||||
+ const HashValueVector& hashes,
|
||||
+ const NetworkAnonymizationKey& network_anonymization_key);
|
||||
+ bool HasPublicKeyPins(const NetworkAnonymizationKey& nak, const std::string& host);
|
||||
+ const NetworkAnonymizationKey& nak, );
|
||||
+ bool HasPublicKeyPins(const NetworkAnonymizationKey& nak, std::string_view host);
|
||||
|
||||
// Returns CT_REQUIREMENTS_NOT_MET if a connection violates CT policy
|
||||
// requirements: that is, if a connection to |host|, using the validated
|
||||
@@ -535,8 +534,8 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
|
||||
//
|
||||
// If an entry is deleted, the new state will be persisted through
|
||||
// the Delegate (if any).
|
||||
- bool DeleteDynamicDataForHost(const std::string& host);
|
||||
+ bool DeleteDynamicDataForHost(const NetworkAnonymizationKey& nak, const std::string& host);
|
||||
- bool DeleteDynamicDataForHost(std::string_view host);
|
||||
+ bool DeleteDynamicDataForHost(const NetworkAnonymizationKey& nak, std::string_view host);
|
||||
|
||||
// Returns true and updates |*result| if |host| has dynamic or static
|
||||
// HSTS/HPKP (respectively) state. If multiple entries match |host|, dynamic
|
||||
@@ -544,10 +543,10 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
|
||||
//
|
||||
// Note that these methods are not const because they opportunistically remove
|
||||
// entries that have expired.
|
||||
- bool GetSTSState(const std::string& host, STSState* sts_result);
|
||||
- bool GetPKPState(const std::string& host, PKPState* pkp_result);
|
||||
+ bool GetSTSState(const NetworkAnonymizationKey& nak, const std::string& host, STSState* sts_result);
|
||||
+ bool GetPKPState(const NetworkAnonymizationKey& nak, const std::string& host, PKPState* pkp_result);
|
||||
- bool GetSTSState(std::string_view host, STSState* sts_result);
|
||||
- bool GetPKPState(std::string_view host, PKPState* pkp_result);
|
||||
+ bool GetSTSState(const NetworkAnonymizationKey& nak, std::string_view host, STSState* sts_result);
|
||||
+ bool GetPKPState(const NetworkAnonymizationKey& nak, std::string_view host, PKPState* pkp_result);
|
||||
|
||||
// Returns true and updates |*result| iff |host| has static HSTS/HPKP
|
||||
// (respectively) state. If multiple entries match |host|, the most specific
|
||||
@@ -555,10 +554,10 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
|
||||
//
|
||||
// Note that these methods are not const because they opportunistically remove
|
||||
// entries that have expired.
|
||||
- bool GetDynamicSTSState(const std::string& host, STSState* result);
|
||||
- bool GetDynamicPKPState(const std::string& host, PKPState* result);
|
||||
+ bool GetDynamicSTSState(const NetworkAnonymizationKey& nak, const std::string& host, STSState* result);
|
||||
+ bool GetDynamicPKPState(const NetworkAnonymizationKey& nak, const std::string& host, PKPState* result);
|
||||
- bool GetDynamicSTSState(std::string_view host, STSState* result);
|
||||
- bool GetDynamicPKPState(std::string_view host, PKPState* result);
|
||||
+ bool GetDynamicSTSState(const NetworkAnonymizationKey& nak, std::string_view host, STSState* result);
|
||||
+ bool GetDynamicPKPState(const NetworkAnonymizationKey& nak, std::string_view host, PKPState* result);
|
||||
|
||||
// Processes an HSTS header value from the host, adding entries to
|
||||
// dynamic state if necessary.
|
||||
@@ -585,14 +584,14 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
|
||||
typedef std::map<HashedHost, STSState> STSStateMap;
|
||||
typedef std::map<HashedHost, PKPState> PKPStateMap;
|
||||
|
||||
- base::Value::Dict NetLogUpgradeToSSLParam(const std::string& host);
|
||||
+ base::Value::Dict NetLogUpgradeToSSLParam(const NetworkAnonymizationKey& nak, const std::string& host);
|
||||
- base::Value::Dict NetLogUpgradeToSSLParam(std::string_view host);
|
||||
+ base::Value::Dict NetLogUpgradeToSSLParam(const NetworkAnonymizationKey& nak, std::string_view host);
|
||||
|
||||
// IsBuildTimely returns true if the current build is new enough ensure that
|
||||
// built in security information (i.e. HSTS preloading and pinning
|
||||
@@ -481,7 +485,8 @@ class NET_EXPORT TransportSecurityState {
|
||||
// Helper method for actually checking pins.
|
||||
PKPStatus CheckPublicKeyPinsImpl(const HostPortPair& host_port_pair,
|
||||
PKPStatus CheckPublicKeyPinsImpl(std::string_view host,
|
||||
bool is_issued_by_known_root,
|
||||
- const HashValueVector& hashes);
|
||||
+ const HashValueVector& hashes,
|
||||
@@ -619,17 +618,17 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s
|
||||
diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_verifier_chromium.cc
|
||||
--- a/net/quic/crypto/proof_verifier_chromium.cc
|
||||
+++ b/net/quic/crypto/proof_verifier_chromium.cc
|
||||
@@ -412,7 +412,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
|
||||
@@ -411,7 +411,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
|
||||
TransportSecurityState::PKPStatus pin_validity =
|
||||
transport_security_state_->CheckPublicKeyPins(
|
||||
HostPortPair(hostname_, port_),
|
||||
cert_verify_result.is_issued_by_known_root,
|
||||
hostname_, cert_verify_result.is_issued_by_known_root,
|
||||
- cert_verify_result.public_key_hashes);
|
||||
+ cert_verify_result.public_key_hashes,
|
||||
+ proof_verifier_->network_anonymization_key_);
|
||||
switch (pin_validity) {
|
||||
case TransportSecurityState::PKPStatus::VIOLATED:
|
||||
result = ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN;
|
||||
@@ -439,7 +440,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
|
||||
@@ -438,7 +439,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) {
|
||||
verify_details_->is_fatal_cert_error =
|
||||
IsCertStatusError(cert_status) &&
|
||||
result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED &&
|
||||
@@ -641,7 +640,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_
|
||||
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
|
||||
--- a/net/quic/quic_chromium_client_session.cc
|
||||
+++ b/net/quic/quic_chromium_client_session.cc
|
||||
@@ -1504,7 +1504,7 @@ bool QuicChromiumClientSession::CanPool(
|
||||
@@ -1509,7 +1509,7 @@ bool QuicChromiumClientSession::CanPool(
|
||||
|
||||
return SpdySession::CanPool(transport_security_state_, ssl_info,
|
||||
*ssl_config_service_, session_key_.host(),
|
||||
@@ -653,17 +652,17 @@ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_c
|
||||
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
|
||||
--- a/net/socket/ssl_client_socket_impl.cc
|
||||
+++ b/net/socket/ssl_client_socket_impl.cc
|
||||
@@ -1186,7 +1186,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
TransportSecurityState::PKPStatus pin_validity =
|
||||
@@ -1188,7 +1188,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
context_->transport_security_state()->CheckPublicKeyPins(
|
||||
host_and_port_, server_cert_verify_result_.is_issued_by_known_root,
|
||||
host_and_port_.host(),
|
||||
server_cert_verify_result_.is_issued_by_known_root,
|
||||
- server_cert_verify_result_.public_key_hashes);
|
||||
+ server_cert_verify_result_.public_key_hashes,
|
||||
+ ssl_config_.network_anonymization_key);
|
||||
switch (pin_validity) {
|
||||
case TransportSecurityState::PKPStatus::VIOLATED:
|
||||
server_cert_verify_result_.cert_status |=
|
||||
@@ -1208,7 +1209,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() {
|
||||
@@ -1210,7 +1211,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(
|
||||
@@ -685,16 +684,16 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
|
||||
// Pooling is prohibited if the server cert is not valid for the new domain,
|
||||
// and for connections on which client certs were sent. It is also prohibited
|
||||
// when channel ID was sent if the hosts are from different eTLDs+1.
|
||||
@@ -754,7 +755,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state,
|
||||
// Port is left at 0 as it is never used.
|
||||
@@ -753,7 +754,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state,
|
||||
|
||||
if (transport_security_state->CheckPublicKeyPins(
|
||||
HostPortPair(new_hostname, 0), ssl_info.is_issued_by_known_root,
|
||||
new_hostname, ssl_info.is_issued_by_known_root,
|
||||
- ssl_info.public_key_hashes) ==
|
||||
+ ssl_info.public_key_hashes, network_anonymization_key) ==
|
||||
TransportSecurityState::PKPStatus::VIOLATED) {
|
||||
return false;
|
||||
}
|
||||
@@ -977,7 +978,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const {
|
||||
@@ -976,7 +977,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const {
|
||||
return true; // This is not a secure session, so all domains are okay.
|
||||
|
||||
return CanPool(transport_security_state_, ssl_info, *ssl_config_service_,
|
||||
@@ -704,7 +703,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
|
||||
}
|
||||
|
||||
void SpdySession::EnqueueStreamWrite(
|
||||
@@ -3011,7 +3013,8 @@ void SpdySession::OnAltSvc(
|
||||
@@ -3010,7 +3012,8 @@ void SpdySession::OnAltSvc(
|
||||
return;
|
||||
}
|
||||
if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_,
|
||||
@@ -754,17 +753,15 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
|
||||
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
|
||||
--- a/net/url_request/url_request_http_job.cc
|
||||
+++ b/net/url_request/url_request_http_job.cc
|
||||
@@ -344,7 +344,8 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||
@@ -343,6 +343,7 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||
if (TransportSecurityState* hsts =
|
||||
request->context()->transport_security_state()) {
|
||||
upgrade_decision =
|
||||
- hsts->GetSSLUpgradeDecision(url.host(), request->net_log());
|
||||
+ hsts->GetSSLUpgradeDecision(request->isolation_info().network_anonymization_key(),
|
||||
+ url.host(), request->net_log());
|
||||
}
|
||||
|
||||
// Check for reasons not to return a URLRequestHttpJob. These don't apply to
|
||||
@@ -1204,7 +1205,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() {
|
||||
upgrade_decision = hsts->GetSSLUpgradeDecision(
|
||||
+ request->isolation_info().network_anonymization_key(),
|
||||
url.host(),
|
||||
/*is_top_level_nav=*/request->isolation_info().IsMainFrameRequest(),
|
||||
request->net_log());
|
||||
@@ -1205,7 +1206,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() {
|
||||
std::optional<std::string_view> value;
|
||||
if ((value =
|
||||
headers->EnumerateHeader(nullptr, "Strict-Transport-Security"))) {
|
||||
@@ -773,7 +770,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1275,7 +1276,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) {
|
||||
@@ -1276,7 +1277,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) {
|
||||
TransportSecurityState* state = context->transport_security_state();
|
||||
NotifySSLCertificateError(
|
||||
result, transaction_->GetResponseInfo()->ssl_info,
|
||||
@@ -785,7 +782,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
|
||||
@@ -2016,6 +2016,7 @@ void NetworkContext::CreateHostResolver(
|
||||
@@ -2011,6 +2011,7 @@ void NetworkContext::CreateHostResolver(
|
||||
void NetworkContext::VerifyCertForSignedExchange(
|
||||
const scoped_refptr<net::X509Certificate>& certificate,
|
||||
const GURL& url,
|
||||
@@ -793,7 +790,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
|
||||
const std::string& ocsp_result,
|
||||
const std::string& sct_list,
|
||||
VerifyCertForSignedExchangeCallback callback) {
|
||||
@@ -2026,6 +2027,7 @@ void NetworkContext::VerifyCertForSignedExchange(
|
||||
@@ -2021,6 +2022,7 @@ void NetworkContext::VerifyCertForSignedExchange(
|
||||
pending_cert_verify->result = std::make_unique<net::CertVerifyResult>();
|
||||
pending_cert_verify->certificate = certificate;
|
||||
pending_cert_verify->url = url;
|
||||
@@ -801,7 +798,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
|
||||
pending_cert_verify->ocsp_result = ocsp_result;
|
||||
pending_cert_verify->sct_list = sct_list;
|
||||
net::CertVerifier* cert_verifier =
|
||||
@@ -2070,17 +2072,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
|
||||
@@ -2065,17 +2067,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
|
||||
std::move(callback).Run();
|
||||
}
|
||||
|
||||
@@ -824,7 +821,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();
|
||||
@@ -2090,10 +2094,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
|
||||
@@ -2085,10 +2089,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -837,7 +834,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
|
||||
GetHSTSStateCallback callback) {
|
||||
base::Value::Dict result;
|
||||
|
||||
@@ -2131,10 +2135,10 @@ void NetworkContext::GetHSTSState(const std::string& domain,
|
||||
@@ -2126,10 +2130,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(
|
||||
@@ -850,7 +847,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));
|
||||
@@ -2172,6 +2176,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
|
||||
@@ -2167,6 +2171,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
|
||||
}
|
||||
|
||||
void NetworkContext::DeleteDynamicDataForHost(
|
||||
@@ -858,7 +855,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 =
|
||||
@@ -2182,7 +2187,7 @@ void NetworkContext::DeleteDynamicDataForHost(
|
||||
@@ -2177,7 +2182,7 @@ void NetworkContext::DeleteDynamicDataForHost(
|
||||
}
|
||||
|
||||
std::move(callback).Run(
|
||||
@@ -867,7 +864,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
|
||||
}
|
||||
|
||||
void NetworkContext::EnableStaticKeyPinningForTesting(
|
||||
@@ -2226,7 +2231,7 @@ void NetworkContext::PreconnectSockets(
|
||||
@@ -2221,7 +2226,7 @@ void NetworkContext::PreconnectSockets(
|
||||
DCHECK(!require_network_anonymization_key_ ||
|
||||
!network_anonymization_key.IsEmpty());
|
||||
|
||||
@@ -876,7 +873,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.
|
||||
@@ -3071,7 +3076,9 @@ void NetworkContext::OnConnectionError() {
|
||||
@@ -3059,7 +3064,9 @@ void NetworkContext::OnConnectionError() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -887,7 +884,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
|
||||
// TODO(lilyhoughton) This needs to be gotten rid of once explicit
|
||||
// construction with a URLRequestContext is no longer supported.
|
||||
|
||||
@@ -3088,6 +3095,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) {
|
||||
@@ -3076,6 +3083,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) {
|
||||
}
|
||||
|
||||
if (!url_request_context_->transport_security_state()->ShouldUpgradeToSSL(
|
||||
@@ -895,9 +892,9 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
|
||||
original_url.host())) {
|
||||
RecordHSTSPreconnectUpgradeReason(
|
||||
HSTSRedirectUpgradeReason::kNotUpgradedNoHSTSPin);
|
||||
@@ -3139,7 +3147,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete(
|
||||
@@ -3127,7 +3135,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete(
|
||||
url_request_context_->transport_security_state()->CheckPublicKeyPins(
|
||||
net::HostPortPair::FromURL(pending_cert_verify->url),
|
||||
pending_cert_verify->url.host(),
|
||||
pending_cert_verify->result->is_issued_by_known_root,
|
||||
- pending_cert_verify->result->public_key_hashes);
|
||||
+ pending_cert_verify->result->public_key_hashes,
|
||||
@@ -933,7 +930,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
|
||||
const std::string& host,
|
||||
DeleteDynamicDataForHostCallback callback) override;
|
||||
void SetCorsOriginAccessListsForOrigin(
|
||||
@@ -748,7 +751,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
@@ -752,7 +755,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
mojo::PendingRemote<mojom::CookieAccessObserver> cookie_observer,
|
||||
net::FirstPartySetMetadata first_party_set_metadata);
|
||||
|
||||
@@ -943,7 +940,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
|
||||
|
||||
#if BUILDFLAG(IS_P2P_ENABLED)
|
||||
void DestroySocketManager(P2PSocketManager* socket_manager);
|
||||
@@ -951,6 +955,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
@@ -955,6 +959,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
VerifyCertForSignedExchangeCallback callback;
|
||||
scoped_refptr<net::X509Certificate> certificate;
|
||||
GURL url;
|
||||
@@ -954,21 +951,20 @@ 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
|
||||
@@ -1489,6 +1489,7 @@ interface NetworkContext {
|
||||
@@ -1523,22 +1523,23 @@ interface NetworkContext {
|
||||
// implementation is currently specific for use by Signed Exchange.
|
||||
VerifyCertForSignedExchange(X509Certificate certificate,
|
||||
url.mojom.Url url,
|
||||
+ NetworkAnonymizationKey network_anonymization_key,
|
||||
string ocsp_response,
|
||||
string sct_list) => (int32 error_code,
|
||||
CertVerifyResult cv_result,
|
||||
@@ -1496,16 +1497,16 @@ interface NetworkContext {
|
||||
string sct_list)
|
||||
=> (int32 error_code, CertVerifyResult cv_result, bool pkp_bypassed);
|
||||
|
||||
// Adds explicitly-specified data as if it was processed from an
|
||||
// HSTS header. Used by tests and implementation of chrome://net-internals.
|
||||
- AddHSTS(string host, mojo_base.mojom.Time expiry,
|
||||
+ AddHSTS(NetworkAnonymizationKey nak, string host, mojo_base.mojom.Time expiry,
|
||||
bool include_subdomains) => ();
|
||||
- AddHSTS(string host, mojo_base.mojom.Time expiry, bool include_subdomains)
|
||||
+ AddHSTS(NetworkAnonymizationKey nak, string host, mojo_base.mojom.Time expiry, bool include_subdomains)
|
||||
=> ();
|
||||
|
||||
// Returns true if it is known that |host| has requested to always be
|
||||
// accessed via HTTPS.
|
||||
@@ -977,12 +973,12 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
|
||||
|
||||
// Retrieve values from the HSTS state from the associated contexts
|
||||
// transport security state.
|
||||
- GetHSTSState(string domain)
|
||||
+ GetHSTSState(NetworkAnonymizationKey nak, string domain)
|
||||
=> (mojo_base.mojom.DictionaryValue state);
|
||||
- GetHSTSState(string domain) => (mojo_base.mojom.DictionaryValue state);
|
||||
+ GetHSTSState(NetworkAnonymizationKey nak, string domain) => (mojo_base.mojom.DictionaryValue state);
|
||||
|
||||
// Sets allowed and blocked origins respectively for the URLLoaderFactory
|
||||
@@ -1524,7 +1525,7 @@ interface NetworkContext {
|
||||
// consumers to access beyond the same-origin policy. The list is managed per
|
||||
@@ -1557,7 +1558,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.
|
||||
|
||||
@@ -9,7 +9,7 @@ Subject: WIN Disable first run
|
||||
diff --git a/chrome/browser/ui/startup/first_run_service.cc b/chrome/browser/ui/startup/first_run_service.cc
|
||||
--- a/chrome/browser/ui/startup/first_run_service.cc
|
||||
+++ b/chrome/browser/ui/startup/first_run_service.cc
|
||||
@@ -170,7 +170,7 @@ bool IsFirstRunMarkedFinishedInPrefs() {
|
||||
@@ -123,7 +123,7 @@ bool IsFirstRunMarkedFinishedInPrefs() {
|
||||
|
||||
// static
|
||||
void FirstRunService::RegisterLocalStatePrefs(PrefRegistrySimple* registry) {
|
||||
|
||||
@@ -10,10 +10,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
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
|
||||
@@ -24,6 +24,7 @@ BASE_FEATURE(kFileSystemAccessBFCache,
|
||||
BASE_FEATURE(kFileSystemAccessDragAndDropCheckBlocklist,
|
||||
"FileSystemAccessDragAndDropCheckBlocklist",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "third_party/blink/public/common/features_generated.h"
|
||||
|
||||
namespace content::features {
|
||||
+SET_CROMITE_FEATURE_ENABLED(kFileSystemAccessDragAndDropCheckBlocklist);
|
||||
|
||||
// TODO(crbug.com/40896420): Remove this flag eventually.
|
||||
|
||||
@@ -11,17 +11,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../android/java/res/layout/fre_tosanduma.xml | 160 +++++++++
|
||||
chrome/android/java/res/values/dimens.xml | 10 +
|
||||
chrome/android/java/res/values/styles.xml | 24 ++
|
||||
.../firstrun/ChildAccountStatusSupplier.java | 13 -
|
||||
.../DefaultSearchEngineFirstRunFragment.java | 3 -
|
||||
.../browser/firstrun/FirstRunActivity.java | 32 +-
|
||||
.../firstrun/FirstRunActivityBase.java | 6 +-
|
||||
.../firstrun/FirstRunFlowSequencer.java | 73 +---
|
||||
.../browser/firstrun/FirstRunActivity.java | 23 +-
|
||||
.../firstrun/FirstRunFlowSequencer.java | 61 +---
|
||||
.../browser/firstrun/FirstRunUtils.java | 1 +
|
||||
.../firstrun/ToSAndUMAFirstRunFragment.java | 335 +++++++++++++++++
|
||||
.../firstrun/TosAndUmaFragmentView.java | 336 ++++++++++++++++++
|
||||
...creenSigninAndHistorySyncActivityBase.java | 6 +-
|
||||
.../browser/locale/LocaleManagerDelegate.java | 5 +-
|
||||
.../Welcome-screen.grdp | 27 ++
|
||||
15 files changed, 915 insertions(+), 113 deletions(-)
|
||||
14 files changed, 914 insertions(+), 80 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/layout/fre_tosanduma.xml
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/firstrun/TosAndUmaFragmentView.java
|
||||
@@ -30,7 +29,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
|
||||
@@ -501,6 +501,7 @@ chrome_java_resources = [
|
||||
@@ -505,6 +505,7 @@ chrome_java_resources = [
|
||||
"java/res/layout/find_in_page.xml",
|
||||
"java/res/layout/find_toolbar.xml",
|
||||
"java/res/layout/fre_tos_privacy_disclaimer.xml",
|
||||
@@ -41,7 +40,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -655,6 +655,8 @@ chrome_java_sources = [
|
||||
@@ -651,6 +651,8 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java",
|
||||
"java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java",
|
||||
"java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java",
|
||||
@@ -218,7 +217,7 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
|
||||
--- a/chrome/android/java/res/values/dimens.xml
|
||||
+++ b/chrome/android/java/res/values/dimens.xml
|
||||
@@ -104,6 +104,16 @@ found in the LICENSE file.
|
||||
@@ -114,6 +114,16 @@ found in the LICENSE file.
|
||||
<dimen name="fre_loading_spinner_size">48dp</dimen>
|
||||
<dimen name="fre_policy_privacy_disclaimer_icon_size">18dp</dimen>
|
||||
<dimen name="fre_policy_privacy_disclaimer_icon_padding">8dp</dimen>
|
||||
@@ -269,36 +268,6 @@ diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res
|
||||
<!-- Generic Overlay Panel styles -->
|
||||
<style name="OverlayPanelTextViewLayout">
|
||||
<item name="android:layout_width">match_parent</item>
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
|
||||
@@ -13,7 +13,6 @@ import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.base.supplier.OneshotSupplier;
|
||||
import org.chromium.base.supplier.OneshotSupplierImpl;
|
||||
import org.chromium.components.signin.AccountManagerFacade;
|
||||
-import org.chromium.components.signin.AccountUtils;
|
||||
|
||||
/**
|
||||
* Fetches the child account status to be used by other FRE components.
|
||||
@@ -42,18 +41,6 @@ public class ChildAccountStatusSupplier implements OneshotSupplier<Boolean> {
|
||||
AccountManagerFacade accountManagerFacade,
|
||||
FirstRunAppRestrictionInfo appRestrictionInfo) {
|
||||
mChildAccountStatusStartTime = SystemClock.elapsedRealtime();
|
||||
-
|
||||
- appRestrictionInfo.getHasAppRestriction(this::onAppRestrictionDetected);
|
||||
-
|
||||
- accountManagerFacade
|
||||
- .getCoreAccountInfos()
|
||||
- .then(
|
||||
- coreAccountInfos -> {
|
||||
- AccountUtils.checkChildAccountStatus(
|
||||
- accountManagerFacade,
|
||||
- coreAccountInfos,
|
||||
- (isChild, account) -> onChildAccountStatusReady(isChild));
|
||||
- });
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/DefaultSearchEngineFirstRunFragment.java
|
||||
@@ -321,8 +290,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/Defaul
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
|
||||
@@ -32,8 +32,7 @@ import org.chromium.chrome.browser.fonts.FontPreloader;
|
||||
import org.chromium.chrome.browser.metrics.UmaUtils;
|
||||
@@ -37,8 +37,7 @@ import org.chromium.chrome.browser.metrics.UmaUtils;
|
||||
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
|
||||
-import org.chromium.chrome.browser.signin.SigninCheckerProvider;
|
||||
@@ -330,8 +299,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
+import org.chromium.chrome.browser.firstrun.ToSAndUMAFirstRunFragment;
|
||||
import org.chromium.chrome.browser.ui.signin.DialogWhenLargeContentLayout;
|
||||
import org.chromium.chrome.browser.ui.signin.SigninUtils;
|
||||
import org.chromium.chrome.browser.ui.signin.history_sync.HistorySyncHelper;
|
||||
@@ -213,7 +212,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
import org.chromium.chrome.browser.ui.signin.fullscreen_signin.FullscreenSigninMediator;
|
||||
@@ -233,7 +232,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
/** Creates first page and sets up adapter. Should result UI being shown on the screen. */
|
||||
private void createFirstPage() {
|
||||
BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage();
|
||||
@@ -340,7 +309,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN);
|
||||
mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages);
|
||||
mPager.setAdapter(mPagerAdapter);
|
||||
@@ -238,7 +237,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -258,7 +257,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
//
|
||||
// TODO(b/245912657): explicitly sign in supervised users in {@link
|
||||
// FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker.
|
||||
@@ -348,35 +317,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
|
||||
mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties);
|
||||
|
||||
@@ -253,27 +251,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -273,18 +271,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN);
|
||||
}
|
||||
|
||||
- // An optional history sync opt-in page, the visibility of this page will be decided on the
|
||||
- // fly according to the situation.
|
||||
- if (ChromeFeatureList.isEnabled(
|
||||
- ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS)) {
|
||||
- BooleanSupplier showHistorySync =
|
||||
- () -> mFreProperties.getBoolean(SHOW_HISTORY_SYNC_PAGE);
|
||||
- if (!showHistorySync.getAsBoolean()) {
|
||||
- HistorySyncHelper historySyncHelper =
|
||||
- HistorySyncHelper.getForProfile(
|
||||
- getProfileProviderSupplier().get().getOriginalProfile());
|
||||
- historySyncHelper.recordHistorySyncNotShown(SigninAccessPoint.START_PAGE);
|
||||
- }
|
||||
- mPages.add(new FirstRunPage<>(HistorySyncFirstRunFragment.class, showHistorySync));
|
||||
- mFreProgressStates.add(MobileFreProgress.HISTORY_SYNC_OPT_IN_SHOWN);
|
||||
- } else {
|
||||
- BooleanSupplier showSyncConsent =
|
||||
- () -> mFreProperties.getBoolean(SHOW_SYNC_CONSENT_PAGE);
|
||||
- mPages.add(new FirstRunPage<>(SyncConsentFirstRunFragment.class, showSyncConsent));
|
||||
- mFreProgressStates.add(MobileFreProgress.SYNC_CONSENT_SHOWN);
|
||||
- BooleanSupplier showHistorySync = () -> mFreProperties.getBoolean(SHOW_HISTORY_SYNC_PAGE);
|
||||
- if (!showHistorySync.getAsBoolean()) {
|
||||
- HistorySyncHelper historySyncHelper =
|
||||
- HistorySyncHelper.getForProfile(
|
||||
- getProfileProviderSupplier().get().getOriginalProfile());
|
||||
- historySyncHelper.recordHistorySyncNotShown(SigninAccessPoint.START_PAGE);
|
||||
- }
|
||||
- mPages.add(new FirstRunPage<>(HistorySyncFirstRunFragment.class, showHistorySync));
|
||||
- mFreProgressStates.add(MobileFreProgress.HISTORY_SYNC_OPT_IN_SHOWN);
|
||||
-
|
||||
if (mPagerAdapter != null) {
|
||||
mPagerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
@@ -661,11 +638,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
@@ -690,11 +676,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
|
||||
public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) {
|
||||
assert mNativeInitializationPromise.isFulfilled();
|
||||
|
||||
@@ -388,36 +348,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
FirstRunUtils.acceptTermsOfService(allowMetricsAndCrashUploading);
|
||||
FirstRunStatus.setSkipWelcomePage(true);
|
||||
flushPersistentData();
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
|
||||
@@ -37,8 +37,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
import org.chromium.chrome.browser.ui.system.StatusBarColorController;
|
||||
import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
|
||||
import org.chromium.components.policy.PolicyService;
|
||||
-import org.chromium.components.signin.AccountManagerFacade;
|
||||
-import org.chromium.components.signin.AccountManagerFacadeProvider;
|
||||
|
||||
/** Base class for First Run Experience. */
|
||||
// TODO(crbug.com/349787455): Consider renaming it now that it is also the base for non-FRE
|
||||
@@ -116,9 +114,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity
|
||||
@Override
|
||||
@CallSuper
|
||||
public void triggerLayoutInflation() {
|
||||
- AccountManagerFacade accountManagerFacade = AccountManagerFacadeProvider.getInstance();
|
||||
- mChildAccountStatusSupplier =
|
||||
- new ChildAccountStatusSupplier(accountManagerFacade, mFirstRunAppRestrictionInfo);
|
||||
+ mChildAccountStatusSupplier = new ChildAccountStatusSupplier(null, null);
|
||||
|
||||
// TODO(crbug.com/40939710): Find the underlying issue causing the status bar not to be set
|
||||
// during FRE, this is just a temporary visual fix.
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
|
||||
@@ -29,15 +29,9 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
|
||||
@@ -30,15 +30,9 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
import org.chromium.chrome.browser.search_engines.SearchEnginePromoType;
|
||||
-import org.chromium.chrome.browser.signin.AppRestrictionSupplier;
|
||||
-import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
|
||||
-import org.chromium.chrome.browser.signin.services.SigninPreferencesManager;
|
||||
-import org.chromium.chrome.browser.ui.signin.history_sync.HistorySyncHelper;
|
||||
@@ -426,29 +364,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
-import org.chromium.components.signin.AccountManagerFacadeProvider;
|
||||
-import org.chromium.components.signin.identitymanager.ConsentLevel;
|
||||
-import org.chromium.components.signin.identitymanager.IdentityManager;
|
||||
|
||||
/**
|
||||
* A helper to determine what should be the sequence of First Run Experience screens, and whether
|
||||
@@ -65,46 +59,17 @@ public abstract class FirstRunFlowSequencer {
|
||||
|
||||
/** Returns true if the sync consent promo page should be shown. */
|
||||
boolean shouldShowSyncConsentPage(boolean isChild) {
|
||||
- if (isChild) {
|
||||
- // Always show the sync consent page for child account.
|
||||
- return true;
|
||||
- }
|
||||
- assert mProfileSupplier.get() != null;
|
||||
- Profile profile = mProfileSupplier.get().getOriginalProfile();
|
||||
- final IdentityManager identityManager =
|
||||
- IdentityServicesProvider.get().getIdentityManager(profile);
|
||||
- if (identityManager.getPrimaryAccountInfo(ConsentLevel.SYNC) != null) {
|
||||
- // No need to show the sync consent page if users already consented to sync.
|
||||
- return false;
|
||||
- }
|
||||
- // Show the sync consent page only to the signed-in users.
|
||||
- return identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN);
|
||||
+ return false;
|
||||
* A helper to determine what should be the sequence of First Run Experience screens, and whether it
|
||||
@@ -63,29 +57,13 @@ public abstract class FirstRunFlowSequencer {
|
||||
}
|
||||
|
||||
boolean shouldShowHistorySyncOptIn(boolean isChild) {
|
||||
@@ -480,7 +399,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,18 +121,8 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -137,18 +115,8 @@ public abstract class FirstRunFlowSequencer {
|
||||
* method.
|
||||
*/
|
||||
void start() {
|
||||
@@ -501,7 +420,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
@@ -190,14 +145,10 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -167,14 +135,10 @@ public abstract class FirstRunFlowSequencer {
|
||||
}
|
||||
|
||||
private void maybeProcessFreEnvironmentPreNative() {
|
||||
@@ -516,7 +435,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
|
||||
onFlowIsKnown(freProperties);
|
||||
}
|
||||
@@ -208,8 +159,8 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -185,8 +149,8 @@ public abstract class FirstRunFlowSequencer {
|
||||
* @param freProperties Resulting FRE properties bundle.
|
||||
*/
|
||||
public void updateFirstRunProperties(Bundle freProperties) {
|
||||
@@ -524,10 +443,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
- if (freProperties == null) return;
|
||||
+ if (freProperties == null)
|
||||
+ throw new RuntimeException("attempting to update null FRE properties");
|
||||
boolean isHistorySyncEnabled =
|
||||
ChromeFeatureList.isEnabled(
|
||||
ChromeFeatureList.REPLACE_SYNC_PROMOS_WITH_SIGN_IN_PROMOS);
|
||||
@@ -237,8 +188,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
assert freProperties != null;
|
||||
freProperties.putBoolean(
|
||||
FirstRunActivity.SHOW_HISTORY_SYNC_PAGE, shouldShowHistorySyncOptIn());
|
||||
@@ -205,8 +169,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
|
||||
// Mark the FRE flow as complete.
|
||||
FirstRunStatus.setFirstRunFlowComplete(true);
|
||||
@@ -536,7 +455,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -327,13 +276,17 @@ public abstract class FirstRunFlowSequencer {
|
||||
@@ -305,9 +267,6 @@ public abstract class FirstRunFlowSequencer {
|
||||
Log.d(TAG, "Redirecting user through FRE.");
|
||||
CrashKeys.getInstance().set(CrashKeyIndex.FIRST_RUN, "yes");
|
||||
|
||||
- // Launch the async restriction checking as soon as we know we'll be running FRE.
|
||||
- AppRestrictionSupplier.startInitializationHint();
|
||||
-
|
||||
if (inSameTask) {
|
||||
FreIntentCreator intentCreator = new FreIntentCreator();
|
||||
Intent freIntent =
|
||||
@@ -333,13 +292,17 @@ public abstract class FirstRunFlowSequencer {
|
||||
if (!(caller instanceof Activity)) {
|
||||
freIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
}
|
||||
@@ -1248,6 +1177,29 @@ new file mode 100644
|
||||
+ return mLastWidth > mLastHeight;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java
|
||||
@@ -25,8 +25,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
|
||||
import org.chromium.chrome.browser.ui.system.StatusBarColorController;
|
||||
import org.chromium.components.browser_ui.widget.gesture.BackPressHandler;
|
||||
import org.chromium.components.policy.PolicyService;
|
||||
-import org.chromium.components.signin.AccountManagerFacade;
|
||||
-import org.chromium.components.signin.AccountManagerFacadeProvider;
|
||||
|
||||
/** Base class for First run experience and fullscreen signin and history sync promos. */
|
||||
public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncInitializationActivity
|
||||
@@ -92,9 +90,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn
|
||||
@Override
|
||||
@CallSuper
|
||||
public void triggerLayoutInflation() {
|
||||
- AccountManagerFacade accountManagerFacade = AccountManagerFacadeProvider.getInstance();
|
||||
- mChildAccountStatusSupplier =
|
||||
- new ChildAccountStatusSupplier(accountManagerFacade, mAppRestrictionSupplier);
|
||||
+ mChildAccountStatusSupplier = new ChildAccountStatusSupplier(null, null);
|
||||
|
||||
// TODO(crbug.com/40939710): Find the underlying issue causing the status bar not to be set
|
||||
// during re-FRE, this is just a temporary visual fix.
|
||||
diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java
|
||||
--- a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java
|
||||
+++ b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java
|
||||
|
||||
@@ -10,43 +10,48 @@ See also:
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 2 +-
|
||||
.../peerconnection/peer_connection_dependency_factory.cc | 6 ++++--
|
||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
||||
chrome/browser/ui/browser_ui_prefs.cc | 2 +-
|
||||
.../blink/common/peerconnection/webrtc_ip_handling_policy.cc | 5 ++++-
|
||||
.../peerconnection/peer_connection_dependency_factory.cc | 2 +-
|
||||
3 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
--- a/chrome/browser/ui/browser_ui_prefs.cc
|
||||
+++ b/chrome/browser/ui/browser_ui_prefs.cc
|
||||
@@ -107,7 +107,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -109,7 +109,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
false);
|
||||
#endif
|
||||
registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy,
|
||||
- blink::kWebRTCIPHandlingDefault);
|
||||
+ blink::kWebRTCIPHandlingDisableNonProxiedUdp);
|
||||
registry->RegisterListPref(prefs::kWebRTCIPHandlingUrl, base::Value::List());
|
||||
registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string());
|
||||
registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false);
|
||||
registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls);
|
||||
diff --git a/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.cc b/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.cc
|
||||
--- a/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.cc
|
||||
+++ b/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.cc
|
||||
@@ -30,7 +30,10 @@ blink::mojom::WebRtcIpHandlingPolicy ToWebRTCIPHandlingPolicy(
|
||||
if (preference == kWebRTCIPHandlingDisableNonProxiedUdp) {
|
||||
return blink::mojom::WebRtcIpHandlingPolicy::kDisableNonProxiedUdp;
|
||||
}
|
||||
- return blink::mojom::WebRtcIpHandlingPolicy::kDefault;
|
||||
+ if (preference == kWebRTCIPHandlingDefault) {
|
||||
+ return blink::mojom::WebRtcIpHandlingPolicy::kDefault;
|
||||
+ }
|
||||
+ return blink::mojom::WebRtcIpHandlingPolicy::kkDisableNonProxiedUdp;
|
||||
}
|
||||
|
||||
const char* ToString(blink::mojom::WebRtcIpHandlingPolicy policy) {
|
||||
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
|
||||
@@ -120,7 +120,9 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(const String& preference) {
|
||||
return kDefaultPublicInterfaceOnly;
|
||||
if (preference == kWebRTCIPHandlingDisableNonProxiedUdp)
|
||||
return kDisableNonProxiedUdp;
|
||||
- return kDefault;
|
||||
+ if (preference == kWebRTCIPHandlingDefault)
|
||||
+ return kDefault;
|
||||
+ return kDisableNonProxiedUdp;
|
||||
}
|
||||
|
||||
bool IsValidPortRange(uint16_t min_port, uint16_t max_port) {
|
||||
@@ -897,7 +899,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
@@ -959,7 +959,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
break;
|
||||
}
|
||||
|
||||
- VLOG(3) << "WebRTC routing preferences: "
|
||||
+ LOG(INFO) << "WebRTC routing preferences: "
|
||||
<< "policy: " << policy
|
||||
- VLOG(3) << "WebRTC routing preferences: " << "policy: "
|
||||
+ LOG(INFO) << "WebRTC routing preferences: " << "policy: "
|
||||
<< ToString(webrtc_ip_handling_policy)
|
||||
<< ", multiple_routes: " << port_config.enable_multiple_routes
|
||||
<< ", nonproxied_udp: " << port_config.enable_nonproxied_udp
|
||||
--
|
||||
|
||||
Reference in New Issue
Block a user