adapted for v106

This commit is contained in:
Carmelo Messina
2022-09-22 20:50:30 +02:00
parent 804473e164
commit 896eecc4d4
23 changed files with 525 additions and 382 deletions
@@ -58,11 +58,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/history/history_tab_helper.h | 10 +-
.../android/offline_page_bridge.cc | 13 +-
.../android/offline_page_model_factory.cc | 21 ++-
.../android/request_coordinator_factory.cc | 17 ++
.../android/request_coordinator_factory.cc | 21 ++-
.../offline_page_model_factory.h | 1 +
.../offline_pages/recent_tab_helper.cc | 19 ++-
.../browser/offline_pages/recent_tab_helper.h | 3 +
.../request_coordinator_factory.h | 2 +
.../request_coordinator_factory.h | 4 +-
chrome/browser/prefs/browser_prefs.cc | 5 +
.../browser/ui/android/native_page/BUILD.gn | 2 +
.../browser/ui/native_page/NativePage.java | 12 +-
@@ -82,7 +82,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../omnibox/browser/base_search_provider.cc | 2 +-
components/omnibox/browser/search_provider.cc | 4 +-
.../host_content_settings_map_factory.cc | 1 +
63 files changed, 676 insertions(+), 72 deletions(-)
63 files changed, 680 insertions(+), 74 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -1413,7 +1413,15 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc
diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc b/chrome/browser/offline_pages/android/request_coordinator_factory.cc
--- a/chrome/browser/offline_pages/android/request_coordinator_factory.cc
+++ b/chrome/browser/offline_pages/android/request_coordinator_factory.cc
@@ -28,6 +28,11 @@
@@ -19,6 +19,7 @@
#include "chrome/browser/ui/android/tab_model/tab_model.h"
#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
#include "chrome/common/chrome_constants.h"
+#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/offline_pages/core/background/offliner.h"
#include "components/offline_pages/core/background/offliner_policy.h"
#include "components/offline_pages/core/background/request_coordinator.h"
@@ -28,6 +29,11 @@
#include "components/offline_pages/core/offline_page_feature.h"
#include "content/public/browser/web_contents.h"
@@ -1425,7 +1433,17 @@ diff --git a/chrome/browser/offline_pages/android/request_coordinator_factory.cc
namespace network {
class NetworkQualityTracker;
}
@@ -111,4 +116,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
@@ -61,7 +67,8 @@ class ActiveTabInfo : public RequestCoordinator::ActiveTabInfo {
};
RequestCoordinatorFactory::RequestCoordinatorFactory()
- : ProfileKeyedServiceFactory("OfflineRequestCoordinator") {
+ : BrowserContextKeyedServiceFactory("OfflineRequestCoordinator",
+ BrowserContextDependencyManager::GetInstance()) {
// Depends on OfflinePageModelFactory in SimpleDependencyManager.
}
@@ -111,4 +118,16 @@ KeyedService* RequestCoordinatorFactory::BuildServiceInstanceFor(
return request_coordinator;
}
@@ -1512,6 +1530,15 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/o
diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome/browser/offline_pages/request_coordinator_factory.h
--- a/chrome/browser/offline_pages/request_coordinator_factory.h
+++ b/chrome/browser/offline_pages/request_coordinator_factory.h
@@ -18,7 +18,7 @@ namespace offline_pages {
class RequestCoordinator;
// A factory to create one unique RequestCoordinator.
-class RequestCoordinatorFactory : public ProfileKeyedServiceFactory {
+class RequestCoordinatorFactory : public BrowserContextKeyedServiceFactory {
public:
static RequestCoordinatorFactory* GetInstance();
static RequestCoordinator* GetForBrowserContext(
@@ -36,6 +36,8 @@ class RequestCoordinatorFactory : public ProfileKeyedServiceFactory {
KeyedService* BuildServiceInstanceFor(
@@ -1606,7 +1633,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1168,6 +1168,37 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1171,6 +1171,37 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
Clears history from all synced devices.
</message>
@@ -83,14 +83,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../android/permissions_android_strings.grd | 17 ++++
.../geolocation_permission_context_android.cc | 35 ++++++--
.../geolocation_permission_context_android.h | 13 ++-
.../permissions/permission_context_base.cc | 49 +++++++++--
.../permissions/permission_context_base.cc | 49 ++++++++++-
.../permissions/permission_context_base.h | 24 +++++-
components/permissions/permission_prompt.h | 3 +-
components/permissions/permission_request.cc | 34 +++++++-
components/permissions/permission_request.h | 17 +++-
.../permissions/permission_request_manager.cc | 37 ++++++---
.../permissions/permission_request_manager.h | 11 ++-
38 files changed, 480 insertions(+), 61 deletions(-)
38 files changed, 481 insertions(+), 60 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
@@ -1092,7 +1092,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
}
UpdateTabContext(id, requesting_origin,
@@ -526,13 +556,22 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
@@ -526,6 +556,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
const GURL& embedding_origin,
ContentSetting content_setting,
bool is_one_time) {
@@ -1108,14 +1108,15 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm
DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL());
DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL());
DCHECK(content_setting == CONTENT_SETTING_ALLOW ||
content_setting == CONTENT_SETTING_BLOCK);
@@ -534,6 +573,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin,
content_settings::ContentSettingConstraints constraints = {
- base::Time(), is_one_time ? content_settings::SessionModel::OneTime
+ base::Time(), is_one_time ? content_settings::GetConstraintSessionExpiration(lifetime_option)
base::Time(), is_one_time ? content_settings::SessionModel::OneTime
: content_settings::SessionModel::Durable};
+ if (is_one_time)
+ constraints = content_settings::GetConstraintSessionExpiration(lifetime_option);
#if !BUILDFLAG(IS_ANDROID)
if (base::FeatureList::IsEnabled(
diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h
--- a/components/permissions/permission_context_base.h
+++ b/components/permissions/permission_context_base.h
+1 -1
View File
@@ -232,7 +232,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
+ AllowlistedSchemes(),
+ ValidSettings(CONTENT_SETTING_ALLOW,
+ CONTENT_SETTING_BLOCK),
+ WebsiteSettingsInfo::SINGLE_ORIGIN_WITH_EMBEDDED_EXCEPTIONS_SCOPE,
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
+ WebsiteSettingsRegistry::PLATFORM_ANDROID,
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
+ ContentSettingsInfo::PERSISTENT,
+12 -4
View File
@@ -25,8 +25,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../renderer/content_settings_agent_impl.cc | 9 ++
.../renderer/content_settings_agent_impl.h | 1 +
.../platform/web_content_settings_client.h | 2 +
.../peer_connection_dependency_factory.cc | 5 ++
19 files changed, 160 insertions(+), 4 deletions(-)
.../peer_connection_dependency_factory.cc | 6 ++
19 files changed, 161 insertions(+), 4 deletions(-)
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteWebRTCContentSetting.java
create mode 100644 components/browser_ui/strings/android/webrtc.grdp
@@ -228,7 +228,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
+ AllowlistedSchemes(),
+ ValidSettings(CONTENT_SETTING_ALLOW,
+ CONTENT_SETTING_BLOCK),
+ WebsiteSettingsInfo::SINGLE_ORIGIN_WITH_EMBEDDED_EXCEPTIONS_SCOPE,
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
+ WebsiteSettingsRegistry::PLATFORM_ANDROID,
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
+ ContentSettingsInfo::PERSISTENT,
@@ -377,7 +377,15 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -767,6 +767,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -33,6 +33,7 @@
#include "third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h"
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/platform/web_content_settings_client.h"
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
#include "third_party/blink/public/web/web_document.h"
@@ -767,6 +768,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
// origin.
WebRTCIPHandlingPolicy policy =
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
+1 -13
View File
@@ -8,7 +8,6 @@ use Google Chrome branding for client hints
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/prefs/browser_prefs.cc | 1 +
components/embedder_support/user_agent_utils.cc | 4 +---
content/browser/client_hints/client_hints.cc | 3 ++-
content/browser/loader/navigation_url_loader_impl.cc | 5 +++++
@@ -19,19 +18,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
third_party/blink/common/client_hints/client_hints.cc | 1 +
.../blink/common/client_hints/enabled_client_hints.cc | 4 +++-
third_party/blink/common/features.cc | 4 ++--
11 files changed, 20 insertions(+), 18 deletions(-)
10 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -778,6 +778,7 @@ void RegisterLocalStatePrefsForMigration(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(kCloudPolicyOverridesPlatformPolicy, false);
registry->RegisterIntegerPref(kStabilityRendererHangCount, 0);
+ registry->RegisterBooleanPref(kUserAgentClientHintsEnabled, false);
registry->RegisterIntegerPref(kStabilityIncompleteSessionEndCount, 0);
registry->RegisterBooleanPref(kStabilitySessionEndCompleted, true);
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../BromiteCustomContentSettingImpl.java | 270 ++++++++++++++++++
.../BromiteCustomContentSetting_README.md | 151 ++++++++++
.../ContentSettingsResources.java | 13 +-
.../site_settings/SingleCategorySettings.java | 28 +-
.../site_settings/SingleCategorySettings.java | 30 +-
.../site_settings/SingleWebsiteSettings.java | 24 +-
.../site_settings/SiteSettings.java | 3 +-
.../site_settings/SiteSettingsCategory.java | 9 +-
@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../android/page_info_controller_android.cc | 18 ++
components/page_info/page_info.cc | 23 +-
components/page_info/page_info_ui.cc | 18 ++
23 files changed, 731 insertions(+), 28 deletions(-)
23 files changed, 733 insertions(+), 28 deletions(-)
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting_README.md
@@ -307,7 +307,7 @@ new file mode 100644
+ BrowserContextHandle browserContextHandle,
+ Preference preference, Object newValue) {
+ for (BromiteCustomContentSetting cs : mItemList) {
+ if (!category.showSites(cs.getSiteSettingsCategory())) {
+ if (category.getType() != cs.getSiteSettingsCategory()) {
+ continue;
+ }
+
@@ -340,7 +340,7 @@ new file mode 100644
+
+ public static @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) {
+ for (BromiteCustomContentSetting cs : mItemList) {
+ if (category.showSites(cs.getSiteSettingsCategory())) {
+ if (category.getType() == cs.getSiteSettingsCategory()) {
+ return cs.considerException(category, value);
+ }
+ }
@@ -349,7 +349,7 @@ new file mode 100644
+
+ public static int getAddExceptionDialogMessage(SiteSettingsCategory category) {
+ for (BromiteCustomContentSetting cs : mItemList) {
+ if (category.showSites(cs.getSiteSettingsCategory())) {
+ if (category.getType() == cs.getSiteSettingsCategory()) {
+ return cs.getAddExceptionDialogMessage();
+ }
+ }
@@ -358,7 +358,7 @@ new file mode 100644
+
+ public static @Nullable Boolean allowSpecifyingExceptions(SiteSettingsCategory category) {
+ for (BromiteCustomContentSetting cs : mItemList) {
+ if (category.showSites(cs.getSiteSettingsCategory())) {
+ if (category.getType() == cs.getSiteSettingsCategory()) {
+ return cs.isExceptionAllowed();
+ }
+ }
@@ -667,16 +667,18 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -241,6 +241,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
return ContentSettingValues.ALLOW != contentSetting;
else
return ContentSettingValues.BLOCK == contentSetting;
+ if (BromiteCustomContentSettingImpl.processOnBlockList(contentSetting, contentSetting))
+ return BromiteCustomContentSettingImpl.isOnBlockList(contentSetting, website, contentSetting);
}
return false;
}
@@ -390,6 +392,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -236,6 +236,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@ContentSettingValues
Integer contentSetting = website.site().getContentSetting(
browserContextHandle, mCategory.getContentSettingsType());
+ if (contentSetting != null &&
+ BromiteCustomContentSettingImpl.processOnBlockList(contentSetting, contentSetting)) {
+ return BromiteCustomContentSettingImpl.isOnBlockList(contentSetting, website, contentSetting);
+ }
if (contentSetting != null) {
if (mCategory.getContentSettingsType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
return ContentSettingValues.ALLOW != contentSetting;
@@ -391,6 +395,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS))
: null;
@@ -684,7 +686,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
configureGlobalToggles();
setHasOptionsMenu(true);
@@ -489,6 +492,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -490,6 +495,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
BrowserContextHandle browserContextHandle =
getSiteSettingsDelegate().getBrowserContextHandle();
PrefService prefService = UserPrefs.get(browserContextHandle);
@@ -696,8 +698,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (BINARY_TOGGLE_KEY.equals(preference.getKey())) {
assert !mCategory.isManaged();
@@ -644,6 +652,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
} else if (mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) {
@@ -645,6 +655,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
} else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
resource = R.string.website_settings_category_timezone_override_allowed;
}
+ if (resource == 0)
@@ -705,9 +707,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert resource > 0;
return getString(resource);
}
@@ -756,6 +766,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -757,6 +769,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
allowSpecifyingExceptions = true;
} else if (mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) {
} else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
allowSpecifyingExceptions = true;
+ } else {
+ Boolean allow = BromiteCustomContentSettingImpl.allowSpecifyingExceptions(mCategory);
@@ -715,7 +717,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
if (allowSpecifyingExceptions) {
getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(),
@@ -927,6 +940,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -928,6 +943,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
TriStateSiteSettingsPreference triStateToggle =
(TriStateSiteSettingsPreference) getPreferenceScreen().findPreference(
TRI_STATE_TOGGLE_KEY);
@@ -726,15 +728,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (triStateToggle != null)
return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
@@ -1005,6 +1022,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
if (!(mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE))) {
@@ -1006,6 +1025,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
if (mCategory.getType() != SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
screen.removePreference(screen.findPreference(TIMEOVERRIDE_INFO_TEXT));
}
+ BromiteCustomContentSettingImpl.configureGlobalToggles(mCategory, screen);
if (permissionBlockedByOs) {
maybeShowOsWarning(screen);
@@ -1131,7 +1149,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -1132,7 +1152,7 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
getSiteSettingsDelegate().getBrowserContextHandle(), contentType);
int[] descriptionIds =
ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType);
@@ -743,7 +745,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
private void configureTimeOverrideStateToggle(
@@ -1242,6 +1260,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -1243,6 +1263,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@ContentSettingValues
Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
+82 -12
View File
@@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/download/download_item_model.cc | 15 +++-
chrome/browser/download/download_item_model.h | 4 +
chrome/browser/download/download_prefs.cc | 17 ++--
chrome/browser/download/download_stats.cc | 4 +
chrome/browser/download/download_stats.cc | 6 ++
.../download/download_target_determiner.cc | 66 +++++-----------
.../download/download_target_determiner.h | 6 ++
.../browser/download/download_target_info.cc | 4 +
@@ -42,7 +42,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../extensions/api/downloads/downloads_api.cc | 41 +---------
.../extensions/api/downloads/downloads_api.h | 12 ---
.../webstore_private/webstore_private_api.cc | 18 +----
...e_file_system_access_permission_context.cc | 6 ++
...e_file_system_access_permission_context.cc | 12 +++
...me_file_system_access_permission_context.h | 5 +-
.../lookalike_url_controller_client.cc | 4 -
.../metrics/chrome_metrics_service_client.cc | 3 -
@@ -66,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/ssl/security_state_tab_helper.cc | 10 +--
...urce_filter_web_contents_helper_factory.cc | 4 +
chrome/browser/ui/BUILD.gn | 2 -
.../strings/android_chrome_strings.grd | 9 ---
.../strings/android_chrome_strings.grd | 21 -----
chrome/browser/ui/tab_helpers.cc | 8 ++
.../ui/webui/interstitials/interstitial_ui.cc | 12 +--
chrome/common/safe_browsing/BUILD.gn | 7 --
@@ -91,7 +91,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../file_system_access_permission_context.h | 6 --
weblayer/BUILD.gn | 4 -
weblayer/test/BUILD.gn | 1 -
82 files changed, 202 insertions(+), 694 deletions(-)
82 files changed, 210 insertions(+), 706 deletions(-)
diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml
--- a/chrome/android/java/res/xml/google_services_preferences.xml
@@ -1207,6 +1207,22 @@ diff --git a/chrome/browser/download/download_stats.cc b/chrome/browser/download
}
void RecordOpenedDangerousConfirmDialog(
@@ -41,6 +45,7 @@ void RecordOpenedDangerousConfirmDialog(
void RecordDownloadOpen(ChromeDownloadOpenMethod open_method,
const std::string& mime_type_string) {
+#if defined(FULL_SAFE_BROWSING)
base::RecordAction(base::UserMetricsAction("Download.Open"));
base::UmaHistogramEnumeration("Download.OpenMethod", open_method,
DOWNLOAD_OPEN_METHOD_LAST_ENTRY);
@@ -49,6 +54,7 @@ void RecordDownloadOpen(ChromeDownloadOpenMethod open_method,
mime_type_string, /*record_content_subcategory=*/false);
base::UmaHistogramEnumeration("Download.Open.ContentType", download_content,
download::DownloadContent::MAX);
+#endif
}
void RecordDatabaseAvailability(bool is_available) {
diff --git a/chrome/browser/download/download_target_determiner.cc b/chrome/browser/download/download_target_determiner.cc
--- a/chrome/browser/download/download_target_determiner.cc
+++ b/chrome/browser/download/download_target_determiner.cc
@@ -1680,7 +1696,33 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
#include "chrome/browser/ui/file_system_access_dialogs.h"
#include "chrome/common/chrome_paths.h"
#include "chrome/grit/generated_resources.h"
@@ -342,6 +344,7 @@ BindResultCallbackToCurrentSequence(
@@ -46,7 +48,9 @@
#include "components/content_settings/core/common/content_settings_utils.h"
#include "components/permissions/permission_util.h"
#include "components/safe_browsing/buildflags.h"
+#if defined(FULL_SAFE_BROWSING)
#include "components/safe_browsing/content/common/file_type_policies.h"
+#endif
#include "content/public/browser/browser_task_traits.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/disallow_activation_reason.h"
@@ -144,6 +148,7 @@ void ShowFileSystemAccessRestrictedDirectoryDialogOnUIThread(
origin, path, handle_type, std::move(callback), web_contents);
}
+#if defined(FULL_SAFE_BROWSING)
void ShowFileSystemAccessDangerousFileDialogOnUIThread(
content::GlobalRenderFrameHostId frame_id,
const url::Origin& origin,
@@ -172,6 +177,7 @@ void ShowFileSystemAccessDangerousFileDialogOnUIThread(
ShowFileSystemAccessDangerousFileDialog(origin, path, std::move(callback),
web_contents);
}
+#endif
// Sentinel used to indicate that no PathService key is specified for a path in
// the struct below.
@@ -342,6 +348,7 @@ BindResultCallbackToCurrentSequence(
base::SequencedTaskRunnerHandle::Get(), std::move(callback));
}
@@ -1688,7 +1730,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
void DoSafeBrowsingCheckOnUIThread(
content::GlobalRenderFrameHostId frame_id,
std::unique_ptr<content::FileSystemAccessWriteItem> item,
@@ -418,6 +421,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) {
@@ -418,6 +425,7 @@ InterpretSafeBrowsingResult(safe_browsing::DownloadCheckResult result) {
NOTREACHED();
return ChromeFileSystemAccessPermissionContext::AfterWriteCheckResult::kBlock;
}
@@ -1696,7 +1738,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
std::string GenerateLastPickedDirectoryKey(const std::string& id) {
return id.empty() ? kDefaultLastPickedDirectoryKey
@@ -1200,6 +1204,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess(
@@ -1200,6 +1208,7 @@ void ChromeFileSystemAccessPermissionContext::ConfirmSensitiveEntryAccess(
frame_id, std::move(callback)));
}
@@ -1704,7 +1746,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
std::unique_ptr<content::FileSystemAccessWriteItem> item,
content::GlobalRenderFrameHostId frame_id,
@@ -1221,6 +1226,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
@@ -1221,6 +1230,7 @@ void ChromeFileSystemAccessPermissionContext::PerformAfterWriteChecks(
},
base::SequencedTaskRunnerHandle::Get(), std::move(callback))));
}
@@ -1712,6 +1754,22 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
void ChromeFileSystemAccessPermissionContext::
DidConfirmSensitiveDirectoryAccess(
@@ -1235,6 +1245,7 @@ void ChromeFileSystemAccessPermissionContext::
if (!should_block) {
// If attempting to save a file with a dangerous extension, prompt the user
// to make them confirm they actually want to save the file.
+#if defined(FULL_SAFE_BROWSING)
if (dialog_type == ui::SelectFileDialog::SELECT_SAVEAS_FILE) {
safe_browsing::DownloadFileType::DangerLevel danger_level =
safe_browsing::FileTypePolicies::GetInstance()->GetFileDangerLevel(
@@ -1254,6 +1265,7 @@ void ChromeFileSystemAccessPermissionContext::
return;
}
}
+#endif
std::move(callback).Run(SensitiveEntryResult::kAllowed);
return;
}
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
@@ -2399,10 +2457,22 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
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
@@ -411,12 +411,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_OFF" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync hasn't been turned on.">
For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google services<ph name="END_LINK">&lt;/link&gt;</ph>
@@ -399,24 +399,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_URL_KEYED_ANONYMIZED_DATA_TITLE" desc="Title for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
Make searches and browsing better
</message>
- <message name="IDS_URL_KEYED_ANONYMIZED_DATA_SUMMARY" desc="Summary for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
- Sends URLs of pages you visit to Google
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_LEGACY" desc="The text for Privacy preferences that is shown after all preference rows.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Sync and Google services<ph name="END_LINK">&lt;/link&gt;</ph>
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_ON" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync has been turned on.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Sync<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>Google services<ph name="END_LINK2">&lt;/link2&gt;</ph>
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_OFF" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync hasn't been turned on.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google services<ph name="END_LINK">&lt;/link&gt;</ph>
- </message>
- <message name="IDS_USAGE_AND_CRASH_REPORTS_TITLE" desc="Title for a preference that enables sending usage statistics and crash reports.">
- Help improve Chrome\u2019s features and performance
- </message>
@@ -2412,7 +2482,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Metrics settings -->
<message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR_LIMIT=32]">
@@ -4846,9 +4840,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4846,9 +4828,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
To use this setting <ph name="BEGIN_LINK">&lt;link&gt;</ph>Make searches and browsing better<ph name="END_LINK">&lt;/link&gt;</ph> must be turned on
</message>
<!-- Usage Stats strings -->
@@ -106,7 +106,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../common/user_scripts_features.h | 34 +
components/user_scripts/common/view_type.cc | 39 +
components/user_scripts/common/view_type.h | 48 ++
components/user_scripts/renderer/BUILD.gn | 67 ++
components/user_scripts/renderer/BUILD.gn | 65 ++
.../renderer/extension_frame_helper.cc | 95 +++
.../renderer/extension_frame_helper.h | 91 ++
.../user_scripts/renderer/injection_host.cc | 12 +
@@ -114,11 +114,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../renderer/resources/greasemonkey_api.js | 82 ++
.../user_scripts_renderer_resources.grd | 14 +
.../user_scripts/renderer/script_context.cc | 215 +++++
.../user_scripts/renderer/script_context.h | 69 ++
.../user_scripts/renderer/script_injection.cc | 343 ++++++++
.../user_scripts/renderer/script_injection.h | 154 ++++
.../renderer/script_injection_callback.cc | 25 +
.../renderer/script_injection_callback.h | 38 +
.../user_scripts/renderer/script_context.h | 68 ++
.../user_scripts/renderer/script_injection.cc | 309 +++++++
.../user_scripts/renderer/script_injection.h | 155 ++++
.../renderer/script_injection_manager.cc | 417 +++++++++
.../renderer/script_injection_manager.h | 101 +++
.../user_scripts/renderer/script_injector.h | 96 +++
@@ -136,9 +134,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../renderer/user_scripts_renderer_client.h | 37 +
.../renderer/web_ui_injection_host.cc | 40 +
.../renderer/web_ui_injection_host.h | 27 +
.../strings/userscripts_strings.grdp | 57 ++
.../strings/userscripts_strings.grdp | 54 ++
tools/gritsettings/resource_ids.spec | 6 +
111 files changed, 9595 insertions(+), 2 deletions(-)
109 files changed, 9493 insertions(+), 2 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
@@ -206,8 +204,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
create mode 100755 components/user_scripts/renderer/script_context.h
create mode 100755 components/user_scripts/renderer/script_injection.cc
create mode 100755 components/user_scripts/renderer/script_injection.h
create mode 100755 components/user_scripts/renderer/script_injection_callback.cc
create mode 100755 components/user_scripts/renderer/script_injection_callback.h
create mode 100755 components/user_scripts/renderer/script_injection_manager.cc
create mode 100755 components/user_scripts/renderer/script_injection_manager.h
create mode 100755 components/user_scripts/renderer/script_injector.h
@@ -413,7 +409,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#else // BUILDFLAG(IS_ANDROID)
#include "chrome/browser/autofill_assistant/password_change/apc_client.h"
#include "chrome/browser/cart/cart_service.h"
@@ -1324,6 +1325,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1323,6 +1324,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
translate::TranslatePrefs::RegisterProfilePrefs(registry);
omnibox::RegisterProfilePrefs(registry);
ZeroSuggestProvider::RegisterProfilePrefs(registry);
@@ -7349,7 +7345,7 @@ diff --git a/components/user_scripts/renderer/BUILD.gn b/components/user_scripts
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/renderer/BUILD.gn
@@ -0,0 +1,67 @@
@@ -0,0 +1,65 @@
+# Copyright 2015 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.
@@ -7383,8 +7379,6 @@ new file mode 100755
+ "injection_host.h",
+ "script_injection_manager.cc",
+ "script_injection_manager.h",
+ "script_injection_callback.cc",
+ "script_injection_callback.h",
+ "script_injection.cc",
+ "script_injection.h",
+ "script_injector.h",
@@ -8006,7 +8000,7 @@ diff --git a/components/user_scripts/renderer/script_context.h b/components/user
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/renderer/script_context.h
@@ -0,0 +1,69 @@
@@ -0,0 +1,68 @@
+// 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.
@@ -8024,7 +8018,6 @@ new file mode 100755
+#include "base/threading/thread_checker.h"
+#include "base/unguessable_token.h"
+#include "../common/script_constants.h"
+#include "script_injection_callback.h"
+#include "url/gurl.h"
+#include "v8/include/v8.h"
+
@@ -8080,7 +8073,7 @@ diff --git a/components/user_scripts/renderer/script_injection.cc b/components/u
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/renderer/script_injection.cc
@@ -0,0 +1,343 @@
@@ -0,0 +1,309 @@
+// 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.
@@ -8101,7 +8094,6 @@ new file mode 100755
+#include "content/public/renderer/render_frame_observer.h"
+#include "content/public/renderer/v8_value_converter.h"
+#include "../common/host_id.h"
+#include "script_injection_callback.h"
+#include "scripts_run_info.h"
+#include "third_party/blink/public/platform/web_isolated_world_info.h"
+#include "third_party/blink/public/platform/web_security_origin.h"
@@ -8159,38 +8151,6 @@ new file mode 100755
+ return id;
+}
+
+// This class manages its own lifetime.
+class TimedScriptInjectionCallback : public ScriptInjectionCallback {
+ public:
+ TimedScriptInjectionCallback(base::WeakPtr<ScriptInjection> injection)
+ : ScriptInjectionCallback(
+ base::BindOnce(&TimedScriptInjectionCallback::OnCompleted,
+ base::Unretained(this))),
+ injection_(injection) {}
+ ~TimedScriptInjectionCallback() override {}
+
+ void OnCompleted(const std::vector<v8::Local<v8::Value>>& result) {
+ if (injection_) {
+ base::TimeTicks timestamp(base::TimeTicks::Now());
+ absl::optional<base::TimeDelta> elapsed;
+ // If the script will never execute (such as if the context is destroyed),
+ // willExecute() will not be called, but OnCompleted() will. Only log a
+ // time for execution if the script, in fact, executed.
+ if (!start_time_.is_null())
+ elapsed = timestamp - start_time_;
+ injection_->OnJsInjectionCompleted(result, elapsed);
+ }
+ }
+
+ void WillExecute() override {
+ start_time_ = base::TimeTicks::Now();
+ }
+
+ private:
+ base::WeakPtr<ScriptInjection> injection_;
+ base::TimeTicks start_time_;
+};
+
+} // namespace
+
+// Watches for the deletion of a RenderFrame, after which is_valid will return
@@ -8339,10 +8299,6 @@ new file mode 100755
+ run_location_, executing_scripts, num_injected_js_scripts);
+ DCHECK(!sources.empty());
+ int world_id = GetIsolatedWorldIdForInstance(injection_host_.get());
+ bool is_user_gesture = injector_->IsUserGesture();
+
+ std::unique_ptr<blink::WebScriptExecutionCallback> callback(
+ new TimedScriptInjectionCallback(weak_ptr_factory_.GetWeakPtr()));
+
+ base::ElapsedTimer exec_timer;
+
@@ -8357,21 +8313,24 @@ new file mode 100755
+ injector_->script_type() == UserScript::CONTENT_SCRIPT &&
+ (run_location_ == UserScript::DOCUMENT_END ||
+ run_location_ == UserScript::DOCUMENT_IDLE);
+ blink::WebLocalFrame::ScriptExecutionType execution_option =
+ blink::mojom::EvaluationTiming execution_option =
+ should_execute_asynchronously
+ ? blink::WebLocalFrame::kAsynchronousBlockingOnload
+ : blink::WebLocalFrame::kSynchronous;
+ ? blink::mojom::EvaluationTiming::kAsynchronous
+ : blink::mojom::EvaluationTiming::kSynchronous;
+
+ render_frame_->GetWebFrame()->RequestExecuteScript(
+ world_id, sources, is_user_gesture,
+ execution_option, callback.release(),
+ world_id, sources, blink::mojom::UserActivationOption::kDoNotActivate,
+ execution_option,
+ blink::mojom::LoadEventBlockingOption::kBlock,
+ base::BindOnce(&ScriptInjection::OnJsInjectionCompleted,
+ weak_ptr_factory_.GetWeakPtr()),
+ blink::BackForwardCacheAware::kPossiblyDisallow,
+ blink::WebLocalFrame::PromiseBehavior::kDontWait);
+}
+ blink::mojom::PromiseResultOption::kDoNotWait);
+ }
+
+void ScriptInjection::OnJsInjectionCompleted(
+ const std::vector<v8::Local<v8::Value>>& results,
+ absl::optional<base::TimeDelta> elapsed) {
+ const blink::WebVector<v8::Local<v8::Value>>& results,
+ base::TimeTicks start_time) {
+ DCHECK(!did_inject_js_);
+
+ bool expects_results = injector_->ExpectsResults();
@@ -8428,7 +8387,7 @@ diff --git a/components/user_scripts/renderer/script_injection.h b/components/us
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/renderer/script_injection.h
@@ -0,0 +1,154 @@
@@ -0,0 +1,155 @@
+// 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.
@@ -8446,6 +8405,7 @@ new file mode 100755
+#include "../common/user_script.h"
+#include "injection_host.h"
+#include "script_injector.h"
+#include "third_party/blink/public/web/web_script_execution_callback.h"
+
+struct HostID;
+
@@ -8518,8 +8478,8 @@ new file mode 100755
+
+ // Called when JS injection for the given frame has been completed or
+ // cancelled.
+ void OnJsInjectionCompleted(const std::vector<v8::Local<v8::Value>>& results,
+ absl::optional<base::TimeDelta> elapsed);
+ void OnJsInjectionCompleted(const blink::WebVector<v8::Local<v8::Value>>& results,
+ base::TimeTicks start_time);
+
+ private:
+ class FrameWatcher;
@@ -8583,79 +8543,6 @@ new file mode 100755
+} // namespace extensions
+
+#endif // USERSCRIPTS_RENDERER_SCRIPT_INJECTION_H_
diff --git a/components/user_scripts/renderer/script_injection_callback.cc b/components/user_scripts/renderer/script_injection_callback.cc
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/renderer/script_injection_callback.cc
@@ -0,0 +1,25 @@
+// Copyright 2015 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 "script_injection_callback.h"
+
+#include "third_party/blink/public/platform/web_vector.h"
+
+namespace user_scripts {
+
+ScriptInjectionCallback::ScriptInjectionCallback(
+ CompleteCallback injection_completed_callback)
+ : injection_completed_callback_(std::move(injection_completed_callback)) {}
+
+ScriptInjectionCallback::~ScriptInjectionCallback() {
+}
+
+void ScriptInjectionCallback::Completed(
+ const blink::WebVector<v8::Local<v8::Value>>& result) {
+ std::vector<v8::Local<v8::Value>> stl_result(result.begin(), result.end());
+ std::move(injection_completed_callback_).Run(stl_result);
+ delete this;
+}
+
+} // namespace extensions
diff --git a/components/user_scripts/renderer/script_injection_callback.h b/components/user_scripts/renderer/script_injection_callback.h
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/renderer/script_injection_callback.h
@@ -0,0 +1,38 @@
+// Copyright 2015 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.
+
+#ifndef USERSCRIPTS_RENDERER_SCRIPT_INJECTION_CALLBACK_H_
+#define USERSCRIPTS_RENDERER_SCRIPT_INJECTION_CALLBACK_H_
+
+#include <vector>
+
+#include "base/callback.h"
+#include "third_party/blink/public/web/web_script_execution_callback.h"
+#include "v8/include/v8.h"
+
+namespace user_scripts {
+
+// A wrapper around a callback to notify a script injection when injection
+// completes.
+// This class manages its own lifetime.
+class ScriptInjectionCallback : public blink::WebScriptExecutionCallback {
+ public:
+ ScriptInjectionCallback(const ScriptInjectionCallback&) = delete;
+ ScriptInjectionCallback& operator=(const ScriptInjectionCallback&) = delete;
+ using CompleteCallback =
+ base::OnceCallback<void(const std::vector<v8::Local<v8::Value>>& result)>;
+
+ explicit ScriptInjectionCallback(
+ CompleteCallback injection_completed_callback);
+ ~ScriptInjectionCallback() override;
+
+ void Completed(const blink::WebVector<v8::Local<v8::Value>>& result) override;
+
+ private:
+ CompleteCallback injection_completed_callback_;
+};
+
+} // namespace extensions
+
+#endif // USERSCRIPTS_RENDERER_SCRIPT_INJECTION_CALLBACK_H_
diff --git a/components/user_scripts/renderer/script_injection_manager.cc b/components/user_scripts/renderer/script_injection_manager.cc
new file mode 100755
--- /dev/null
@@ -10570,7 +10457,7 @@ diff --git a/components/user_scripts/strings/userscripts_strings.grdp b/componen
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/strings/userscripts_strings.grdp
@@ -0,0 +1,57 @@
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+
@@ -10620,9 +10507,6 @@ new file mode 100755
+
+NOTE: only install user scripts that you have verified are secure, user scripts can steal your credentials and data.
+ </message>
+ <message name="IDS_YES" desc=". [CHAR-LIMIT=32]" formatter_data="android_java">
+ Yes
+ </message>
+ <message name="IDS_NO" desc=". [CHAR-LIMIT=32]" formatter_data="android_java">
+ No
+ </message>
+4 -4
View File
@@ -214,11 +214,11 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -609,6 +609,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -610,6 +610,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
browserContextHandle, ContentSettingsType.JAVASCRIPT)
? R.string.website_settings_add_site_description_javascript_block
: R.string.website_settings_add_site_description_javascript_allow;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.JAVASCRIPT_JIT)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT_JIT) {
+ resource = WebsitePreferenceBridge.isCategoryEnabled(
+ browserContextHandle, ContentSettingsType.JAVASCRIPT_JIT)
+ ? R.string.website_settings_add_site_description_javascript_jit_block
@@ -226,11 +226,11 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else if (mCategory.getType() == SiteSettingsCategory.Type.SOUND) {
resource = WebsitePreferenceBridge.isCategoryEnabled(
browserContextHandle, ContentSettingsType.SOUND)
@@ -731,6 +736,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -732,6 +737,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
allowSpecifyingExceptions = true;
} else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT) {
allowSpecifyingExceptions = true;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.JAVASCRIPT_JIT)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT_JIT) {
+ allowSpecifyingExceptions = true;
} else if (mCategory.getType() == SiteSettingsCategory.Type.COOKIES) {
allowSpecifyingExceptions = true;
@@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/settings/SettingsActivity.java | 5 ++
.../StatusIndicatorCoordinator.java | 10 ++++
.../StatusIndicatorSceneLayer.java | 7 ++-
.../browser/toolbar/ToolbarManager.java | 35 +++++++++++--
.../browser/toolbar/ToolbarManager.java | 37 +++++++++++--
.../chrome/browser/ui/BottomContainer.java | 19 +++++++
chrome/browser/about_flags.cc | 5 ++
.../scene_layer/tab_strip_scene_layer.cc | 16 ++++--
@@ -82,7 +82,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../accessibility/AccessibilitySettings.java | 16 ++++++
.../AccessibilitySettingsDelegate.java | 6 +++
.../render_widget_host_view_android.cc | 3 ++
70 files changed, 752 insertions(+), 55 deletions(-)
70 files changed, 753 insertions(+), 56 deletions(-)
diff --git a/cc/base/features.cc b/cc/base/features.cc
--- a/cc/base/features.cc
@@ -1302,7 +1302,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -179,6 +179,9 @@ import org.chromium.url.GURL;
@@ -178,6 +178,9 @@ import org.chromium.url.GURL;
import java.util.List;
@@ -1312,7 +1312,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
/**
* Contains logic for managing the toolbar visual component. This class manages the interactions
* with the rest of the application to ensure the toolbar is always visually up to date.
@@ -662,7 +665,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -661,7 +664,7 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
mEphemeralTabCoordinatorSupplier);
// clang-format off
LocationBarCoordinator locationBarCoordinator = new LocationBarCoordinator(
@@ -1321,7 +1321,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
PrivacyPreferencesManagerImpl.getInstance(), mLocationBarModel,
mActionModeController.getActionModeCallback(),
new WindowDelegate(mActivity.getWindow()), windowAndroid, mActivityTabProvider,
@@ -915,11 +918,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -914,11 +917,13 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
// the height won't be measured by the background image.
if (mControlContainer.getBackground() == null) {
setControlContainerTopMargin(getToolbarExtraYOffset());
@@ -1335,7 +1335,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mControlContainer.removeOnLayoutChangeListener(mLayoutChangeListener);
mLayoutChangeListener = null;
}
@@ -1300,13 +1305,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -1299,13 +1304,25 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
return mLocationBar.getOmniboxStub().isUrlBarFocused();
}
@@ -1363,17 +1363,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mScrimCoordinator, mOmniboxFocusStateSupplier, mBottomSheetController,
mActivityLifecycleDispatcher, mIsWarmOnResumeSupplier, mTabModelSelector,
mTabContentManager, mCompositorViewHolder,
@@ -1316,7 +1333,8 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -1314,8 +1331,9 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
mBottomControlsCoordinatorSupplier.set(
new BottomControlsCoordinator(mActivity, mWindowAndroid, mLayoutManager,
mCompositorViewHolder.getResourceManager(), mBrowserControlsSizer,
mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) root,
- mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) root,
- mTabGroupUi, mOverlayPanelVisibilitySupplier, mConstraintsProxy));
+ mFullscreenManager, (ScrollingBottomViewResourceFrameLayout) bottomRoot,
+ mTabGroupUi, mOverlayPanelVisibilitySupplier, mConstraintsProxy,
+ mTopUiThemeColorProvider, mActivityTabProvider));
}
/**
@@ -2083,6 +2101,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@@ -2067,6 +2085,15 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
private void setControlContainerTopMargin(int margin) {
final ViewGroup.MarginLayoutParams layoutParams =
((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams());
@@ -1597,7 +1599,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
#include "base/metrics/field_trial_params.h"
#include "base/no_destructor.h"
#include "base/strings/string_piece_forward.h"
@@ -257,6 +258,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -256,6 +257,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kKitKatSupported,
&kLensCameraAssistedSearch,
&kLensOnQuickActionSearchWidget,
@@ -1977,7 +1979,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
@@ -1474,6 +1474,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1477,6 +1477,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>
@@ -185,7 +185,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kCloseTabSuggestions,
&kBookmarksExportUseSaf,
&kCriticalPersistedTabData,
@@ -513,6 +514,9 @@ const base::Feature kBulkTabRestore{"BulkTabRestore",
@@ -512,6 +513,9 @@ const base::Feature kBulkTabRestore{"BulkTabRestore",
const base::Feature kConditionalTabStripAndroid{
"ConditionalTabStripAndroid", base::FEATURE_DISABLED_BY_DEFAULT};
@@ -47,7 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../language/settings/LanguageSettings.java | 6 -
.../prefetch/prefetch_service_factory.cc | 16 -
.../browser/password_manager/android/BUILD.gn | 4 -
.../PasswordManagerAndroidBackendUtil.java | 31 +-
.../PasswordManagerAndroidBackendUtil.java | 40 +-
.../PasswordSettingsUpdaterBridge.java | 11 -
...swordSyncControllerDelegateBridgeImpl.java | 7 -
.../push_messaging_service_factory.cc | 8 +-
@@ -95,7 +95,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/signin/public/android/BUILD.gn | 3 -
.../signin/AccountRenameChecker.java | 16 -
components/webauthn/android/BUILD.gn | 10 -
.../webauthn/AuthenticatorImpl.java | 24 -
.../webauthn/AuthenticatorImpl.java | 43 +-
.../webauthn/Fido2ApiCallHelper.java | 23 +-
.../push_messaging/push_messaging_manager.cc | 2 +-
content/public/android/BUILD.gn | 4 -
@@ -109,7 +109,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
third_party/android_deps/BUILD.gn | 539 +-----------------
.../preconditions/javatests/BUILD.gn | 1 -
.../gms/ChromiumPlayServicesAvailability.java | 10 +-
85 files changed, 86 insertions(+), 1984 deletions(-)
85 files changed, 88 insertions(+), 2010 deletions(-)
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
--- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -1089,17 +1089,18 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java
+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java
@@ -10,9 +10,6 @@ import android.app.PendingIntent;
@@ -9,10 +9,6 @@ import android.app.PendingIntent;
import androidx.annotation.Nullable;
import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.api.ApiException;
-import com.google.android.gms.common.api.ResolvableApiException;
-
import org.chromium.base.Log;
import org.chromium.chrome.browser.password_manager.CredentialManagerLauncher.CredentialManagerError;
@@ -29,9 +26,6 @@ class PasswordManagerAndroidBackendUtil {
@@ -29,9 +25,6 @@ class PasswordManagerAndroidBackendUtil {
if (exception instanceof PasswordStoreAndroidBackend.BackendException) {
return ((PasswordStoreAndroidBackend.BackendException) exception).errorCode;
}
@@ -1109,7 +1110,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
return AndroidBackendErrorType.UNCATEGORIZED;
}
@@ -40,17 +34,11 @@ class PasswordManagerAndroidBackendUtil {
@@ -40,44 +33,15 @@ class PasswordManagerAndroidBackendUtil {
return ((PasswordCheckupClientHelper.PasswordCheckBackendException) exception)
.errorCode;
}
@@ -1128,10 +1129,15 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
}
@Nullable
@@ -63,21 +51,4 @@ class PasswordManagerAndroidBackendUtil {
return connectionResult.getErrorCode();
}
static Integer getConnectionResultCode(Exception exception) {
- if (!(exception instanceof ApiException)) return null;
-
- ConnectionResult connectionResult =
- ((ApiException) exception).getStatus().getConnectionResult();
- if (connectionResult == null) return null;
-
- return connectionResult.getErrorCode();
- }
-
- static void handleResolvableApiException(ResolvableApiException exception) {
- if (!usesUnifiedPasswordManagerUI()) return;
@@ -1148,7 +1154,8 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
- } catch (PendingIntent.CanceledException e) {
- Log.e(TAG, "Can not launch error resolution intent", e);
- }
- }
+ return null;
}
}
diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsUpdaterBridge.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsUpdaterBridge.java
--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSettingsUpdaterBridge.java
@@ -3324,7 +3331,35 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java
@@ -136,15 +136,7 @@ public final class AuthenticatorImpl implements Authenticator {
@@ -67,8 +67,6 @@ public final class AuthenticatorImpl implements Authenticator {
private Queue<org.chromium.mojo.bindings.Callbacks.Callback1<Boolean>>
mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue = new LinkedList<>();
- private static Fido2CredentialRequest sFido2CredentialRequestOverrideForTesting;
-
/**
* Builds the Authenticator service implementation.
*
@@ -97,18 +95,6 @@ public final class AuthenticatorImpl implements Authenticator {
mGmsCorePackageVersion = PackageUtils.getPackageVersion(context, GMSCORE_PACKAGE_NAME);
}
- public static void overrideFido2CredentialRequestForTesting(Fido2CredentialRequest request) {
- sFido2CredentialRequestOverrideForTesting = request;
- }
-
- private Fido2CredentialRequest getFido2CredentialRequest() {
- if (sFido2CredentialRequestOverrideForTesting != null) {
- return sFido2CredentialRequestOverrideForTesting;
- }
-
- return new Fido2CredentialRequest(mIntentSender, mSupportLevel);
- }
-
/**
* Called by InternalAuthenticatorAndroid, which facilitates WebAuthn for processes that
* originate from the browser process. Since the request is from the browser process, the
@@ -136,15 +122,7 @@ public final class AuthenticatorImpl implements Authenticator {
mMakeCredentialCallback = callback;
mIsOperationPending = true;
@@ -3340,7 +3375,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
@Override
@@ -157,15 +149,7 @@ public final class AuthenticatorImpl implements Authenticator {
@@ -157,15 +135,7 @@ public final class AuthenticatorImpl implements Authenticator {
mGetAssertionCallback = callback;
mIsOperationPending = true;
@@ -3356,7 +3391,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
@Override
@@ -178,15 +162,7 @@ public final class AuthenticatorImpl implements Authenticator {
@@ -178,15 +148,7 @@ public final class AuthenticatorImpl implements Authenticator {
callback.call(isUvpaa);
};
@@ -3371,6 +3406,18 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- isUvpaa -> onIsUserVerifyingPlatformAuthenticatorAvailableResponse(isUvpaa));
}
@Override
@@ -202,10 +164,7 @@ public final class AuthenticatorImpl implements Authenticator {
// reason, this method will return true but chrome will ignore conditional requests.
// Android surfaces only platform credentials on conditional requests, use IsUVPAA as a
// proxy for availability.
- mIsUserVerifyingPlatformAuthenticatorAvailableCallbackQueue.add(callback);
- getFido2CredentialRequest().handleIsUserVerifyingPlatformAuthenticatorAvailableRequest(
- mRenderFrameHost,
- isUvpaa -> onIsUserVerifyingPlatformAuthenticatorAvailableResponse(isUvpaa));
+ callback.call(false);
}
@Override
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/Fido2ApiCallHelper.java
@@ -31,15 +31,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../privacy/settings/PrivacySettings.java | 9 --
.../chrome/browser/tab/TabHelpers.java | 2 -
.../tabbed_mode/TabbedRootUiCoordinator.java | 5 +-
.../chrome/browser/ui/RootUiCoordinator.java | 28 +-----
.../chrome/browser/ui/RootUiCoordinator.java | 27 +-----
chrome/browser/BUILD.gn | 17 ----
chrome/browser/about_flags.cc | 25 ------
.../flags/android/chrome_feature_list.cc | 1 -
...nfiguration_policy_handler_list_factory.cc | 6 +-
.../strings/android_chrome_strings.grd | 59 -------------
content/browser/browser_interface_binders.cc | 1 -
third_party/blink/public/mojom/BUILD.gn | 2 +-
third_party/blink/public/public_features.gni | 2 +-
35 files changed, 17 insertions(+), 535 deletions(-)
36 files changed, 17 insertions(+), 535 deletions(-)
delete mode 100644 chrome/android/java/res/layout/contextual_search_caption_view.xml
delete mode 100644 chrome/android/java/res/layout/contextual_search_card_icon_view.xml
delete mode 100644 chrome/android/java/res/layout/contextual_search_context_view.xml
@@ -941,15 +942,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
mActionModeControllerCallback = new ToolbarActionModeCallback();
mTabModelSelectorSupplier = tabModelSelectorSupplier;
@@ -593,7 +590,6 @@ public class RootUiCoordinator
if (mBottomSheetController != null) {
if (mBottomSheetObserver != null) {
mBottomSheetController.removeObserver(mBottomSheetObserver);
- }
BottomSheetControllerFactory.detach(mBottomSheetController);
mBottomSheetController.destroy();
}
@@ -997,15 +993,6 @@ public class RootUiCoordinator
@@ -997,15 +994,6 @@ public class RootUiCoordinator
@Override
public boolean canShowAppMenu() {
@@ -965,7 +958,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
// Do not show the menu if we are in find in page view.
if (mFindToolbarManager != null && mFindToolbarManager.isShowing()
&& !DeviceFormFactor.isNonMultiDisplayContextOnTablet(mActivity)) {
@@ -1221,10 +1208,6 @@ public class RootUiCoordinator
@@ -1221,10 +1209,6 @@ public class RootUiCoordinator
public void onStartedShowing(int layoutType, boolean showToolbar) {
if (layoutType != LayoutType.BROWSING
&& layoutType != LayoutType.SIMPLE_ANIMATION) {
@@ -976,7 +969,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
}
if (layoutType == LayoutType.TAB_SWITCHER) {
@@ -1350,10 +1333,6 @@ public class RootUiCoordinator
@@ -1350,10 +1334,6 @@ public class RootUiCoordinator
* cross-feature interaction, e.g. hide other features when this feature is shown.
*/
protected void onFindToolbarShown() {
@@ -987,7 +980,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
}
/**
@@ -1498,9 +1477,6 @@ public class RootUiCoordinator
@@ -1498,9 +1478,6 @@ public class RootUiCoordinator
case SheetState.FULL:
if (!mOpened) {
mOpened = true;
@@ -997,7 +990,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
}
// On visible bottom sheet, hide page zoom dialog
@@ -1508,8 +1484,6 @@ public class RootUiCoordinator
@@ -1508,8 +1485,6 @@ public class RootUiCoordinator
break;
case SheetState.HIDDEN:
mOpened = false;
@@ -1096,6 +1089,17 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
{"explore-sites", flag_descriptions::kExploreSitesName,
flag_descriptions::kExploreSitesDescription, kOsAndroid,
FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kExploreSites,
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -221,7 +221,6 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kContextMenuSearchAndShopWithGoogleLens,
&kContextMenuTranslateWithGoogleLens,
&kContextMenuPopupStyle,
- &kContextualSearchDebug,
&kContextualSearchDelayedIntelligence,
&kContextualSearchDisableOnlineDetection,
&kContextualSearchForceCaption,
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -1122,7 +1126,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
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
@@ -806,33 +806,6 @@ CHAR_LIMIT guidelines:
@@ -809,33 +809,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_PREFS_PRIVACY_SECURITY" desc="Title for the Privacy and Security preferences. [CHAR_LIMIT=32]">
Privacy and security
</message>
@@ -1156,7 +1160,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<message name="IDS_DO_NOT_TRACK_TITLE" desc="Title for 'Do Not Track' preference">
“Do Not Track”
</message>
@@ -4032,38 +4005,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4035,38 +4008,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
Tabs
</message>
@@ -7,42 +7,43 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/android/BUILD.gn | 24 ---
chrome/android/chrome_java_sources.gni | 4 -
chrome/android/features/tab_ui/BUILD.gn | 7 -
.../res/layout/large_message_card_item.xml | 9 --
.../res/layout/large_message_card_item.xml | 9 -
.../java/res/layout/tab_grid_card_item.xml | 8 -
.../tab_management/LargeMessageCardView.java | 30 ----
.../tab_management/LargeMessageCardView.java | 30 ---
.../LargeMessageCardViewBinder.java | 1 -
.../MessageCardProviderMediator.java | 6 +-
.../StoreTrackingUtilities.java | 4 +-
.../TabGridDialogCoordinator.java | 2 +-
.../tab_management/TabGridViewBinder.java | 37 -----
.../tab_management/TabGridViewBinder.java | 37 ----
.../tab_management/TabGroupUiCoordinator.java | 2 +-
.../tab_management/TabListCoordinator.java | 25 +--
.../tasks/tab_management/TabListMediator.java | 153 +-----------------
.../tasks/tab_management/TabListMediator.java | 177 +-----------------
.../tasks/tab_management/TabProperties.java | 5 +-
.../TabSelectionEditorCoordinator.java | 2 +-
.../TabSwitcherCoordinator.java | 102 +-----------
.../tab_management/TabSwitcherMediator.java | 57 -------
.../TabSwitcherCoordinator.java | 102 +---------
.../tab_management/TabSwitcherMediator.java | 57 ------
.../chrome/browser/app/ChromeActivity.java | 17 --
.../AppMenuPropertiesDelegateImpl.java | 46 +-----
.../browser/bookmarks/BookmarkBridge.java | 85 ----------
.../AppMenuPropertiesDelegateImpl.java | 46 +----
.../browser/bookmarks/BookmarkBridge.java | 85 ---------
.../bookmarks/BookmarkItemsAdapter.java | 23 ---
.../browser/bookmarks/BookmarkManager.java | 11 --
.../BookmarkSaveFlowCoordinator.java | 37 +----
.../bookmarks/BookmarkSaveFlowMediator.java | 54 +------
.../BookmarkSaveFlowCoordinator.java | 37 +---
.../bookmarks/BookmarkSaveFlowMediator.java | 54 +-----
.../browser/bookmarks/BookmarkUtils.java | 12 +-
.../init/ProcessInitializationHandler.java | 5 -
.../chrome/browser/tab/TabHelpers.java | 9 --
.../chrome/browser/tab/TabHelpers.java | 9 -
.../tabbed_mode/TabbedRootUiCoordinator.java | 22 ---
.../ToolbarButtonInProductHelpController.java | 26 ---
.../browser/toolbar/ToolbarManager.java | 17 --
.../chrome/browser/ui/RootUiCoordinator.java | 21 ---
.../browser/toolbar/ToolbarManager.java | 33 ----
.../chrome/browser/ui/RootUiCoordinator.java | 20 --
chrome/android/java_sources.gni | 8 -
.../price_tracking/PriceTrackingFeatures.java | 2 +-
.../price_tracking_notification_bridge.cc | 10 -
.../commerce/subscriptions/android/BUILD.gn | 1 -
.../CommerceSubscriptionsService.java | 36 +----
.../CommerceSubscriptionsService.java | 36 +---
.../SubscriptionsManagerImpl.java | 26 +--
chrome/browser/persisted_state_db/BUILD.gn | 1 -
38 files changed, 22 insertions(+), 915 deletions(-)
39 files changed, 22 insertions(+), 964 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
@@ -625,7 +626,45 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
if (areTabsUnchanged(tabsList)) {
if (tabsList == null) return true;
for (int i = 0; i < tabsList.size(); i++) {
@@ -1839,34 +1754,6 @@ class TabListMediator {
@@ -1284,11 +1199,6 @@ class TabListMediator {
void hardCleanup() {
assert !mVisible;
- if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
- && (PriceTrackingFeatures.isPriceDropIphEnabled()
- || PriceTrackingFeatures.isPriceDropBadgeEnabled())) {
- saveSeenPriceDrops();
- }
sViewedTabIds.clear();
}
@@ -1443,25 +1353,6 @@ class TabListMediator {
* @param recyclerView the {@link TabListRecyclerView} to add the listener too.
*/
void registerOnScrolledListener(RecyclerView recyclerView) {
- if (PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
- && (PriceTrackingFeatures.isPriceDropIphEnabled()
- || PriceTrackingFeatures.isPriceDropBadgeEnabled())) {
- mRecyclerView = recyclerView;
- mOnScrollListener = new OnScrollListener() {
- @Override
- public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
- if (!mTabModelSelector.isIncognitoSelected()) {
- for (int i = 0; i < mRecyclerView.getChildCount(); i++) {
- if (mRecyclerView.getLayoutManager().isViewPartiallyVisible(
- mRecyclerView.getChildAt(i), false, true)) {
- addViewedTabId(i);
- }
- }
- }
- }
- };
- mRecyclerView.addOnScrollListener(mOnScrollListener);
- }
}
private void unregisterOnScrolledListener() {
@@ -1839,34 +1730,6 @@ class TabListMediator {
}
private void setupPersistedTabDataFetcherForTab(PseudoTab pseudoTab, int index) {
@@ -660,7 +699,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
}
@VisibleForTesting
@@ -1974,23 +1861,6 @@ class TabListMediator {
@@ -1974,23 +1837,6 @@ class TabListMediator {
return false;
}
@@ -684,7 +723,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
/**
* Update the layout of tab switcher to make it compact. Because now we have messages within the
* tabs like PriceMessage and these messages take up the entire row, some operations like
@@ -2001,7 +1871,7 @@ class TabListMediator {
@@ -2001,7 +1847,7 @@ class TabListMediator {
void updateLayout() {
// Right now we need to update layout only if there is a price welcome message card in tab
// switcher.
@@ -693,7 +732,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
assert mGridLayoutManager != null;
int spanCount = mGridLayoutManager.getSpanCount();
GridLayoutManager.SpanSizeLookup spanSizeLookup = mGridLayoutManager.getSpanSizeLookup();
@@ -2093,25 +1963,4 @@ class TabListMediator {
@@ -2093,25 +1939,4 @@ class TabListMediator {
private boolean isShowingTabsInMRUOrder() {
return TabSwitcherCoordinator.isShowingTabsInMRUOrder(mMode);
}
@@ -1840,15 +1879,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -92,7 +92,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate;
@@ -92,8 +92,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate;
import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.page_info.ChromePageInfo;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingFeatures;
import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
-import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
import org.chromium.chrome.browser.profiles.Profile;
@@ -1967,22 +1966,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
@@ -1967,22 +1965,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
@VisibleForTesting
public void showPriceDropIPH() {
@@ -1871,21 +1911,43 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
}
/**
@@ -1991,21 +1973,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
* viewed in the tab switcher grid.
*/
private void maybeShowPriceDropIPH() {
- if (!PriceTrackingUtilities.isTrackPricesOnTabsEnabled()
- || !PriceTrackingFeatures.isPriceDropIphEnabled() || mTabModelSelector == null
- || mTabModelSelector.isIncognitoSelected()) {
- return;
- }
- TabModel tabModel = mTabModelSelector.getCurrentModel();
- for (int i = 0; i < tabModel.getCount(); i++) {
- ShoppingPersistedTabData.from(tabModel.getTabAt(i), (shoppingPersistedTabData) -> {
- if (shoppingPersistedTabData != null
- && shoppingPersistedTabData.getPriceDrop() != null
- && !shoppingPersistedTabData.getIsCurrentPriceDropSeen()) {
- showPriceDropIPH();
- }
- });
- }
}
private void checkIfNtpLoaded() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -44,10 +44,7 @@ import org.chromium.chrome.browser.app.omnibox.OmniboxPedalDelegateImpl;
@@ -44,10 +44,8 @@ import org.chromium.chrome.browser.app.omnibox.OmniboxPedalDelegateImpl;
import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController;
import org.chromium.chrome.browser.back_press.BackPressManager;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
-import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
import org.chromium.chrome.browser.bookmarks.TabBookmarker;
-import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
-import org.chromium.chrome.browser.commerce.ShoppingFeatures;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager;
@@ -92,7 +89,6 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
@@ -92,7 +90,6 @@ import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceInteractionSource;
import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
@@ -1893,7 +1955,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionController;
@@ -103,7 +99,6 @@ import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin;
@@ -103,7 +100,6 @@ import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin;
import org.chromium.chrome.browser.share.ShareUtils;
import org.chromium.chrome.browser.share.qrcode.QrCodeDialog;
import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager;
@@ -1901,7 +1963,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler;
import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController;
import org.chromium.chrome.browser.tab.RequestDesktopUtils;
@@ -776,17 +771,6 @@ public class RootUiCoordinator
@@ -777,17 +773,6 @@ public class RootUiCoordinator
initMerchantTrustSignals();
initScrollCapture();
@@ -1919,7 +1981,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
new OneShotCallback<>(mProfileSupplier, this::initHistoryClustersCoordinator);
if (RequestDesktopUtils.maybeDefaultEnableGlobalSetting(
@@ -1087,9 +1071,6 @@ public class RootUiCoordinator
@@ -1088,9 +1073,6 @@ public class RootUiCoordinator
mIdentityDiscController = new IdentityDiscController(
mActivity, mActivityLifecycleDispatcher, mProfileSupplier);
@@ -1929,7 +1991,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
ShareButtonController shareButtonController = new ShareButtonController(mActivity,
AppCompatResources.getDrawable(
mActivity, R.drawable.ic_toolbar_share_offset_24dp),
@@ -1135,8 +1116,6 @@ public class RootUiCoordinator
@@ -1136,8 +1118,6 @@ public class RootUiCoordinator
AdaptiveToolbarButtonVariant.SHARE, shareButtonController);
adaptiveToolbarButtonController.addButtonVariant(
AdaptiveToolbarButtonVariant.VOICE, voiceToolbarButtonController);
@@ -1980,6 +2042,38 @@ diff --git a/chrome/browser/commerce/price_tracking/android/java/src/org/chromiu
}
private static boolean isSignedIn() {
diff --git a/chrome/browser/commerce/price_tracking/android/price_tracking_notification_bridge.cc b/chrome/browser/commerce/price_tracking/android/price_tracking_notification_bridge.cc
--- a/chrome/browser/commerce/price_tracking/android/price_tracking_notification_bridge.cc
+++ b/chrome/browser/commerce/price_tracking/android/price_tracking_notification_bridge.cc
@@ -6,7 +6,6 @@
#include "base/android/jni_array.h"
#include "base/memory/ptr_util.h"
-#include "chrome/browser/commerce/price_tracking/android/jni_headers/PriceTrackingNotificationBridge_jni.h"
#include "content/public/browser/browser_context.h"
using OptimizationType = optimization_guide::proto::OptimizationType;
@@ -26,10 +25,6 @@ PriceTrackingNotificationBridge::GetForBrowserContext(
}
PriceTrackingNotificationBridge::PriceTrackingNotificationBridge() {
- JNIEnv* env = base::android::AttachCurrentThread();
- java_obj_.Reset(env, Java_PriceTrackingNotificationBridge_create(
- env, reinterpret_cast<intptr_t>(this))
- .obj());
}
PriceTrackingNotificationBridge::~PriceTrackingNotificationBridge() = default;
@@ -42,9 +37,4 @@ void PriceTrackingNotificationBridge::OnNotificationPayload(
!payload.has_value()) {
return;
}
-
- // Pass the payload to Java.
- JNIEnv* env = base::android::AttachCurrentThread();
- Java_PriceTrackingNotificationBridge_showNotification(
- env, java_obj_, base::android::ToJavaByteArray(env, payload.value()));
}
diff --git a/chrome/browser/commerce/subscriptions/android/BUILD.gn b/chrome/browser/commerce/subscriptions/android/BUILD.gn
--- a/chrome/browser/commerce/subscriptions/android/BUILD.gn
+++ b/chrome/browser/commerce/subscriptions/android/BUILD.gn
@@ -8,7 +8,8 @@ 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_main_extra_parts_segmentation_platform.cc | 4 ++++
1 file changed, 4 insertions(+)
components/segmentation_platform/embedder/BUILD.gn | 1 -
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.cc b/chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.cc
--- a/chrome/browser/segmentation_platform/chrome_browser_main_extra_parts_segmentation_platform.cc
@@ -41,5 +42,16 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part
+ if ((true)) return;
segmentation_platform::UkmDatabaseClient::GetInstance().PostMessageLoopRun();
}
diff --git a/components/segmentation_platform/embedder/BUILD.gn b/components/segmentation_platform/embedder/BUILD.gn
--- a/components/segmentation_platform/embedder/BUILD.gn
+++ b/components/segmentation_platform/embedder/BUILD.gn
@@ -21,7 +21,6 @@ source_set("embedder") {
"//components/optimization_guide/core",
"//components/optimization_guide/core:features",
"//components/segmentation_platform/internal",
- "//components/segmentation_platform/internal:optimization_guide_segmentation_handler",
"//components/segmentation_platform/internal/proto",
"//components/segmentation_platform/public",
"//url",
--
2.25.1
@@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../identity_disc/IdentityDiscController.java | 104 +-------
.../init/ChromeBrowserInitializer.java | 2 -
.../init/ProcessInitializationHandler.java | 9 -
.../chrome/browser/ntp/RecentTabsManager.java | 81 +-----
.../chrome/browser/ntp/RecentTabsManager.java | 109 +--------
.../browser/ntp/RecentTabsRowAdapter.java | 30 +--
.../browser/ntp/search/SearchBoxMediator.java | 1 -
.../browser/omaha/RequestGenerator.java | 3 -
@@ -90,7 +90,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/search_resumption/BUILD.gn | 4 -
.../SearchResumptionModuleMediator.java | 37 +--
.../SearchResumptionModuleUtils.java | 12 -
.../ManageAccountDevicesLinkView.java | 24 +-
.../ManageAccountDevicesLinkView.java | 26 +-
.../SendTabToSelfCoordinator.java | 151 ------------
.../account_consistency_mode_manager.cc | 7 +-
.../signin/identity_manager_factory.cc | 5 -
@@ -107,7 +107,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../ui/signin/SyncConsentFragmentBase.java | 53 +---
.../WebSigninAccountPickerDelegate.java | 23 --
.../ui/signin/fre/SigninFirstRunMediator.java | 71 +-----
.../strings/android_chrome_strings.grd | 18 --
.../strings/android_chrome_strings.grd | 3 -
.../core/browser/leak_detection_delegate.cc | 2 +-
.../core/browser/password_form_manager.cc | 34 +--
.../browser/password_manager_client_helper.cc | 43 +---
@@ -119,7 +119,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../ProfileOAuth2TokenServiceDelegate.java | 52 ----
.../net/HttpNegotiateAuthenticator.java | 88 +------
.../chromoting/base/OAuthTokenFetcher.java | 2 -
100 files changed, 92 insertions(+), 2526 deletions(-)
100 files changed, 91 insertions(+), 2542 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
@@ -2413,10 +2413,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
}
/**
@@ -425,42 +387,16 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
@@ -418,80 +380,12 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
return mPrefs.getSyncPromoCollapsed();
}
private @SyncPromoState int calculatePromoState() {
- /** Returns the current promo state. */
- @SyncPromoState
- int getPromoState() {
- return mPromoState;
- }
-
- private @SyncPromoState int calculatePromoState() {
- if (!mSignInManager.getIdentityManager().hasPrimaryAccount(ConsentLevel.SYNC)) {
- if (!mSignInManager.isSyncOptInAllowed()) {
- return SyncPromoState.NO_PROMO;
@@ -2431,10 +2438,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
- return SyncPromoState.NO_PROMO;
- }
- return SyncPromoState.PROMO_FOR_SYNC_TURNED_OFF_STATE;
+ return SyncPromoState.NO_PROMO;
}
private void updatePromoState() {
- }
-
- private void updatePromoState() {
- final @SyncPromoState int newState = calculatePromoState();
- if (newState == mPromoState) return;
-
@@ -2447,17 +2453,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
- mSyncPromoController.increasePromoShowCount();
- }
- mPromoState = newState;
}
/**
* Sets up the sync promo view.
*/
void setUpSyncPromoView(PersonalizedSigninPromoView view) {
- }
-
- /**
- * Sets up the sync promo view.
- */
- void setUpSyncPromoView(PersonalizedSigninPromoView view) {
- mSyncPromoController.setUpSyncPromoView(mProfileDataCache, view, null);
}
// SignInStateObserver implementation.
@@ -480,18 +416,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
- }
-
- // SignInStateObserver implementation.
- @Override
- public void onSignedIn() {
- update();
- }
-
- @Override
- public void onSignedOut() {
- update();
- }
-
// AccountsChangeObserver implementation.
@Override
public void onAccountsChanged() {
update();
}
@@ -2476,7 +2494,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
private void onUpdateDone() {
if (mUpdatedCallback != null) {
mUpdatedCallback.onUpdated();
@@ -499,7 +423,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
@@ -499,7 +393,6 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
}
private void update() {
@@ -3913,7 +3931,7 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
import org.chromium.components.browser_ui.widget.RoundedCornerImageView;
import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.components.signin.base.AccountInfo;
@@ -73,25 +72,11 @@ public class ManageAccountDevicesLinkView extends LinearLayout {
@@ -73,32 +72,16 @@ public class ManageAccountDevicesLinkView extends LinearLayout {
LayoutInflater.from(getContext())
.inflate(R.layout.send_tab_to_self_manage_devices_link, this);
@@ -3940,7 +3958,14 @@ diff --git a/chrome/browser/share/android/java/src/org/chromium/chrome/browser/s
new SpanApplier.SpanInfo("<link>", "</link>",
new NoUnderlineClickableSpan(
getContext(), this::openManageDevicesPageInNewTab)));
@@ -116,11 +101,4 @@ public class ManageAccountDevicesLinkView extends LinearLayout {
linkView.setText(linkText);
linkView.setMovementMethod(LinkMovementMethod.getInstance());
- } else {
- linkView.setText(account.getEmail());
}
}
@@ -116,11 +99,4 @@ public class ManageAccountDevicesLinkView extends LinearLayout {
IntentUtils.addTrustedIntentExtras(intent);
getContext().startActivity(intent);
}
@@ -4722,28 +4747,6 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<message name="IDS_SIGNIN_PREF_SUMMARY" desc="Summary for the entry in Settings to sign in to Chrome, explaining benefits of signing in.">
Sync and personalize across devices
</message>
@@ -396,21 +393,6 @@ CHAR_LIMIT guidelines:
<message name="IDS_PRELOAD_PAGES_EXTENDED_PRELOADING_BULLET_FOUR" desc="Fourth bullet point under the Preload Pages extended preloading mode. Informs the user about what the extended preloading setting does.">
Because the preloaded pages are encrypted, Google will not learn anything about the preloaded page content. Google servers will learn which sites are privately preloaded. This information is only used to preload the pages, and is not linked to other information from your Google Account.
</message>
- <message name="IDS_URL_KEYED_ANONYMIZED_DATA_TITLE" desc="Title for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
- Make searches and browsing better
- </message>
- <message name="IDS_URL_KEYED_ANONYMIZED_DATA_SUMMARY" desc="Summary for a checkbox in Settings that controls non-personalized URL collection and informs the user about the data shared by this feature.">
- Sends URLs of pages you visit to Google
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_LEGACY" desc="The text for Privacy preferences that is shown after all preference rows.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Sync and Google services<ph name="END_LINK">&lt;/link&gt;</ph>
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_ON" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync has been turned on.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK1">&lt;link1&gt;</ph>Sync<ph name="END_LINK1">&lt;/link1&gt;</ph> and <ph name="BEGIN_LINK2">&lt;link2&gt;</ph>Google services<ph name="END_LINK2">&lt;/link2&gt;</ph>
- </message>
- <message name="IDS_PRIVACY_SYNC_AND_SERVICES_LINK_SYNC_OFF" desc="The text for Privacy preferences that is shown after all preference rows. This version of the text is shown if Sync hasn't been turned on.">
- For more settings that relate to privacy, security, and data collection, see <ph name="BEGIN_LINK">&lt;link&gt;</ph>Google services<ph name="END_LINK">&lt;/link&gt;</ph>
- </message>
<!-- Metrics settings -->
<message name="IDS_PREFS_METRICS_SETTINGS" desc="Title for the page that allows the user to control how much usage data Chrome uploads. [CHAR_LIMIT=32]">
diff --git a/components/password_manager/core/browser/leak_detection_delegate.cc b/components/password_manager/core/browser/leak_detection_delegate.cc
--- a/components/password_manager/core/browser/leak_detection_delegate.cc
+++ b/components/password_manager/core/browser/leak_detection_delegate.cc
@@ -481,8 +481,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.page_info.ChromePageInfo;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.price_tracking.PriceTrackingUtilities;
@@ -2051,11 +2050,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
@@ -2035,11 +2034,6 @@ public class ToolbarManager implements UrlFocusChangeListener, ThemeColorObserve
return mLocationBar.getOmniboxStub();
}
@@ -497,7 +497,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -85,8 +85,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer;
@@ -86,8 +86,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer;
import org.chromium.chrome.browser.omnibox.OmniboxFocusReason;
import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxPedalDelegate;
@@ -506,7 +506,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.profiles.Profile;
@@ -266,7 +264,6 @@ public class RootUiCoordinator
@@ -267,7 +265,6 @@ public class RootUiCoordinator
protected OneshotSupplierImpl<Boolean> mPromoShownOneshotSupplier = new OneshotSupplierImpl<>();
protected Supplier<Tab> mStartSurfaceParentTabSupplier;
@Nullable
@@ -514,7 +514,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
private MediaCaptureOverlayController mCaptureController;
private @Nullable ScrollCaptureManager mScrollCaptureManager;
protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher;
@@ -541,9 +538,6 @@ public class RootUiCoordinator
@@ -542,9 +539,6 @@ public class RootUiCoordinator
}
if (mToolbarManager != null) {
@@ -524,7 +524,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
mToolbarManager.destroy();
mToolbarManager = null;
}
@@ -1081,19 +1075,11 @@ public class RootUiCoordinator
@@ -1083,19 +1077,11 @@ public class RootUiCoordinator
new VoiceToolbarButtonController.VoiceSearchDelegate() {
@Override
public boolean isVoiceSearchEnabled() {
@@ -545,7 +545,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
}
};
VoiceToolbarButtonController voiceToolbarButtonController =
@@ -1143,13 +1129,6 @@ public class RootUiCoordinator
@@ -1145,13 +1131,6 @@ public class RootUiCoordinator
if (!mSupportsAppMenuSupplier.getAsBoolean()) {
mToolbarManager.getToolbar().disableMenuButton();
}
@@ -78,7 +78,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -273,6 +273,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -272,6 +272,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kReachedCodeProfiler,
&kReaderModeInCCT,
&kReengagementNotification,
@@ -86,7 +86,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kRelatedSearches,
&kRelatedSearchesAlternateUx,
&kRelatedSearchesInBar,
@@ -806,6 +807,9 @@ const base::Feature kRequestDesktopSiteDefaults{
@@ -805,6 +806,9 @@ const base::Feature kRequestDesktopSiteDefaults{
const base::Feature kSafeModeForCachedFlags{"SafeModeForCachedFlags",
base::FEATURE_DISABLED_BY_DEFAULT};
@@ -356,7 +356,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -249,6 +249,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -248,6 +248,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kIncognitoReauthenticationForAndroid,
&kIncognitoScreenshot,
&kInfobarScrollOptimization,
@@ -364,7 +364,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kInstanceSwitcher,
&kInstantStart,
&kIsVoiceSearchEnabledCache,
@@ -748,6 +749,9 @@ const base::Feature kNotificationPermissionVariant{
@@ -747,6 +748,9 @@ const base::Feature kNotificationPermissionVariant{
const base::Feature kInstanceSwitcher{"InstanceSwitcher",
base::FEATURE_ENABLED_BY_DEFAULT};
@@ -183,7 +183,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -262,6 +262,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -261,6 +261,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kNewTabPageTilesTitleWrapAround,
&kNewWindowAppMenu,
&kNotificationPermissionVariant,
@@ -191,7 +191,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
&kPageAnnotationsService,
&kInlineUpdateFlow,
&kBookmarksImprovedSaveFlow,
@@ -764,6 +765,9 @@ const base::Feature kInstanceSwitcher{"InstanceSwitcher",
@@ -763,6 +764,9 @@ const base::Feature kInstanceSwitcher{"InstanceSwitcher",
const base::Feature kSimplifiedNTP{"SimplifiedNTP",
base::FEATURE_ENABLED_BY_DEFAULT};
@@ -198,20 +198,20 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -600,6 +600,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -601,6 +601,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
int resource = 0;
if (mCategory.getType() == SiteSettingsCategory.Type.AUTOMATIC_DOWNLOADS) {
resource = R.string.website_settings_add_site_description_automatic_downloads;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.AUTOPLAY)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.AUTOPLAY) {
+ resource = R.string.website_settings_add_site_description_autoplay;
} else if (mCategory.getType() == SiteSettingsCategory.Type.BACKGROUND_SYNC) {
resource = R.string.website_settings_add_site_description_background_sync;
} else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT) {
@@ -725,6 +727,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -726,6 +728,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
boolean allowSpecifyingExceptions = false;
if (mCategory.getType() == SiteSettingsCategory.Type.SOUND) {
allowSpecifyingExceptions = true;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.AUTOPLAY)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.AUTOPLAY) {
+ allowSpecifyingExceptions = true;
} else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT) {
allowSpecifyingExceptions = true;
+5 -5
View File
@@ -190,20 +190,20 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java
@@ -619,6 +619,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -620,6 +620,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
browserContextHandle, ContentSettingsType.SOUND)
? R.string.website_settings_add_site_description_sound_block
: R.string.website_settings_add_site_description_sound_allow;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.IMAGES)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.IMAGES) {
+ resource = R.string.website_settings_add_site_description_images;
} else if (mCategory.getType() == SiteSettingsCategory.Type.COOKIES) {
if (mRequiresFourStateSetting) {
resource = cookieSettingsExceptionShouldBlock()
@@ -738,6 +740,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -739,6 +741,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
allowSpecifyingExceptions = true;
} else if (mCategory.showSites(SiteSettingsCategory.Type.JAVASCRIPT_JIT)) {
} else if (mCategory.getType() == SiteSettingsCategory.Type.JAVASCRIPT_JIT) {
allowSpecifyingExceptions = true;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.IMAGES)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.IMAGES) {
+ allowSpecifyingExceptions = true;
} else if (mCategory.getType() == SiteSettingsCategory.Type.COOKIES) {
allowSpecifyingExceptions = true;
+26 -25
View File
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../res/xml/site_settings_preferences.xml | 4 +
.../java/res/xml/website_preferences.xml | 9 +
.../ContentSettingsResources.java | 35 +++-
.../site_settings/SingleCategorySettings.java | 77 ++++++-
.../site_settings/SingleCategorySettings.java | 78 ++++++-
.../site_settings/SingleWebsiteSettings.java | 8 +-
.../site_settings/SiteSettings.java | 2 +-
.../site_settings/SiteSettingsCategory.java | 9 +-
@@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../renderer/content_settings_agent_impl.cc | 83 ++++++++
.../renderer/content_settings_agent_impl.h | 11 +
.../WebLayerSiteSettingsDelegate.java | 3 +
35 files changed, 701 insertions(+), 15 deletions(-)
35 files changed, 702 insertions(+), 15 deletions(-)
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml
create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml
create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java
@@ -353,41 +353,42 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
// Keys for Allowed/Blocked preference groups/headers.
private static final String ALLOWED_GROUP = "allowed_group";
@@ -231,7 +237,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -231,7 +237,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
Integer contentSetting = website.site().getContentSetting(
browserContextHandle, mCategory.getContentSettingsType());
if (contentSetting != null) {
- return ContentSettingValues.BLOCK == contentSetting;
+ if (i == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)
+ return ContentSettingValues.ALLOW != contentSetting;
+ else
+ return ContentSettingValues.BLOCK == contentSetting;
+ if (mCategory.getContentSettingsType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
+ return ContentSettingValues.ALLOW != contentSetting;
+ } else {
+ return ContentSettingValues.BLOCK == contentSetting;
+ }
}
return false;
}
@@ -401,7 +410,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -401,7 +411,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
if (queryHasChanged) getInfoForOrigins();
});
- if (getSiteSettingsDelegate().isHelpAndFeedbackEnabled()) {
+ if (getSiteSettingsDelegate().isHelpAndFeedbackEnabled() ||
+ mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) ) {
+ mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
MenuItem help = menu.add(
Menu.NONE, R.id.menu_id_site_settings_help, Menu.NONE, R.string.menu_help);
help.setIcon(VectorDrawableCompat.create(
@@ -412,7 +422,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -412,7 +423,10 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.menu_id_site_settings_help) {
- if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) {
+ if (mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) {
+ if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
+ getSiteSettingsDelegate()
+ .launchTimeZoneOverrideHelpAndFeedbackActivity(getActivity());
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) {
getSiteSettingsDelegate().launchProtectedContentHelpAndFeedbackActivity(
getActivity());
} else {
@@ -507,6 +520,12 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -507,6 +521,12 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
WebsitePreferenceBridge.setDefaultContentSetting(
browserContextHandle, mCategory.getContentSettingsType(), setting);
getInfoForOrigins();
@@ -400,16 +401,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else if (FOUR_STATE_COOKIE_TOGGLE_KEY.equals(preference.getKey())) {
setCookieSettingsPreference((CookieSettingsState) newValue);
getInfoForOrigins();
@@ -613,6 +632,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -613,6 +633,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
browserContextHandle, ContentSettingsType.FEDERATED_IDENTITY_API)
? R.string.website_settings_add_site_description_federated_identity_block
: R.string.website_settings_add_site_description_federated_identity_allow;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
+ resource = R.string.website_settings_category_timezone_override_allowed;
}
assert resource > 0;
return getString(resource);
@@ -653,6 +674,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -653,6 +675,13 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
if (mCategory.getType() == SiteSettingsCategory.Type.COOKIES && mRequiresFourStateSetting) {
setting = cookieSettingsExceptionShouldBlock() ? ContentSettingValues.BLOCK
: ContentSettingValues.ALLOW;
@@ -423,16 +424,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else {
setting = (WebsitePreferenceBridge.isCategoryEnabled(
browserContextHandle, mCategory.getContentSettingsType()))
@@ -711,6 +739,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -711,6 +740,8 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
allowSpecifyingExceptions = true;
} else if (mCategory.getType() == SiteSettingsCategory.Type.FEDERATED_IDENTITY_API) {
allowSpecifyingExceptions = true;
+ } else if (mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) {
+ } else if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
+ allowSpecifyingExceptions = true;
}
if (allowSpecifyingExceptions) {
getPreferenceScreen().addPreference(new AddExceptionPreference(getStyledContext(),
@@ -882,7 +912,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -882,7 +913,14 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
TriStateSiteSettingsPreference triStateToggle =
(TriStateSiteSettingsPreference) getPreferenceScreen().findPreference(
TRI_STATE_TOGGLE_KEY);
@@ -448,7 +449,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else if (mRequiresFourStateSetting) {
FourStateCookieSettingsPreference fourStateCookieToggle =
(FourStateCookieSettingsPreference) getPreferenceScreen().findPreference(
@@ -911,6 +948,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -911,6 +949,9 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
(FourStateCookieSettingsPreference) screen.findPreference(
FOUR_STATE_COOKIE_TOGGLE_KEY);
// TODO(crbug.com/1104836): Remove the old third-party cookie blocking UI
@@ -458,12 +459,12 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
mNotificationsQuietUiPref = screen.findPreference(NOTIFICATIONS_QUIET_UI_TOGGLE_KEY);
mDesktopSitePeripheralPref = screen.findPreference(DESKTOP_SITE_PERIPHERAL_TOGGLE_KEY);
@@ -924,20 +964,32 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -924,20 +965,32 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
if (mRequiresTriStateSetting) {
screen.removePreference(binaryToggle);
screen.removePreference(fourStateCookieToggle);
- configureTriStateToggle(triStateToggle, contentType);
+ if (mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE)) {
+ if (mCategory.getType() == SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
+ screen.removePreference(triStateToggle);
+ configureTimeOverrideStateToggle(timeOverrideStatePreference);
+ }
@@ -486,13 +487,13 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (mCategory.getType() != SiteSettingsCategory.Type.COOKIES) {
screen.removePreference(screen.findPreference(COOKIE_INFO_TEXT_KEY));
}
+ if (!(mCategory.showSites(SiteSettingsCategory.Type.TIMEZONE_OVERRIDE))) {
+ if (mCategory.getType() != SiteSettingsCategory.Type.TIMEZONE_OVERRIDE) {
+ screen.removePreference(screen.findPreference(TIMEOVERRIDE_INFO_TEXT));
+ }
if (permissionBlockedByOs) {
maybeShowOsWarning(screen);
@@ -1067,6 +1119,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -1067,6 +1120,15 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
triStateToggle.initialize(setting, descriptionIds);
}
@@ -508,7 +509,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) {
binaryToggle.setOnPreferenceChangeListener(this);
binaryToggle.setTitle(ContentSettingsResources.getTitle(contentType));
@@ -1168,9 +1229,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
@@ -1168,9 +1230,11 @@ public class SingleCategorySettings extends SiteSettingsPreferenceFragment
CharSequence[] descriptions = new String[2];
descriptions[0] =
@@ -1046,7 +1047,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
+ ValidSettings(CONTENT_SETTING_ALLOW, // use system time
+ CONTENT_SETTING_ASK, // custom timezone, default UTC
+ CONTENT_SETTING_BLOCK), // random
+ WebsiteSettingsInfo::SINGLE_ORIGIN_WITH_EMBEDDED_EXCEPTIONS_SCOPE,
+ WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
+ WebsiteSettingsRegistry::PLATFORM_ANDROID,
+ ContentSettingsInfo::INHERIT_IN_INCOGNITO,
+ ContentSettingsInfo::PERSISTENT,