Patches for 140 (final version)
This commit is contained in:
@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../app/bookmarks/BookmarkActivity.java | 31 ++
|
||||
.../native_page/NativePageFactory.java | 9 +-
|
||||
chrome/browser/BUILD.gn | 11 +-
|
||||
.../bookmarks/android/bookmark_bridge.cc | 266 ++++++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.cc | 197 ++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.h | 30 +-
|
||||
.../browser/bookmarks/BookmarkBridge.java | 39 +++
|
||||
.../browser/bookmarks/BookmarkDelegate.java | 10 +
|
||||
@@ -36,9 +36,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/browser/importer/profile_writer.h | 6 +
|
||||
.../preferences/ChromePreferenceKeys.java | 3 +
|
||||
.../strings/android_chrome_strings.grd | 18 ++
|
||||
chrome/common/BUILD.gn | 3 +
|
||||
chrome/utility/BUILD.gn | 5 +
|
||||
chrome/utility/BUILD.gn | 7 +
|
||||
.../importer/bookmarks_file_importer.cc | 4 +
|
||||
.../headless_select_file_dialog.cc | 4 +
|
||||
.../content/content_bookmark_parser_utils.cc | 3 +
|
||||
.../add-bookmark-import-export-actions.inc | 12 +
|
||||
.../add-bookmark-import-export-actions.inc | 4 +
|
||||
.../add-bookmark-import-export-actions.inc | 1 +
|
||||
@@ -50,7 +51,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
ui/shell_dialogs/select_file_dialog_linux.cc | 4 +
|
||||
ui/shell_dialogs/select_file_dialog_linux.h | 2 +
|
||||
ui/shell_dialogs/select_file_dialog_win.cc | 5 +
|
||||
39 files changed, 872 insertions(+), 24 deletions(-)
|
||||
40 files changed, 809 insertions(+), 24 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc
|
||||
@@ -268,7 +269,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
configs += [
|
||||
"//build/config/compiler:wexit_time_destructors",
|
||||
"//build/config:precompiled_headers",
|
||||
@@ -3697,8 +3706,6 @@ static_library("browser") {
|
||||
@@ -3704,8 +3713,6 @@ static_library("browser") {
|
||||
"bookmarks/bookmark_expanded_state_tracker.h",
|
||||
"bookmarks/bookmark_expanded_state_tracker_factory.cc",
|
||||
"bookmarks/bookmark_expanded_state_tracker_factory.h",
|
||||
@@ -280,19 +281,20 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
|
||||
@@ -68,6 +68,27 @@
|
||||
@@ -68,6 +68,28 @@
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
+#include "base/android/content_uri_utils.h"
|
||||
+#include "base/android/path_utils.h"
|
||||
+#include "base/strings/utf_string_conversions.h"
|
||||
+#include "chrome/utility/importer/bookmark_html_reader.h"
|
||||
+#include "chrome/browser/bookmarks/bookmark_html_writer.h"
|
||||
+#include "chrome/browser/importer/profile_writer.h"
|
||||
+#include "chrome/browser/platform_util.h"
|
||||
+#include "chrome/browser/ui/chrome_select_file_policy.h"
|
||||
+#include "components/user_data_importer/common/imported_bookmark_entry.h"
|
||||
+#include "components/user_data_importer/content/content_bookmark_parser.h"
|
||||
+#include "components/user_data_importer/content/content_bookmark_parser_utils.h"
|
||||
+#include "chrome/common/url_constants.h"
|
||||
+#include "components/favicon_base/favicon_usage_data.h"
|
||||
+#include "components/search_engines/template_url.h"
|
||||
@@ -308,65 +310,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
// Must come after all headers that specialize FromJniType() / ToJniType().
|
||||
#include "chrome/browser/bookmarks/android/jni_headers/BookmarkBridge_jni.h"
|
||||
|
||||
@@ -86,6 +107,57 @@ using bookmarks::android::JavaBookmarkIdGetType;
|
||||
using content::BrowserThread;
|
||||
using power_bookmarks::PowerBookmarkMeta;
|
||||
|
||||
+namespace internal {
|
||||
+
|
||||
+// Returns true if |url| has a valid scheme that we allow to import. We
|
||||
+// filter out the URL with a unsupported scheme.
|
||||
+bool CanImportURL(const GURL& url) {
|
||||
+ // The URL is not valid.
|
||||
+ if (!url.is_valid())
|
||||
+ return false;
|
||||
+
|
||||
+ // Filter out the URLs with unsupported schemes.
|
||||
+ const char* const kInvalidSchemes[] = {"wyciwyg", "place"};
|
||||
+ for (size_t i = 0; i < std::size(kInvalidSchemes); ++i) {
|
||||
+ if (url.SchemeIs(kInvalidSchemes[i]))
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // Check if |url| is about:blank.
|
||||
+ if (url == url::kAboutBlankURL)
|
||||
+ return true;
|
||||
+
|
||||
+ // If |url| starts with chrome:// or about:, check if it's one of the URLs
|
||||
+ // that we support.
|
||||
+ if (url.SchemeIs(content::kChromeUIScheme) ||
|
||||
+ url.SchemeIs(url::kAboutScheme)) {
|
||||
+ if (url.host_piece() == chrome::kChromeUIAboutHost)
|
||||
+ return true;
|
||||
+
|
||||
+ GURL fixed_url(url_formatter::FixupURL(url.spec(), std::string()));
|
||||
+ const base::span<const base::cstring_view> hosts = chrome::ChromeURLHosts();
|
||||
+ for (const base::cstring_view host : hosts) {
|
||||
+ if (fixed_url.DomainIs(host)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (base::Contains(chrome::ChromeDebugURLs(), fixed_url.spec())) {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ // If url has either chrome:// or about: schemes but wasn't found in the
|
||||
+ // above lists, it means we don't support it, so we don't allow the user
|
||||
+ // to import it.
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // Otherwise, we assume the url has a valid (importable) scheme.
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+} // internal
|
||||
+
|
||||
namespace {
|
||||
// The key used to connect the instance of the bookmark bridge to the bookmark
|
||||
// model.
|
||||
@@ -296,6 +368,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
@@ -296,6 +318,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
partner_bookmarks_shim_observation_.Reset();
|
||||
bookmark_model_observation_.Reset();
|
||||
profile_observation_.Reset();
|
||||
@@ -377,7 +321,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv* env) {
|
||||
@@ -847,6 +923,196 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -847,6 +873,177 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -525,43 +469,24 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::FileSelectedImplOnUIThread(const base::FilePath& path,
|
||||
+ const std::string& contents) {
|
||||
+ const std::string& contents) {
|
||||
+ if (contents.empty())
|
||||
+ return;
|
||||
+
|
||||
+ // the following import logic comes from BookmarksFileImporter class
|
||||
+ std::vector<user_data_importer::ImportedBookmarkEntry> bookmarks;
|
||||
+ std::vector<user_data_importer::SearchEngineInfo> search_engines;
|
||||
+ favicon_base::FaviconUsageDataList favicons;
|
||||
+
|
||||
+ bookmark_html_reader::ImportBookmarksFile(
|
||||
+ base::RepeatingCallback<bool(void)>(),
|
||||
+ base::BindRepeating(internal::CanImportURL),
|
||||
+ contents,
|
||||
+ &bookmarks,
|
||||
+ &search_engines,
|
||||
+ &favicons);
|
||||
+ user_data_importer::BookmarkParser::ParsedBookmarks parsed_bookmarks =
|
||||
+ user_data_importer::ParseBookmarksUnsafe(contents);
|
||||
+
|
||||
+ auto *writer = new ProfileWriter(profile_);
|
||||
+
|
||||
+ if (!bookmarks.empty()) {
|
||||
+ if (!parsed_bookmarks.bookmarks.empty()) {
|
||||
+ // adding bookmarks will begin extensive changes to the model
|
||||
+ writer->AddBookmarksWithModel(bookmark_model_, bookmarks, u"Imported");
|
||||
+ }
|
||||
+ if (!search_engines.empty()) {
|
||||
+ TemplateURLService::OwnedTemplateURLVector owned_template_urls;
|
||||
+ for (const auto& search_engine : search_engines) {
|
||||
+ std::unique_ptr<TemplateURL> owned_template_url = CreateTemplateURL(
|
||||
+ search_engine.url, search_engine.keyword, search_engine.display_name);
|
||||
+ if (owned_template_url)
|
||||
+ owned_template_urls.push_back(std::move(owned_template_url));
|
||||
+ }
|
||||
+ writer->AddKeywords(std::move(owned_template_urls), false);
|
||||
+ writer->AddBookmarksWithModel(bookmark_model_, parsed_bookmarks.bookmarks, u"Imported");
|
||||
+ }
|
||||
+
|
||||
+ std::stringstream message;
|
||||
+ message << "Imported " << bookmarks.size() << " bookmarks and " <<
|
||||
+ search_engines.size() << " search engines from " << path.MaybeAsASCII();
|
||||
+ message << "Imported " << parsed_bookmarks.bookmarks.size() << " bookmarks " <<
|
||||
+ " from " << path.MaybeAsASCII();
|
||||
+ auto result = message.str();
|
||||
+
|
||||
+ select_file_dialog_->ShowToast(result);
|
||||
@@ -987,7 +912,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
|
||||
+ // use the download ui and standard file saving
|
||||
+ DownloadLocationDialogController controller = new DownloadLocationDialogController() {
|
||||
+ @Override
|
||||
+ public void onDownloadLocationDialogComplete(String returnedPath) {}
|
||||
+ public void onDownloadLocationDialogComplete(String returnedPath, boolean didUserConfirm) {}
|
||||
+
|
||||
+ @Override
|
||||
+ public void onDownloadLocationDialogCanceled() {}
|
||||
@@ -1435,34 +1360,39 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
<message name="IDS_NOTIFICATION_CATEGORY_VR" desc="Label for notifications in VR, within a list of notification categories. [CHAR_LIMIT=32]">
|
||||
Virtual Reality
|
||||
</message>
|
||||
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
|
||||
--- a/chrome/common/BUILD.gn
|
||||
+++ b/chrome/common/BUILD.gn
|
||||
@@ -339,6 +339,9 @@ static_library("common_lib") {
|
||||
"chrome_descriptors_android.h",
|
||||
"media/chrome_media_drm_bridge_client.cc",
|
||||
"media/chrome_media_drm_bridge_client.h",
|
||||
+ ## Bromite dependencies for bookmark import functionality
|
||||
+ "//components/user_data_importer/common/imported_bookmark_entry.cc",
|
||||
+ "//components/user_data_importer/common/imported_bookmark_entry.h",
|
||||
]
|
||||
} else {
|
||||
# Non-Android.
|
||||
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
|
||||
--- a/chrome/utility/BUILD.gn
|
||||
+++ b/chrome/utility/BUILD.gn
|
||||
@@ -222,6 +222,11 @@ static_library("utility") {
|
||||
@@ -222,6 +222,13 @@ static_library("utility") {
|
||||
deps += [ "//chrome/services/pdf:lib" ]
|
||||
}
|
||||
|
||||
+ sources += [
|
||||
+ "importer/bookmark_html_reader.cc",
|
||||
+ "importer/bookmark_html_reader.h",
|
||||
+ ]
|
||||
+ if (is_android) {
|
||||
+ sources += [
|
||||
+ "importer/bookmarks_file_importer.cc",
|
||||
+ "importer/bookmarks_file_importer.h",
|
||||
+ ]
|
||||
+ }
|
||||
+
|
||||
# NSS decryptor is not needed on ChromeOS.
|
||||
if (!is_chromeos && use_nss_certs) {
|
||||
sources += [
|
||||
diff --git a/chrome/utility/importer/bookmarks_file_importer.cc b/chrome/utility/importer/bookmarks_file_importer.cc
|
||||
--- a/chrome/utility/importer/bookmarks_file_importer.cc
|
||||
+++ b/chrome/utility/importer/bookmarks_file_importer.cc
|
||||
@@ -103,8 +103,12 @@ void BookmarksFileImporter::StartImport(
|
||||
user_data_importer::ParseBookmarksUnsafe(raw_html);
|
||||
|
||||
if (!parsed_bookmarks.bookmarks.empty()) {
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ std::u16string first_folder_name;
|
||||
+#else
|
||||
std::u16string first_folder_name =
|
||||
bridge_->GetLocalizedString(IDS_BOOKMARK_GROUP);
|
||||
+#endif
|
||||
std::erase_if(parsed_bookmarks.bookmarks,
|
||||
[](user_data_importer::ImportedBookmarkEntry bookmark) {
|
||||
return !internal::CanImportURL(bookmark.url);
|
||||
diff --git a/components/headless/select_file_dialog/headless_select_file_dialog.cc b/components/headless/select_file_dialog/headless_select_file_dialog.cc
|
||||
--- a/components/headless/select_file_dialog/headless_select_file_dialog.cc
|
||||
+++ b/components/headless/select_file_dialog/headless_select_file_dialog.cc
|
||||
@@ -1477,6 +1407,29 @@ diff --git a/components/headless/select_file_dialog/headless_select_file_dialog.
|
||||
SelectFileDialogCallback callback_;
|
||||
};
|
||||
|
||||
diff --git a/components/user_data_importer/content/content_bookmark_parser_utils.cc b/components/user_data_importer/content/content_bookmark_parser_utils.cc
|
||||
--- a/components/user_data_importer/content/content_bookmark_parser_utils.cc
|
||||
+++ b/components/user_data_importer/content/content_bookmark_parser_utils.cc
|
||||
@@ -89,6 +89,7 @@ std::optional<base::Time> GetTimeAttribute(const std::string& attribute_list,
|
||||
|
||||
// Given the URL of a page and a favicon data URL, adds an appropriate record
|
||||
// to the given favicon usage vector.
|
||||
+[[maybe_unused]]
|
||||
void DataURLToFaviconUsage(const GURL& link_url,
|
||||
const GURL& favicon_data,
|
||||
favicon_base::FaviconUsageDataList* favicons) {
|
||||
@@ -438,9 +439,11 @@ BookmarkParser::ParsedBookmarks ParseBookmarksUnsafe(
|
||||
}
|
||||
parsing_result.bookmarks.push_back(std::move(entry));
|
||||
|
||||
+#if !BUILDFLAG(IS_ANDROID)
|
||||
// Save the favicon. DataURLToFaviconUsage will handle the case where
|
||||
// there is no favicon.
|
||||
DataURLToFaviconUsage(url, favicon, &parsing_result.favicons);
|
||||
+#endif
|
||||
|
||||
continue;
|
||||
}
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc b/cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
||||
@@ -14,8 +14,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 15 ++++++
|
||||
.../browser/LaunchIntentDispatcher.java | 21 ++++++++
|
||||
.../CustomTabIntentDataProvider.java | 4 +-
|
||||
.../customtabs/CustomTabsConnection.java | 1 +
|
||||
.../CustomTabIntentDataProvider.java | 22 ++++----
|
||||
.../customtabs/CustomTabsConnection.java | 3 +-
|
||||
.../IncognitoCustomTabIntentDataProvider.java | 14 +++++
|
||||
.../privacy/settings/PrivacySettings.java | 51 +++++++++++++++++++
|
||||
.../flags/android/chrome_feature_list.cc | 2 +-
|
||||
@@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../OriginVerifier.java | 5 ++
|
||||
.../core/common/language_experiments.cc | 1 +
|
||||
.../add-custom-tab-intents-privacy-option.inc | 1 +
|
||||
13 files changed, 146 insertions(+), 3 deletions(-)
|
||||
13 files changed, 156 insertions(+), 13 deletions(-)
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
||||
|
||||
@@ -109,6 +109,49 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java
|
||||
@@ -233,16 +233,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
|
||||
// Extra whose value is an array of ints that is supplied to
|
||||
// SyntheticTrialRegistry::RegisterExternalExperiments().
|
||||
- public static final String EXPERIMENT_IDS =
|
||||
- "org.chromium.chrome.browser.customtabs.AGA_EXPERIMENT_IDS";
|
||||
+ // public static final String EXPERIMENT_IDS =
|
||||
+ // "org.chromium.chrome.browser.customtabs.AGA_EXPERIMENT_IDS";
|
||||
|
||||
// These Extra Intent parameters allow an Intent to enable or disable a set of Features.
|
||||
// The set of Features that may be enabled or disabled is restricted by the code,
|
||||
// and initially only two Features may be enabled together, or disabled together.
|
||||
- public static final String EXPERIMENTS_ENABLE =
|
||||
- "org.chromium.chrome.browser.customtabs.EXPERIMENTS_ENABLE";
|
||||
- public static final String EXPERIMENTS_DISABLE =
|
||||
- "org.chromium.chrome.browser.customtabs.EXPERIMENTS_DISABLE";
|
||||
+ // public static final String EXPERIMENTS_ENABLE =
|
||||
+ // "org.chromium.chrome.browser.customtabs.EXPERIMENTS_ENABLE";
|
||||
+ // public static final String EXPERIMENTS_DISABLE =
|
||||
+ // "org.chromium.chrome.browser.customtabs.EXPERIMENTS_DISABLE";
|
||||
|
||||
/**
|
||||
* Extra that, if set, makes the Custom Tab Activity's height to be x pixels, the Custom Tab
|
||||
@@ -682,7 +682,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION,
|
||||
ScreenOrientation.DEFAULT));
|
||||
|
||||
- mGsaExperimentIds = IntentUtils.safeGetIntArrayExtra(intent, EXPERIMENT_IDS);
|
||||
+ mGsaExperimentIds = null; //IntentUtils.safeGetIntArrayExtra(intent, EXPERIMENT_IDS);
|
||||
|
||||
mBreakPointDp = getActivityBreakPointFromIntent(intent);
|
||||
mInitialActivityHeight = getInitialActivityHeightFromIntent(intent);
|
||||
@@ -695,8 +695,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT);
|
||||
mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED;
|
||||
|
||||
- mInteractWithBackground = CustomTabsIntent.isBackgroundInteractionEnabled(intent);
|
||||
- if (IntentUtils.safeHasExtra(intent, EXTRA_ENABLE_BACKGROUND_INTERACTION)) {
|
||||
+ mInteractWithBackground = false; // CustomTabsIntent.isBackgroundInteractionEnabled(intent);
|
||||
+ if (((false)) && IntentUtils.safeHasExtra(intent, EXTRA_ENABLE_BACKGROUND_INTERACTION)) {
|
||||
@BackgroundInteractBehavior
|
||||
int backgroundInteractBehavior =
|
||||
IntentUtils.safeGetIntExtra(
|
||||
@@ -1267,7 +1267,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid
|
||||
public @CustomTabProfileType int getCustomTabMode() {
|
||||
return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()
|
||||
@@ -123,6 +166,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
|
||||
@@ -780,7 +780,7 @@ public class CustomTabsConnection {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
if (extras == null) return;
|
||||
int[] experimentIds =
|
||||
- IntentUtils.safeGetIntArray(extras, CustomTabIntentDataProvider.EXPERIMENT_IDS);
|
||||
+ null; //IntentUtils.safeGetIntArray(extras, CustomTabIntentDataProvider.EXPERIMENT_IDS);
|
||||
if (experimentIds == null) return;
|
||||
// When ids are set through cct, they should not override existing ids.
|
||||
boolean override = false;
|
||||
@@ -996,6 +996,7 @@ public class CustomTabsConnection {
|
||||
PostTask.postTask(
|
||||
TaskTraits.UI_DEFAULT,
|
||||
@@ -379,5 +431,5 @@ new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kCCTIntentFeatureOverrides);
|
||||
+// explicitly empty
|
||||
--
|
||||
|
||||
@@ -79,8 +79,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../permission_prompt_android.cc | 8 +-
|
||||
.../permission_prompt_android.h | 3 +-
|
||||
.../android/permissions_android_strings.grd | 17 ++++
|
||||
.../geolocation_permission_context_android.cc | 27 ++++--
|
||||
.../geolocation_permission_context_android.h | 10 ++-
|
||||
.../geolocation_permission_context_android.cc | 30 +++++--
|
||||
.../geolocation_permission_context_android.h | 8 ++
|
||||
.../embedded_permission_prompt_flow_model.cc | 2 +-
|
||||
.../permissions/permission_context_base.cc | 64 ++++++++++++--
|
||||
.../permissions/permission_context_base.h | 26 +++++-
|
||||
@@ -89,7 +89,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/permissions/permission_request.h | 18 +++-
|
||||
.../permissions/permission_request_manager.cc | 45 ++++++----
|
||||
.../permissions/permission_request_manager.h | 11 ++-
|
||||
37 files changed, 506 insertions(+), 73 deletions(-)
|
||||
37 files changed, 507 insertions(+), 73 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc
|
||||
--- a/chrome/browser/permissions/last_tab_standing_tracker.cc
|
||||
@@ -285,8 +285,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
||||
.getDefaultColor());
|
||||
}
|
||||
}
|
||||
+ if (isSessionPermission(contentType)) {
|
||||
+ switchPreference.setSummary(switchPreference.getSummary() + " " +
|
||||
+ if (preference instanceof ChromeSwitchPreference && isSessionPermission(contentType)) {
|
||||
+ ((ChromeSwitchPreference)preference).setSummary(preference.getSummary() + " " +
|
||||
+ getString(R.string.page_info_android_permission_session_permission));
|
||||
+ }
|
||||
}
|
||||
@@ -852,37 +852,38 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
bool is_default_search =
|
||||
IsRequestingOriginDSE(request_data.requesting_origin);
|
||||
if (decision == PermissionDecision::kAllow &&
|
||||
@@ -210,7 +221,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
|
||||
@@ -209,7 +220,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
|
||||
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin,
|
||||
request_data.embedding_origin,
|
||||
std::move(callback), false /* persist */,
|
||||
PermissionDecision::kDeny,
|
||||
- request_data.prompt_options);
|
||||
+ request_data.prompt_options, lifetime_option);
|
||||
- PermissionDecision::kDeny,
|
||||
+ PermissionDecision::kDeny, lifetime_option,
|
||||
request_data.prompt_options);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -231,7 +242,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
|
||||
@@ -230,7 +241,7 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
|
||||
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin,
|
||||
request_data.embedding_origin,
|
||||
std::move(callback), false /* persist */,
|
||||
PermissionDecision::kDeny,
|
||||
- request_data.prompt_options);
|
||||
+ request_data.prompt_options, lifetime_option);
|
||||
- PermissionDecision::kDeny,
|
||||
+ PermissionDecision::kDeny, lifetime_option,
|
||||
request_data.prompt_options);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -244,13 +255,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
|
||||
@@ -243,14 +254,14 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet(
|
||||
base::BindOnce(
|
||||
&GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown,
|
||||
weak_factory_.GetWeakPtr(), request_data.requesting_origin,
|
||||
request_data.embedding_origin, persist, decision,
|
||||
- request_data.prompt_options));
|
||||
+ request_data.prompt_options, lifetime_option));
|
||||
- request_data.embedding_origin, persist, decision,
|
||||
+ request_data.embedding_origin, persist, decision, lifetime_option,
|
||||
request_data.prompt_options));
|
||||
return;
|
||||
}
|
||||
|
||||
FinishNotifyPermissionSet(request_data.id, request_data.requesting_origin,
|
||||
request_data.embedding_origin, std::move(callback),
|
||||
- persist, decision, request_data.prompt_options);
|
||||
+ persist, decision, request_data.prompt_options, lifetime_option);
|
||||
+ persist, decision, lifetime_option, request_data.prompt_options);
|
||||
}
|
||||
|
||||
content::PermissionResult
|
||||
@@ -900,25 +901,29 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
requesting_origin, embedding_origin,
|
||||
std::move(location_settings_dialog_callback_),
|
||||
- persist, decision, prompt_options);
|
||||
+ persist, decision, prompt_options, lifetime_option);
|
||||
+ persist, decision, lifetime_option, prompt_options);
|
||||
|
||||
location_settings_dialog_request_id_ =
|
||||
PermissionRequestID(content::GlobalRenderFrameHostId(0, 0),
|
||||
@@ -461,7 +472,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
|
||||
@@ -460,7 +471,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
|
||||
const GURL& embedding_origin,
|
||||
BrowserPermissionCallback callback,
|
||||
bool persist,
|
||||
PermissionDecision decision,
|
||||
- std::optional<PromptOptions> prompt_options) {
|
||||
+ std::optional<PromptOptions> prompt_options, content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
- PermissionDecision decision,
|
||||
+ PermissionDecision decision, content_settings::mojom::LifetimeMode lifetime_option,
|
||||
std::optional<PromptOptions> prompt_options) {
|
||||
PermissionRequestData request_data(
|
||||
this, id,
|
||||
content::PermissionRequestDescription(
|
||||
@@ -471,7 +482,7 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
|
||||
@@ -469,9 +480,10 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet(
|
||||
blink::PermissionType::GEOLOCATION)),
|
||||
requesting_origin, embedding_origin);
|
||||
request_data.prompt_options = prompt_options.value_or(std::monostate());
|
||||
GeolocationPermissionContext::NotifyPermissionSet(
|
||||
- GeolocationPermissionContext::NotifyPermissionSet(
|
||||
+ GeolocationPermissionContext::NotifyPermissionSetImpl(
|
||||
request_data,
|
||||
- std::move(callback), persist, decision, /*is_final_decision=*/true);
|
||||
+ std::move(callback), persist, decision, /*is_final_decision=*/true, lifetime_option);
|
||||
+ std::move(callback), persist, decision, /*is_final_decision=*/true,
|
||||
+ /*use_lifetime_option*/ true, lifetime_option);
|
||||
}
|
||||
|
||||
void GeolocationPermissionContextAndroid::SetLocationSettingsForTesting(
|
||||
@@ -938,24 +943,22 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr
|
||||
content::PermissionResult UpdatePermissionStatusWithDeviceStatus(
|
||||
content::WebContents* web_contents,
|
||||
content::PermissionResult result,
|
||||
@@ -137,6 +143,7 @@ class GeolocationPermissionContextAndroid
|
||||
@@ -136,6 +142,7 @@ class GeolocationPermissionContextAndroid
|
||||
const GURL& embedding_origin,
|
||||
bool persist,
|
||||
PermissionDecision decision,
|
||||
std::optional<PromptOptions> prompt_options,
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option,
|
||||
std::optional<PromptOptions> prompt_options,
|
||||
LocationSettingsDialogOutcome prompt_outcome);
|
||||
|
||||
void FinishNotifyPermissionSet(const PermissionRequestID& id,
|
||||
@@ -145,7 +152,8 @@ class GeolocationPermissionContextAndroid
|
||||
@@ -145,6 +152,7 @@ class GeolocationPermissionContextAndroid
|
||||
BrowserPermissionCallback callback,
|
||||
bool persist,
|
||||
PermissionDecision decision,
|
||||
- std::optional<PromptOptions> prompt_options);
|
||||
+ std::optional<PromptOptions> prompt_options,
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option,
|
||||
std::optional<PromptOptions> prompt_options);
|
||||
|
||||
std::unique_ptr<LocationSettings> location_settings_;
|
||||
|
||||
diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc
|
||||
--- a/components/permissions/embedded_permission_prompt_flow_model.cc
|
||||
+++ b/components/permissions/embedded_permission_prompt_flow_model.cc
|
||||
@@ -1069,7 +1072,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
|
||||
+}
|
||||
+
|
||||
+void PermissionContextBase::UpdateSettingImpl(const PermissionRequestData& request_data,
|
||||
+ base::Value setting,
|
||||
+ PermissionSetting setting,
|
||||
+ bool is_one_time,
|
||||
+ bool use_lifetime_option,
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option) {
|
||||
@@ -1112,7 +1115,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi
|
||||
// Store the decided permission state. Virtual since the permission might be
|
||||
// stored with different restrictions (for example for desktop notifications).
|
||||
+ void UpdateSettingImpl(const PermissionRequestData& request_data,
|
||||
+ base::Value setting,
|
||||
+ PermissionSetting setting,
|
||||
+ bool is_one_time,
|
||||
+ bool use_lifetime_option,
|
||||
+ content_settings::mojom::LifetimeMode lifetime_option);
|
||||
|
||||
@@ -20,7 +20,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
|
||||
} else {
|
||||
- thumbnail.setImageDrawable(null);
|
||||
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
||||
+ TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
||||
+ if (tabFavicon != null) {
|
||||
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
|
||||
+ thumbnail.setImageDrawable(
|
||||
@@ -199,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -6067,6 +6067,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||
@@ -6194,6 +6194,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
|
||||
</message>
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@ new file mode 100644
|
||||
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+ PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+
|
||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||
+ ->GetMutable(ContentSettingsType::WEBGL)
|
||||
|
||||
@@ -12,9 +12,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../bromite_content_settings/webrtc.inc | 22 +++++
|
||||
.../bromite_content_settings/WEBRTC.inc | 1 +
|
||||
.../peer_connection_dependency_factory.cc | 6 ++
|
||||
.../peerconnection/rtc_rtp_receiver.cc | 10 ++
|
||||
.../modules/peerconnection/rtc_rtp_sender.cc | 10 ++
|
||||
7 files changed, 170 insertions(+)
|
||||
.../peerconnection/rtc_rtp_receiver.cc | 11 +++
|
||||
.../modules/peerconnection/rtc_rtp_sender.cc | 11 +++
|
||||
7 files changed, 172 insertions(+)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java
|
||||
create mode 100644 components/browser_ui/strings/bromite_content_settings/webrtc.grdp
|
||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/webrtc.inc
|
||||
@@ -164,7 +164,7 @@ new file mode 100644
|
||||
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+ PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+
|
||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||
+ ->GetMutable(ContentSettingsType::WEBRTC)
|
||||
@@ -210,16 +210,17 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d
|
||||
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
|
||||
@@ -16,6 +16,8 @@
|
||||
@@ -16,6 +16,9 @@
|
||||
#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"
|
||||
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
||||
+#include "third_party/blink/public/web/web_local_frame.h"
|
||||
+#include "third_party/blink/renderer/core/frame/local_dom_window.h"
|
||||
#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"
|
||||
@@ -288,6 +290,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
||||
@@ -288,6 +291,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
||||
if (kind != "audio" && kind != "video")
|
||||
return nullptr;
|
||||
|
||||
@@ -237,16 +238,17 @@ 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
|
||||
@@ -21,6 +21,8 @@
|
||||
@@ -21,6 +21,9 @@
|
||||
#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"
|
||||
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
||||
+#include "third_party/blink/public/web/web_local_frame.h"
|
||||
+#include "third_party/blink/renderer/core/frame/local_dom_window.h"
|
||||
#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"
|
||||
@@ -1035,6 +1037,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
||||
@@ -1035,6 +1038,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
||||
if (kind != "audio" && kind != "video")
|
||||
return nullptr;
|
||||
|
||||
|
||||
@@ -34,15 +34,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
...ndroid-fonts-fingerprinting-mitigation.inc | 5 +
|
||||
skia/BUILD.gn | 12 +
|
||||
.../include/ports/SkFontConfigInterface.h | 2 +
|
||||
.../skia/include/ports/SkFontMgr_android.h | 40 +-
|
||||
.../skia/include/ports/SkFontMgr_android.h | 42 +-
|
||||
.../skia/src/ports/SkFontConfigInterface.cpp | 4 +
|
||||
.../ports/SkFontConfigInterface_direct.cpp | 5 +
|
||||
.../src/ports/SkFontConfigInterface_direct.h | 1 +
|
||||
.../skia/src/ports/SkFontMgr_android.cpp | 274 ++-
|
||||
.../skia/src/ports/SkFontMgr_android.cpp | 279 ++-
|
||||
.../skia/src/ports/SkFontMgr_android_data.cpp | 1640 +++++++++++++++++
|
||||
.../src/ports/SkFontMgr_android_parser.cpp | 49 +-
|
||||
.../skia/src/ports/SkFontMgr_android_parser.h | 5 +-
|
||||
36 files changed, 2408 insertions(+), 76 deletions(-)
|
||||
36 files changed, 2415 insertions(+), 76 deletions(-)
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp
|
||||
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc
|
||||
create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h
|
||||
@@ -106,7 +106,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -7944,6 +7944,13 @@ static_library("browser") {
|
||||
@@ -7951,6 +7951,13 @@ static_library("browser") {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -884,7 +884,7 @@ diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/sk
|
||||
|
||||
#include <memory>
|
||||
|
||||
@@ -40,9 +45,42 @@ struct SkFontMgr_Android_CustomFonts {
|
||||
@@ -40,9 +45,44 @@ struct SkFontMgr_Android_CustomFonts {
|
||||
* system IO resources on initialization.
|
||||
*/
|
||||
bool fIsolated;
|
||||
@@ -925,6 +925,8 @@ diff --git a/third_party/skia/include/ports/SkFontMgr_android.h b/third_party/sk
|
||||
|
||||
/** Create a font manager for Android. If 'custom' is NULL, use only system fonts. */
|
||||
-SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom,
|
||||
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom);
|
||||
+
|
||||
+SK_API sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom,
|
||||
std::unique_ptr<SkFontScanner> scanner);
|
||||
#endif // SkFontMgr_android_DEFINED
|
||||
@@ -969,7 +971,15 @@ diff --git a/third_party/skia/src/ports/SkFontConfigInterface_direct.h b/third_p
|
||||
diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia/src/ports/SkFontMgr_android.cpp
|
||||
--- a/third_party/skia/src/ports/SkFontMgr_android.cpp
|
||||
+++ b/third_party/skia/src/ports/SkFontMgr_android.cpp
|
||||
@@ -27,6 +27,7 @@
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "include/core/SkStream.h"
|
||||
#include "include/core/SkString.h"
|
||||
#include "include/ports/SkFontMgr_android.h"
|
||||
+#include "include/ports/SkFontScanner_FreeType.h"
|
||||
#include "include/private/base/SkFixed.h"
|
||||
#include "include/private/base/SkTArray.h"
|
||||
#include "include/private/base/SkTDArray.h"
|
||||
@@ -27,6 +28,7 @@
|
||||
#include "src/core/SkTypefaceCache.h"
|
||||
#include "src/ports/SkFontMgr_android_parser.h"
|
||||
#include "src/ports/SkTypeface_proxy.h"
|
||||
@@ -977,7 +987,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
|
||||
#include <algorithm>
|
||||
#include <limits>
|
||||
@@ -36,6 +37,91 @@ using namespace skia_private;
|
||||
@@ -36,6 +38,91 @@ using namespace skia_private;
|
||||
class SkData;
|
||||
|
||||
namespace {
|
||||
@@ -1069,7 +1079,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
class SkTypeface_AndroidSystem : public SkTypeface_proxy {
|
||||
public:
|
||||
static sk_sp<SkTypeface_AndroidSystem> Make(sk_sp<SkTypeface> realTypeface,
|
||||
@@ -109,7 +195,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
|
||||
@@ -109,7 +196,8 @@ using StreamForPathCache = skia_private::THashMap<SkString, std::unique_ptr<SkSt
|
||||
class SkFontStyleSet_Android : public SkFontStyleSet {
|
||||
public:
|
||||
explicit SkFontStyleSet_Android(const FontFamily& family, const SkFontScanner* scanner,
|
||||
@@ -1079,7 +1089,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
const SkString* cannonicalFamilyName = nullptr;
|
||||
if (!family.fNames.empty()) {
|
||||
cannonicalFamilyName = &family.fNames[0];
|
||||
@@ -118,38 +205,60 @@ public:
|
||||
@@ -118,38 +206,60 @@ public:
|
||||
|
||||
// TODO? make this lazy
|
||||
for (int i = 0; i < family.fFonts.size(); ++i) {
|
||||
@@ -1163,7 +1173,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
}
|
||||
|
||||
uint32_t variant = family.fVariant;
|
||||
@@ -160,13 +269,25 @@ public:
|
||||
@@ -160,13 +270,25 @@ public:
|
||||
// The first specified family name overrides the family name found in the font.
|
||||
// TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return
|
||||
// all of the specified family names in addition to the names found in the font.
|
||||
@@ -1195,7 +1205,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
int weight = fontFile.fWeight != 0 ? fontFile.fWeight : fontStyle.weight();
|
||||
SkFontStyle::Slant slant = fontStyle.slant();
|
||||
switch (fontFile.fStyle) {
|
||||
@@ -177,6 +298,19 @@ public:
|
||||
@@ -177,6 +299,19 @@ public:
|
||||
}
|
||||
fontStyle = SkFontStyle(weight, fontStyle.width(), slant);
|
||||
|
||||
@@ -1215,7 +1225,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
fStyles.push_back(
|
||||
SkTypeface_AndroidSystem::Make(proxy,
|
||||
fontStyle, proxy->isFixedPitch(),
|
||||
@@ -205,15 +339,18 @@ public:
|
||||
@@ -205,15 +340,18 @@ public:
|
||||
return fStyles[index];
|
||||
}
|
||||
|
||||
@@ -1237,7 +1247,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
SkString fFallbackFor;
|
||||
|
||||
friend struct NameToFamily;
|
||||
@@ -234,24 +371,26 @@ struct NameToFamily {
|
||||
@@ -234,24 +372,26 @@ struct NameToFamily {
|
||||
|
||||
class SkFontMgr_Android : public SkFontMgr {
|
||||
public:
|
||||
@@ -1268,7 +1278,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
}
|
||||
this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false);
|
||||
this->findDefaultStyleSet();
|
||||
@@ -309,33 +448,53 @@ protected:
|
||||
@@ -309,33 +449,53 @@ protected:
|
||||
return sset->matchStyle(style);
|
||||
}
|
||||
|
||||
@@ -1337,7 +1347,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
@@ -358,7 +517,7 @@ protected:
|
||||
@@ -358,7 +518,7 @@ protected:
|
||||
for (int bcp47Index = bcp47Count; bcp47Index --> 0;) {
|
||||
SkLanguage lang(bcp47[bcp47Index]);
|
||||
while (!lang.getTag().isEmpty()) {
|
||||
@@ -1346,7 +1356,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
|
||||
style, SkToBool(elegant),
|
||||
lang.getTag(), character);
|
||||
@@ -369,7 +528,7 @@ protected:
|
||||
@@ -369,7 +529,7 @@ protected:
|
||||
lang = lang.getParent();
|
||||
}
|
||||
}
|
||||
@@ -1355,7 +1365,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap,
|
||||
style, SkToBool(elegant),
|
||||
SkString(), character);
|
||||
@@ -420,6 +579,7 @@ protected:
|
||||
@@ -420,6 +580,7 @@ protected:
|
||||
private:
|
||||
|
||||
std::unique_ptr<SkFontScanner> fScanner;
|
||||
@@ -1363,7 +1373,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
|
||||
TArray<sk_sp<SkFontStyleSet_Android>> fStyleSets;
|
||||
sk_sp<SkFontStyleSet> fDefaultStyleSet;
|
||||
@@ -441,7 +601,7 @@ private:
|
||||
@@ -441,7 +602,7 @@ private:
|
||||
}
|
||||
|
||||
sk_sp<SkFontStyleSet_Android> newSet =
|
||||
@@ -1372,16 +1382,20 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia
|
||||
if (0 == newSet->count()) {
|
||||
return;
|
||||
}
|
||||
@@ -486,7 +646,7 @@ static char const * const gSystemFontUseStrings[] = {
|
||||
@@ -486,7 +647,11 @@ static char const * const gSystemFontUseStrings[] = {
|
||||
|
||||
} // namespace
|
||||
|
||||
-sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* custom, std::unique_ptr<SkFontScanner> scanner) {
|
||||
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom) {
|
||||
+ return SkFontMgr_New_Android(std::move(custom), SkFontScanner_Make_FreeType());
|
||||
+}
|
||||
+
|
||||
+sk_sp<SkFontMgr> SkFontMgr_New_Android(std::unique_ptr<SkFontMgr_Android_CustomFonts> custom, std::unique_ptr<SkFontScanner> scanner) {
|
||||
if (custom) {
|
||||
SkASSERT(0 <= custom->fSystemFontUse);
|
||||
SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings));
|
||||
@@ -496,5 +656,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
|
||||
@@ -496,5 +661,5 @@ sk_sp<SkFontMgr> SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust
|
||||
custom->fFontsXml,
|
||||
custom->fFallbackFontsXml);
|
||||
}
|
||||
|
||||
@@ -15,9 +15,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../modules/webaudio/base_audio_context.cc | 12 ++++++++++++
|
||||
.../renderer/modules/webaudio/base_audio_context.h | 2 ++
|
||||
.../modules/webaudio/offline_audio_context.cc | 1 +
|
||||
.../renderer/modules/webaudio/realtime_analyser.cc | 7 +++++++
|
||||
.../renderer/modules/webaudio/realtime_analyser.cc | 9 ++++++++-
|
||||
.../platform/runtime_enabled_features.json5 | 5 ++---
|
||||
11 files changed, 56 insertions(+), 4 deletions(-)
|
||||
11 files changed, 57 insertions(+), 5 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_h/AudioBuffer-AnalyserNode-fp-mitigations.inc
|
||||
@@ -196,11 +196,13 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
|
||||
// Clip to valid range.
|
||||
UNSAFE_TODO(destination[i]) =
|
||||
static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX));
|
||||
@@ -325,6 +331,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
|
||||
@@ -324,7 +330,8 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
|
||||
for (unsigned i = 0; i < len; ++i) {
|
||||
float linear_value = UNSAFE_TODO(source[i]);
|
||||
double db_mag = audio_utilities::LinearToDecibels(linear_value);
|
||||
UNSAFE_TODO(destination[i]) = static_cast<float>(db_mag);
|
||||
+ destination[i] = BaseAudioContext::ShuffleAudioData(destination[i], i);
|
||||
- UNSAFE_TODO(destination[i]) = static_cast<float>(db_mag);
|
||||
+ auto v = static_cast<float>(db_mag);
|
||||
+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,45 +7,19 @@ This approach is not comprehensive, see also:
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../execution_context/execution_context.cc | 15 +++++++++
|
||||
.../execution_context/execution_context.h | 1 +
|
||||
.../renderer/core/loader/base_fetch_context.h | 1 +
|
||||
.../core/loader/frame_fetch_context.cc | 20 ++++++++++++
|
||||
.../core/loader/frame_fetch_context.h | 1 +
|
||||
.../core/loader/worker_fetch_context.cc | 21 +++++++++++++
|
||||
.../core/loader/worker_fetch_context.h | 1 +
|
||||
.../core/workers/installed_scripts_manager.cc | 4 +--
|
||||
.../core/workers/installed_scripts_manager.cc | 2 +-
|
||||
.../background_fetch_manager.cc | 31 +++++++++++++++++++
|
||||
.../websockets/websocket_channel_impl.cc | 5 +++
|
||||
.../modules/websockets/websocket_common.cc | 30 ++++++++++++++++++
|
||||
.../modules/websockets/websocket_common.h | 4 +++
|
||||
12 files changed, 132 insertions(+), 2 deletions(-)
|
||||
11 files changed, 116 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||
@@ -710,6 +710,21 @@ void ExecutionContext::WriteIntoTrace(
|
||||
proto->set_world_type(GetWorldType(*this));
|
||||
}
|
||||
|
||||
+String ExecutionContext::addressSpaceForBindings() const {
|
||||
+ switch (AddressSpace()) {
|
||||
+ case network::mojom::IPAddressSpace::kPublic:
|
||||
+ case network::mojom::IPAddressSpace::kUnknown:
|
||||
+ return "public";
|
||||
+
|
||||
+ case network::mojom::IPAddressSpace::kPrivate:
|
||||
+ return "private";
|
||||
+
|
||||
+ case network::mojom::IPAddressSpace::kLocal:
|
||||
+ return "local";
|
||||
+ }
|
||||
+ NOTREACHED();
|
||||
+}
|
||||
+
|
||||
bool ExecutionContext::CrossOriginIsolatedCapabilityOrDisabledWebSecurity()
|
||||
const {
|
||||
return Agent::IsWebSecurityDisabled() || CrossOriginIsolatedCapability();
|
||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||
@@ -84,7 +58,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
|
||||
+ network::mojom::IPAddressSpace target_space =
|
||||
+ network::mojom::IPAddressSpace::kPublic;
|
||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+
|
||||
@@ -133,7 +107,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th
|
||||
+ network::mojom::IPAddressSpace target_space =
|
||||
+ network::mojom::IPAddressSpace::kPublic;
|
||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+
|
||||
@@ -161,12 +135,9 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/thi
|
||||
diff --git a/third_party/blink/renderer/core/workers/installed_scripts_manager.cc b/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
||||
--- a/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
||||
+++ b/third_party/blink/renderer/core/workers/installed_scripts_manager.cc
|
||||
@@ -33,9 +33,9 @@ InstalledScriptsManager::ScriptData::ScriptData(
|
||||
// place so that this is shareable out of worker code.
|
||||
response_address_space_ = network::mojom::IPAddressSpace::kPublic;
|
||||
@@ -35,7 +35,7 @@ InstalledScriptsManager::ScriptData::ScriptData(
|
||||
if (network_utils::IsReservedIPAddress(script_url_.Host()))
|
||||
- response_address_space_ = network::mojom::IPAddressSpace::kLocal;
|
||||
+ response_address_space_ = network::mojom::IPAddressSpace::kPrivate;
|
||||
response_address_space_ = network::mojom::IPAddressSpace::kLocal;
|
||||
if (SecurityOrigin::Create(script_url_)->IsLocalhost())
|
||||
- response_address_space_ = network::mojom::IPAddressSpace::kLoopback;
|
||||
+ response_address_space_ = network::mojom::IPAddressSpace::kLocal;
|
||||
@@ -193,7 +164,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
||||
+ network::mojom::IPAddressSpace target_space =
|
||||
+ network::mojom::IPAddressSpace::kPublic;
|
||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+
|
||||
@@ -265,7 +236,7 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b
|
||||
+ network::mojom::IPAddressSpace target_space =
|
||||
+ network::mojom::IPAddressSpace::kPublic;
|
||||
+ if (network_utils::IsReservedIPAddress(request_url.Host()))
|
||||
+ target_space = network::mojom::IPAddressSpace::kPrivate;
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+ if (SecurityOrigin::Create(request_url)->IsLocalhost())
|
||||
+ target_space = network::mojom::IPAddressSpace::kLocal;
|
||||
+
|
||||
|
||||
@@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.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
|
||||
@@ -627,7 +627,7 @@ chrome_java_resources = [
|
||||
@@ -634,7 +634,7 @@ chrome_java_resources = [
|
||||
"java/res/xml/manage_sync_preferences.xml",
|
||||
"java/res/xml/personalize_google_services_preferences.xml",
|
||||
"java/res/xml/incognito_preferences.xml",
|
||||
@@ -218,8 +218,8 @@ new file mode 100644
|
||||
+ app:isPreferenceVisible="false" />
|
||||
+ <Preference
|
||||
+ android:key="incognito_tracking_protections"
|
||||
+ android:title="@string/incognito_tracking_protections_page_title"
|
||||
+ android:summary="@string/incognito_tracking_protections_page_entrypoint_description"
|
||||
+ android:title="@string/incognito_tracking_protections_link_row_label"
|
||||
+ android:summary="@string/incognito_tracking_protections_link_row_sublabel"
|
||||
+ android:fragment="org.chromium.components.privacy_sandbox.IncognitoTrackingProtectionsFragment"
|
||||
+ app:isPreferenceVisible="false" />
|
||||
+ <Preference
|
||||
|
||||
@@ -6,12 +6,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../src/org/chromium/base/PackageUtils.java | 1 +
|
||||
.../chrome/browser/IntentHandler.java | 6 ----
|
||||
.../chrome/browser/share/LensUtils.java | 14 ++-------
|
||||
.../chromium/chrome/browser/gsa/GSAUtils.java | 29 ++++---------------
|
||||
.../GoogleBottomBarActionsHandler.java | 19 ++----------
|
||||
.../chrome/browser/share/LensUtils.java | 14 ++------
|
||||
.../chromium/chrome/browser/gsa/GSAUtils.java | 34 +++----------------
|
||||
.../GoogleBottomBarActionsHandler.java | 19 ++---------
|
||||
.../chrome/browser/pdf/PdfCoordinator.java | 2 +-
|
||||
.../Disable-GSA-by-default.inc | 1 +
|
||||
7 files changed, 12 insertions(+), 60 deletions(-)
|
||||
7 files changed, 12 insertions(+), 65 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc
|
||||
|
||||
diff --git a/base/android/java/src/org/chromium/base/PackageUtils.java b/base/android/java/src/org/chromium/base/PackageUtils.java
|
||||
@@ -162,6 +162,17 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAUtil
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -101,10 +82,5 @@ public class GSAUtils {
|
||||
* @param packageInfo The package info to set for AGSA.
|
||||
*/
|
||||
public static void setAgsaPackageInfoForTesting(@Nullable PackageInfo packageInfo) {
|
||||
- sPackageInfo = packageInfo;
|
||||
- ResettersForTesting.register(
|
||||
- () -> {
|
||||
- sPackageInfo = null;
|
||||
- });
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java
|
||||
--- a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java
|
||||
+++ b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java
|
||||
|
||||
@@ -7,22 +7,23 @@ getHighEntropyValues will return only the major version
|
||||
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../renderer/core/frame/navigator_ua_data.cc | 16 ++++++++++++++--
|
||||
1 file changed, 14 insertions(+), 2 deletions(-)
|
||||
.../renderer/core/frame/navigator_ua_data.cc | 17 +++++++++++++++--
|
||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
||||
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.cc
|
||||
@@ -7,6 +7,8 @@
|
||||
@@ -7,6 +7,9 @@
|
||||
#include "base/compiler_specific.h"
|
||||
#include "base/task/single_thread_task_runner.h"
|
||||
#include "third_party/blink/public/common/features.h"
|
||||
+#include "base/version.h"
|
||||
+#include "base/strings/strcat.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h"
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiability_study_settings.h"
|
||||
#include "third_party/blink/public/common/privacy_budget/identifiable_surface.h"
|
||||
@@ -65,6 +67,16 @@ void MaybeRecordMetric(bool record_identifiability,
|
||||
@@ -65,6 +68,16 @@ void MaybeRecordMetric(bool record_identifiability,
|
||||
execution_context);
|
||||
}
|
||||
|
||||
@@ -39,7 +40,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_
|
||||
} // namespace
|
||||
|
||||
NavigatorUAData::NavigatorUAData(ExecutionContext* context)
|
||||
@@ -103,7 +115,7 @@ void NavigatorUAData::SetFullVersionList(
|
||||
@@ -103,7 +116,7 @@ void NavigatorUAData::SetFullVersionList(
|
||||
const UserAgentBrandList& full_version_list) {
|
||||
for (const auto& brand_version : full_version_list) {
|
||||
AddBrandFullVersion(String::FromUTF8(brand_version.brand),
|
||||
@@ -48,7 +49,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +137,7 @@ void NavigatorUAData::SetModel(const String& model) {
|
||||
@@ -125,7 +138,7 @@ void NavigatorUAData::SetModel(const String& model) {
|
||||
}
|
||||
|
||||
void NavigatorUAData::SetUAFullVersion(const String& ua_full_version) {
|
||||
|
||||
@@ -6,6 +6,7 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/BUILD.gn | 4 +---
|
||||
.../background_download_service_factory.cc | 2 +-
|
||||
.../preloading_model_keyed_service.cc | 3 +++
|
||||
.../preloading_model_keyed_service_factory.cc | 4 +---
|
||||
.../optimization_guide/chrome_hints_manager.cc | 1 +
|
||||
@@ -13,7 +14,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../optimization_guide_keyed_service.cc | 1 -
|
||||
chrome/browser/permissions/BUILD.gn | 2 --
|
||||
.../permissions/chrome_permissions_client.cc | 2 --
|
||||
.../prediction_model_handler_provider.cc | 4 ++--
|
||||
.../passage_embedder_delegate.cc | 2 ++
|
||||
.../prediction_model_handler_provider.cc | 9 ++++++---
|
||||
.../predictors/autocomplete_action_predictor.cc | 2 ++
|
||||
.../predictors/loading_predictor_config.cc | 4 ++--
|
||||
chrome/browser/predictors/predictors_features.cc | 3 +--
|
||||
@@ -24,6 +26,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
...fication_content_detection_service_factory.cc | 6 ++++++
|
||||
.../ui/autofill/chrome_autofill_client.cc | 15 ---------------
|
||||
chrome/browser/ui/tab_helpers.cc | 1 -
|
||||
.../autofill_ml_internals_page_handler.cc | 2 ++
|
||||
.../autofill_ml_internals_page_handler.h | 3 +++
|
||||
.../autofill_ml_internals_ui.cc | 3 +++
|
||||
.../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++--
|
||||
.../read_anything/read_aloud_app_model.h | 9 ++++++++-
|
||||
.../read_anything_app_controller.cc | 10 ++++++++++
|
||||
@@ -37,8 +42,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../prediction_model_download_manager.cc | 6 ++++--
|
||||
.../delivery/prediction_model_fetcher_impl.cc | 1 +
|
||||
.../core/hints/hints_fetcher.cc | 1 +
|
||||
.../core/hints/hints_manager.cc | 1 +
|
||||
.../core/optimization_guide_features.cc | 14 ++++++++------
|
||||
.../core/hints/hints_manager.cc | 2 ++
|
||||
.../core/optimization_guide_features.cc | 12 ++++++------
|
||||
components/optimization_guide/features.gni | 3 +--
|
||||
.../core/page_content_annotations_features.cc | 4 ++++
|
||||
.../page_content_annotations_model_manager.cc | 1 +
|
||||
@@ -57,7 +62,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../core/html/parser/html_document_parser.cc | 1 +
|
||||
.../document_speculation_rules.cc | 1 +
|
||||
.../platform/runtime_enabled_features.json5 | 2 +-
|
||||
52 files changed, 122 insertions(+), 78 deletions(-)
|
||||
57 files changed, 136 insertions(+), 80 deletions(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc
|
||||
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
|
||||
@@ -87,6 +92,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
"//components/safe_browsing/content/browser/password_protection",
|
||||
"//components/safe_browsing/content/browser/web_ui",
|
||||
"//components/safe_browsing/content/common/proto:download_file_types_proto",
|
||||
diff --git a/chrome/browser/download/background_download_service_factory.cc b/chrome/browser/download/background_download_service_factory.cc
|
||||
--- a/chrome/browser/download/background_download_service_factory.cc
|
||||
+++ b/chrome/browser/download/background_download_service_factory.cc
|
||||
@@ -179,7 +179,7 @@ BackgroundDownloadServiceFactory::BuildServiceInstanceFor(
|
||||
}
|
||||
#endif // BUILDFLAG(IS_CHROMEOS)
|
||||
|
||||
- if (!key->IsOffTheRecord()) {
|
||||
+ if (((false)) && !key->IsOffTheRecord()) {
|
||||
clients->insert(std::make_pair(
|
||||
download::DownloadClient::OPTIMIZATION_GUIDE_PREDICTION_MODELS,
|
||||
std::make_unique<download::DeferredClientWrapper>(
|
||||
diff --git a/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc
|
||||
--- a/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc
|
||||
+++ b/chrome/browser/navigation_predictor/preloading_model_keyed_service.cc
|
||||
@@ -222,6 +239,23 @@ diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/br
|
||||
return selectors;
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc b/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc
|
||||
--- a/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc
|
||||
+++ b/chrome/browser/permissions/prediction_service/passage_embedder_delegate.cc
|
||||
@@ -17,11 +17,13 @@ PassageEmbedderDelegate::PassageEmbedderDelegate(Profile* profile)
|
||||
: profile_(profile) {}
|
||||
|
||||
Embedder* PassageEmbedderDelegate::get_passage_embedder() {
|
||||
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
|
||||
if (auto* prediction_model_handler_provider =
|
||||
PredictionModelHandlerProviderFactory::GetForBrowserContext(
|
||||
profile_)) {
|
||||
return prediction_model_handler_provider->GetPassageEmbedder();
|
||||
}
|
||||
+#endif
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
diff --git a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc
|
||||
--- a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc
|
||||
+++ b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc
|
||||
@@ -239,6 +273,18 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand
|
||||
#include "components/permissions/prediction_service/prediction_model_handler.h"
|
||||
#endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB)
|
||||
|
||||
@@ -26,7 +26,10 @@ namespace permissions {
|
||||
PredictionModelHandlerProvider::PredictionModelHandlerProvider(
|
||||
OptimizationGuideKeyedService* optimization_guide,
|
||||
passage_embeddings::Embedder* passage_embedder)
|
||||
- : passage_embedder_(passage_embedder) {
|
||||
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
|
||||
+ : passage_embedder_(passage_embedder)
|
||||
+#endif
|
||||
+ {
|
||||
VLOG(1) << "[PermissionsAI] PredictionModelHandlerProvider ctor";
|
||||
// We set up model handlers if necessary in order of preference:
|
||||
// Aiv4, Aiv3, Aiv1
|
||||
diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc
|
||||
--- a/chrome/browser/predictors/autocomplete_action_predictor.cc
|
||||
+++ b/chrome/browser/predictors/autocomplete_action_predictor.cc
|
||||
@@ -303,7 +349,7 @@ diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_
|
||||
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
@@ -1195,7 +1195,6 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
@@ -1196,7 +1196,6 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
base::FeatureList::IsEnabled(
|
||||
permissions::features::kPermissionOnDeviceGeolocationPredictions) ||
|
||||
base::FeatureList::IsEnabled(permissions::features::kPermissionsAIv1)) {
|
||||
@@ -404,6 +450,66 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
|
||||
OpenerHeuristicService::Get(web_contents->GetBrowserContext());
|
||||
if (optimization_guide::features::IsOptimizationHintsEnabled()) {
|
||||
OptimizationGuideWebContentsObserver::CreateForWebContents(web_contents);
|
||||
diff --git a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc
|
||||
--- a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc
|
||||
+++ b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.cc
|
||||
@@ -12,9 +12,11 @@ AutofillMlInternalsPageHandlerImpl::AutofillMlInternalsPageHandlerImpl(
|
||||
mojo::PendingReceiver<autofill_ml_internals::mojom::PageHandler> receiver,
|
||||
autofill::MLLogRouter* log_router)
|
||||
: receiver_(this, std::move(receiver)) {
|
||||
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
|
||||
if (log_router) {
|
||||
log_router_observation_.Observe(log_router);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void AutofillMlInternalsPageHandlerImpl::SetPage(
|
||||
diff --git a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.h b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.h
|
||||
--- a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.h
|
||||
+++ b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_page_handler.h
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "base/scoped_observation.h"
|
||||
#include "components/autofill/core/browser/ml_model/logging/autofill_ml_internals.mojom.h"
|
||||
#include "components/autofill/core/browser/ml_model/logging/ml_log_router.h"
|
||||
+#include "components/optimization_guide/machine_learning_tflite_buildflags.h"
|
||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||
#include "mojo/public/cpp/bindings/receiver.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
@@ -35,8 +36,10 @@ class AutofillMlInternalsPageHandlerImpl
|
||||
private:
|
||||
mojo::Receiver<autofill_ml_internals::mojom::PageHandler> receiver_;
|
||||
mojo::Remote<autofill_ml_internals::mojom::Page> page_;
|
||||
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
|
||||
base::ScopedObservation<autofill::MLLogRouter, autofill::MLLogReceiver>
|
||||
log_router_observation_{this};
|
||||
+#endif
|
||||
};
|
||||
|
||||
#endif // CHROME_BROWSER_UI_WEBUI_AUTOFILL_ML_INTERNALS_AUTOFILL_ML_INTERNALS_PAGE_HANDLER_H_
|
||||
diff --git a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_ui.cc b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_ui.cc
|
||||
--- a/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/autofill_ml_internals/autofill_ml_internals_ui.cc
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "chrome/grit/autofill_ml_internals_resources.h"
|
||||
#include "chrome/grit/autofill_ml_internals_resources_map.h"
|
||||
#include "components/autofill/core/browser/ml_model/logging/autofill_ml_internals.mojom.h"
|
||||
+#include "components/optimization_guide/machine_learning_tflite_buildflags.h"
|
||||
#include "content/public/browser/web_ui.h"
|
||||
#include "content/public/browser/web_ui_data_source.h"
|
||||
#include "ui/webui/webui_util.h"
|
||||
@@ -29,9 +30,11 @@ AutofillMlInternalsUI::AutofillMlInternalsUI(content::WebUI* web_ui)
|
||||
|
||||
void AutofillMlInternalsUI::BindInterface(
|
||||
mojo::PendingReceiver<autofill_ml_internals::mojom::PageHandler> receiver) {
|
||||
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
|
||||
page_handler_ = std::make_unique<AutofillMlInternalsPageHandlerImpl>(
|
||||
std::move(receiver), autofill::MLLogRouterFactory::GetForProfile(
|
||||
Profile::FromWebUI(web_ui())));
|
||||
+#endif
|
||||
}
|
||||
|
||||
WEB_UI_CONTROLLER_TYPE_IMPL(AutofillMlInternalsUI)
|
||||
diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc
|
||||
--- a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc
|
||||
+++ b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc
|
||||
@@ -806,6 +912,12 @@ diff --git a/components/optimization_guide/core/hints/hints_manager.cc b/compone
|
||||
switch (optimization_type_decision) {
|
||||
case OptimizationTypeDecision::kAllowedByOptimizationFilter:
|
||||
case OptimizationTypeDecision::kAllowedByHint:
|
||||
@@ -2040,4 +2041,5 @@ void HintsManager::RemoveFetchedEntriesByHintKeys(
|
||||
hint_cache_->RemoveHintsForHosts(std::move(on_success), hint_keys);
|
||||
}
|
||||
|
||||
+SET_CROMITE_FEATURE_DISABLED(kHintsBatchUpdateForActiveTabsAndTopHosts);
|
||||
} // namespace optimization_guide
|
||||
diff --git a/components/optimization_guide/core/optimization_guide_features.cc b/components/optimization_guide/core/optimization_guide_features.cc
|
||||
--- a/components/optimization_guide/core/optimization_guide_features.cc
|
||||
+++ b/components/optimization_guide/core/optimization_guide_features.cc
|
||||
@@ -831,14 +943,12 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
|
||||
}
|
||||
|
||||
RequestContextSet GetAllowedContextsForPersonalizedMetadata() {
|
||||
@@ -692,5 +687,12 @@ bool IsPrivacyGuideAiSettingsEnabled() {
|
||||
@@ -692,5 +687,10 @@ bool IsPrivacyGuideAiSettingsEnabled() {
|
||||
return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings);
|
||||
}
|
||||
|
||||
+SET_CROMITE_FEATURE_DISABLED(kOptimizationHints);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kRemoteOptimizationGuideFetching);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kOptimizationTargetPrediction);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kOptimizationGuideModelDownloading);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPushNotifications);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPreventLongRunningPredictionModels);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kOptimizationGuideFetchingForSRP);
|
||||
|
||||
@@ -32,7 +32,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//chrome/browser/safety_hub/android:java",
|
||||
"//chrome/browser/screenshot_monitor:java",
|
||||
"//chrome/browser/search_engines/android:java",
|
||||
@@ -1128,8 +1127,6 @@ if (_is_default_toolchain) {
|
||||
@@ -1136,8 +1135,6 @@ if (_is_default_toolchain) {
|
||||
"//chrome/browser/recent_tabs:junit",
|
||||
"//chrome/browser/recent_tabs/internal:junit",
|
||||
"//chrome/browser/safe_browsing/android:junit",
|
||||
@@ -41,7 +41,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//chrome/browser/search_engines/android:junit",
|
||||
"//chrome/browser/search_resumption:junit",
|
||||
"//chrome/browser/serial/android:junit",
|
||||
@@ -1417,8 +1414,6 @@ if (_is_default_toolchain) {
|
||||
@@ -1425,8 +1422,6 @@ if (_is_default_toolchain) {
|
||||
"//chrome/browser/quick_delete:javatests",
|
||||
"//chrome/browser/renderer_host/android:javatests",
|
||||
"//chrome/browser/safe_browsing/android:javatests",
|
||||
@@ -53,7 +53,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
+++ b/chrome/android/chrome_java_sources.gni
|
||||
@@ -941,7 +941,6 @@ chrome_java_sources = [
|
||||
@@ -942,7 +942,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsNavigation.java",
|
||||
@@ -127,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
|
||||
@@ -32,13 +32,6 @@ import org.chromium.chrome.browser.privacy_sandbox.ChromeTrackingProtectionDeleg
|
||||
@@ -34,13 +34,6 @@ import org.chromium.chrome.browser.privacy_sandbox.ChromeTrackingProtectionDeleg
|
||||
import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFragment;
|
||||
import org.chromium.chrome.browser.privacy_sandbox.TopicsManageFragment;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
@@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
|
||||
import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
|
||||
import org.chromium.chrome.browser.signin.SigninAndHistorySyncActivityLauncherImpl;
|
||||
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
|
||||
@@ -125,18 +118,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
@@ -127,18 +120,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
delegate.setSnackbarManagerSupplier(mSnackbarManagerSupplier);
|
||||
baseSiteSettingsFragment.setSiteSettingsDelegate(delegate);
|
||||
}
|
||||
@@ -157,10 +157,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
|
||||
- PasswordManagerHelper.getForProfile(mProfile),
|
||||
- new SettingsCustomTabLauncherImpl());
|
||||
- }
|
||||
if (fragment instanceof SearchEngineSettings) {
|
||||
SearchEngineSettings settings = (SearchEngineSettings) fragment;
|
||||
settings.setDisableAutoSwitchRunnable(
|
||||
@@ -219,14 +200,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
if (fragment instanceof CredentialEntryFragmentViewBase) {
|
||||
CredentialEditUiFactory.create((CredentialEntryFragmentViewBase) fragment, mProfile);
|
||||
}
|
||||
@@ -224,14 +205,6 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
((AutofillLocalIbanEditor) fragment)
|
||||
.setModalDialogManagerSupplier(mModalDialogManagerSupplier);
|
||||
}
|
||||
@@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
|
||||
if (fragment instanceof INeedSnackbarManager) {
|
||||
((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier);
|
||||
}
|
||||
@@ -241,8 +214,5 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
@@ -246,8 +219,5 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
if (fragment instanceof ManageSyncSettings) {
|
||||
((ManageSyncSettings) fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier);
|
||||
}
|
||||
@@ -205,10 +205,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
-import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
|
||||
-import org.chromium.chrome.browser.safety_hub.SafetyHubFragment;
|
||||
import org.chromium.chrome.browser.password_manager.settings.PasswordSettings;
|
||||
import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
|
||||
import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
|
||||
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
|
||||
@@ -46,10 +44,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
|
||||
@@ -47,10 +45,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
|
||||
ClearBrowsingDataFragment.createFragmentArgs(context.getClass().getName());
|
||||
break;
|
||||
case SettingsFragment.SAFETY_CHECK:
|
||||
@@ -220,7 +220,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
||||
case SettingsFragment.MAIN:
|
||||
case SettingsFragment.PAYMENT_METHODS:
|
||||
case SettingsFragment.SITE:
|
||||
@@ -108,11 +103,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
|
||||
@@ -110,11 +105,7 @@ public class SettingsNavigationImpl implements SettingsNavigation {
|
||||
case SettingsFragment.PAYMENT_METHODS:
|
||||
return AutofillPaymentMethodsFragment.class;
|
||||
case SettingsFragment.SAFETY_CHECK:
|
||||
@@ -236,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -3451,7 +3451,6 @@ static_library("browser") {
|
||||
@@ -3458,7 +3458,6 @@ static_library("browser") {
|
||||
"//chrome/browser/recent_tabs:jni_headers",
|
||||
"//chrome/browser/regional_capabilities",
|
||||
"//chrome/browser/safe_browsing/android:safe_browsing_enums",
|
||||
|
||||
@@ -168,7 +168,7 @@ diff --git a/chrome/browser/platform_util_android.cc b/chrome/browser/platform_u
|
||||
+ }
|
||||
+
|
||||
+ base::android::ScopedJavaGlobalRef<jstring> obj;
|
||||
+ obj.Reset(env, return_string);
|
||||
+ obj.Reset(env, jni_zero::JavaRef<jstring>::CreateLeaky(env, return_string));
|
||||
+ return ScopedJavaLocalRef<jstring>(obj);
|
||||
+}
|
||||
diff --git a/chrome/browser/util/android/java/src/org/chromium/chrome/browser/util/PlatformUtil.java b/chrome/browser/util/android/java/src/org/chromium/chrome/browser/util/PlatformUtil.java
|
||||
|
||||
@@ -55,17 +55,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
|
||||
@@ -27,7 +27,9 @@ import androidx.preference.PreferenceCategory;
|
||||
@@ -27,6 +27,8 @@ import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceGroup;
|
||||
|
||||
import org.chromium.base.BuildInfo;
|
||||
+import org.chromium.base.StrictModeContext;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
+import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.base.supplier.ObservableSupplier;
|
||||
import org.chromium.base.supplier.ObservableSupplierImpl;
|
||||
import org.chromium.build.annotations.Nullable;
|
||||
@@ -60,6 +62,11 @@ import java.lang.annotation.Retention;
|
||||
@@ -58,6 +60,11 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.Locale;
|
||||
|
||||
@@ -77,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
/**
|
||||
* The "Passwords" screen in Settings, which allows the user to enable or disable password saving,
|
||||
* to view saved passwords (just the username and URL), and to delete saved passwords.
|
||||
@@ -69,7 +76,7 @@ import java.util.Locale;
|
||||
@@ -65,7 +72,7 @@ import java.util.Locale;
|
||||
public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
implements PasswordListObserver,
|
||||
Preference.OnPreferenceClickListener,
|
||||
@@ -86,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
@IntDef({
|
||||
TrustedVaultBannerState.NOT_SHOWN,
|
||||
TrustedVaultBannerState.OFFER_OPT_IN,
|
||||
@@ -99,6 +106,12 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
@@ -95,6 +102,12 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
public static final String PREF_TRUSTED_VAULT_BANNER = "trusted_vault_banner";
|
||||
public static final String PREF_KEY_MANAGE_ACCOUNT_LINK = "manage_account_link";
|
||||
|
||||
@@ -99,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords";
|
||||
private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions";
|
||||
private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text";
|
||||
@@ -131,6 +144,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
@@ -127,6 +140,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
private Preference mLinkPref;
|
||||
private Menu mMenu;
|
||||
|
||||
@@ -108,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
private @ManagePasswordsReferrer int mManagePasswordsReferrer;
|
||||
private final ObservableSupplierImpl<String> mPageTitle = new ObservableSupplierImpl<>();
|
||||
|
||||
@@ -315,6 +330,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
@@ -321,6 +336,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
}
|
||||
|
||||
createSavePasswordsSwitch();
|
||||
@@ -116,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
|
||||
if (shouldShowAutoSigninOption()) {
|
||||
createAutoSignInCheckbox();
|
||||
}
|
||||
@@ -588,6 +604,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
@@ -589,6 +605,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment
|
||||
getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE));
|
||||
}
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../search_engines_browser_proxy.ts | 8 +-
|
||||
.../search_page/search_engines_page.html | 14 +-
|
||||
.../settings/search_page/search_page.html | 6 +-
|
||||
.../search_page/search_page_index.html | 5 +
|
||||
.../browser/resources/settings/settings.gni | 2 +-
|
||||
.../browser/resources/settings/settings.html | 8 +-
|
||||
.../settings/settings_ui/settings_ui.html | 6 +
|
||||
@@ -78,7 +79,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
ui/webui/resources/images/BUILD.gn | 2 +-
|
||||
ui/webui/resources/js/BUILD.gn | 2 +-
|
||||
ui/webui/resources/js/load_time_data.ts | 17 +-
|
||||
71 files changed, 1161 insertions(+), 72 deletions(-)
|
||||
72 files changed, 1166 insertions(+), 72 deletions(-)
|
||||
create mode 100644 chrome/app/settings_strings_android.grdp
|
||||
create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml
|
||||
create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc
|
||||
@@ -100,7 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
||||
import org.chromium.base.IntentUtils;
|
||||
import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragment;
|
||||
import org.chromium.chrome.browser.autofill.settings.FinancialAccountsManagementFragment;
|
||||
@@ -30,6 +33,13 @@ public class SettingsNavigationImpl implements SettingsNavigation {
|
||||
@@ -31,6 +34,13 @@ public class SettingsNavigationImpl implements SettingsNavigation {
|
||||
/** Instantiated through SettingsNavigationFactory. */
|
||||
SettingsNavigationImpl() {}
|
||||
|
||||
@@ -419,7 +420,7 @@ new file mode 100644
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -3691,6 +3691,9 @@ static_library("browser") {
|
||||
@@ -3698,6 +3698,9 @@ static_library("browser") {
|
||||
"//components/user_scripts/android",
|
||||
]
|
||||
}
|
||||
@@ -741,6 +742,21 @@ diff --git a/chrome/browser/resources/settings/search_page/search_page.html b/ch
|
||||
+ style="max-width: calc(100vw)"></cr-link-row>
|
||||
</div>
|
||||
</settings-section>
|
||||
diff --git a/chrome/browser/resources/settings/search_page/search_page_index.html b/chrome/browser/resources/settings/search_page/search_page_index.html
|
||||
--- a/chrome/browser/resources/settings/search_page/search_page_index.html
|
||||
+++ b/chrome/browser/resources/settings/search_page/search_page_index.html
|
||||
@@ -3,6 +3,11 @@
|
||||
cr-view-manager[show-all] [slot=view][data-parent-view-id] {
|
||||
display: none;
|
||||
}
|
||||
+<if expr="is_android">
|
||||
+ settings-search-engines-page {
|
||||
+ width: 90%;
|
||||
+ }
|
||||
+</if>
|
||||
</style>
|
||||
|
||||
<cr-view-manager id="viewManager" class="cr-centered-card-container"
|
||||
diff --git a/chrome/browser/resources/settings/settings.gni b/chrome/browser/resources/settings/settings.gni
|
||||
--- a/chrome/browser/resources/settings/settings.gni
|
||||
+++ b/chrome/browser/resources/settings/settings.gni
|
||||
@@ -1895,8 +1911,8 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
|
||||
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java
|
||||
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java
|
||||
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java
|
||||
@@ -57,6 +57,8 @@ public interface SettingsNavigation {
|
||||
int NON_CARD_PAYMENT_METHODS = 9;
|
||||
@@ -60,6 +60,8 @@ public interface SettingsNavigation {
|
||||
int PASSWORDS = 10;
|
||||
}
|
||||
|
||||
+ void launchUrlInCustomTab(Context context, String url);
|
||||
@@ -1934,7 +1950,7 @@ diff --git a/components/search_engines/search_engines_switches.cc b/components/s
|
||||
&kSearchEngineChoiceTriggerReprompt,
|
||||
/*name=*/"reprompt",
|
||||
/*default_value=*/kSearchEngineChoiceNoRepromptString};
|
||||
+SET_CROMITE_FEATURE_DISABLED(kSearchEngineChoiceTrigger);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kSearchEngineChoiceTriggerReprompt);
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES)
|
||||
|
||||
@@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/browser/about_flags.cc | 1 +
|
||||
chrome/browser/prefs/browser_prefs.cc | 4 +
|
||||
chrome/browser/profiles/BUILD.gn | 3 +
|
||||
...hrome_browser_main_extra_parts_profiles.cc | 7 +
|
||||
...hrome_browser_main_extra_parts_profiles.cc | 9 +
|
||||
chrome/browser/profiles/profile_manager.cc | 11 +
|
||||
chrome/browser/profiles/renderer_updater.cc | 19 +-
|
||||
chrome/browser/profiles/renderer_updater.h | 3 +
|
||||
@@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/common/renderer_configuration.mojom | 1 +
|
||||
chrome/renderer/BUILD.gn | 6 +
|
||||
.../chrome_content_renderer_client.cc | 55 ++
|
||||
.../renderer/chrome_render_thread_observer.cc | 5 +
|
||||
.../renderer/chrome_render_thread_observer.cc | 7 +
|
||||
components/components_strings.grd | 1 +
|
||||
components/user_scripts/README.md | 150 ++++
|
||||
components/user_scripts/android/BUILD.gn | 103 +++
|
||||
@@ -68,16 +68,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
...Allow-playing-videos-in-background.user.js | 25 +
|
||||
.../assets/Dont-track-me-Google.user.js | 826 ++++++++++++++++++
|
||||
.../user_scripts/assets/disable-amp.user.js | 127 +++
|
||||
components/user_scripts/browser/BUILD.gn | 77 ++
|
||||
components/user_scripts/browser/BUILD.gn | 79 ++
|
||||
.../user_scripts/browser/file_task_runner.cc | 40 +
|
||||
.../user_scripts/browser/file_task_runner.h | 34 +
|
||||
.../browser/renderer_startup_helper.cc | 102 +++
|
||||
.../browser/renderer_startup_helper.h | 105 +++
|
||||
.../browser/resources/browser_resources.grd | 14 +
|
||||
.../browser/resources/user-script-ui/BUILD.gn | 8 +
|
||||
.../user-script-ui/user-scripts-ui.html | 14 +
|
||||
.../user-script-ui/user-scripts-ui.js | 9 +
|
||||
.../browser/ui/user_scripts_ui.cc | 146 ++++
|
||||
.../user_scripts/browser/ui/user_scripts_ui.h | 46 +
|
||||
.../browser/user_script_loader.cc | 723 +++++++++++++++
|
||||
.../browser/user_script_loader.cc | 726 +++++++++++++++
|
||||
.../user_scripts/browser/user_script_loader.h | 168 ++++
|
||||
.../browser/user_script_pref_info.cc | 34 +
|
||||
.../browser/user_script_pref_info.h | 72 ++
|
||||
@@ -85,16 +87,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../user_scripts/browser/user_script_prefs.h | 62 ++
|
||||
.../browser/userscripts_browser_client.cc | 78 ++
|
||||
.../browser/userscripts_browser_client.h | 62 ++
|
||||
components/user_scripts/common/BUILD.gn | 48 +
|
||||
components/user_scripts/common/BUILD.gn | 58 ++
|
||||
components/user_scripts/common/constants.h | 15 +
|
||||
components/user_scripts/common/error_utils.cc | 54 ++
|
||||
components/user_scripts/common/error_utils.h | 22 +
|
||||
.../common/extension_message_generator.cc | 29 +
|
||||
.../common/extension_message_generator.h | 11 +
|
||||
.../user_scripts/common/extension_messages.cc | 40 +
|
||||
.../user_scripts/common/extension_messages.h | 70 ++
|
||||
components/user_scripts/common/host_id.cc | 31 +
|
||||
components/user_scripts/common/host_id.h | 35 +
|
||||
.../user_scripts/common/mojom/renderer.mojom | 12 +
|
||||
.../user_scripts/common/script_constants.h | 33 +
|
||||
components/user_scripts/common/url_pattern.cc | 813 +++++++++++++++++
|
||||
components/user_scripts/common/url_pattern.h | 306 +++++++
|
||||
@@ -121,15 +120,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../renderer/script_injection_manager.h | 100 +++
|
||||
.../user_scripts/renderer/script_injector.h | 100 +++
|
||||
.../user_scripts/renderer/scripts_run_info.cc | 31 +
|
||||
.../user_scripts/renderer/scripts_run_info.h | 69 ++
|
||||
.../user_scripts/renderer/scripts_run_info.h | 70 ++
|
||||
.../renderer/user_script_injector.cc | 227 +++++
|
||||
.../renderer/user_script_injector.h | 86 ++
|
||||
.../user_scripts/renderer/user_script_set.cc | 264 ++++++
|
||||
.../user_scripts/renderer/user_script_set.h | 101 +++
|
||||
.../renderer/user_script_set_manager.cc | 76 ++
|
||||
.../renderer/user_script_set_manager.h | 64 ++
|
||||
.../renderer/user_scripts_dispatcher.cc | 36 +
|
||||
.../renderer/user_scripts_dispatcher.h | 49 ++
|
||||
.../renderer/user_script_set_manager.cc | 65 ++
|
||||
.../renderer/user_script_set_manager.h | 56 ++
|
||||
.../renderer/user_scripts_dispatcher.cc | 64 ++
|
||||
.../renderer/user_scripts_dispatcher.h | 67 ++
|
||||
.../renderer/user_scripts_renderer_client.cc | 108 +++
|
||||
.../renderer/user_scripts_renderer_client.h | 38 +
|
||||
.../renderer/web_ui_injection_host.cc | 40 +
|
||||
@@ -138,7 +137,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../Experimental-user-scripts-support.inc | 13 +
|
||||
ipc/ipc_message_start.h | 1 +
|
||||
tools/gritsettings/resource_ids.spec | 6 +
|
||||
111 files changed, 10379 insertions(+), 3 deletions(-)
|
||||
110 files changed, 10495 insertions(+), 3 deletions(-)
|
||||
create mode 100644 components/user_scripts/README.md
|
||||
create mode 100755 components/user_scripts/android/BUILD.gn
|
||||
create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml
|
||||
@@ -163,6 +162,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
create mode 100755 components/user_scripts/browser/BUILD.gn
|
||||
create mode 100755 components/user_scripts/browser/file_task_runner.cc
|
||||
create mode 100755 components/user_scripts/browser/file_task_runner.h
|
||||
create mode 100644 components/user_scripts/browser/renderer_startup_helper.cc
|
||||
create mode 100644 components/user_scripts/browser/renderer_startup_helper.h
|
||||
create mode 100644 components/user_scripts/browser/resources/browser_resources.grd
|
||||
create mode 100644 components/user_scripts/browser/resources/user-script-ui/BUILD.gn
|
||||
create mode 100644 components/user_scripts/browser/resources/user-script-ui/user-scripts-ui.html
|
||||
@@ -181,12 +182,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
create mode 100755 components/user_scripts/common/constants.h
|
||||
create mode 100755 components/user_scripts/common/error_utils.cc
|
||||
create mode 100755 components/user_scripts/common/error_utils.h
|
||||
create mode 100755 components/user_scripts/common/extension_message_generator.cc
|
||||
create mode 100755 components/user_scripts/common/extension_message_generator.h
|
||||
create mode 100755 components/user_scripts/common/extension_messages.cc
|
||||
create mode 100755 components/user_scripts/common/extension_messages.h
|
||||
create mode 100755 components/user_scripts/common/host_id.cc
|
||||
create mode 100755 components/user_scripts/common/host_id.h
|
||||
create mode 100644 components/user_scripts/common/mojom/renderer.mojom
|
||||
create mode 100755 components/user_scripts/common/script_constants.h
|
||||
create mode 100755 components/user_scripts/common/url_pattern.cc
|
||||
create mode 100755 components/user_scripts/common/url_pattern.h
|
||||
@@ -253,7 +251,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//components/variations:variations_java",
|
||||
"//components/variations/android:variations_java",
|
||||
"//components/viz/service:service_java",
|
||||
@@ -1687,6 +1692,7 @@ if (_is_default_toolchain) {
|
||||
@@ -1695,6 +1700,7 @@ if (_is_default_toolchain) {
|
||||
java_group("chrome_public_non_pak_assets") {
|
||||
deps = [
|
||||
"//chrome/android/webapk/libs/runtime_library:runtime_library_assets",
|
||||
@@ -264,7 +262,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -153,6 +153,11 @@ for the previous order (main_preferences_legacy). -->
|
||||
@@ -154,6 +154,11 @@ for the previous order (main_preferences_legacy). -->
|
||||
android:key="useragent_settings"
|
||||
android:order="20"
|
||||
android:title="@string/prefs_useragent_settings"/>
|
||||
@@ -340,7 +338,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -3675,6 +3675,13 @@ static_library("browser") {
|
||||
@@ -3682,6 +3682,13 @@ static_library("browser") {
|
||||
]
|
||||
deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
|
||||
}
|
||||
@@ -402,23 +400,25 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
|
||||
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
@@ -590,6 +590,10 @@
|
||||
@@ -590,6 +590,11 @@
|
||||
#include "chrome/browser/net/nss_service_factory.h"
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+#include "components/user_scripts/browser/userscripts_browser_client.h"
|
||||
+#include "components/user_scripts/browser/renderer_startup_helper.h"
|
||||
+#endif
|
||||
+
|
||||
void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
|
||||
main_parts->AddParts(std::make_unique<ChromeBrowserMainExtraPartsProfiles>());
|
||||
}
|
||||
@@ -1430,6 +1434,9 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
@@ -1430,6 +1435,10 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
#endif
|
||||
WebDataServiceFactory::GetInstance();
|
||||
webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ user_scripts::UserScriptsBrowserClient::GetInstance();
|
||||
+ user_scripts::RendererStartupHelperFactory::GetInstance();
|
||||
+#endif
|
||||
}
|
||||
|
||||
@@ -685,16 +685,18 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
|
||||
diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc
|
||||
--- a/chrome/renderer/chrome_render_thread_observer.cc
|
||||
+++ b/chrome/renderer/chrome_render_thread_observer.cc
|
||||
@@ -54,6 +54,8 @@
|
||||
@@ -54,6 +54,10 @@
|
||||
#include "third_party/blink/public/web/web_security_policy.h"
|
||||
#include "third_party/blink/public/web/web_view.h"
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+#include "components/user_scripts/renderer/user_scripts_renderer_client.h"
|
||||
+#endif
|
||||
+
|
||||
#if BUILDFLAG(IS_CHROMEOS)
|
||||
#include "chrome/renderer/ash_merge_session_loader_throttle.h"
|
||||
#endif
|
||||
@@ -220,6 +222,9 @@ void ChromeRenderThreadObserver::SetConfiguration(
|
||||
@@ -220,6 +224,9 @@ void ChromeRenderThreadObserver::SetConfiguration(
|
||||
chrome::mojom::DynamicParamsPtr params) {
|
||||
base::AutoLock lock(dynamic_params_lock_);
|
||||
dynamic_params_ = std::move(params);
|
||||
@@ -1716,8 +1718,6 @@ new file mode 100644
|
||||
+
|
||||
+package org.chromium.components.user_scripts;
|
||||
+
|
||||
+import static org.chromium.components.browser_ui.widget.BrowserUiListMenuUtils.buildMenuListItem;
|
||||
+
|
||||
+import android.content.Context;
|
||||
+import android.content.Intent;
|
||||
+import android.provider.Browser;
|
||||
@@ -1738,6 +1738,7 @@ new file mode 100644
|
||||
+
|
||||
+import org.chromium.base.ApplicationStatus;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
+import org.chromium.components.browser_ui.widget.ListItemBuilder;
|
||||
+import org.chromium.components.browser_ui.widget.TintedDrawable;
|
||||
+import org.chromium.components.browser_ui.widget.BrowserUiListMenuUtils;
|
||||
+import org.chromium.ui.listmenu.BasicListMenu;
|
||||
@@ -1768,9 +1769,10 @@ new file mode 100644
|
||||
+
|
||||
+ ModelList menuItems = new ModelList();
|
||||
+
|
||||
+ menuItems.add(buildMenuListItem(R.string.remove, 0, 0, true));
|
||||
+ menuItems.add(buildMenuListItem(R.string.scripts_view_source, 0, 0,
|
||||
+ info.ParserError == null || info.ParserError.isEmpty()));
|
||||
+ menuItems.add(new ListItemBuilder().withTitleRes(R.string.remove).build());
|
||||
+ menuItems.add(new ListItemBuilder().withTitleRes(R.string.scripts_view_source)
|
||||
+ .withEnabled(info.ParserError == null || info.ParserError.isEmpty())
|
||||
+ .build());
|
||||
+
|
||||
+ ListMenu.Delegate delegate = (model) -> {
|
||||
+ int textId = model.get(ListMenuItemProperties.TITLE_ID);
|
||||
@@ -3448,7 +3450,7 @@ diff --git a/components/user_scripts/browser/BUILD.gn b/components/user_scripts/
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/browser/BUILD.gn
|
||||
@@ -0,0 +1,77 @@
|
||||
@@ -0,0 +1,79 @@
|
||||
+# This file is part of Bromite.
|
||||
+
|
||||
+# Bromite is free software: you can redistribute it and/or modify
|
||||
@@ -3489,6 +3491,8 @@ new file mode 100755
|
||||
+ "user_script_pref_info.h",
|
||||
+ "ui/user_scripts_ui.h",
|
||||
+ "ui/user_scripts_ui.cc",
|
||||
+ "renderer_startup_helper.h",
|
||||
+ "renderer_startup_helper.cc",
|
||||
+ ]
|
||||
+
|
||||
+ deps = [
|
||||
@@ -3610,6 +3614,223 @@ new file mode 100755
|
||||
+} // namespace extensions
|
||||
+
|
||||
+#endif // USERSCRIPTS_BROWSER_FILE_TASK_RUNNER_H_
|
||||
diff --git a/components/user_scripts/browser/renderer_startup_helper.cc b/components/user_scripts/browser/renderer_startup_helper.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/browser/renderer_startup_helper.cc
|
||||
@@ -0,0 +1,102 @@
|
||||
+#include "renderer_startup_helper.h"
|
||||
+
|
||||
+#include "chrome/browser/profiles/incognito_helpers.h"
|
||||
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
|
||||
+#include "content/public/browser/browser_context.h"
|
||||
+#include "content/public/browser/render_process_host.h"
|
||||
+#include "ipc/ipc_channel_proxy.h"
|
||||
+
|
||||
+namespace user_scripts {
|
||||
+
|
||||
+RendererStartupHelper::RendererStartupHelper(content::BrowserContext* browser_context)
|
||||
+ : browser_context_(browser_context) {
|
||||
+ DCHECK(browser_context);
|
||||
+}
|
||||
+
|
||||
+RendererStartupHelper::~RendererStartupHelper() {
|
||||
+ for (auto& process_entry : process_mojo_map_)
|
||||
+ process_entry.first->RemoveObserver(this);
|
||||
+}
|
||||
+
|
||||
+void RendererStartupHelper::OnRenderProcessHostCreated(
|
||||
+ content::RenderProcessHost* host) {
|
||||
+ InitializeProcess(host);
|
||||
+}
|
||||
+
|
||||
+void RendererStartupHelper::RenderProcessExited(
|
||||
+ content::RenderProcessHost* host,
|
||||
+ const content::ChildProcessTerminationInfo& info) {
|
||||
+ UntrackProcess(host);
|
||||
+}
|
||||
+
|
||||
+void RendererStartupHelper::RenderProcessHostDestroyed(
|
||||
+ content::RenderProcessHost* host) {
|
||||
+ UntrackProcess(host);
|
||||
+}
|
||||
+
|
||||
+void RendererStartupHelper::InitializeProcess(
|
||||
+ content::RenderProcessHost* process) {
|
||||
+ //mojom::Renderer* renderer =
|
||||
+ process_mojo_map_.emplace(process, BindNewRendererRemote(process))
|
||||
+ .first->second.get();
|
||||
+ process->AddObserver(this);
|
||||
+}
|
||||
+
|
||||
+void RendererStartupHelper::UntrackProcess(
|
||||
+ content::RenderProcessHost* process) {
|
||||
+ process->RemoveObserver(this);
|
||||
+ process_mojo_map_.erase(process);
|
||||
+}
|
||||
+
|
||||
+mojo::PendingAssociatedRemote<mojom::Renderer>
|
||||
+RendererStartupHelper::BindNewRendererRemote(
|
||||
+ content::RenderProcessHost* process) {
|
||||
+ mojo::AssociatedRemote<mojom::Renderer> renderer_interface;
|
||||
+ process->GetChannel()->GetRemoteAssociatedInterface(&renderer_interface);
|
||||
+ return renderer_interface.Unbind();
|
||||
+}
|
||||
+
|
||||
+mojom::Renderer* RendererStartupHelper::GetRenderer(
|
||||
+ content::RenderProcessHost* process) {
|
||||
+ auto it = process_mojo_map_.find(process);
|
||||
+ if (it == process_mojo_map_.end()) {
|
||||
+ return nullptr;
|
||||
+ }
|
||||
+ return it->second.get();
|
||||
+}
|
||||
+
|
||||
+// static
|
||||
+RendererStartupHelper* RendererStartupHelperFactory::GetForBrowserContext(
|
||||
+ content::BrowserContext* context) {
|
||||
+ return static_cast<RendererStartupHelper*>(
|
||||
+ GetInstance()->GetServiceForBrowserContext(context, true));
|
||||
+}
|
||||
+
|
||||
+// static
|
||||
+RendererStartupHelperFactory* RendererStartupHelperFactory::GetInstance() {
|
||||
+ return base::Singleton<RendererStartupHelperFactory>::get();
|
||||
+}
|
||||
+
|
||||
+RendererStartupHelperFactory::RendererStartupHelperFactory()
|
||||
+ : BrowserContextKeyedServiceFactory(
|
||||
+ "UserScriptRendererStartupHelper",
|
||||
+ BrowserContextDependencyManager::GetInstance()) {}
|
||||
+
|
||||
+RendererStartupHelperFactory::~RendererStartupHelperFactory() = default;
|
||||
+
|
||||
+std::unique_ptr<KeyedService>
|
||||
+RendererStartupHelperFactory::BuildServiceInstanceForBrowserContext(
|
||||
+ content::BrowserContext* context) const {
|
||||
+ return std::make_unique<RendererStartupHelper>(context);
|
||||
+}
|
||||
+
|
||||
+content::BrowserContext* RendererStartupHelperFactory::GetBrowserContextToUse(
|
||||
+ content::BrowserContext* context) const {
|
||||
+ return GetBrowserContextRedirectedInIncognito(context);
|
||||
+}
|
||||
+
|
||||
+bool RendererStartupHelperFactory::ServiceIsCreatedWithBrowserContext() const {
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+}
|
||||
diff --git a/components/user_scripts/browser/renderer_startup_helper.h b/components/user_scripts/browser/renderer_startup_helper.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/browser/renderer_startup_helper.h
|
||||
@@ -0,0 +1,105 @@
|
||||
+
|
||||
+#ifndef USERSCRIPTS_BROWSER_RENDERER_STARTUP_HELPER_H_
|
||||
+#define USERSCRIPTS_BROWSER_RENDERER_STARTUP_HELPER_H_
|
||||
+
|
||||
+#include <map>
|
||||
+#include <optional>
|
||||
+#include <set>
|
||||
+
|
||||
+#include "base/compiler_specific.h"
|
||||
+#include "base/memory/raw_ptr.h"
|
||||
+#include "base/memory/singleton.h"
|
||||
+#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
|
||||
+#include "components/keyed_service/core/keyed_service.h"
|
||||
+#include "content/public/browser/render_process_host_creation_observer.h"
|
||||
+#include "content/public/browser/render_process_host_observer.h"
|
||||
+#include "components/user_scripts/common/mojom/renderer.mojom.h"
|
||||
+#include "mojo/public/cpp/bindings/associated_receiver_set.h"
|
||||
+#include "mojo/public/cpp/bindings/associated_remote.h"
|
||||
+#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
|
||||
+#include "mojo/public/cpp/bindings/pending_associated_remote.h"
|
||||
+
|
||||
+namespace content {
|
||||
+class BrowserContext;
|
||||
+class RenderProcessHost;
|
||||
+} // namespace content
|
||||
+
|
||||
+namespace user_scripts {
|
||||
+
|
||||
+class RendererStartupHelper : public KeyedService,
|
||||
+ public content::RenderProcessHostCreationObserver,
|
||||
+ public content::RenderProcessHostObserver {
|
||||
+ public:
|
||||
+ // This class sends messages to all renderers started for `browser_context`.
|
||||
+ explicit RendererStartupHelper(content::BrowserContext* browser_context);
|
||||
+
|
||||
+ RendererStartupHelper(const RendererStartupHelper&) = delete;
|
||||
+ RendererStartupHelper& operator=(const RendererStartupHelper&) = delete;
|
||||
+
|
||||
+ ~RendererStartupHelper() override;
|
||||
+
|
||||
+ // content::RenderProcessHostCreationObserver:
|
||||
+ void OnRenderProcessHostCreated(
|
||||
+ content::RenderProcessHost* process_host) override;
|
||||
+
|
||||
+ // content::RenderProcessHostObserver:
|
||||
+ void RenderProcessExited(
|
||||
+ content::RenderProcessHost* host,
|
||||
+ const content::ChildProcessTerminationInfo& info) override;
|
||||
+ void RenderProcessHostDestroyed(content::RenderProcessHost* host) override;
|
||||
+
|
||||
+ // Returns mojom::Renderer* corresponding to `process`. This would return
|
||||
+ // nullptr when it's called before `process` is inserted to
|
||||
+ // `process_mojo_map_` or after it's deleted. Note that the callers should
|
||||
+ // pass a valid content::RenderProcessHost*.
|
||||
+ mojom::Renderer* GetRenderer(content::RenderProcessHost* process);
|
||||
+
|
||||
+ private:
|
||||
+ // Initializes the specified process, informing it of system state and loaded
|
||||
+ // extensions.
|
||||
+ void InitializeProcess(content::RenderProcessHost* process);
|
||||
+
|
||||
+ // Untracks the given process.
|
||||
+ void UntrackProcess(content::RenderProcessHost* process);
|
||||
+
|
||||
+ mojo::PendingAssociatedRemote<mojom::Renderer> BindNewRendererRemote(
|
||||
+ content::RenderProcessHost* process);
|
||||
+
|
||||
+ raw_ptr<content::BrowserContext> browser_context_; // Not owned.
|
||||
+
|
||||
+ // A map of render processes to mojo remotes. Being in this
|
||||
+ // map means that have had the initial batch of IPC messages
|
||||
+ // sent, including the set of loaded extensions. Further messages that
|
||||
+ // activate, load, or unload extensions should not be sent until after this
|
||||
+ // happens.
|
||||
+ std::map<content::RenderProcessHost*, mojo::AssociatedRemote<mojom::Renderer>>
|
||||
+ process_mojo_map_;
|
||||
+};
|
||||
+
|
||||
+class RendererStartupHelperFactory : public BrowserContextKeyedServiceFactory {
|
||||
+ public:
|
||||
+ RendererStartupHelperFactory(const RendererStartupHelperFactory&) = delete;
|
||||
+ RendererStartupHelperFactory& operator=(const RendererStartupHelperFactory&) =
|
||||
+ delete;
|
||||
+
|
||||
+ static RendererStartupHelper* GetForBrowserContext(
|
||||
+ content::BrowserContext* context);
|
||||
+ static RendererStartupHelperFactory* GetInstance();
|
||||
+
|
||||
+ private:
|
||||
+ friend struct base::DefaultSingletonTraits<RendererStartupHelperFactory>;
|
||||
+
|
||||
+ RendererStartupHelperFactory();
|
||||
+ ~RendererStartupHelperFactory() override;
|
||||
+
|
||||
+ // BrowserContextKeyedServiceFactory implementation:
|
||||
+ std::unique_ptr<KeyedService> BuildServiceInstanceForBrowserContext(
|
||||
+ content::BrowserContext* profile) const override;
|
||||
+ content::BrowserContext* GetBrowserContextToUse(
|
||||
+ content::BrowserContext* context) const override;
|
||||
+ bool ServiceIsCreatedWithBrowserContext() const override;
|
||||
+};
|
||||
+
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
diff --git a/components/user_scripts/browser/resources/browser_resources.grd b/components/user_scripts/browser/resources/browser_resources.grd
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -3881,7 +4102,7 @@ diff --git a/components/user_scripts/browser/user_script_loader.cc b/components/
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/browser/user_script_loader.cc
|
||||
@@ -0,0 +1,723 @@
|
||||
@@ -0,0 +1,726 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -3909,6 +4130,7 @@ new file mode 100755
|
||||
+
|
||||
+#include "base/memory/writable_shared_memory_region.h"
|
||||
+#include "base/strings/string_util.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
+#include "base/strings/strcat.h"
|
||||
+#include "base/files/file.h"
|
||||
+#include "base/files/file_path.h"
|
||||
@@ -3939,11 +4161,11 @@ new file mode 100755
|
||||
+#include "ui/android/window_android.h"
|
||||
+
|
||||
+#include "../common/user_scripts_features.h"
|
||||
+#include "../common/extension_messages.h"
|
||||
+#include "file_task_runner.h"
|
||||
+#include "user_script_prefs.h"
|
||||
+#include "user_script_pref_info.h"
|
||||
+#include "../common/host_id.h"
|
||||
+#include "renderer_startup_helper.h"
|
||||
+
|
||||
+using content::BrowserThread;
|
||||
+using content::BrowserContext;
|
||||
@@ -4391,8 +4613,10 @@ new file mode 100755
|
||||
+ if (!region_for_process.IsValid())
|
||||
+ return;
|
||||
+
|
||||
+ process->Send(new ExtensionMsg_UpdateUserScripts(
|
||||
+ std::move(region_for_process)));
|
||||
+ mojom::Renderer* renderer =
|
||||
+ RendererStartupHelperFactory::GetForBrowserContext(browser_context())
|
||||
+ ->GetRenderer(process);
|
||||
+ renderer->UpdateUserScripts(std::move(region_for_process));
|
||||
+}
|
||||
+
|
||||
+void LoadScriptsOnFileTaskRunner(
|
||||
@@ -5395,7 +5619,7 @@ diff --git a/components/user_scripts/common/BUILD.gn b/components/user_scripts/c
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/BUILD.gn
|
||||
@@ -0,0 +1,48 @@
|
||||
@@ -0,0 +1,58 @@
|
||||
+# Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+# Use of this source code is governed by a BSD-style license that can be
|
||||
+# found in the LICENSE file.
|
||||
@@ -5419,10 +5643,6 @@ new file mode 100755
|
||||
+ "user_script.h",
|
||||
+ "view_type.cc",
|
||||
+ "view_type.h",
|
||||
+ "extension_messages.cc",
|
||||
+ "extension_messages.h",
|
||||
+ "extension_message_generator.cc",
|
||||
+ "extension_message_generator.h",
|
||||
+ ]
|
||||
+
|
||||
+ configs += [
|
||||
@@ -5431,6 +5651,7 @@ new file mode 100755
|
||||
+ ]
|
||||
+
|
||||
+ public_deps = [
|
||||
+ ":mojom",
|
||||
+ "//content/public/common",
|
||||
+ "//ipc",
|
||||
+ "//skia",
|
||||
@@ -5444,6 +5665,19 @@ new file mode 100755
|
||||
+ "//crypto",
|
||||
+ ]
|
||||
+}
|
||||
+
|
||||
+mojom("mojom") {
|
||||
+ disable_variants = true
|
||||
+
|
||||
+ sources = [
|
||||
+ "mojom/renderer.mojom",
|
||||
+ ]
|
||||
+
|
||||
+ public_deps = [
|
||||
+ "//mojo/public/mojom/base",
|
||||
+ "//third_party/blink/public/mojom:mojom_core",
|
||||
+ ]
|
||||
+}
|
||||
diff --git a/components/user_scripts/common/constants.h b/components/user_scripts/common/constants.h
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
@@ -5550,176 +5784,6 @@ new file mode 100755
|
||||
+} // namespace extensions
|
||||
+
|
||||
+#endif // USERSCRIPTS_COMMON_ERROR_UTILS_H_
|
||||
diff --git a/components/user_scripts/common/extension_message_generator.cc b/components/user_scripts/common/extension_message_generator.cc
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/extension_message_generator.cc
|
||||
@@ -0,0 +1,29 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+// Get basic type definitions.
|
||||
+#define IPC_MESSAGE_IMPL
|
||||
+#include "components/user_scripts/common/extension_message_generator.h"
|
||||
+
|
||||
+// Generate constructors.
|
||||
+#include "ipc/struct_constructor_macros.h"
|
||||
+#include "components/user_scripts/common/extension_message_generator.h"
|
||||
+
|
||||
+// Generate param traits write methods.
|
||||
+#include "ipc/param_traits_write_macros.h"
|
||||
+namespace IPC {
|
||||
+#include "components/user_scripts/common/extension_message_generator.h"
|
||||
+} // namespace IPC
|
||||
+
|
||||
+// Generate param traits read methods.
|
||||
+#include "ipc/param_traits_read_macros.h"
|
||||
+namespace IPC {
|
||||
+#include "components/user_scripts/common/extension_message_generator.h"
|
||||
+} // namespace IPC
|
||||
+
|
||||
+// Generate param traits log methods.
|
||||
+#include "ipc/param_traits_log_macros.h"
|
||||
+namespace IPC {
|
||||
+#include "components/user_scripts/common/extension_message_generator.h"
|
||||
+} // namespace IPC
|
||||
diff --git a/components/user_scripts/common/extension_message_generator.h b/components/user_scripts/common/extension_message_generator.h
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/extension_message_generator.h
|
||||
@@ -0,0 +1,11 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+// Multiply-included file, hence no include guard.
|
||||
+
|
||||
+#undef USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
+#include "extension_messages.h"
|
||||
+#ifndef USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
+#error "Failed to include header extension_messages.h"
|
||||
+#endif
|
||||
diff --git a/components/user_scripts/common/extension_messages.cc b/components/user_scripts/common/extension_messages.cc
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/extension_messages.cc
|
||||
@@ -0,0 +1,40 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+#include "extension_messages.h"
|
||||
+
|
||||
+#include <stddef.h>
|
||||
+
|
||||
+#include <memory>
|
||||
+#include <utility>
|
||||
+
|
||||
+#include "content/public/common/common_param_traits.h"
|
||||
+
|
||||
+namespace IPC {
|
||||
+
|
||||
+void ParamTraits<HostID>::Write(base::Pickle* m, const param_type& p) {
|
||||
+ WriteParam(m, p.type());
|
||||
+ WriteParam(m, p.id());
|
||||
+}
|
||||
+
|
||||
+bool ParamTraits<HostID>::Read(const base::Pickle* m,
|
||||
+ base::PickleIterator* iter,
|
||||
+ param_type* r) {
|
||||
+ HostID::HostType type;
|
||||
+ std::string id;
|
||||
+ if (!ReadParam(m, iter, &type))
|
||||
+ return false;
|
||||
+ if (!ReadParam(m, iter, &id))
|
||||
+ return false;
|
||||
+ *r = HostID(type, id);
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+void ParamTraits<HostID>::Log(
|
||||
+ const param_type& p, std::string* l) {
|
||||
+ LogParam(p.type(), l);
|
||||
+ LogParam(p.id(), l);
|
||||
+}
|
||||
+
|
||||
+} // namespace IPC
|
||||
diff --git a/components/user_scripts/common/extension_messages.h b/components/user_scripts/common/extension_messages.h
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/extension_messages.h
|
||||
@@ -0,0 +1,70 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
+
|
||||
+// IPC messages for extensions.
|
||||
+
|
||||
+#ifndef USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
+#define USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+#include <map>
|
||||
+#include <memory>
|
||||
+#include <set>
|
||||
+#include <string>
|
||||
+#include <vector>
|
||||
+
|
||||
+#include "base/memory/read_only_shared_memory_region.h"
|
||||
+#include "base/values.h"
|
||||
+#include "content/public/common/common_param_traits.h"
|
||||
+#include "constants.h"
|
||||
+#include "host_id.h"
|
||||
+#include "ipc/ipc_message_start.h"
|
||||
+#include "ipc/ipc_message_macros.h"
|
||||
+#include "url/gurl.h"
|
||||
+#include "url/origin.h"
|
||||
+
|
||||
+#define IPC_MESSAGE_START ExtensionMsgStart
|
||||
+
|
||||
+IPC_ENUM_TRAITS_MAX_VALUE(HostID::HostType, HostID::HOST_TYPE_LAST)
|
||||
+
|
||||
+// Singly-included section for custom IPC traits.
|
||||
+#ifndef INTERNAL_USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
+#define INTERNAL_USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
+
|
||||
+namespace IPC {
|
||||
+
|
||||
+template <>
|
||||
+struct ParamTraits<HostID> {
|
||||
+ typedef HostID param_type;
|
||||
+ static void Write(base::Pickle* m, const param_type& p);
|
||||
+ static bool Read(const base::Pickle* m,
|
||||
+ base::PickleIterator* iter,
|
||||
+ param_type* r);
|
||||
+ static void Log(const param_type& p, std::string* l);
|
||||
+};
|
||||
+
|
||||
+
|
||||
+} // namespace IPC
|
||||
+
|
||||
+#endif // INTERNAL_USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
+
|
||||
+// Notification that the user scripts have been updated. It has one
|
||||
+// ReadOnlySharedMemoryRegion argument consisting of the pickled script data.
|
||||
+// This memory region is valid in the context of the renderer.
|
||||
+// If |owner| is not empty, then the shared memory handle refers to |owner|'s
|
||||
+// programmatically-defined scripts. Otherwise, the handle refers to all
|
||||
+// hosts' statically defined scripts. So far, only extension-hosts support
|
||||
+// statically defined scripts; WebUI-hosts don't.
|
||||
+// If |changed_hosts| is not empty, only the host in that set will
|
||||
+// be updated. Otherwise, all hosts that have scripts in the shared memory
|
||||
+// region will be updated. Note that the empty set => all hosts case is not
|
||||
+// supported for per-extension programmatically-defined script regions; in such
|
||||
+// regions, the owner is expected to list itself as the only changed host.
|
||||
+// If |whitelisted_only| is true, this process should only run whitelisted
|
||||
+// scripts and not all user scripts.
|
||||
+IPC_MESSAGE_CONTROL1(ExtensionMsg_UpdateUserScripts,
|
||||
+ base::ReadOnlySharedMemoryRegion)
|
||||
+
|
||||
+#endif // USERSCRIPTS_COMMON_EXTENSION_MESSAGES_H_
|
||||
diff --git a/components/user_scripts/common/host_id.cc b/components/user_scripts/common/host_id.cc
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
@@ -5796,6 +5860,23 @@ new file mode 100755
|
||||
+};
|
||||
+
|
||||
+#endif // USERSCRIPTS_COMMON_HOST_ID_H_
|
||||
diff --git a/components/user_scripts/common/mojom/renderer.mojom b/components/user_scripts/common/mojom/renderer.mojom
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/common/mojom/renderer.mojom
|
||||
@@ -0,0 +1,12 @@
|
||||
+module user_scripts.mojom;
|
||||
+
|
||||
+import "mojo/public/mojom/base/shared_memory.mojom";
|
||||
+
|
||||
+interface Renderer {
|
||||
+
|
||||
+ // Notifies the renderer that the user scripts have been updated. It has one
|
||||
+ // ReadOnlySharedMemoryRegion argument consisting of the pickled script data.
|
||||
+ // This memory region is valid in the context of the renderer.
|
||||
+ UpdateUserScripts(mojo_base.mojom.ReadOnlySharedMemoryRegion region);
|
||||
+
|
||||
+};
|
||||
diff --git a/components/user_scripts/common/script_constants.h b/components/user_scripts/common/script_constants.h
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
@@ -10039,7 +10120,7 @@ new file mode 100755
|
||||
+ : num_css(0u),
|
||||
+ num_js(0u),
|
||||
+ num_blocking_js(0u),
|
||||
+ routing_id_(render_frame->GetRoutingID()),
|
||||
+ frame_token_(render_frame->GetWebFrame()->GetLocalFrameToken()),
|
||||
+ run_location_(location),
|
||||
+ frame_url_(ScriptContext::GetDocumentLoaderURLForFrame(
|
||||
+ render_frame->GetWebFrame())) {}
|
||||
@@ -10055,7 +10136,7 @@ diff --git a/components/user_scripts/renderer/scripts_run_info.h b/components/us
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/renderer/scripts_run_info.h
|
||||
@@ -0,0 +1,69 @@
|
||||
@@ -0,0 +1,70 @@
|
||||
+// Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
+// Use of this source code is governed by a BSD-style license that can be
|
||||
+// found in the LICENSE file.
|
||||
@@ -10071,6 +10152,7 @@ new file mode 100755
|
||||
+
|
||||
+#include "base/timer/elapsed_timer.h"
|
||||
+#include "../common/user_script.h"
|
||||
+#include "third_party/blink/public/common/tokens/tokens.h"
|
||||
+
|
||||
+namespace content {
|
||||
+class RenderFrame;
|
||||
@@ -10110,10 +10192,10 @@ new file mode 100755
|
||||
+ const base::TimeDelta& elapsed);
|
||||
+
|
||||
+ private:
|
||||
+ // The routinig id to use to notify the browser of any injections. Since the
|
||||
+ // The frame token to use to notify the browser of any injections. Since the
|
||||
+ // frame may be deleted in injection, we don't hold on to a reference to it
|
||||
+ // directly.
|
||||
+ int routing_id_;
|
||||
+ blink::LocalFrameToken frame_token_;
|
||||
+
|
||||
+ // The run location at which injection is happening.
|
||||
+ UserScript::RunLocation run_location_;
|
||||
@@ -10827,13 +10909,12 @@ diff --git a/components/user_scripts/renderer/user_script_set_manager.cc b/compo
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/renderer/user_script_set_manager.cc
|
||||
@@ -0,0 +1,76 @@
|
||||
@@ -0,0 +1,65 @@
|
||||
+#include "user_script_set_manager.h"
|
||||
+
|
||||
+#include "base/logging.h"
|
||||
+#include "content/public/renderer/render_thread.h"
|
||||
+#include "../common/host_id.h"
|
||||
+#include "../common/extension_messages.h"
|
||||
+#include "../common/user_scripts_features.h"
|
||||
+#include "user_script_set.h"
|
||||
+
|
||||
@@ -10854,16 +10935,6 @@ new file mode 100755
|
||||
+ observers_.RemoveObserver(observer);
|
||||
+}
|
||||
+
|
||||
+bool UserScriptSetManager::OnControlMessageReceived(
|
||||
+ const IPC::Message& message) {
|
||||
+ bool handled = true;
|
||||
+ IPC_BEGIN_MESSAGE_MAP(UserScriptSetManager, message)
|
||||
+ IPC_MESSAGE_HANDLER(ExtensionMsg_UpdateUserScripts, OnUpdateUserScripts)
|
||||
+ IPC_MESSAGE_UNHANDLED(handled = false)
|
||||
+ IPC_END_MESSAGE_MAP()
|
||||
+ return handled;
|
||||
+}
|
||||
+
|
||||
+void UserScriptSetManager::GetAllInjections(
|
||||
+ std::vector<std::unique_ptr<ScriptInjection>>* injections,
|
||||
+ content::RenderFrame* render_frame,
|
||||
@@ -10908,7 +10979,7 @@ diff --git a/components/user_scripts/renderer/user_script_set_manager.h b/compon
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/renderer/user_script_set_manager.h
|
||||
@@ -0,0 +1,64 @@
|
||||
@@ -0,0 +1,56 @@
|
||||
+#ifndef USERSCRIPTS_RENDER_SET_MANAGER_H_
|
||||
+#define USERSCRIPTS_RENDER_SET_MANAGER_H_
|
||||
+
|
||||
@@ -10949,19 +11020,11 @@ new file mode 100755
|
||||
+ int tab_id,
|
||||
+ UserScript::RunLocation run_location);
|
||||
+
|
||||
+private:
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ // content::RenderThreadObserver implementation.
|
||||
+ bool OnControlMessageReceived(const IPC::Message& message) override;
|
||||
+#endif
|
||||
+
|
||||
+ base::ObserverList<Observer>::Unchecked observers_;
|
||||
+
|
||||
+ // Handle the UpdateUserScripts extension message.
|
||||
+ void OnUpdateUserScripts(base::ReadOnlySharedMemoryRegion shared_memory);
|
||||
+ //, const HostID& host_id,
|
||||
+ //const std::set<HostID>& changed_hosts,
|
||||
+ //bool whitelisted_only);
|
||||
+
|
||||
+private:
|
||||
+ base::ObserverList<Observer>::Unchecked observers_;
|
||||
+
|
||||
+ // Scripts statically defined in extension manifests.
|
||||
+ UserScriptSet static_scripts_;
|
||||
@@ -10977,7 +11040,7 @@ diff --git a/components/user_scripts/renderer/user_scripts_dispatcher.cc b/compo
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/renderer/user_scripts_dispatcher.cc
|
||||
@@ -0,0 +1,36 @@
|
||||
@@ -0,0 +1,64 @@
|
||||
+#include "user_scripts_dispatcher.h"
|
||||
+
|
||||
+#include <stddef.h>
|
||||
@@ -10993,11 +11056,12 @@ new file mode 100755
|
||||
+
|
||||
+// ex ChromeExtensionsDispatcherDelegate
|
||||
+UserScriptsDispatcher::UserScriptsDispatcher()
|
||||
+ : user_script_set_manager_observer_(this) {
|
||||
+ user_script_set_manager_.reset(new UserScriptSetManager());
|
||||
+ script_injection_manager_.reset(
|
||||
+ new ScriptInjectionManager(user_script_set_manager_.get()));
|
||||
+ user_script_set_manager_observer_.Observe(user_script_set_manager_.get());
|
||||
+ : receiver_(this),
|
||||
+ user_script_set_manager_observer_(this) {
|
||||
+ user_script_set_manager_.reset(new UserScriptSetManager());
|
||||
+ script_injection_manager_.reset(
|
||||
+ new ScriptInjectionManager(user_script_set_manager_.get()));
|
||||
+ user_script_set_manager_observer_.Observe(user_script_set_manager_.get());
|
||||
+}
|
||||
+
|
||||
+UserScriptsDispatcher::~UserScriptsDispatcher() {
|
||||
@@ -11006,6 +11070,11 @@ new file mode 100755
|
||||
+void UserScriptsDispatcher::OnRenderThreadStarted(content::RenderThread* thread) {
|
||||
+}
|
||||
+
|
||||
+void UserScriptsDispatcher::UpdateUserScripts(
|
||||
+ base::ReadOnlySharedMemoryRegion shared_memory) {
|
||||
+ user_script_set_manager_->OnUpdateUserScripts(std::move(shared_memory));
|
||||
+}
|
||||
+
|
||||
+void UserScriptsDispatcher::OnUserScriptsUpdated(const std::set<HostID>& changed_hosts) {
|
||||
+}
|
||||
+
|
||||
@@ -11013,13 +11082,34 @@ new file mode 100755
|
||||
+ script_injection_manager_->OnRenderFrameCreated(render_frame);
|
||||
+}
|
||||
+
|
||||
+void UserScriptsDispatcher::RegisterMojoInterfaces(
|
||||
+ blink::AssociatedInterfaceRegistry* associated_interfaces) {
|
||||
+ // This base::Unretained() is safe, because:
|
||||
+ // 1) the Dispatcher is a RenderThreadObserver and outlives the RenderThread.
|
||||
+ // 2) |asscoiated_interfaces| is owned by the RenderThread.
|
||||
+ // As well the Dispatcher is owned by the
|
||||
+ // ExtensionsRendererClient, which in turn is a leaky LazyInstance (and thus
|
||||
+ // never deleted).
|
||||
+ associated_interfaces->AddInterface<mojom::Renderer>(base::BindRepeating(
|
||||
+ &UserScriptsDispatcher::OnRendererAssociatedRequest, base::Unretained(this)));
|
||||
+}
|
||||
+
|
||||
+void UserScriptsDispatcher::UnregisterMojoInterfaces(
|
||||
+ blink::AssociatedInterfaceRegistry* associated_interfaces) {
|
||||
+ associated_interfaces->RemoveInterface(mojom::Renderer::Name_);
|
||||
+}
|
||||
+
|
||||
+void UserScriptsDispatcher::OnRendererAssociatedRequest(
|
||||
+ mojo::PendingAssociatedReceiver<mojom::Renderer> receiver) {
|
||||
+ receiver_.Bind(std::move(receiver));
|
||||
+}
|
||||
+
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/components/user_scripts/renderer/user_scripts_dispatcher.h b/components/user_scripts/renderer/user_scripts_dispatcher.h
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
+++ b/components/user_scripts/renderer/user_scripts_dispatcher.h
|
||||
@@ -0,0 +1,49 @@
|
||||
@@ -0,0 +1,67 @@
|
||||
+#ifndef USERSCRIPTS_RENDER_DISPATCHER_H_
|
||||
+#define USERSCRIPTS_RENDER_DISPATCHER_H_
|
||||
+
|
||||
@@ -11041,10 +11131,14 @@ new file mode 100755
|
||||
+#include "../common/host_id.h"
|
||||
+#include "user_script_set_manager.h"
|
||||
+#include "script_injection.h"
|
||||
+#include "components/user_scripts/common/mojom/renderer.mojom.h"
|
||||
+#include "mojo/public/cpp/bindings/associated_receiver.h"
|
||||
+#include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
|
||||
+
|
||||
+namespace user_scripts {
|
||||
+
|
||||
+class UserScriptsDispatcher : public content::RenderThreadObserver,
|
||||
+ public mojom::Renderer,
|
||||
+ public UserScriptSetManager::Observer {
|
||||
+
|
||||
+ public:
|
||||
@@ -11056,8 +11150,22 @@ new file mode 100755
|
||||
+ void OnRenderThreadStarted(content::RenderThread* thread);
|
||||
+ void OnUserScriptsUpdated(const std::set<HostID>& changed_hosts) override;
|
||||
+ void OnRenderFrameCreated(content::RenderFrame* render_frame);
|
||||
+ void UpdateUserScripts(base::ReadOnlySharedMemoryRegion shared_memory) override;
|
||||
+
|
||||
+ private:
|
||||
+ // RenderThreadObserver implementation:
|
||||
+ void RegisterMojoInterfaces(
|
||||
+ blink::AssociatedInterfaceRegistry* associated_interfaces) override;
|
||||
+ void UnregisterMojoInterfaces(
|
||||
+ blink::AssociatedInterfaceRegistry* associated_interfaces) override;
|
||||
+
|
||||
+ void OnRendererAssociatedRequest(
|
||||
+ mojo::PendingAssociatedReceiver<mojom::Renderer> receiver);
|
||||
+
|
||||
+ // Extensions renderer receiver. This is an associated receiver because
|
||||
+ // it is dependent on other messages sent on other associated channels.
|
||||
+ mojo::AssociatedReceiver<mojom::Renderer> receiver_;
|
||||
+
|
||||
+ std::unique_ptr<UserScriptSetManager> user_script_set_manager_;
|
||||
+
|
||||
+ std::unique_ptr<ScriptInjectionManager> script_injection_manager_;
|
||||
|
||||
@@ -28,14 +28,14 @@ suit Cromite logic.
|
||||
.../api/settings_private/prefs_util.cc | 14 +
|
||||
...hrome_browser_main_extra_parts_profiles.cc | 2 -
|
||||
chrome/browser/resources/settings/BUILD.gn | 2 +
|
||||
.../settings/adblock_page/adblock_page.html | 212 +
|
||||
.../settings/adblock_page/adblock_page.ts | 303 +
|
||||
.../settings/basic_page/basic_page.html | 4 +
|
||||
.../settings/basic_page/basic_page.ts | 1 +
|
||||
.../settings/adblock_page/adblock_page.html | 218 +
|
||||
.../settings/adblock_page/adblock_page.ts | 311 +
|
||||
.../resources/settings/page_visibility.ts | 1 +
|
||||
chrome/browser/resources/settings/route.ts | 4 +
|
||||
chrome/browser/resources/settings/route.ts | 5 +
|
||||
chrome/browser/resources/settings/router.ts | 1 +
|
||||
chrome/browser/resources/settings/settings.ts | 1 +
|
||||
.../settings/settings_main/settings_main.html | 7 +
|
||||
.../settings/settings_main/settings_main.ts | 1 +
|
||||
.../settings/settings_menu/settings_menu.html | 5 +
|
||||
chrome/browser/ui/tab_helpers.cc | 3 +-
|
||||
.../extensions/api/_permission_features.json | 14 -
|
||||
@@ -43,11 +43,11 @@ suit Cromite logic.
|
||||
.../adblock/android/adblock_controller_jni.cc | 79 +-
|
||||
.../components/adblock/AdblockController.java | 51 +-
|
||||
components/adblock/content/browser/BUILD.gn | 24 +-
|
||||
.../content/browser/adblock_blocking_page.cc | 182 +
|
||||
.../content/browser/adblock_blocking_page.cc | 183 +
|
||||
.../content/browser/adblock_blocking_page.h | 75 +
|
||||
.../browser/adblock_content_browser_client.h | 241 +-
|
||||
.../browser/adblock_internals_page_handler.cc | 9 +-
|
||||
.../browser/adblock_url_loader_factory.cc | 70 +-
|
||||
.../browser/adblock_url_loader_factory.cc | 71 +-
|
||||
.../browser/adblock_webcontents_observer.cc | 62 +-
|
||||
.../browser/adblock_webcontents_observer.h | 5 +-
|
||||
.../content/browser/element_hider_impl.cc | 13 +-
|
||||
@@ -99,7 +99,7 @@ suit Cromite logic.
|
||||
.../adblock/core/subscription/subscription.cc | 20 +
|
||||
.../adblock/core/subscription/subscription.h | 3 +
|
||||
.../subscription_collection_impl.cc | 1 +
|
||||
.../core/subscription/subscription_config.cc | 40 +-
|
||||
.../core/subscription/subscription_config.cc | 41 +-
|
||||
.../core/subscription/subscription_config.h | 6 +-
|
||||
.../subscription_downloader_impl.cc | 19 +-
|
||||
.../subscription_persistent_metadata.h | 1 +
|
||||
@@ -115,6 +115,7 @@ suit Cromite logic.
|
||||
components/blocked_content/popup_blocker.h | 3 +
|
||||
.../browser/bromite_content_settings/ads.inc | 3 +
|
||||
components/error_page_strings.grdp | 16 +
|
||||
.../resources/interstitial_enterprisewarn.css | 7 +
|
||||
.../websockets/websocket_connector_impl.cc | 6 +-
|
||||
.../public/browser/content_browser_client.cc | 4 +-
|
||||
.../public/browser/content_browser_client.h | 4 +-
|
||||
@@ -126,7 +127,7 @@ suit Cromite logic.
|
||||
.../renderer/core/exported/web_document.cc | 13 +-
|
||||
.../blink/renderer/core/html/html_element.cc | 8 +-
|
||||
.../definitions/adblock_private.d.ts | 14 +
|
||||
121 files changed, 9221 insertions(+), 618 deletions(-)
|
||||
122 files changed, 9249 insertions(+), 618 deletions(-)
|
||||
rename chrome/browser/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (59%)
|
||||
create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html
|
||||
create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts
|
||||
@@ -155,7 +156,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
||||
<!-- The main_preferences file will be reordered with the upcoming autofill
|
||||
options. Only the order changes. Each pref should exist here and in the layout
|
||||
for the previous order (main_preferences_legacy). -->
|
||||
@@ -98,11 +89,6 @@ for the previous order (main_preferences_legacy). -->
|
||||
@@ -100,11 +91,6 @@ for the previous order (main_preferences_legacy). -->
|
||||
android:key="autofill_options"
|
||||
android:order="16"
|
||||
android:title="@string/autofill_options_title" />
|
||||
@@ -167,7 +168,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="advanced_section"
|
||||
@@ -134,6 +120,11 @@ for the previous order (main_preferences_legacy). -->
|
||||
@@ -136,6 +122,11 @@ for the previous order (main_preferences_legacy). -->
|
||||
android:key="adblock"
|
||||
android:order="13"
|
||||
android:title="@string/prefs_adblock"/>
|
||||
@@ -1197,7 +1198,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
#include "components/adblock/content/browser/factories/content_security_policy_injector_factory.h"
|
||||
#include "components/adblock/content/browser/factories/element_hider_factory.h"
|
||||
#include "components/adblock/content/browser/factories/resource_classification_runner_factory.h"
|
||||
@@ -946,7 +945,6 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
@@ -947,7 +946,6 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
// Makes manual testing possible.
|
||||
FakeSmartCardDeviceServiceFactory::GetInstance();
|
||||
#endif
|
||||
@@ -1228,7 +1229,7 @@ diff --git a/chrome/browser/resources/settings/adblock_page/adblock_page.html b/
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/resources/settings/adblock_page/adblock_page.html
|
||||
@@ -0,0 +1,212 @@
|
||||
@@ -0,0 +1,218 @@
|
||||
+<!--
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -1245,8 +1246,7 @@ new file mode 100644
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+-->
|
||||
+
|
||||
+<style include="settings-shared cr-shared-style settings-shared action-link iron-flex">
|
||||
+<style include="settings-shared cr-shared-style">
|
||||
+ #languagesCollapse .list-item.selected {
|
||||
+ min-height: var(--settings-row-two-line-min-height);
|
||||
+ }
|
||||
@@ -1255,197 +1255,204 @@ new file mode 100644
|
||||
+ text-overflow: ellipsis;
|
||||
+ word-wrap: break-word;
|
||||
+ }
|
||||
+ settings-section[section="adblock"] {
|
||||
+ width: 680px;
|
||||
+ margin: auto;
|
||||
+ }
|
||||
+</style>
|
||||
+<settings-toggle-button class="hr" pref="{{prefs.adblock.enabled}}"
|
||||
+ on-change="onAdblockEnabled_"
|
||||
+ label="Enable Adblock Plus" data-qa="adblock-toogle"
|
||||
+ sub-label-icon="[[additionalMessageIcon]]"
|
||||
+ sub-label="[[additionalMessage]]">
|
||||
+</settings-toggle-button>
|
||||
+
|
||||
+<div hidden$="[[!prefs.adblock.enabled.value]]">
|
||||
+<settings-section page-title="Adblock" section="adblock">
|
||||
+ <settings-toggle-button class="hr" pref="{{prefs.adblock.enabled}}"
|
||||
+ on-change="onAdblockEnabled_"
|
||||
+ label="Enable Adblock Plus" data-qa="adblock-toogle"
|
||||
+ sub-label-icon="[[additionalMessageIcon]]"
|
||||
+ sub-label="[[additionalMessage]]">
|
||||
+ </settings-toggle-button>
|
||||
+
|
||||
+ <div class="cr-row first">
|
||||
+ <div class="flex cr-padded-text">
|
||||
+ <div>Enable anti-circumvention and snippets</div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Snippets are pieces of JavaScript code, injected by the Adblock Plus, that execute within the context of a website and combat advanced ads that circumvent ordinary blocking.
|
||||
+ The functionality is ONLY allowed for the list
|
||||
+ <a href="https://www.cromite.org/filters/abp-filters-anti-cv.txt">abp-filters-anti-cv.txt</a>
|
||||
+ which is activated by this setting.
|
||||
+ <br><a href="https://gitlab.com/eyeo/anti-cv/abp-filters-anti-cv">Open ABP anti-circumvention filter list repo</a>
|
||||
+ <br><a href="https://developers.eyeo.com/snippets/snippets-overview">Open ABP Snippets Overview</a>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ <div class="separator"></div>
|
||||
+ <cr-toggle id="enablePrivilegedFiltersToggle"
|
||||
+ checked="[[isEnablePrivilegedFiltersToggle_]]"
|
||||
+ on-change="onEnablePrivilegedFiltersToggle_">
|
||||
+ </cr-toggle>
|
||||
+ </div>
|
||||
+ <div hidden$="[[!prefs.adblock.enabled.value]]">
|
||||
+
|
||||
+ <div class="cr-row first">
|
||||
+ <div class="flex cr-padded-text">
|
||||
+ </div>
|
||||
+ <cr-button class="button" on-click="startUpdateCycle">
|
||||
+ Check for updates now
|
||||
+ </cr-button>
|
||||
+ </div>
|
||||
+
|
||||
+ <div style="border-top: 1px solid silver">
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{recommendedSubscriptions}}" data-qa="recommended-subscriptions-menu-item">
|
||||
+ <div>
|
||||
+ <div>Built in Subscriptions ([[countEnabled]] selected)</div>
|
||||
+ <div class="cr-row first">
|
||||
+ <div class="flex cr-padded-text">
|
||||
+ <div>Enable anti-circumvention and snippets</div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Add the languages in which you regularly browse websites in
|
||||
+ Snippets are pieces of JavaScript code, injected by the Adblock Plus, that execute within the context of a website and combat advanced ads that circumvent ordinary blocking.
|
||||
+ The functionality is ONLY allowed for the list
|
||||
+ <a href="https://www.cromite.org/filters/abp-filters-anti-cv.txt">abp-filters-anti-cv.txt</a>
|
||||
+ which is activated by this setting.
|
||||
+ <br><a href="https://gitlab.com/eyeo/anti-cv/abp-filters-anti-cv">Open ABP anti-circumvention filter list repo</a>
|
||||
+ <br><a href="https://developers.eyeo.com/snippets/snippets-overview">Open ABP Snippets Overview</a>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{recommendedSubscriptions}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="[[subscriptions]]">
|
||||
+ <div class="list-item">
|
||||
+ <cr-checkbox id="[[item.url]]" no-set-pref on-change="selectRecommendedSubscription"
|
||||
+ checked="{{item.enabled}}">
|
||||
+ </cr-checkbox>
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <div data-qa="recommended-subscription-list-item">
|
||||
+ [[item.title]]
|
||||
+ </div>
|
||||
+ <div hidden="[[item.enabled]]">
|
||||
+ <div><b>Download from:</b> [[item.url]]</div>
|
||||
+ </div>
|
||||
+ <div hidden="[[!item.enabled]]" style="margin-left: 20px; margin-top: 5px;">
|
||||
+ <div><b>URL:</b> [[item.url]]</div>
|
||||
+ <div><b>Version:</b> [[item.current_version]]</div>
|
||||
+ <div><b>Status:</b> [[item.installation_state]] ([[item.last_installation_time]])</div>
|
||||
+ <div><b>Download:</b> [[item.download_success_count]] <b>Errors:</b> [[item.download_error_count]]</div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ <div class="separator"></div>
|
||||
+ <cr-toggle id="enablePrivilegedFiltersToggle"
|
||||
+ checked="[[isEnablePrivilegedFiltersToggle_]]"
|
||||
+ on-change="onEnablePrivilegedFiltersToggle_">
|
||||
+ </cr-toggle>
|
||||
+ </div>
|
||||
+
|
||||
+ <div class="cr-row first">
|
||||
+ <div class="flex cr-padded-text">
|
||||
+ </div>
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+ <div>
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{allowedDomainsOpened}}" data-qa="allowed-domains-menu-item">
|
||||
+ <div>
|
||||
+ Allowed Domains ([[allowedDomainsCount]] added)
|
||||
+ </div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Support your favorite websites by adding them to this list. You might see ads on them.
|
||||
+ </div>
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{allowedDomainsOpened}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="{{allowedDomains}}">
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <div data-qa="allowed-domains-list-item">
|
||||
+ [[item]]
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ <cr-button class="button" id="[[item]]" on-click="removeAllowedDomain" data-qa="remove-allowed-domains-btn">
|
||||
+ Remove
|
||||
+ </cr-button>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <cr-input slot="inputs" value="{{allowedDomainInput}}" data-qa="allowed-domains-input">
|
||||
+ <cr-button slot="suffix" class="action-button" id="[[item]]" on-click="addAllowedDomain" data-qa="add-allowed-domains-btn">
|
||||
+ Add
|
||||
+ </cr-button>
|
||||
+ </cr-input>
|
||||
+ <cr-button class="button" on-click="startUpdateCycle">
|
||||
+ Check for updates now
|
||||
+ </cr-button>
|
||||
+ </div>
|
||||
+
|
||||
+ <div style="border-top: 1px solid silver">
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{recommendedSubscriptions}}" data-qa="recommended-subscriptions-menu-item">
|
||||
+ <div>
|
||||
+ <div>Built in Subscriptions ([[countEnabled]] selected)</div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Add the languages in which you regularly browse websites in
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+ <div>
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{customSubscriptionsOpened}}" data-qa="custom-subscriptions-menu-item">
|
||||
+ <div>
|
||||
+ Custom Subscriptions ([[customSubscriptions.length]] added)
|
||||
+ </div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Add custom filter urls
|
||||
+ </div>
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{customSubscriptionsOpened}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="{{customSubscriptions}}">
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text ad-fixed-width">
|
||||
+ <div data-qa="custom-subscriptions-list-item">
|
||||
+ [[item.url]]
|
||||
+ <div style="margin-left: 20px; margin-top: 5px;">
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{recommendedSubscriptions}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="[[subscriptions]]">
|
||||
+ <div class="list-item">
|
||||
+ <cr-checkbox id="[[item.url]]" no-set-pref on-change="selectRecommendedSubscription"
|
||||
+ checked="{{item.enabled}}">
|
||||
+ </cr-checkbox>
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <div data-qa="recommended-subscription-list-item">
|
||||
+ [[item.title]]
|
||||
+ </div>
|
||||
+ <div hidden="[[item.enabled]]">
|
||||
+ <div><b>Download from:</b> [[item.url]]</div>
|
||||
+ </div>
|
||||
+ <div hidden="[[!item.enabled]]" style="margin-left: 20px; margin-top: 5px;">
|
||||
+ <div><b>URL:</b> [[item.url]]</div>
|
||||
+ <div><b>Version:</b> [[item.current_version]]</div>
|
||||
+ <div><b>Status:</b> [[item.installation_state]] ([[item.last_installation_time]])</div>
|
||||
+ <div><b>Download:</b> [[item.download_success_count]] <b>Errors:</b> [[item.download_error_count]]</div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ <cr-button class="button" id="[[item.url]]"
|
||||
+ on-click="removeCustomSubscription" data-qa="remove-custom-subscriptions-btn">
|
||||
+ Remove
|
||||
+ </cr-button>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <cr-input slot="inputs" value="{{customSubscriptionInput}}" data-qa="custom-subscriptions-input">
|
||||
+ <cr-button slot="suffix" class="action-button" id="[[item]]" on-click="addCustomSubscription" data-qa="add-custom-subscription-btn">
|
||||
+ Add
|
||||
+ </cr-button>
|
||||
+ </cr-input>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+ <div>
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{customFiltersOpened}}" data-qa="custom-filters-menu-item">
|
||||
+ <div>
|
||||
+ Custom Filters ([[customFilters.length]] added)
|
||||
+ </div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Add custom filter commands
|
||||
+ </div>
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{customFiltersOpened}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="{{customFilters}}">
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text ad-fixed-width">
|
||||
+ <div data-qa="custom-filters-list-item">
|
||||
+ [[item]]
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+ <div>
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{allowedDomainsOpened}}" data-qa="allowed-domains-menu-item">
|
||||
+ <div>
|
||||
+ Allowed Domains ([[allowedDomainsCount]] added)
|
||||
+ </div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Support your favorite websites by adding them to this list. You might see ads on them.
|
||||
+ </div>
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{allowedDomainsOpened}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="{{allowedDomains}}">
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <div data-qa="allowed-domains-list-item">
|
||||
+ [[item]]
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ <cr-button class="button" id="[[item]]" on-click="removeCustomFilter" data-qa="remove-custom-filter-btn">
|
||||
+ Remove
|
||||
+ </cr-button>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <cr-input slot="inputs" value="{{customFilterInput}}" data-qa="custom-filter-input">
|
||||
+ <cr-button slot="suffix" class="action-button" id="[[item]]" on-click="addCustomFilter" data-qa="add-custom-filter-btn">
|
||||
+ Add
|
||||
+ <cr-button class="button" id="[[item]]" on-click="removeAllowedDomain" data-qa="remove-allowed-domains-btn">
|
||||
+ Remove
|
||||
+ </cr-button>
|
||||
+ </cr-input>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <cr-input slot="inputs" value="{{allowedDomainInput}}" data-qa="allowed-domains-input">
|
||||
+ <cr-button slot="suffix" class="action-button" id="[[item]]" on-click="addAllowedDomain" data-qa="add-allowed-domains-btn">
|
||||
+ Add
|
||||
+ </cr-button>
|
||||
+ </cr-input>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+ <div>
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{customSubscriptionsOpened}}" data-qa="custom-subscriptions-menu-item">
|
||||
+ <div>
|
||||
+ Custom Subscriptions ([[customSubscriptions.length]] added)
|
||||
+ </div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Add custom filter urls
|
||||
+ </div>
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{customSubscriptionsOpened}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="{{customSubscriptions}}">
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text ad-fixed-width">
|
||||
+ <div data-qa="custom-subscriptions-list-item">
|
||||
+ [[item.url]]
|
||||
+ <div style="margin-left: 20px; margin-top: 5px;">
|
||||
+ <div><b>Version:</b> [[item.current_version]]</div>
|
||||
+ <div><b>Status:</b> [[item.installation_state]] ([[item.last_installation_time]])</div>
|
||||
+ <div><b>Download:</b> [[item.download_success_count]] <b>Errors:</b> [[item.download_error_count]]</div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ <cr-button class="button" id="[[item.url]]"
|
||||
+ on-click="removeCustomSubscription" data-qa="remove-custom-subscriptions-btn">
|
||||
+ Remove
|
||||
+ </cr-button>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <cr-input slot="inputs" value="{{customSubscriptionInput}}" data-qa="custom-subscriptions-input">
|
||||
+ <cr-button slot="suffix" class="action-button" id="[[item]]" on-click="addCustomSubscription" data-qa="add-custom-subscription-btn">
|
||||
+ Add
|
||||
+ </cr-button>
|
||||
+ </cr-input>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+ <div>
|
||||
+ <cr-expand-button class="cr-row first" expanded="{{customFiltersOpened}}" data-qa="custom-filters-menu-item">
|
||||
+ <div>
|
||||
+ Custom Filters ([[customFilters.length]] added)
|
||||
+ </div>
|
||||
+ <div class="cr-secondary-text">
|
||||
+ Add custom filter commands
|
||||
+ </div>
|
||||
+ </cr-expand-button>
|
||||
+ <iron-collapse opened="{{customFiltersOpened}}">
|
||||
+ <div class="list-frame vertical-list">
|
||||
+ <template is="dom-repeat" items="{{customFilters}}">
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text ad-fixed-width">
|
||||
+ <div data-qa="custom-filters-list-item">
|
||||
+ [[item]]
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ <cr-button class="button" id="[[item]]" on-click="removeCustomFilter" data-qa="remove-custom-filter-btn">
|
||||
+ Remove
|
||||
+ </cr-button>
|
||||
+ </div>
|
||||
+ </template>
|
||||
+ <div class="list-item">
|
||||
+ <div class="start cr-padded-text">
|
||||
+ <cr-input slot="inputs" value="{{customFilterInput}}" data-qa="custom-filter-input">
|
||||
+ <cr-button slot="suffix" class="action-button" id="[[item]]" on-click="addCustomFilter" data-qa="add-custom-filter-btn">
|
||||
+ Add
|
||||
+ </cr-button>
|
||||
+ </cr-input>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </iron-collapse>
|
||||
+ </div>
|
||||
+
|
||||
+</div>
|
||||
+<cr-toast-manager></cr-toast-manager>
|
||||
+ </div>
|
||||
+ <cr-toast-manager></cr-toast-manager>
|
||||
+</settings-section>
|
||||
diff --git a/chrome/browser/resources/settings/adblock_page/adblock_page.ts b/chrome/browser/resources/settings/adblock_page/adblock_page.ts
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/resources/settings/adblock_page/adblock_page.ts
|
||||
@@ -0,0 +1,303 @@
|
||||
@@ -0,0 +1,311 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -1477,6 +1484,8 @@ new file mode 100644
|
||||
+import {CrCheckboxElement} from 'chrome://resources/cr_elements/cr_checkbox/cr_checkbox.js';
|
||||
+import {getTemplate} from './adblock_page.html.js';
|
||||
+import {getToastManager} from 'chrome://resources/cr_elements/cr_toast/cr_toast_manager.js';
|
||||
+import {getSearchManager} from '../search_settings.js';
|
||||
+import type {SettingsPlugin} from '../settings_main/settings_plugin.js';
|
||||
+
|
||||
+const SettingsAdblockPageElementBase =
|
||||
+ I18nMixin(PrefsMixin(BaseMixin((PolymerElement))));
|
||||
@@ -1492,8 +1501,8 @@ new file mode 100644
|
||||
+ last_installation_time: string;
|
||||
+}
|
||||
+
|
||||
+export class SettingsAdblockPageElement extends
|
||||
+ SettingsAdblockPageElementBase {
|
||||
+export class SettingsAdblockPageElement extends SettingsAdblockPageElementBase
|
||||
+ implements SettingsPlugin {
|
||||
+ static get is() {
|
||||
+ return 'settings-adblock-page';
|
||||
+ }
|
||||
@@ -1739,6 +1748,12 @@ new file mode 100644
|
||||
+ toastManager.duration = 5000;
|
||||
+ toastManager.show("Starting update...");
|
||||
+ }
|
||||
+
|
||||
+ // SettingsPlugin implementation
|
||||
+ async searchContents(query: string) {
|
||||
+ const searchRequest = await getSearchManager().search(query, this);
|
||||
+ return searchRequest.getSearchResult();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+declare global {
|
||||
@@ -1749,29 +1764,6 @@ new file mode 100644
|
||||
+
|
||||
+customElements.define(
|
||||
+ SettingsAdblockPageElement.is, SettingsAdblockPageElement);
|
||||
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html
|
||||
--- a/chrome/browser/resources/settings/basic_page/basic_page.html
|
||||
+++ b/chrome/browser/resources/settings/basic_page/basic_page.html
|
||||
@@ -8,4 +8,8 @@
|
||||
section="privacy">
|
||||
<settings-privacy-page prefs="{{prefs}}"></settings-privacy-page>
|
||||
</settings-section>
|
||||
+ <settings-section page-title="Adblock"
|
||||
+ section="adblock">
|
||||
+ <settings-adblock-page prefs="{{prefs}}"></settings-adblock-page>
|
||||
+ </settings-section>
|
||||
</div>
|
||||
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.ts b/chrome/browser/resources/settings/basic_page/basic_page.ts
|
||||
--- a/chrome/browser/resources/settings/basic_page/basic_page.ts
|
||||
+++ b/chrome/browser/resources/settings/basic_page/basic_page.ts
|
||||
@@ -16,6 +16,7 @@ import '../settings_page_styles.css.js';
|
||||
import {I18nMixin} from 'chrome://resources/cr_elements/i18n_mixin.js';
|
||||
import {PolymerElement} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
|
||||
|
||||
+import '../adblock_page/adblock_page.js';
|
||||
import {routes} from '../route.js';
|
||||
import type {Route} from '../router.js';
|
||||
import {RouteObserverMixin} from '../router.js';
|
||||
diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts
|
||||
--- a/chrome/browser/resources/settings/page_visibility.ts
|
||||
+++ b/chrome/browser/resources/settings/page_visibility.ts
|
||||
@@ -1786,12 +1778,13 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows
|
||||
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
|
||||
--- a/chrome/browser/resources/settings/route.ts
|
||||
+++ b/chrome/browser/resources/settings/route.ts
|
||||
@@ -246,6 +246,10 @@ function createRoutes(): SettingsRoutes {
|
||||
@@ -246,6 +246,11 @@ function createRoutes(): SettingsRoutes {
|
||||
r.FONTS.hasMigratedToPlugin = true;
|
||||
}
|
||||
|
||||
+ if (visibility.adblock !== false) {
|
||||
+ r.ADBLOCK = r.BASIC.createSection('/adblock', 'adblock');
|
||||
+ r.ADBLOCK.hasMigratedToPlugin = true;
|
||||
+ }
|
||||
+
|
||||
if (visibility.autofill !== false) {
|
||||
@@ -1819,6 +1812,34 @@ diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/reso
|
||||
export {PasswordCheckReferrer, PasswordManagerImpl, PasswordManagerPage, PasswordManagerProxy} from './autofill_page/password_manager_proxy.js';
|
||||
export {BaseMixin} from './base_mixin.js';
|
||||
export {SettingsBasicPageElement} from './basic_page/basic_page.js';
|
||||
diff --git a/chrome/browser/resources/settings/settings_main/settings_main.html b/chrome/browser/resources/settings/settings_main/settings_main.html
|
||||
--- a/chrome/browser/resources/settings/settings_main/settings_main.html
|
||||
+++ b/chrome/browser/resources/settings/settings_main/settings_main.html
|
||||
@@ -188,6 +188,13 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
+ <div slot="view" id="adblock">
|
||||
+ <template is="dom-if" if="[[renderPlugin_(
|
||||
+ routes_.ADBLOCK, lastRoute_, inSearchMode_)]]">
|
||||
+ <settings-adblock-page prefs="{{prefs}}"></settings-adblock-page>
|
||||
+ </template>
|
||||
+ </div>
|
||||
+
|
||||
<if expr="not is_chromeos">
|
||||
<template is="dom-if" if="[[showPage_(pageVisibility_.system)]]">
|
||||
<div slot="view" id="system">
|
||||
diff --git a/chrome/browser/resources/settings/settings_main/settings_main.ts b/chrome/browser/resources/settings/settings_main/settings_main.ts
|
||||
--- a/chrome/browser/resources/settings/settings_main/settings_main.ts
|
||||
+++ b/chrome/browser/resources/settings/settings_main/settings_main.ts
|
||||
@@ -20,6 +20,7 @@ import '../performance_page/performance_page_index.js';
|
||||
import '../privacy_page/privacy_page_index.js';
|
||||
import '../reset_page/reset_profile_banner.js';
|
||||
import '../search_page/search_page_index.js';
|
||||
+import '../adblock_page/adblock_page.js';
|
||||
// <if expr="not is_chromeos">
|
||||
import '../default_browser_page/default_browser_page.js';
|
||||
|
||||
diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html b/chrome/browser/resources/settings/settings_menu/settings_menu.html
|
||||
--- a/chrome/browser/resources/settings/settings_menu/settings_menu.html
|
||||
+++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html
|
||||
@@ -2215,7 +2236,7 @@ diff --git a/components/adblock/content/browser/adblock_blocking_page.cc b/compo
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/adblock/content/browser/adblock_blocking_page.cc
|
||||
@@ -0,0 +1,182 @@
|
||||
@@ -0,0 +1,183 @@
|
||||
+/*
|
||||
+ This file is part of Cromite.
|
||||
+
|
||||
@@ -2240,6 +2261,7 @@ new file mode 100644
|
||||
+#include "base/i18n/rtl.h"
|
||||
+#include "base/strings/escape.h"
|
||||
+#include "base/strings/strcat.h"
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
+#include "base/strings/utf_string_conversions.h"
|
||||
+#include "components/grit/components_resources.h"
|
||||
+#include "components/security_interstitials/content/security_interstitial_controller_client.h"
|
||||
@@ -3023,7 +3045,15 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
auto subscription_service = factory_->config_.subscription_service;
|
||||
factory_->config_.resource_classifier->CheckResponseFilterMatch(
|
||||
subscription_service->GetCurrentSnapshot(), request_url_,
|
||||
@@ -661,6 +699,10 @@ void AdblockURLLoaderFactory::InProgressRequest::Start(
|
||||
@@ -619,6 +657,7 @@ void AdblockURLLoaderFactory::InProgressRequest::Start(
|
||||
? net::RedirectInfo::FirstPartyURLPolicy::UPDATE_URL_ON_REDIRECT
|
||||
: net::RedirectInfo::FirstPartyURLPolicy::NEVER_CHANGE_URL,
|
||||
request.referrer_policy, request.referrer.spec(),
|
||||
+ request.request_initiator,
|
||||
kInternalRedirectStatusCode, rewrite.value(),
|
||||
absl::nullopt /* referrer_policy_header */,
|
||||
false /* insecure_scheme_was_upgraded */, false /* copy_fragment */,
|
||||
@@ -661,6 +700,10 @@ void AdblockURLLoaderFactory::InProgressRequest::Start(
|
||||
VLOG(1) << "[eyeo] Checking filter match for: " << request.url << " ("
|
||||
<< request.resource_type << ")";
|
||||
|
||||
@@ -3034,7 +3064,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/
|
||||
CheckFilterMatch(base::BindOnce(
|
||||
&InProgressRequest::OnRequestFilterMatchResult,
|
||||
weak_factory_.GetWeakPtr(), std::move(target_loader), options, request,
|
||||
@@ -729,10 +771,12 @@ void AdblockURLLoaderFactory::InProgressRequest::ApplyPostBlockingBehavior()
|
||||
@@ -729,10 +772,12 @@ void AdblockURLLoaderFactory::InProgressRequest::ApplyPostBlockingBehavior()
|
||||
// some cleanup to preserve good user experience.
|
||||
if (frame) {
|
||||
if (is_document_request_) {
|
||||
@@ -11818,7 +11848,15 @@ diff --git a/components/adblock/core/subscription/subscription_collection_impl.c
|
||||
diff --git a/components/adblock/core/subscription/subscription_config.cc b/components/adblock/core/subscription/subscription_config.cc
|
||||
--- a/components/adblock/core/subscription/subscription_config.cc
|
||||
+++ b/components/adblock/core/subscription/subscription_config.cc
|
||||
@@ -29,7 +29,7 @@ namespace {
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
#include <map>
|
||||
|
||||
+#include "base/strings/string_number_conversions.h"
|
||||
#include "base/strings/string_split.h"
|
||||
#include "base/strings/string_util.h"
|
||||
#include "components/adblock/core/common/adblock_constants.h"
|
||||
@@ -29,7 +30,7 @@ namespace {
|
||||
int g_port_for_testing = 0;
|
||||
|
||||
std::string GetHost() {
|
||||
@@ -11827,7 +11865,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
|
||||
if (!g_port_for_testing) {
|
||||
return url.spec();
|
||||
}
|
||||
@@ -108,7 +108,19 @@ const std::vector<KnownSubscriptionInfo>& config::GetKnownSubscriptions() {
|
||||
@@ -108,7 +109,19 @@ const std::vector<KnownSubscriptionInfo>& config::GetKnownSubscriptions() {
|
||||
"EasyList",
|
||||
{"en"},
|
||||
SubscriptionUiVisibility::Visible,
|
||||
@@ -11848,7 +11886,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
|
||||
SubscriptionPrivilegedFilterStatus::Forbidden},
|
||||
{GURL(GetHost() + "abpindo.txt"),
|
||||
"ABPindo",
|
||||
@@ -262,17 +274,23 @@ const std::vector<KnownSubscriptionInfo>& config::GetKnownSubscriptions() {
|
||||
@@ -262,17 +275,23 @@ const std::vector<KnownSubscriptionInfo>& config::GetKnownSubscriptions() {
|
||||
SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch,
|
||||
SubscriptionPrivilegedFilterStatus::Forbidden},
|
||||
{AcceptableAdsUrl(),
|
||||
@@ -11876,7 +11914,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
|
||||
{GURL(GetHost() + "i_dont_care_about_cookies.txt"),
|
||||
"I don't care about cookies",
|
||||
{},
|
||||
@@ -303,13 +321,13 @@ const std::vector<KnownSubscriptionInfo>& config::GetKnownSubscriptions() {
|
||||
@@ -303,13 +322,13 @@ const std::vector<KnownSubscriptionInfo>& config::GetKnownSubscriptions() {
|
||||
{},
|
||||
SubscriptionUiVisibility::Invisible,
|
||||
SubscriptionFirstRunBehavior::Ignore,
|
||||
@@ -11892,7 +11930,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
|
||||
|
||||
// You can customize subscriptions available on first run and in settings
|
||||
// here. Items are displayed in settings in order declared here. See
|
||||
@@ -346,7 +364,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) {
|
||||
@@ -346,7 +365,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) {
|
||||
for (const auto& cur : GetKnownSubscriptions()) {
|
||||
if (cur.url == url) {
|
||||
return cur.privileged_status ==
|
||||
@@ -11901,7 +11939,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,9 +374,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) {
|
||||
@@ -356,9 +375,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) {
|
||||
const std::vector<PreloadedSubscriptionInfo>&
|
||||
config::GetPreloadedSubscriptionConfiguration() {
|
||||
static const std::vector<PreloadedSubscriptionInfo> preloaded_subscriptions =
|
||||
@@ -12376,6 +12414,20 @@ diff --git a/components/error_page_strings.grdp b/components/error_page_strings.
|
||||
<message name="IDS_ERRORPAGES_SUMMARY_BLOCKED_BY_SECURITY" desc="Summary in the error page when the request has been blocked because of some security configuration of the site.">
|
||||
This content is blocked. Contact the site owner to fix the issue.
|
||||
</message>
|
||||
diff --git a/components/security_interstitials/core/browser/resources/interstitial_enterprisewarn.css b/components/security_interstitials/core/browser/resources/interstitial_enterprisewarn.css
|
||||
--- a/components/security_interstitials/core/browser/resources/interstitial_enterprisewarn.css
|
||||
+++ b/components/security_interstitials/core/browser/resources/interstitial_enterprisewarn.css
|
||||
@@ -14,3 +14,10 @@
|
||||
filter: invert(1);
|
||||
}
|
||||
}
|
||||
+
|
||||
+.enterprise-warn .interstitial-wrapper .nav-wrapper button {
|
||||
+ float: none !important;
|
||||
+ width: 100%;
|
||||
+ margin-bottom: 20px;
|
||||
+ padding: 14px;
|
||||
+}
|
||||
diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/browser/websockets/websocket_connector_impl.cc
|
||||
--- a/content/browser/websockets/websocket_connector_impl.cc
|
||||
+++ b/content/browser/websockets/websocket_connector_impl.cc
|
||||
|
||||
@@ -8,13 +8,60 @@ required by the chromium build tools.
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
components/metrics/generate_expired_histograms_array.gni | 7 +++++--
|
||||
components/variations/field_trial_config/BUILD.gn | 4 +++-
|
||||
tools/grit/grit_rule.gni | 4 +++-
|
||||
tools/json_to_struct/json_to_struct.gni | 4 +++-
|
||||
tools/metrics/generate_allowlist_from_histograms_file.gni | 5 +++--
|
||||
5 files changed, 17 insertions(+), 7 deletions(-)
|
||||
build/config/android/internal_rules.gni | 5 ++++-
|
||||
build/config/python.gni | 7 ++++++-
|
||||
.../metrics/generate_expired_histograms_array.gni | 7 +++++--
|
||||
components/variations/field_trial_config/BUILD.gn | 4 +++-
|
||||
tools/grit/grit_rule.gni | 4 +++-
|
||||
tools/json_schema_compiler/json_schema_api.gni | 12 +++++++++---
|
||||
tools/json_to_struct/json_to_struct.gni | 4 +++-
|
||||
.../generate_allowlist_from_histograms_file.gni | 5 +++--
|
||||
8 files changed, 36 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
|
||||
--- a/build/config/android/internal_rules.gni
|
||||
+++ b/build/config/android/internal_rules.gni
|
||||
@@ -547,12 +547,15 @@ template("write_build_config") {
|
||||
} else {
|
||||
action_with_pydeps(target_name) {
|
||||
forward_variables_from(invoker, [ "testonly" ])
|
||||
- script = "//build/android/gyp/write_build_config.py"
|
||||
+ script = "//build/gn_run_binary.py"
|
||||
+ original_script = "//build/android/gyp/write_build_config.py"
|
||||
depfile = "$target_gen_dir/$target_name.d"
|
||||
inputs = _inputs
|
||||
outputs = _outputs
|
||||
|
||||
args = [
|
||||
+ rebase_path("//third_party/depot_tools/vpython3"),
|
||||
+ rebase_path(original_script),
|
||||
"--output",
|
||||
rebase_path(invoker.build_config, root_build_dir),
|
||||
"--depfile",
|
||||
diff --git a/build/config/python.gni b/build/config/python.gni
|
||||
--- a/build/config/python.gni
|
||||
+++ b/build/config/python.gni
|
||||
@@ -91,6 +91,7 @@ template("action_with_pydeps") {
|
||||
[
|
||||
"testonly",
|
||||
"visibility",
|
||||
+ "original_script"
|
||||
])
|
||||
forward_variables_from(invoker,
|
||||
"*",
|
||||
@@ -102,7 +103,11 @@ template("action_with_pydeps") {
|
||||
# Read and filter out comments.
|
||||
# Happens every time the template is instantiated, but benchmarking shows no
|
||||
# perceivable impact on overall 'gn gen' speed.
|
||||
- _pydeps_file = invoker.script + "deps"
|
||||
+ if (!defined(original_script)) {
|
||||
+ _pydeps_file = invoker.script + "deps"
|
||||
+ } else {
|
||||
+ _pydeps_file = invoker.original_script + "deps"
|
||||
+ }
|
||||
|
||||
_pydeps_lines =
|
||||
read_file(_pydeps_file, "list lines") # https://crbug.com/1102058
|
||||
diff --git a/components/metrics/generate_expired_histograms_array.gni b/components/metrics/generate_expired_histograms_array.gni
|
||||
--- a/components/metrics/generate_expired_histograms_array.gni
|
||||
+++ b/components/metrics/generate_expired_histograms_array.gni
|
||||
@@ -81,6 +128,61 @@ diff --git a/tools/grit/grit_rule.gni b/tools/grit/grit_rule.gni
|
||||
"-i",
|
||||
_rebased_source_path,
|
||||
"build",
|
||||
diff --git a/tools/json_schema_compiler/json_schema_api.gni b/tools/json_schema_compiler/json_schema_api.gni
|
||||
--- a/tools/json_schema_compiler/json_schema_api.gni
|
||||
+++ b/tools/json_schema_compiler/json_schema_api.gni
|
||||
@@ -112,13 +112,15 @@ template("generated_json_strings") {
|
||||
|
||||
action(bundle_generator_schema_name) {
|
||||
visibility = [ ":$root_target_name" ]
|
||||
- script = compiler_script
|
||||
+ script = "//build/gn_run_binary.py"
|
||||
inputs = compiler_sources + invoker.sources
|
||||
outputs = [
|
||||
"$target_gen_dir/generated_schemas.cc",
|
||||
"$target_gen_dir/generated_schemas.h",
|
||||
]
|
||||
args = [
|
||||
+ rebase_path("//third_party/depot_tools/vpython3"),
|
||||
+ rebase_path(compiler_script),
|
||||
"--root=" + rebase_path(root_folder, root_build_dir),
|
||||
"--destdir=$destdir",
|
||||
"--namespace=$root_namespace",
|
||||
@@ -227,13 +229,15 @@ template("function_registration") {
|
||||
|
||||
action(bundle_generator_registration_name) {
|
||||
visibility = [ ":$root_target_name" ]
|
||||
- script = compiler_script
|
||||
+ script = "//build/gn_run_binary.py"
|
||||
inputs = compiler_sources + invoker.sources
|
||||
outputs = [
|
||||
"$gen_child_dir/generated_api_registration.cc",
|
||||
"$gen_child_dir/generated_api_registration.h",
|
||||
]
|
||||
args = [
|
||||
+ rebase_path("//third_party/depot_tools/vpython3"),
|
||||
+ rebase_path(compiler_script),
|
||||
"--root=" + rebase_path(root_folder, root_build_dir),
|
||||
"--destdir=$destdir",
|
||||
"--namespace=$root_namespace",
|
||||
@@ -321,7 +325,7 @@ template("generated_types") {
|
||||
|
||||
action_foreach(schema_generator_name) {
|
||||
visibility = [ ":$root_target_name" ]
|
||||
- script = compiler_script
|
||||
+ script = "//build/gn_run_binary.py"
|
||||
sources = invoker.sources
|
||||
inputs = compiler_sources
|
||||
outputs = [
|
||||
@@ -329,6 +333,8 @@ template("generated_types") {
|
||||
"$target_gen_dir/{{source_name_part}}.h",
|
||||
]
|
||||
args = [
|
||||
+ rebase_path("//third_party/depot_tools/vpython3"),
|
||||
+ rebase_path(compiler_script),
|
||||
"{{source}}",
|
||||
"--root=" + rebase_path(root_folder, root_build_dir),
|
||||
"--destdir=$destdir",
|
||||
diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni
|
||||
--- a/tools/json_to_struct/json_to_struct.gni
|
||||
+++ b/tools/json_to_struct/json_to_struct.gni
|
||||
|
||||
@@ -26,6 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../TabListEmptyCoordinator.java | 17 +-
|
||||
.../tab_management/TabSwitcherPaneBase.java | 9 +
|
||||
.../browser/feed/FeedSurfaceCoordinator.java | 4 +
|
||||
.../android/java/res/xml/main_preferences.xml | 3 +-
|
||||
.../ChromeAccessibilitySettingsDelegate.java | 70 ++++++++
|
||||
.../HeadlessBrowserControlsStateProvider.java | 5 +
|
||||
.../compositor/CompositorViewHolder.java | 7 +
|
||||
@@ -98,7 +99,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/viz/common/features.cc | 2 +
|
||||
.../render_widget_host_view_android.cc | 3 +
|
||||
.../Move-navigation-bar-to-bottom.inc | 17 ++
|
||||
85 files changed, 1059 insertions(+), 77 deletions(-)
|
||||
86 files changed, 1061 insertions(+), 78 deletions(-)
|
||||
create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
|
||||
|
||||
@@ -445,7 +446,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||
+ public void writeToParcel(Parcel dest, int flags) {
|
||||
+ dest.writeParcelable(superState, flags);
|
||||
+ dest.writeInt(mTopPadding);
|
||||
+ }
|
||||
@@ -717,6 +718,19 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
|
||||
mNtpHeader.setLayoutParams(layoutParams);
|
||||
}
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -48,7 +48,8 @@ for the previous order (main_preferences_legacy). -->
|
||||
android:fragment="org.chromium.chrome.browser.toolbar.settings.AddressBarSettingsFragment"
|
||||
android:key="address_bar"
|
||||
android:order="7"
|
||||
- android:title="@string/address_bar_settings"/>
|
||||
+ android:title="@string/address_bar_settings"
|
||||
+ app:isPreferenceVisible="false"/>
|
||||
<Preference
|
||||
android:fragment="org.chromium.chrome.browser.privacy.settings.PrivacySettings"
|
||||
android:key="privacy"
|
||||
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
|
||||
@@ -1477,7 +1491,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java
|
||||
@@ -203,6 +203,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
@@ -208,6 +208,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl
|
||||
if (fragment instanceof INeedSnackbarManager) {
|
||||
((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier);
|
||||
}
|
||||
@@ -2612,7 +2626,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
|
||||
@@ -1442,6 +1442,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
@@ -1563,6 +1563,12 @@ Your Google account may have other forms of browsing history like searches and a
|
||||
<message name="IDS_FORCE_TABLET_UI_TITLE" desc="Title of the preference that allows the user to update force tablet UI settings.">
|
||||
Force Tablet Mode
|
||||
</message>
|
||||
|
||||
@@ -10,12 +10,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../renderer_host/render_frame_host_impl.cc | 2 +
|
||||
.../Partition-blobs-by-top-frame-URL.inc | 1 +
|
||||
storage/browser/blob/blob_url_store_impl.cc | 57 +++++++++++++++++--
|
||||
storage/browser/blob/blob_url_store_impl.h | 11 +++-
|
||||
storage/browser/blob/blob_url_registry.cc | 31 +++++++++-
|
||||
storage/browser/blob/blob_url_registry.h | 11 +++-
|
||||
storage/browser/blob/blob_url_store_impl.cc | 62 +++++++++++++++++--
|
||||
storage/browser/blob/blob_url_store_impl.h | 15 ++++-
|
||||
storage/browser/blob/features.cc | 1 +
|
||||
.../public/mojom/blob/blob_url_store.mojom | 8 ++-
|
||||
.../core/fileapi/public_url_manager.cc | 21 ++++++-
|
||||
7 files changed, 92 insertions(+), 9 deletions(-)
|
||||
.../public/mojom/blob/blob_url_store.mojom | 13 +++-
|
||||
.../core/fileapi/public_url_manager.cc | 33 +++++++++-
|
||||
9 files changed, 154 insertions(+), 15 deletions(-)
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc
|
||||
|
||||
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
|
||||
@@ -36,10 +38,106 @@ new file mode 100644
|
||||
+++ b/cromite_flags/third_party/blink/common/features_cc/Partition-blobs-by-top-frame-URL.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kEnforceNoopenerOnBlobURLNavigation);
|
||||
diff --git a/storage/browser/blob/blob_url_registry.cc b/storage/browser/blob/blob_url_registry.cc
|
||||
--- a/storage/browser/blob/blob_url_registry.cc
|
||||
+++ b/storage/browser/blob/blob_url_registry.cc
|
||||
@@ -93,13 +93,18 @@ bool BlobUrlRegistry::AddUrlMapping(
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob,
|
||||
const blink::StorageKey& storage_key,
|
||||
const url::Origin& renderer_origin,
|
||||
- int render_process_host_id) {
|
||||
+ int render_process_host_id,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site) {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
DCHECK(!BlobUrlUtils::UrlHasFragment(blob_url));
|
||||
if (IsUrlMapped(blob_url, storage_key) ==
|
||||
BlobUrlRegistry::MappingStatus::kIsMapped) {
|
||||
return false;
|
||||
}
|
||||
+ url_to_unsafe_agent_cluster_id_[blob_url] = unsafe_agent_cluster_id;
|
||||
+ if (unsafe_top_level_site)
|
||||
+ url_to_unsafe_top_level_site_[blob_url] = *unsafe_top_level_site;
|
||||
BlobUrlData data;
|
||||
data.blob = std::move(blob);
|
||||
data.storage_key = storage_key;
|
||||
@@ -121,6 +126,8 @@ bool BlobUrlRegistry::RemoveUrlMapping(const GURL& blob_url,
|
||||
return false;
|
||||
}
|
||||
url_to_data_.erase(data_it);
|
||||
+ url_to_unsafe_agent_cluster_id_.erase(blob_url);
|
||||
+ url_to_unsafe_top_level_site_.erase(blob_url);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -184,6 +191,28 @@ BlobUrlRegistry::MappingStatus BlobUrlRegistry::IsUrlMapped(
|
||||
return BlobUrlRegistry::MappingStatus::kNotMappedOther;
|
||||
}
|
||||
|
||||
+std::optional<base::UnguessableToken> BlobUrlRegistry::GetUnsafeAgentClusterID(
|
||||
+ const GURL& blob_url) const {
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ auto it = url_to_unsafe_agent_cluster_id_.find(blob_url);
|
||||
+ if (it != url_to_unsafe_agent_cluster_id_.end())
|
||||
+ return it->second;
|
||||
+ if (fallback_)
|
||||
+ return fallback_->GetUnsafeAgentClusterID(blob_url);
|
||||
+ return std::nullopt;
|
||||
+}
|
||||
+
|
||||
+std::optional<net::SchemefulSite> BlobUrlRegistry::GetUnsafeTopLevelSite(
|
||||
+ const GURL& blob_url) const {
|
||||
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
+ auto it = url_to_unsafe_top_level_site_.find(blob_url);
|
||||
+ if (it != url_to_unsafe_top_level_site_.end())
|
||||
+ return it->second;
|
||||
+ if (fallback_)
|
||||
+ return fallback_->GetUnsafeTopLevelSite(blob_url);
|
||||
+ return std::nullopt;
|
||||
+}
|
||||
+
|
||||
mojo::PendingRemote<blink::mojom::Blob> BlobUrlRegistry::GetBlobFromUrl(
|
||||
const GURL& url) {
|
||||
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
|
||||
diff --git a/storage/browser/blob/blob_url_registry.h b/storage/browser/blob/blob_url_registry.h
|
||||
--- a/storage/browser/blob/blob_url_registry.h
|
||||
+++ b/storage/browser/blob/blob_url_registry.h
|
||||
@@ -97,7 +97,9 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobUrlRegistry {
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob,
|
||||
const blink::StorageKey& storage_key,
|
||||
const url::Origin& renderer_origin,
|
||||
- int render_process_host_id);
|
||||
+ int render_process_host_id,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site);
|
||||
|
||||
// Removes the given URL mapping associated with `storage_key`. Returns false
|
||||
// if the URL wasn't mapped.
|
||||
@@ -108,6 +110,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobUrlRegistry {
|
||||
MappingStatus IsUrlMapped(const GURL& blob_url,
|
||||
const blink::StorageKey& storage_key) const;
|
||||
|
||||
+ std::optional<base::UnguessableToken> GetUnsafeAgentClusterID(
|
||||
+ const GURL& blob_url) const;
|
||||
+ std::optional<net::SchemefulSite> GetUnsafeTopLevelSite(
|
||||
+ const GURL& blob_url) const;
|
||||
+
|
||||
// Returns the blob from the given url. Returns a null remote if the mapping
|
||||
// doesn't exist.
|
||||
mojo::PendingRemote<blink::mojom::Blob> GetBlobFromUrl(const GURL& url);
|
||||
@@ -163,6 +170,8 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobUrlRegistry {
|
||||
};
|
||||
|
||||
std::map<GURL, BlobUrlData> url_to_data_;
|
||||
+ std::map<GURL, base::UnguessableToken> url_to_unsafe_agent_cluster_id_;
|
||||
+ std::map<GURL, net::SchemefulSite> url_to_unsafe_top_level_site_;
|
||||
std::map<base::UnguessableToken,
|
||||
std::pair<GURL, mojo::PendingRemote<blink::mojom::Blob>>>
|
||||
token_to_url_and_blob_;
|
||||
diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc
|
||||
--- a/storage/browser/blob/blob_url_store_impl.cc
|
||||
+++ b/storage/browser/blob/blob_url_store_impl.cc
|
||||
@@ -113,6 +113,30 @@ BlobURLStoreImpl::~BlobURLStoreImpl() {
|
||||
@@ -113,9 +113,35 @@ BlobURLStoreImpl::~BlobURLStoreImpl() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +168,12 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
void BlobURLStoreImpl::Register(
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob,
|
||||
const GURL& url,
|
||||
@@ -123,6 +147,13 @@ void BlobURLStoreImpl::Register(
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
RegisterCallback callback) {
|
||||
// TODO(crbug.com/40061399): Generate blob URLs here, rather than
|
||||
// validating the URLs the renderer process generated.
|
||||
@@ -123,10 +149,18 @@ void BlobURLStoreImpl::Register(
|
||||
std::move(callback).Run();
|
||||
return;
|
||||
}
|
||||
@@ -84,7 +187,13 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
|
||||
if (registry_)
|
||||
registry_->AddUrlMapping(url, std::move(blob), storage_key_,
|
||||
@@ -148,7 +179,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
|
||||
- renderer_origin_, render_process_host_id_);
|
||||
+ renderer_origin_, render_process_host_id_,
|
||||
+ unsafe_agent_cluster_id, unsafe_top_level_site);
|
||||
urls_.insert(url);
|
||||
std::move(callback).Run();
|
||||
}
|
||||
@@ -148,7 +182,7 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
|
||||
features::kBlockCrossPartitionBlobUrlFetching) &&
|
||||
!partitioning_disabled_by_policy_;
|
||||
|
||||
@@ -93,7 +202,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
has_storage_access_handle &&
|
||||
mapping_status ==
|
||||
BlobUrlRegistry::MappingStatus::
|
||||
@@ -158,7 +189,9 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
|
||||
@@ -158,7 +192,9 @@ bool BlobURLStoreImpl::ShouldPartitionBlobUrlAccess(
|
||||
|
||||
void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
@@ -104,7 +213,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
if (!registry_) {
|
||||
BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
|
||||
return;
|
||||
@@ -181,6 +214,7 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
@@ -181,6 +217,7 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
if (IsBlobUrlAccessCrossPartitionSameOrigin(mapping_status)) {
|
||||
if (ShouldPartitionBlobUrlAccess(has_storage_access_handle,
|
||||
mapping_status)) {
|
||||
@@ -112,21 +221,21 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
partitioning_blob_url_closure_.Run(
|
||||
url, blink::mojom::PartitioningBlobURLInfo::
|
||||
kBlockedCrossPartitionFetching);
|
||||
@@ -192,6 +226,13 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
@@ -192,6 +229,13 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
}
|
||||
}
|
||||
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory blocked by IsSamePartition" << url;
|
||||
+ BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver));
|
||||
+ std::move(callback).Run(std::nullopt, std::nullopt);
|
||||
+ //std::move(callback).Run(std::nullopt, std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
+ // LOG(INFO) << "---ResolveAsURLLoaderFactory allowed " << url;
|
||||
BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url,
|
||||
std::move(receiver));
|
||||
}
|
||||
@@ -199,7 +240,9 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
@@ -199,7 +243,9 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory(
|
||||
void BlobURLStoreImpl::ResolveAsBlobURLToken(
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<blink::mojom::BlobURLToken> token,
|
||||
@@ -137,7 +246,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
// This function is known to be heap allocation heavy and performance
|
||||
// critical. Extra memory safety checks can introduce regression
|
||||
// (https://crbug.com/414710225) and these are disabled here.
|
||||
@@ -216,6 +259,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
|
||||
@@ -216,6 +262,7 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
|
||||
registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url),
|
||||
storage_key_);
|
||||
if (IsBlobUrlAccessCrossPartitionSameOrigin(mapping_status)) {
|
||||
@@ -145,13 +254,13 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
if (ShouldPartitionBlobUrlAccess(has_storage_access_handle,
|
||||
mapping_status)) {
|
||||
partitioning_blob_url_closure_.Run(
|
||||
@@ -226,12 +270,17 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
|
||||
@@ -226,12 +273,17 @@ void BlobURLStoreImpl::ResolveAsBlobURLToken(
|
||||
partitioning_blob_url_closure_.Run(url, std::nullopt);
|
||||
}
|
||||
}
|
||||
+ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) {
|
||||
+ // LOG(INFO) << "---ResolveAsBlobURLToken blocked by IsSamePartition" << url;
|
||||
+ std::move(callback).Run(std::nullopt);
|
||||
+ //std::move(callback).Run(std::nullopt);
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
@@ -167,12 +276,20 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/
|
||||
diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/blob_url_store_impl.h
|
||||
--- a/storage/browser/blob/blob_url_store_impl.h
|
||||
+++ b/storage/browser/blob/blob_url_store_impl.h
|
||||
@@ -60,11 +60,15 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
void ResolveAsURLLoaderFactory(
|
||||
@@ -55,16 +55,22 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
void Register(
|
||||
mojo::PendingRemote<blink::mojom::Blob> blob,
|
||||
const GURL& url,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver)
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site,
|
||||
RegisterCallback callback) override;
|
||||
void Revoke(const GURL& url) override;
|
||||
void ResolveAsURLLoaderFactory(
|
||||
const GURL& url,
|
||||
- mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver)
|
||||
+ mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
|
||||
+ const base::UnguessableToken& unsafe_agent_cluster_id,
|
||||
+ const std::optional<net::SchemefulSite>& unsafe_top_level_site)
|
||||
override;
|
||||
void ResolveAsBlobURLToken(
|
||||
const GURL& url,
|
||||
@@ -184,7 +301,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b
|
||||
|
||||
private:
|
||||
// Checks if the passed in url is a valid blob url for this blob url store.
|
||||
@@ -77,6 +81,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
@@ -77,6 +83,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl
|
||||
bool has_storage_access_handle,
|
||||
BlobUrlRegistry::MappingStatus mapping_status);
|
||||
|
||||
@@ -210,7 +327,26 @@ diff --git a/storage/browser/blob/features.cc b/storage/browser/blob/features.cc
|
||||
diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_party/blink/public/mojom/blob/blob_url_store.mojom
|
||||
--- a/third_party/blink/public/mojom/blob/blob_url_store.mojom
|
||||
+++ b/third_party/blink/public/mojom/blob/blob_url_store.mojom
|
||||
@@ -33,7 +33,9 @@ interface BlobURLStore {
|
||||
@@ -4,6 +4,7 @@
|
||||
module blink.mojom;
|
||||
|
||||
import "mojo/public/mojom/base/unguessable_token.mojom";
|
||||
+import "services/network/public/mojom/schemeful_site.mojom";
|
||||
import "services/network/public/mojom/url_loader_factory.mojom";
|
||||
import "third_party/blink/public/mojom/blob/blob.mojom";
|
||||
import "url/mojom/url.mojom";
|
||||
@@ -19,7 +20,9 @@ interface BlobURLStore {
|
||||
// new blob: URL rather than letting the caller in the renderer provide one.
|
||||
[Sync] Register(
|
||||
pending_remote<blink.mojom.Blob> blob,
|
||||
- url.mojom.Url url) => ();
|
||||
+ url.mojom.Url url,
|
||||
+ mojo_base.mojom.UnguessableToken unsafe_agent_cluster_id,
|
||||
+ network.mojom.SchemefulSite? unsafe_top_level_site) => ();
|
||||
|
||||
// Revokes a public Blob URL.
|
||||
Revoke(url.mojom.Url url);
|
||||
@@ -33,7 +36,9 @@ interface BlobURLStore {
|
||||
// both the blob URL and all other references to the blob have been dropped.
|
||||
ResolveAsURLLoaderFactory(
|
||||
url.mojom.Url url,
|
||||
@@ -221,7 +357,7 @@ diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_pa
|
||||
|
||||
// Resolves a public Blob URL into a BlobURLToken. The BlobURLToken can be
|
||||
// used by the browser process to securely look up the blob a URL used to
|
||||
@@ -41,7 +43,9 @@ interface BlobURLStore {
|
||||
@@ -41,7 +46,9 @@ interface BlobURLStore {
|
||||
// As long as the token is alive, the resolved blob will also be kept alive.
|
||||
ResolveAsBlobURLToken(url.mojom.Url url,
|
||||
pending_receiver<BlobURLToken> token,
|
||||
@@ -257,7 +393,26 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi
|
||||
} // namespace
|
||||
|
||||
PublicURLManager::PublicURLManager(ExecutionContext* execution_context)
|
||||
@@ -208,7 +223,8 @@ void PublicURLManager::Resolve(
|
||||
@@ -158,7 +173,17 @@ String PublicURLManager::RegisterURL(URLRegistrable* registrable) {
|
||||
mojo::PendingReceiver<mojom::blink::Blob> blob_receiver =
|
||||
blob_remote.InitWithNewPipeAndPassReceiver();
|
||||
|
||||
- GetBlobURLStore().Register(std::move(blob_remote), url);
|
||||
+ std::optional<BlinkSchemefulSite> top_level_site;
|
||||
+ if (GetExecutionContext()->IsWindow()) {
|
||||
+ auto* window = To<LocalDOMWindow>(GetExecutionContext());
|
||||
+ if (window->top() && window->top()->GetFrame()) {
|
||||
+ top_level_site = BlinkSchemefulSite(window->top()
|
||||
+ ->GetFrame()
|
||||
+ ->GetSecurityContext()
|
||||
+ ->GetSecurityOrigin());
|
||||
+ }
|
||||
+ }
|
||||
+ GetBlobURLStore().Register(std::move(blob_remote), url, GetExecutionContext()->GetAgentClusterID(), top_level_site);
|
||||
|
||||
mojo_urls_.insert(url_string);
|
||||
registrable->CloneMojoBlob(std::move(blob_receiver));
|
||||
@@ -208,7 +233,8 @@ void PublicURLManager::Resolve(
|
||||
|
||||
DCHECK(url.ProtocolIs("blob"));
|
||||
|
||||
@@ -267,7 +422,7 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi
|
||||
}
|
||||
|
||||
void PublicURLManager::ResolveAsBlobURLToken(
|
||||
@@ -221,7 +237,8 @@ void PublicURLManager::ResolveAsBlobURLToken(
|
||||
@@ -221,7 +247,8 @@ void PublicURLManager::ResolveAsBlobURLToken(
|
||||
DCHECK(url.ProtocolIs("blob"));
|
||||
|
||||
GetBlobURLStore().ResolveAsBlobURLToken(url, std::move(token_receiver),
|
||||
|
||||
@@ -211,7 +211,7 @@ new file mode 100644
|
||||
+ WebsiteSettingsInfo::REQUESTING_ORIGIN_ONLY_SCOPE,
|
||||
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+ PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+
|
||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||
+ ->GetMutable(ContentSettingsType::INSECURE_PRIVATE_NETWORK)
|
||||
|
||||
@@ -90,7 +90,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/omnibox/common/BUILD.gn | 1 -
|
||||
.../components/omnibox/OmniboxFeatures.java | 8 -
|
||||
components/signin/public/android/BUILD.gn | 3 -
|
||||
components/webauthn/android/BUILD.gn | 14 -
|
||||
components/webauthn/android/BUILD.gn | 18 +-
|
||||
.../webauthn/AuthenticatorImpl.java | 89 +-
|
||||
.../webauthn/ConditionalUiState.java | 15 +
|
||||
.../webauthn/GmsCoreGetCredentialsHelper.java | 78 +-
|
||||
@@ -112,7 +112,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../gms/ChromiumPlayServicesAvailability.java | 10 +-
|
||||
third_party/androidx/customizations.gni | 14 +-
|
||||
third_party/cardboard/BUILD.gn | 4 -
|
||||
89 files changed, 124 insertions(+), 2595 deletions(-)
|
||||
88 files changed, 128 insertions(+), 2595 deletions(-)
|
||||
create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
|
||||
|
||||
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
|
||||
@@ -194,7 +194,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//third_party/android_deps:protobuf_lite_runtime_java",
|
||||
"//third_party/android_media:android_media_java",
|
||||
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
|
||||
@@ -1960,7 +1961,6 @@ if (_is_default_toolchain) {
|
||||
@@ -1968,7 +1969,6 @@ if (_is_default_toolchain) {
|
||||
]
|
||||
deps = [
|
||||
":chrome_java",
|
||||
@@ -202,7 +202,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//base:base_java",
|
||||
"//base:base_java_test_support",
|
||||
"//build/android:build_java",
|
||||
@@ -2072,7 +2072,6 @@ if (_is_default_toolchain) {
|
||||
@@ -2080,7 +2080,6 @@ if (_is_default_toolchain) {
|
||||
# is in a DFM.
|
||||
android_library("base_module_java") {
|
||||
sources = [
|
||||
@@ -210,7 +210,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"java/src/org/chromium/chrome/app/TrichromeZygotePreload.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
|
||||
"java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
|
||||
@@ -2090,8 +2089,6 @@ if (_is_default_toolchain) {
|
||||
@@ -2098,8 +2097,6 @@ if (_is_default_toolchain) {
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
|
||||
@@ -219,7 +219,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
|
||||
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
|
||||
@@ -2118,15 +2115,10 @@ if (_is_default_toolchain) {
|
||||
@@ -2126,15 +2123,10 @@ if (_is_default_toolchain) {
|
||||
"java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
|
||||
"java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/provider/PageContentProvider.java",
|
||||
@@ -235,7 +235,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//base:base_java",
|
||||
"//chrome/browser/autofill/android:third_party_provider_java",
|
||||
"//chrome/browser/download/android:file_provider_java",
|
||||
@@ -2141,7 +2133,6 @@ if (_is_default_toolchain) {
|
||||
@@ -2149,7 +2141,6 @@ if (_is_default_toolchain) {
|
||||
"//components/media_router/browser/android:cast_options_provider_java",
|
||||
"//components/minidump_uploader:minidump_uploader_java",
|
||||
"//components/module_installer/android:module_installer_java",
|
||||
@@ -243,7 +243,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/androidx:androidx_collection_collection_java",
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
@@ -2161,7 +2152,6 @@ if (_is_default_toolchain) {
|
||||
@@ -2169,7 +2160,6 @@ if (_is_default_toolchain) {
|
||||
# Deps to pull services into base module.
|
||||
# TODO(crbug.com/40148088): Consider moving these to the chrome module to
|
||||
# reduce base dex size.
|
||||
@@ -262,7 +262,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
||||
"java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java",
|
||||
"java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java",
|
||||
@@ -949,10 +948,6 @@ chrome_java_sources = [
|
||||
@@ -950,10 +949,6 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
|
||||
"java/src/org/chromium/chrome/browser/segmentation_platform/TabGroupingActionProvider.java",
|
||||
"java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java",
|
||||
@@ -591,7 +591,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p
|
||||
"account_storage_notice:java",
|
||||
"//base:base_java",
|
||||
"//build/android:build_java",
|
||||
@@ -228,7 +226,6 @@ android_library("utils_java") {
|
||||
@@ -251,7 +249,6 @@ android_library("utils_java") {
|
||||
|
||||
deps = [
|
||||
":java_resources",
|
||||
@@ -599,7 +599,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p
|
||||
"//base:base_java",
|
||||
"//base:resetters_java",
|
||||
"//base:tasks_java",
|
||||
@@ -309,8 +306,6 @@ robolectric_binary("password_manager_junit_tests") {
|
||||
@@ -332,8 +329,6 @@ robolectric_binary("password_manager_junit_tests") {
|
||||
":test_support_java",
|
||||
":unified_password_manager_proto_java",
|
||||
":utils_java",
|
||||
@@ -3274,9 +3274,14 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
|
||||
"java/src/org/chromium/components/webauthn/FidoIntentSender.java",
|
||||
"java/src/org/chromium/components/webauthn/GetCredentialResponseCallback.java",
|
||||
"java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java",
|
||||
@@ -71,10 +65,6 @@ android_library("java") {
|
||||
@@ -70,11 +64,11 @@ android_library("java") {
|
||||
"java/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecorator.java",
|
||||
]
|
||||
|
||||
+ sources += [
|
||||
+ "java/src/org/chromium/components/webauthn/ConditionalUiState.java",
|
||||
+ ]
|
||||
+
|
||||
deps = [
|
||||
- "$google_play_services_package:google_play_services_base_java",
|
||||
- "$google_play_services_package:google_play_services_basement_java",
|
||||
@@ -3285,7 +3290,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
|
||||
"//base:base_java",
|
||||
"//base:service_loader_java",
|
||||
"//base/version_info/android:version_constants_java",
|
||||
@@ -145,8 +135,6 @@ android_library("test_support_java") {
|
||||
@@ -145,8 +139,6 @@ android_library("test_support_java") {
|
||||
source_set("android") {
|
||||
sources = [
|
||||
"cred_man_support.h",
|
||||
@@ -3294,7 +3299,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
|
||||
"internal_authenticator_android.cc",
|
||||
"internal_authenticator_android.h",
|
||||
"webauthn_browser_bridge.cc",
|
||||
@@ -218,8 +206,6 @@ robolectric_library("junit") {
|
||||
@@ -218,8 +210,6 @@ robolectric_library("junit") {
|
||||
deps = [
|
||||
":java",
|
||||
":test_support_java",
|
||||
|
||||
@@ -6,10 +6,15 @@ This reverts commit 4d0e4483c5f77c66a8b6193e8a3bec5d0624d6ad.
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/android/chrome_java_resources.gni | 1 +
|
||||
chrome/android/chrome_java_resources.gni | 8 +
|
||||
chrome/android/chrome_java_sources.gni | 2 +
|
||||
.../ic_most_visited_placeholder.png | Bin 0 -> 1273 bytes
|
||||
.../ic_most_visited_placeholder.png | Bin 0 -> 718 bytes
|
||||
.../ic_most_visited_placeholder.png | Bin 0 -> 1519 bytes
|
||||
.../ic_most_visited_placeholder.png | Bin 0 -> 2335 bytes
|
||||
.../ic_most_visited_placeholder.png | Bin 0 -> 4034 bytes
|
||||
.../java/res/layout/mv_tiles_container.xml | 39 +++
|
||||
.../java/res/layout/mv_tiles_layout.xml | 16 +-
|
||||
.../java/res/layout/mv_tiles_layout.xml | 11 +-
|
||||
.../java/res/layout/new_tab_page_layout.xml | 7 +
|
||||
.../new_tab_page_tile_grid_placeholder.xml | 43 +++
|
||||
.../android/java/res/layout/ntp_shortcuts.xml | 65 ++++
|
||||
@@ -28,20 +33,26 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../SuggestionsNavigationDelegate.java | 27 +-
|
||||
.../tile/MostVisitedTilesCoordinator.java | 6 +-
|
||||
.../tile/MostVisitedTilesGridLayout.java | 287 ++++++++++++++++++
|
||||
.../tile/MostVisitedTilesMediator.java | 7 +-
|
||||
.../tile/TileDragDelegateImpl.java | 6 +-
|
||||
.../tile/MostVisitedTilesMediator.java | 11 +-
|
||||
.../tile/TileDragDelegateImpl.java | 16 +-
|
||||
.../suggestions/tile/TileRenderer.java | 8 +-
|
||||
.../suggestions/tile/TilesLinearLayout.java | 2 +-
|
||||
.../engagement/important_sites_util.cc | 2 +-
|
||||
.../flags/android/chrome_feature_list.cc | 1 +
|
||||
.../browser/flags/ChromeFeatureList.java | 3 +-
|
||||
.../client_util/HomeModulesRankingHelper.java | 1 +
|
||||
.../strings/android_chrome_strings.grd | 6 +
|
||||
.../history/core/browser/top_sites_impl.h | 2 +-
|
||||
components/ntp_tiles/custom_links_store.cc | 2 -
|
||||
.../Restore-Simplified-NTP-launch.inc | 12 +
|
||||
.../Restore-Simplified-NTP-launch.inc | 5 +
|
||||
.../Restore-Simplified-NTP-launch.inc | 1 +
|
||||
35 files changed, 615 insertions(+), 53 deletions(-)
|
||||
41 files changed, 631 insertions(+), 59 deletions(-)
|
||||
create mode 100644 chrome/android/java/res/drawable-hdpi/ic_most_visited_placeholder.png
|
||||
create mode 100644 chrome/android/java/res/drawable-mdpi/ic_most_visited_placeholder.png
|
||||
create mode 100644 chrome/android/java/res/drawable-xhdpi/ic_most_visited_placeholder.png
|
||||
create mode 100644 chrome/android/java/res/drawable-xxhdpi/ic_most_visited_placeholder.png
|
||||
create mode 100644 chrome/android/java/res/drawable-xxxhdpi/ic_most_visited_placeholder.png
|
||||
create mode 100644 chrome/android/java/res/layout/mv_tiles_container.xml
|
||||
create mode 100644 chrome/android/java/res/layout/new_tab_page_tile_grid_placeholder.xml
|
||||
create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml
|
||||
@@ -54,8 +65,31 @@ 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
|
||||
@@ -535,6 +535,7 @@ chrome_java_resources = [
|
||||
@@ -50,6 +50,11 @@ chrome_java_resources = [
|
||||
"java/res/drawable-hdpi/ic_exit_to_app_white_24dp.png",
|
||||
"java/res/drawable-hdpi/ic_file_download_white_24dp.png",
|
||||
"java/res/drawable-hdpi/ic_link_grey600_36dp.png",
|
||||
+ "java/res/drawable-hdpi/ic_most_visited_placeholder.png",
|
||||
+ "java/res/drawable-mdpi/ic_most_visited_placeholder.png",
|
||||
+ "java/res/drawable-xhdpi/ic_most_visited_placeholder.png",
|
||||
+ "java/res/drawable-xxhdpi/ic_most_visited_placeholder.png",
|
||||
+ "java/res/drawable-xxxhdpi/ic_most_visited_placeholder.png",
|
||||
"java/res/drawable-hdpi/ic_phone_googblue_36dp.png",
|
||||
"java/res/drawable-hdpi/ic_photo_camera.png",
|
||||
"java/res/drawable-hdpi/ic_place_googblue_36dp.png",
|
||||
@@ -524,6 +529,7 @@ chrome_java_resources = [
|
||||
"java/res/layout/manage_sync_settings_bottom_bar.xml",
|
||||
"java/res/layout/material_tooltip.xml",
|
||||
"java/res/layout/multiline_spinner_item.xml",
|
||||
+ "java/res/layout/mv_tiles_container.xml",
|
||||
"java/res/layout/mv_tiles_layout.xml",
|
||||
"java/res/layout/navigation_bubble.xml",
|
||||
"java/res/layout/navigation_sheet.xml",
|
||||
@@ -533,8 +539,10 @@ chrome_java_resources = [
|
||||
"java/res/layout/new_custom_tab_toolbar.xml",
|
||||
"java/res/layout/new_tab_page_incognito.xml",
|
||||
"java/res/layout/new_tab_page_layout.xml",
|
||||
+ "java/res/layout/new_tab_page_tile_grid_placeholder.xml",
|
||||
"java/res/layout/one_line_list_item.xml",
|
||||
"java/res/layout/open_full_chrome_history_header.xml",
|
||||
+ "java/res/layout/ntp_shortcuts.xml",
|
||||
@@ -73,7 +107,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
||||
"java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java",
|
||||
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java",
|
||||
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java",
|
||||
@@ -1012,6 +1013,7 @@ chrome_java_sources = [
|
||||
@@ -1013,6 +1014,7 @@ chrome_java_sources = [
|
||||
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java",
|
||||
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java",
|
||||
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java",
|
||||
@@ -81,6 +115,237 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
||||
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java",
|
||||
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesProperties.java",
|
||||
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesViewBinder.java",
|
||||
diff --git a/chrome/android/java/res/drawable-hdpi/ic_most_visited_placeholder.png b/chrome/android/java/res/drawable-hdpi/ic_most_visited_placeholder.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..3d71af1433341fc4552e9b6c7a96cd6911bcffeb
|
||||
GIT binary patch
|
||||
literal 1273
|
||||
zcmV<V1P1$wP)<h;3K|Lk000e1NJLTq00341003491ONa4|6i$m000EQNkl<ZcmdQ{
|
||||
zu}d6j6n{1;G&vA*xL_kBYjr8sV~bnPTvEtE$P$}07DwP#u(a_01S=uh*$8(<K(bv_
|
||||
z4y^`nci!*a3VX17kb@vLDU8@8qD1t#%f4@R5;Ixdoo{9xf3MjY_WS0?H*em1zaK>b
|
||||
zNh8lQSdvZDup|3&{2}(SgPLq&iD!_PG+j2_TbRT$cICf|1G`wpq<f3H4;kQTR9jN}
|
||||
z_d~QIUFB&Rpl$*8WDO^02)xFM%%M;om9&%E=%XI$+30gpk}i*;Aahv3>ofm9ku}_-
|
||||
zxFHYVe)7<FQp8kgnA$*T7*kTjyH8fT@*utp&7$Hz=v3BuVzrk##A+{3$U08_eJXC2
|
||||
zqDHA7i+&y+$~+H}1$a>A<*=FGSS<BZbl`F9nXPevS?4B2fIq&*EDpR~_jsJ5K=B$c
|
||||
z_%H3b-H8TI7|)w~^Fr|&*#Sec<q>@)V-y2q46i)GTNtA7;7qgN<C$}vVuEuW&zg;c
|
||||
zGZYTx`|?(|I6{G91`0S*!f(s>!+limmFgReP!}NI;*CD<J&$*Ms)nj;^KI%9__k~t
|
||||
zx*eS^XS@WcIVtKQoD^y%8QRWW40)f`wxQZxy58yTVyLaUDqAL3trEZ@8BFfVRvUGf
|
||||
z7rY8ELYD-L;K;Oz3u}PaPkyFL1PUID@$<)(J<|f{l405e_Rbk`uxJ{qeYdjjYNiQe
|
||||
zvE{t#4S{2n0LYjbAY074sF=x$5&|=kq4Gt+V&+vIq=bM6y?Hk%evG!lEF}n-HCipG
|
||||
zSXHp73P=o`n@0S6ri5ipZ$71j0Z;W1*UnfLIB6)>PV*Hn@bco2qE+6Ws?RX+@z%8R
|
||||
zU#AX%dRxX(g)AWJ+RLV?31bBDL=wsJgfX3bd(F5jtG(gK@?-a#&jU}C=wEvE2zAuM
|
||||
zCc|p4adA9L50kpFZWfAch5~T!ek?j});pV!kfN@iG>=@?i>aiN#gwjJHW#W3O2hGx
|
||||
zRevkP8TS#YsD^oerD3BT)U`IIC6OIj`JNy0!%}~ctN~~APMt!)GfdNjyl%2$OV*4*
|
||||
zoQs9*imuHQ|DvqtVj+8gN;Bl|@ML99_nsjv=_Z9Z$OZ%T@G=KWB%6&N<<TUQEsyHz
|
||||
zP4aAov@Kb_!#U2CZ;;~muQ+!$@FYB0uL#r#JB=Ss%9d<v*neP7O4sg?>^FXF^d*_>
|
||||
zMxVa@eUjsbETf(zlcgS&vd349>=jCbEA@dzQ@UE9d_&9D9YfZ>bVbt?T7Yv#DHyW$
|
||||
zO~G%sNha&J+lU4k?OJZu&GHX_{^Z_uvyDJrhnU|CS^GgInh{aKKL#d&s7FM9_)aoe
|
||||
zZ}^T-*0|rPaQR0L@e);yUxQ>VWQ~Pjw5YQ-g3*)W2_@@G@z_j`VDMu@*23h7**>yY
|
||||
z3ch`0Va!>OwJ_%5wLF9I!rJmou9+<J0W<mk_U)JkKp+UBs0lEFC9rTd&Jqa)>jEv5
|
||||
z(=64o$^7JO%)IY9(_gD*dg=iJyOvO=9qbN89nG){UpOKTdmI5{Cos^1qEZlqX2AO%
|
||||
z@jh!f8Jpnb5J|09UiU7N%E!KZMok3j_4NN-68c{eRYV_+DxxP*1tC|#gg}_YiXE@b
|
||||
jEHDo)+h=gu{t7N%^^-?s9Fd&I00000NkvXXu0mjfGY4n(
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-mdpi/ic_most_visited_placeholder.png b/chrome/android/java/res/drawable-mdpi/ic_most_visited_placeholder.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..f057df12978c838312853d20a9a700a9a2aaf821
|
||||
GIT binary patch
|
||||
literal 718
|
||||
zcmV;<0x|uGP)<h;3K|Lk000e1NJLTq0021v0021%1ONa4CJ{>x0007&Nkl<ZcwWVs
|
||||
zKWidE7{=cSiJg^=U0RFuUY|M<yYoB5R<yDZ@dMZ--{5Qv1hz>bh}q}4Ua?PMqbOvt
|
||||
z+xQ;r1%`0(oLzUa&s5s{nA!K=JR|m+l>9pS9C5}a-VoxAOU^h#->*+flCDr@4-4w2
|
||||
z_5S%c7VM#%2JH+r@B^~tBbt5{<#Ex=i+K5Q5oN!MCLg)|024JiljOn;=Mikp!L-uJ
|
||||
z$w75;(+US%N8mYblHo4#6ya8A3@^k=!wWRHqEhjM%ecU6Y^dC!>lGxHyaKx1QL({w
|
||||
z9N-;7Dt;x6!%2xlDni^@;qK4zK;<57IZ0@9PsPLi`ElSg6~W7`oUE5y1XMg9fkr!g
|
||||
z^{*rq`B!|U;^DvFkcz+n(||@hy*nJGA@{aNYJa@kBgFOBdAOnaElFK|i;B$`c^W1D
|
||||
zP@E`AnWukCn{t<WKQMW^qkb-fXPi^f6=y=1%DE}{f*O@8uiy^p6}Y0JW{|(BXoypx
|
||||
zK?O|%R<4hA3+ka|+hw?>el&6Rs2qs6MT&4hWiJ9?L7i4?kYE2}i=9@eSVRF#<+hV^
|
||||
zkL={QrA|uX*Qp$dBuCm~IimV?L7$4I9nyf3A<?9w|Cd}%f{Y(Vel<E#&ZsCmN1Ak;
|
||||
z376Dy(Gq!3cF1v&%B3Kndin1`dU+}WLCALzw@4%I5q|$J-!k}?u_E>`Do(_jymX8-
|
||||
zc^SL<n0!oJeN2sYkK`lO|7kjj<M1(^#Pmz&$d?~fEK-;X%(9*e%<SV5X=a}cCcF&h
|
||||
z*bJui4DKY^-Mq~G67BSXXq)?GmbYm4UO~o=NcO&uakox2D*Tplx2!!p4qbbA?wv~a
|
||||
zer(3Bb8>Hebii95S$OMNz91xhCkYTDNcK+h2fYj#{p3=OZvX%Q07*qoM6N<$f{avI
|
||||
AQ2+n{
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xhdpi/ic_most_visited_placeholder.png b/chrome/android/java/res/drawable-xhdpi/ic_most_visited_placeholder.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..12e3d77ef68c092977975d7ac8e777304250b20d
|
||||
GIT binary patch
|
||||
literal 1519
|
||||
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
|
||||
VYD9idM-c!3002ovPDHLkV1iD~y2t<k
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xxhdpi/ic_most_visited_placeholder.png b/chrome/android/java/res/drawable-xxhdpi/ic_most_visited_placeholder.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..3ce230c9b20b858ed2da0117abc52f15b9b80d5a
|
||||
GIT binary patch
|
||||
literal 2335
|
||||
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
|
||||
APXGV_
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/chrome/android/java/res/drawable-xxxhdpi/ic_most_visited_placeholder.png b/chrome/android/java/res/drawable-xxxhdpi/ic_most_visited_placeholder.png
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..14b205657b6b7a46bc64c09f3277daffd5998ef9
|
||||
GIT binary patch
|
||||
literal 4034
|
||||
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
|
||||
|
||||
literal 0
|
||||
HcmV?d00001
|
||||
|
||||
diff --git a/chrome/android/java/res/layout/mv_tiles_container.xml b/chrome/android/java/res/layout/mv_tiles_container.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -128,28 +393,22 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android/java/res/layout/mv_tiles_layout.xml
|
||||
--- a/chrome/android/java/res/layout/mv_tiles_layout.xml
|
||||
+++ b/chrome/android/java/res/layout/mv_tiles_layout.xml
|
||||
@@ -5,17 +5,9 @@ Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
@@ -13,9 +13,10 @@ found in the LICENSE file.
|
||||
android:paddingBottom="@dimen/mvt_container_bottom_padding"
|
||||
android:scrollbars="none">
|
||||
|
||||
-<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+<org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout
|
||||
+ xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ android:id="@+id/mv_tiles_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
- android:background="@drawable/home_surface_ui_background"
|
||||
- android:paddingTop="@dimen/mvt_container_top_padding"
|
||||
- android:paddingBottom="@dimen/mvt_container_bottom_padding"
|
||||
- android:scrollbars="none">
|
||||
-
|
||||
- <org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout
|
||||
- android:id="@+id/mv_tiles_layout"
|
||||
- android:layout_width="wrap_content"
|
||||
- android:layout_height="match_parent"
|
||||
- android:orientation="horizontal" />
|
||||
-</HorizontalScrollView>
|
||||
+<org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout
|
||||
+ xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
+ android:id="@+id/mv_tiles_layout"
|
||||
+ android:layout_width="match_parent"
|
||||
+ android:layout_height="wrap_content"
|
||||
+ android:layout_gravity="center_horizontal" />
|
||||
</HorizontalScrollView>
|
||||
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
--- a/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
+++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
|
||||
@@ -302,7 +561,7 @@ diff --git a/chrome/android/java/res/values/attrs.xml b/chrome/android/java/res/
|
||||
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
|
||||
@@ -122,6 +122,8 @@ found in the LICENSE file.
|
||||
@@ -128,6 +128,8 @@ found in the LICENSE file.
|
||||
<dimen name="find_in_page_popup_margin_end">62dp</dimen>
|
||||
|
||||
<!-- NTP dimensions -->
|
||||
@@ -1059,7 +1318,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
|
||||
TileRenderer renderer,
|
||||
PropertyModel propertyModel,
|
||||
boolean isTablet,
|
||||
@@ -211,7 +211,6 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
|
||||
@@ -211,15 +211,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
|
||||
|
||||
@Override
|
||||
public void onCustomTileCreation(Tile tile) {
|
||||
@@ -1067,7 +1326,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -329,7 +328,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
|
||||
public void onCustomTileNonReorderChange() {
|
||||
- SuggestionsTileVerticalDivider divider = mMvTilesLayout.getDividerMaybeNull();
|
||||
- if (divider != null) {
|
||||
- divider.showThenHide();
|
||||
- }
|
||||
}
|
||||
|
||||
public void onConfigurationChanged() {
|
||||
@@ -329,7 +324,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
|
||||
|
||||
double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl());
|
||||
if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return;
|
||||
@@ -1096,7 +1363,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
|
||||
mMvTilesLayout = mvTilesLayout;
|
||||
Resources res = mMvTilesLayout.getResources();
|
||||
mTileWidthPx = res.getDimensionPixelSize(R.dimen.tile_view_width);
|
||||
@@ -269,7 +269,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate
|
||||
@@ -225,18 +225,10 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate
|
||||
|
||||
@Override
|
||||
public void showDivider(boolean isAnimated) {
|
||||
- SuggestionsTileVerticalDivider divider = mMvTilesLayout.getDividerMaybeNull();
|
||||
- if (divider != null) {
|
||||
- divider.show(isAnimated);
|
||||
- }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideDivider(boolean isAnimated) {
|
||||
- SuggestionsTileVerticalDivider divider = mMvTilesLayout.getDividerMaybeNull();
|
||||
- if (divider != null) {
|
||||
- divider.hide(isAnimated);
|
||||
- }
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -269,12 +261,12 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate
|
||||
|
||||
@Override
|
||||
public SiteSuggestion getTileViewData(TileView view) {
|
||||
@@ -1105,6 +1391,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
|
||||
}
|
||||
|
||||
@Override
|
||||
public HorizontalScrollView getOuterView() {
|
||||
- return mMvTilesLayout.getScrollView();
|
||||
+ return null;
|
||||
}
|
||||
|
||||
List<TileView> getDraggableTileViews() {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java
|
||||
@@ -1210,6 +1502,22 @@ diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/
|
||||
HomeModulesRankingHelperJni.get()
|
||||
.getClassificationResult(
|
||||
profile,
|
||||
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
|
||||
@@ -3941,6 +3941,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>delete the Chrome d
|
||||
<message name="IDS_RECENT_TABS" desc="Text for button to show 'Recent tabs', i.e. recently closed tabs and tabs that are open on other devices [CHAR_LIMIT=20]">
|
||||
Recent tabs
|
||||
</message>
|
||||
+ <message name="IDS_MOST_VISITED_PLACEHOLDER_TITLE" desc="Header text shown on the new tab page when there are no most visited tiles yet.">
|
||||
+ Nothing to see here… yet
|
||||
+ </message>
|
||||
+ <message name="IDS_MOST_VISITED_PLACEHOLDER_SUMMARY" desc="Explanation text shown on the new tab page when there are no most visited tiles yet.">
|
||||
+ Your most visited pages will appear here
|
||||
+ </message>
|
||||
<message name="IDS_MOST_VISITED_ITEM_REMOVED" desc="Text shown when the user removes one of the most visited websites on the new tab page.">
|
||||
Item removed
|
||||
</message>
|
||||
diff --git a/components/history/core/browser/top_sites_impl.h b/components/history/core/browser/top_sites_impl.h
|
||||
--- a/components/history/core/browser/top_sites_impl.h
|
||||
+++ b/components/history/core/browser/top_sites_impl.h
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -18,42 +18,41 @@ Original License: BSD-3-Clause - https://spdx.org/licenses/BSD-3-Clause.html
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
...val-of-execution-context-address-space.inc | 2 ++
|
||||
.../execution_context/execution_context.cc | 9 +++++
|
||||
.../execution_context/execution_context.cc | 9 +++++++
|
||||
.../execution_context/execution_context.h | 4 +++
|
||||
.../core/exported/web_shared_worker_impl.cc | 1 +
|
||||
.../renderer/core/frame/policy_container.cc | 10 ++++++
|
||||
.../renderer/core/frame/policy_container.h | 11 ++++++
|
||||
.../renderer/core/frame/web_frame_test.cc | 34 +++++++++++++++++++
|
||||
.../renderer/core/frame/policy_container.cc | 10 ++++++++
|
||||
.../renderer/core/frame/policy_container.h | 11 ++++++++
|
||||
.../layout_worklet_global_scope_proxy.cc | 1 +
|
||||
...ed_service_worker_module_script_fetcher.cc | 1 +
|
||||
.../modulescript/module_script_loader_test.cc | 1 +
|
||||
.../worker_module_script_fetcher.cc | 3 +-
|
||||
.../renderer/core/workers/dedicated_worker.cc | 9 +++++
|
||||
.../renderer/core/workers/dedicated_worker.h | 3 ++
|
||||
.../workers/dedicated_worker_global_scope.cc | 9 ++++-
|
||||
.../worker_module_script_fetcher.cc | 3 ++-
|
||||
.../renderer/core/workers/dedicated_worker.cc | 9 +++++++
|
||||
.../renderer/core/workers/dedicated_worker.h | 3 +++
|
||||
.../workers/dedicated_worker_global_scope.cc | 9 ++++++-
|
||||
.../workers/dedicated_worker_global_scope.h | 1 +
|
||||
.../workers/global_scope_creation_params.cc | 2 ++
|
||||
.../workers/global_scope_creation_params.h | 7 ++++
|
||||
.../core/workers/installed_scripts_manager.cc | 16 +++++++++
|
||||
.../core/workers/installed_scripts_manager.h | 5 +++
|
||||
.../workers/global_scope_creation_params.h | 7 ++++++
|
||||
.../core/workers/installed_scripts_manager.cc | 16 ++++++++++++
|
||||
.../core/workers/installed_scripts_manager.h | 5 ++++
|
||||
.../core/workers/main_thread_worklet_test.cc | 1 +
|
||||
.../workers/shared_worker_global_scope.cc | 7 ++++
|
||||
.../workers/shared_worker_global_scope.cc | 7 ++++++
|
||||
.../core/workers/shared_worker_global_scope.h | 1 +
|
||||
.../threaded_worklet_messaging_proxy.cc | 5 ++-
|
||||
.../threaded_worklet_messaging_proxy.cc | 5 +++-
|
||||
.../core/workers/threaded_worklet_test.cc | 1 +
|
||||
.../workers/worker_classic_script_loader.cc | 5 ++-
|
||||
.../workers/worker_classic_script_loader.h | 6 ++++
|
||||
.../workers/worker_classic_script_loader.cc | 5 +++-
|
||||
.../workers/worker_classic_script_loader.h | 6 +++++
|
||||
.../core/workers/worker_global_scope.h | 2 ++
|
||||
.../core/workers/worker_thread_test.cc | 2 ++
|
||||
.../core/workers/worker_thread_test_helper.h | 6 ++++
|
||||
.../core/workers/worker_thread_test_helper.h | 6 +++++
|
||||
.../paint_worklet_global_scope_proxy.cc | 2 +-
|
||||
.../exported/web_embedded_worker_impl.cc | 4 ++-
|
||||
.../service_worker_global_scope.cc | 25 +++++++++-----
|
||||
.../service_worker_global_scope.cc | 25 +++++++++++++------
|
||||
.../service_worker_global_scope.h | 2 ++
|
||||
.../audio_worklet_global_scope_test.cc | 1 +
|
||||
.../webaudio/audio_worklet_thread_test.cc | 1 +
|
||||
.../worklet/worklet_thread_test_common.cc | 2 +-
|
||||
36 files changed, 187 insertions(+), 15 deletions(-)
|
||||
35 files changed, 153 insertions(+), 15 deletions(-)
|
||||
create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc
|
||||
|
||||
diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc
|
||||
@@ -168,50 +167,6 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa
|
||||
// Append |policies| to the list of Content Security Policy and sync them with
|
||||
// the PolicyContainerHost.
|
||||
void AddContentSecurityPolicies(
|
||||
diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc
|
||||
--- a/third_party/blink/renderer/core/frame/web_frame_test.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/web_frame_test.cc
|
||||
@@ -8070,6 +8070,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) {
|
||||
EXPECT_EQ(client.StopLoadingCount(), 2);
|
||||
}
|
||||
|
||||
+TEST_F(WebFrameTest, IPAddressSpace) {
|
||||
+ frame_test_helpers::WebViewHelper web_view_helper;
|
||||
+ WebViewImpl* web_view =
|
||||
+ web_view_helper.InitializeAndLoad("data:text/html,ip_address_space");
|
||||
+
|
||||
+ network::mojom::IPAddressSpace values[] = {
|
||||
+ network::mojom::IPAddressSpace::kUnknown,
|
||||
+ network::mojom::IPAddressSpace::kLocal,
|
||||
+ network::mojom::IPAddressSpace::kPrivate,
|
||||
+ network::mojom::IPAddressSpace::kPublic};
|
||||
+
|
||||
+ for (auto value : values) {
|
||||
+ auto params = std::make_unique<WebNavigationParams>();
|
||||
+ params->url = url_test_helpers::ToKURL("about:blank");
|
||||
+ params->navigation_timings.navigation_start = base::TimeTicks::Now();
|
||||
+ params->navigation_timings.fetch_start = base::TimeTicks::Now();
|
||||
+ params->is_browser_initiated = true;
|
||||
+ MockPolicyContainerHost mock_policy_container_host;
|
||||
+ params->policy_container = std::make_unique<WebPolicyContainer>(
|
||||
+ WebPolicyContainerPolicies(),
|
||||
+ mock_policy_container_host.BindNewEndpointAndPassDedicatedRemote());
|
||||
+ params->policy_container->policies.ip_address_space = value;
|
||||
+ params->sandbox_flags = network::mojom::WebSandboxFlags::kNone;
|
||||
+ web_view_helper.LocalMainFrame()->CommitNavigation(std::move(params),
|
||||
+ nullptr);
|
||||
+ frame_test_helpers::PumpPendingRequestsForFrameToLoad(
|
||||
+ web_view_helper.LocalMainFrame());
|
||||
+
|
||||
+ ExecutionContext* context =
|
||||
+ web_view->MainFrameImpl()->GetFrame()->DomWindow();
|
||||
+ EXPECT_EQ(value, context->AddressSpace());
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
TEST_F(WebFrameTest,
|
||||
CommitSynchronousNavigationForAboutBlankAndCheckStorageKeyNonce) {
|
||||
frame_test_helpers::WebViewHelper web_view_helper;
|
||||
diff --git a/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc b/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc
|
||||
--- a/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc
|
||||
+++ b/third_party/blink/renderer/core/layout/custom/layout_worklet_global_scope_proxy.cc
|
||||
|
||||
@@ -643,7 +643,7 @@ new file mode 100644
|
||||
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+ PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+
|
||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||
+ ->GetMutable(ContentSettingsType::TIMEZONE_OVERRIDE)
|
||||
|
||||
@@ -29,13 +29,13 @@ Require: Content-settings-infrastructure.patch
|
||||
.../blink/renderer/core/frame/local_frame.h | 6 +-
|
||||
.../core/frame/screen_metrics_emulator.cc | 18 +++-
|
||||
.../core/frame/screen_metrics_emulator.h | 14 +++
|
||||
.../core/frame/web_frame_widget_impl.cc | 8 ++
|
||||
.../core/frame/web_frame_widget_impl.cc | 9 ++
|
||||
.../core/frame/web_remote_frame_impl.cc | 3 +-
|
||||
.../blink/renderer/core/input/touch.cc | 17 +++-
|
||||
third_party/blink/renderer/core/page/page.cc | 93 ++++++++++++++++++
|
||||
third_party/blink/renderer/core/page/page.h | 9 ++
|
||||
.../renderer/core/style/computed_style.h | 6 ++
|
||||
26 files changed, 430 insertions(+), 20 deletions(-)
|
||||
26 files changed, 431 insertions(+), 20 deletions(-)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteViewportContentSetting.java
|
||||
create mode 100644 components/browser_ui/strings/bromite_content_settings/viewport.grdp
|
||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/viewport.inc
|
||||
@@ -188,7 +188,7 @@ new file mode 100644
|
||||
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||
+ WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
+ ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+ PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
|
||||
+
|
||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||
+ ->GetMutable(ContentSettingsType::VIEWPORT)
|
||||
@@ -662,11 +662,12 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t
|
||||
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
|
||||
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
|
||||
@@ -1959,6 +1959,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
|
||||
@@ -1959,6 +1959,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
|
||||
|
||||
if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) {
|
||||
DeviceEmulator()->UpdateVisualProperties(visual_properties);
|
||||
+ // Shink the view according to browsercontrols
|
||||
+ auto* device_emulator = DeviceEmulator();
|
||||
+ size_ = widget_base_->DIPsToCeiledBlinkSpace(
|
||||
+ device_emulator->ViewWindowSize());
|
||||
+ View()->ResizeWithBrowserControls(
|
||||
|
||||
@@ -19,7 +19,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../ui/webui/policy/policy_ui_handler.cc | 104 ++++++++++++-
|
||||
.../ui/webui/policy/policy_ui_handler.h | 2 +
|
||||
.../strings/android/browser_ui_strings.grd | 2 +-
|
||||
.../commerce/core/commerce_feature_list.cc | 64 ++------
|
||||
.../commerce/core/commerce_feature_list.cc | 61 +-------
|
||||
.../core/browser/browser_policy_connector.cc | 3 +
|
||||
.../common/command_line_policy_provider.cc | 3 +
|
||||
.../core/common/policy_loader_command_line.cc | 138 ++++++++++++++++--
|
||||
@@ -39,7 +39,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
extensions/common/extension_features.cc | 1 +
|
||||
google_apis/gaia/gaia_auth_fetcher.cc | 1 +
|
||||
net/socket/ssl_client_socket_impl.cc | 3 +
|
||||
35 files changed, 329 insertions(+), 161 deletions(-)
|
||||
35 files changed, 326 insertions(+), 161 deletions(-)
|
||||
|
||||
diff --git a/base/win/win_util.cc b/base/win/win_util.cc
|
||||
--- a/base/win/win_util.cc
|
||||
@@ -636,15 +636,12 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
|
||||
auto* pattern_from_component =
|
||||
commerce_heuristics::CommerceHeuristicsData::GetInstance()
|
||||
.GetNoDiscountMerchantPattern();
|
||||
@@ -450,4 +401,9 @@ bool IsNoDiscountMerchant(const GURL& url) {
|
||||
@@ -450,4 +401,6 @@ bool IsNoDiscountMerchant(const GURL& url) {
|
||||
return RE2::PartialMatch(url.host_piece(), *pattern_from_component);
|
||||
}
|
||||
#endif
|
||||
+
|
||||
+SET_CROMITE_FEATURE_DISABLED(kShoppingListRegionLaunched);
|
||||
+
|
||||
+SET_CROMITE_FEATURE_DISABLED(kEnableDiscountInfoApi);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kEnableDiscountInfoApiRegionLaunched);
|
||||
} // namespace commerce
|
||||
diff --git a/components/policy/core/browser/browser_policy_connector.cc b/components/policy/core/browser/browser_policy_connector.cc
|
||||
--- a/components/policy/core/browser/browser_policy_connector.cc
|
||||
|
||||
@@ -105,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//components/android_autofill/browser:java",
|
||||
"//components/autofill/android:autofill_features_java",
|
||||
"//components/autofill/android:autofill_java",
|
||||
@@ -1386,6 +1390,7 @@ if (_is_default_toolchain) {
|
||||
@@ -1394,6 +1398,7 @@ if (_is_default_toolchain) {
|
||||
"javatests:chrome_test_java_org.chromium.chrome.browser.toolbar",
|
||||
"javatests:chrome_test_java_org.chromium.chrome.browser.webapps",
|
||||
"javatests:chrome_test_java_various",
|
||||
@@ -113,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//chrome/browser/android/browserservices/verification:javatests",
|
||||
"//chrome/browser/android/httpclient:javatests",
|
||||
"//chrome/browser/android/metrics:ukm_javatests",
|
||||
@@ -1456,6 +1461,7 @@ if (_is_default_toolchain) {
|
||||
@@ -1464,6 +1469,7 @@ if (_is_default_toolchain) {
|
||||
"//chrome/test/data/translate/",
|
||||
"//chrome/test/data/webauthn/",
|
||||
"//chrome/test/media_router/resources/",
|
||||
@@ -121,7 +121,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
"//components/test/data/autofill/",
|
||||
"//components/test/data/payments/",
|
||||
"//content/test/data/browsing_data/",
|
||||
@@ -3248,6 +3254,12 @@ if (_is_default_toolchain) {
|
||||
@@ -3256,6 +3262,12 @@ if (_is_default_toolchain) {
|
||||
sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ]
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
# Used for testing only, should not be shipped to end users.
|
||||
if (enable_offline_pages_harness) {
|
||||
sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ]
|
||||
@@ -3339,6 +3351,7 @@ if (_is_default_toolchain) {
|
||||
@@ -3347,6 +3359,7 @@ if (_is_default_toolchain) {
|
||||
"//chrome/browser/ui/plus_addresses/android:jni_headers",
|
||||
"//chrome/browser/util:jni_headers",
|
||||
"//chrome/browser/webauthn/android:jni_headers",
|
||||
@@ -207,17 +207,17 @@ new file mode 100644
|
||||
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
--- a/chrome/browser/BUILD.gn
|
||||
+++ b/chrome/browser/BUILD.gn
|
||||
@@ -3405,6 +3405,10 @@ static_library("browser") {
|
||||
"touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h",
|
||||
@@ -3412,6 +3412,10 @@ static_library("browser") {
|
||||
]
|
||||
deps += [ "//chrome/browser/password_entry_edit/android" ]
|
||||
|
||||
+ ### Android API module start
|
||||
+ sources += [ "android/adblock/tab_id_translator_jni.cc" ]
|
||||
+
|
||||
+ ### Android API module end
|
||||
|
||||
+
|
||||
deps += [
|
||||
":delta_file_proto",
|
||||
":profile_token",
|
||||
diff --git a/chrome/browser/android/adblock/tab_id_translator_jni.cc b/chrome/browser/android/adblock/tab_id_translator_jni.cc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
|
||||
@@ -250,8 +250,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
if (enable_extensions_core) {
|
||||
deps += [ "//chrome/browser/ui/android/extensions:java_resources" ]
|
||||
}
|
||||
@@ -804,6 +808,10 @@ if (_is_default_toolchain) {
|
||||
"//url/mojom:url_mojom_origin_java",
|
||||
@@ -808,6 +812,10 @@ if (_is_default_toolchain) {
|
||||
"//chrome/browser/password_entry_edit:public_java",
|
||||
]
|
||||
|
||||
+ ### Android UI module start
|
||||
@@ -274,7 +274,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
||||
-->
|
||||
|
||||
<!-- The main_preferences file will be reordered with the upcoming autofill
|
||||
@@ -95,6 +98,11 @@ for the previous order (main_preferences_legacy). -->
|
||||
@@ -97,6 +100,11 @@ for the previous order (main_preferences_legacy). -->
|
||||
android:key="autofill_options"
|
||||
android:order="16"
|
||||
android:title="@string/autofill_options_title" />
|
||||
|
||||
@@ -7,7 +7,7 @@ Based on Chromium 133.0.6943.49
|
||||
Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
|
||||
---
|
||||
chrome/app/chrome_main_delegate.cc | 7 +-
|
||||
chrome/browser/BUILD.gn | 8 +
|
||||
chrome/browser/BUILD.gn | 7 +
|
||||
chrome/browser/adblock/README.md | 3 +
|
||||
.../adblock_chrome_content_browser_client.cc | 27 +
|
||||
.../adblock_chrome_content_browser_client.h | 31 ++
|
||||
@@ -58,7 +58,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
|
||||
chrome/common/BUILD.gn | 3 +
|
||||
chrome/test/BUILD.gn | 12 +
|
||||
chrome/test/base/in_process_browser_test.cc | 24 +-
|
||||
52 files changed, 3300 insertions(+), 6 deletions(-)
|
||||
52 files changed, 3299 insertions(+), 6 deletions(-)
|
||||
create mode 100644 chrome/browser/adblock/README.md
|
||||
create mode 100644 chrome/browser/adblock/adblock_chrome_content_browser_client.cc
|
||||
create mode 100644 chrome/browser/adblock/adblock_chrome_content_browser_client.h
|
||||
@@ -152,15 +152,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
|
||||
"//components/application_locale_storage",
|
||||
"//components/assist_ranker",
|
||||
"//components/autofill/content/browser",
|
||||
@@ -3399,6 +3405,7 @@ static_library("browser") {
|
||||
"touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h",
|
||||
]
|
||||
|
||||
+
|
||||
deps += [
|
||||
":delta_file_proto",
|
||||
":profile_token",
|
||||
@@ -8551,6 +8558,7 @@ static_library("browser_public_dependencies") {
|
||||
@@ -8558,6 +8564,7 @@ static_library("browser_public_dependencies") {
|
||||
"//chrome/services/file_util/public/mojom",
|
||||
"//components/account_id",
|
||||
"//components/autofill/content/browser",
|
||||
@@ -3664,7 +3656,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
|
||||
#include "components/autofill/content/browser/autofill_log_router_factory.h"
|
||||
#include "components/breadcrumbs/core/breadcrumbs_status.h"
|
||||
#include "components/captive_portal/core/buildflags.h"
|
||||
@@ -933,6 +946,15 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
@@ -934,6 +947,15 @@ void ChromeBrowserMainExtraPartsProfiles::
|
||||
// Makes manual testing possible.
|
||||
FakeSmartCardDeviceServiceFactory::GetInstance();
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user