Compare commits

...
Author SHA1 Message Date
csagan5 0f2a48662d Release 71.0.3578.76 2018-12-04 08:46:51 +01:00
csagan5 ac44ac738f Release 71.0.3578.72 2018-11-27 09:42:36 +01:00
csagan5 02fad5a01f Updated CHANGELOG for release 70.0.3538.107 2018-11-17 09:38:39 +01:00
csagan5 b1c0e45b66 Release 70.0.3538.107 2018-11-16 21:18:39 +01:00
CarlandGitHub 1397b5e86a Update wording 2018-11-13 08:44:30 +01:00
csagan5 171c2f224a Mention removed contacts permission 2018-11-11 16:47:19 +01:00
csagan5 628ddf9b60 Release 70.0.3538.102 2018-11-11 16:44:36 +01:00
csagan5 8c3fcd08de Add F.A.Q. about de-googling 2018-11-09 22:10:36 +01:00
csagan5 375ac9bf8b Release 70.0.3538.95 2018-11-06 08:33:58 +01:00
csagan5 e1b9f9d68a Release 70.0.3538.95 2018-11-05 22:33:05 +01:00
csagan5 7f7fc80c7a Release 70.0.3538.87 2018-11-03 23:22:55 +01:00
csagan5 aa96e7ce43 Release 70.0.3538.83 2018-10-30 16:13:18 +01:00
csagan5 5c9d69ebcc Mention improvement for background video playback 2018-10-27 20:18:17 +02:00
80 changed files with 4643 additions and 1770 deletions
+2 -2
View File
@@ -5,7 +5,7 @@ about: Suggest a privacy-related idea for this project
---
**Is your feature request related to privacy?**
Only privacy-related feature requests are considered.
Features that are not related to privacy are unlikely to be considered.
**Is there a patch available for this feature somewhere?**
...
@@ -14,4 +14,4 @@ Only privacy-related feature requests are considered.
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
A clear and concise description of any alternative solutions or features you have considered.
+35
View File
@@ -1,3 +1,38 @@
# 71.0.3578.76
# 71.0.3578.72
* add flag to disable IPv6 probes
# 70.0.3538.107
* added adaptive icon (fixes https://github.com/bromite/bromite/issues/181)
* do not change randomisation at each call (fixes https://github.com/bromite/bromite/issues/177)
* do not enable #enable-scroll-anchor-serialization by default
# 70.0.3538.102
* do not grant notifications to default search engine
* remove all promos from bookmark manager page
* re-introduced various patches to eradicate binary blob dependencies (only Cast left)
* remove contacts picker permission
# 70.0.3538.95
* fix crash on bookmark edit activity (fixes https://github.com/bromite/bromite/issues/172)
* fix slow chrome://flags (fixes https://github.com/bromite/bromite/issues/173)
* enable TLS 1.3 final support by default (fixes https://github.com/bromite/bromite/issues/174)
* dropped some patches related to GCM/GMS on suspicion of being related to random crashes
# 70.0.3538.87
* enable history requirement of user gesture (fixes https://github.com/bromite/bromite/issues/171)
* enable serialization of scroll position changes while loading (fixes https://github.com/bromite/bromite/issues/171)
* remove passwords keyboard accessory option (fixes https://github.com/bromite/bromite/issues/171)
* some improvements to bookmark import/export interaction
* add flag to disable orientation API, disabled by default
* disable device motion API by default (fixes https://github.com/bromite/bromite/issues/171)
# 70.0.3538.83
* fix keep session cookies option showing on all site settings views
* fix blank site settings entry showing (fixes https://github.com/bromite/bromite/issues/166)
* offer builtin autocomplete for chrome://flags quick access
# 70.0.3538.80
* add flag to disable video resume functionality, allowing to not pause video playback on tab switch (fixes https://github.com/bromite/bromite/issues/108)
* prevent "are you there" prompts from appearing when playing videos
+6 -1
View File
@@ -38,6 +38,11 @@ Additionally, these features would not be privacy-friendly.
## Does Bromite require root?
No.
## Is Bromite de-googled?
Yes, although this has not been verified (and hardly can be) under all situations; if you were to find connections to cloud-based services please report them via the issue tracker.
Projects which follow a strict approach on this are [Iridium](https://iridiumbrowser.de/) and [Inox patchset](https://github.com/gcarq/inox-patchset).
## What is the SystemWebView?
It is the core component of Android for all web page visualizations. For example when you access a new wifi network and need to activate it, that is using the SystemWebView. If you do not know what it is then you do not need to install it.
@@ -81,7 +86,7 @@ Yes, since version 69. While the desktop version of Chromium has an option to di
## Features not related to privacy
* import/export bookmarks
* allow playing videos in background
* allow playing videos in background tabs and disable pause on switching tabs
* all codecs included (proprietary, open H.264 etc.)
* built with official speed optimizations
+1955 -238
View File
File diff suppressed because one or more lines are too long
@@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
return;
}
-
- Document* document = ToDocument(GetExecutionContext());
- Document* document = To<Document>(GetExecutionContext());
- DCHECK(document);
- if (document->IsContextPaused() || document->IsContextDestroyed())
- return;
@@ -10,7 +10,7 @@ Out with all those tracking cookies!
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -119,7 +119,7 @@ void ContentSettingsRegistry::Init() {
@@ -118,7 +118,7 @@ void ContentSettingsRegistry::Init() {
// WARNING: The string names of the permissions passed in below are used to
// generate preference names and should never be changed!
@@ -22,7 +22,7 @@ References: https://github.com/iridium-browser/iridium-browser/issues/33
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
--- a/chrome/browser/signin/signin_promo.cc
+++ b/chrome/browser/signin/signin_promo.cc
@@ -140,6 +140,7 @@ const char kSigninPromoLandingURLSuccessPage[] = "success.html";
@@ -130,6 +130,7 @@ const char kSigninPromoLandingURLSuccessPage[] = "success.html";
bool ShouldShowPromoAtStartup(Profile* profile, bool is_new_profile) {
DCHECK(profile);
@@ -10,7 +10,7 @@ Disable all omissions (already shadowed by first flag)
diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
--- a/components/url_formatter/url_formatter.cc
+++ b/components/url_formatter/url_formatter.cc
@@ -412,12 +412,12 @@ IDNConversionStatus IDNToUnicodeOneComponent(const base::char16* comp,
@@ -410,12 +410,12 @@ IDNConversionStatus IDNToUnicodeOneComponent(const base::char16* comp,
} // namespace
const FormatUrlType kFormatUrlOmitNothing = 0;
@@ -36,7 +36,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -1041,7 +1041,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
@@ -1055,7 +1055,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
void ChromeContentBrowserClient::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@@ -96,7 +96,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
diff --git a/chrome/browser/signin/signin_promo.cc b/chrome/browser/signin/signin_promo.cc
--- a/chrome/browser/signin/signin_promo.cc
+++ b/chrome/browser/signin/signin_promo.cc
@@ -385,8 +385,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
@@ -353,8 +353,8 @@ void ForceWebBasedSigninFlowForTesting(bool force) {
void RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterIntegerPref(prefs::kSignInPromoStartupCount, 0);
@@ -139,7 +139,7 @@ diff --git a/chrome/browser/ui/navigation_correction_tab_observer.cc b/chrome/br
diff --git a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
--- a/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
+++ b/chrome/browser/ui/webui/local_discovery/local_discovery_ui.cc
@@ -143,10 +143,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
@@ -127,10 +127,6 @@ void LocalDiscoveryUI::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kLocalDiscoveryNotificationsEnabled,
@@ -165,7 +165,7 @@ diff --git a/chrome/service/cloud_print/connector_settings.cc b/chrome/service/c
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -288,10 +288,7 @@ bool AutofillManager::ShouldShowCreditCardSigninPromo(
@@ -290,10 +290,7 @@ bool AutofillManager::ShouldShowCreditCardSigninPromo(
bool AutofillManager::ShouldParseForms(const std::vector<FormData>& forms,
const base::TimeTicks timestamp) {
bool enabled = IsAutofillEnabled();
@@ -180,7 +180,7 @@ diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/a
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
@@ -75,10 +75,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -91,10 +91,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
prefs::kAutofillBillingCustomerNumber, 0.0,
user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF);
registry->RegisterBooleanPref(
@@ -193,7 +193,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterIntegerPref(
prefs::kAutofillLastVersionDeduped, 0,
@@ -87,7 +87,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -103,7 +103,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
prefs::kAutofillLastVersionDisusedAddressesDeleted, 0,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(
@@ -205,7 +205,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc
--- a/components/bookmarks/browser/bookmark_utils.cc
+++ b/components/bookmarks/browser/bookmark_utils.cc
@@ -443,12 +443,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
@@ -441,12 +441,12 @@ void GetBookmarksMatchingProperties(BookmarkModel* model,
void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kShowBookmarkBar,
@@ -223,7 +223,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar
diff --git a/components/safe_browsing/common/safe_browsing_prefs.cc b/components/safe_browsing/common/safe_browsing_prefs.cc
--- a/components/safe_browsing/common/safe_browsing_prefs.cc
+++ b/components/safe_browsing/common/safe_browsing_prefs.cc
@@ -282,9 +282,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -229,9 +229,9 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
registry->RegisterBooleanPref(
@@ -238,7 +238,7 @@ diff --git a/components/safe_browsing/common/safe_browsing_prefs.cc b/components
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
--- a/extensions/common/extension.cc
+++ b/extensions/common/extension.cc
@@ -366,14 +366,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
@@ -367,14 +367,6 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
if (is_theme())
return false;
@@ -9,7 +9,7 @@ Subject: Do not store passwords by default
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
@@ -266,10 +266,10 @@ bool IsThereVisiblePasswordField(const FormData& form) {
@@ -363,10 +363,10 @@ void RecordParsingOnSavingDifference(
void PasswordManager::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
@@ -9,8 +9,8 @@ Subject: Disable NTP remote suggestions by default
diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
--- a/components/ntp_snippets/features.cc
+++ b/components/ntp_snippets/features.cc
@@ -39,13 +39,13 @@ const base::Feature kArticleSuggestionsExpandableHeader{
"NTPArticleSuggestionsExpandableHeader", base::FEATURE_ENABLED_BY_DEFAULT};
@@ -35,13 +35,13 @@ const base::Feature* const kAllFeatures[] = {
&kRemoteSuggestionsBackendFeature};
const base::Feature kArticleSuggestionsFeature{
- "NTPArticleSuggestions", base::FEATURE_ENABLED_BY_DEFAULT};
+2 -2
View File
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/DataReductionProxySettings.java
@@ -153,6 +153,7 @@ public class DataReductionProxySettings {
@@ -131,6 +131,7 @@ public class DataReductionProxySettings {
// DataReductionProxySettings is a singleton that lives forever and there's no clean
// shutdown of Chrome on Android
mNativeDataReductionProxySettings = nativeInit();
@@ -30,7 +30,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/spdyproxy/D
}
/** Returns true if the SPDY proxy promo is allowed to be shown. */
@@ -175,6 +176,7 @@ public class DataReductionProxySettings {
@@ -153,6 +154,7 @@ public class DataReductionProxySettings {
* data reduction statistics if this is the first time the SPDY proxy has been enabled.
*/
public void setDataReductionProxyEnabled(Context context, boolean enabled) {
@@ -4,45 +4,41 @@ Subject: Disable signin and data saver preferences
Never show the data saver promo snackbar
---
chrome/android/java/res/xml/main_preferences.xml | 8 ++---
chrome/android/java/res/xml/main_preferences.xml | 9 -----
.../chromium/chrome/browser/ChromeActivity.java | 6 ++--
.../browser/preferences/MainPreferences.java | 42 ++++++++++++----------
3 files changed, 31 insertions(+), 25 deletions(-)
.../browser/preferences/MainPreferences.java | 39 +++++++++++-----------
3 files changed, 24 insertions(+), 30 deletions(-)
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
--- a/chrome/android/java/res/xml/main_preferences.xml
+++ b/chrome/android/java/res/xml/main_preferences.xml
@@ -10,10 +10,10 @@
@@ -10,10 +10,6 @@
android:key="account_section"
android:order="0"
android:title="@string/prefs_section_account"/>
- <org.chromium.chrome.browser.preferences.SignInPreference
+ <!-- org.chromium.chrome.browser.preferences.SignInPreference
android:key="sign_in"
android:order="1"
- android:key="sign_in"
- android:order="1"
- android:title="@string/sign_in_to_chrome"/>
+ android:title="@string/sign_in_to_chrome"/-->
<org.chromium.chrome.browser.preferences.ChromeBasePreference
android:fragment="org.chromium.chrome.browser.preferences.SyncAndServicesPreferences"
android:key="sync_and_services"
@@ -79,11 +79,11 @@
android:key="languages"
android:order="14"
android:title="@string/prefs_languages"/>
- <org.chromium.chrome.browser.preferences.ChromeBasePreference
+ <!-- org.chromium.chrome.browser.preferences.ChromeBasePreference
android:fragment="org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferences"
android:key="data_reduction"
@@ -85,11 +81,6 @@
android:order="15"
- android:title="@string/data_reduction_title"/>
+ android:title="@string/data_reduction_title"/-->
android:title="@string/prefs_languages"/>
<org.chromium.chrome.browser.preferences.ChromeBasePreference
- android:fragment="org.chromium.chrome.browser.preferences.datareduction.DataReductionPreferences"
- android:key="data_reduction"
- android:order="16"
- android:title="@string/data_reduction_title"/>
- <org.chromium.chrome.browser.preferences.ChromeBasePreference
android:fragment="org.chromium.chrome.browser.preferences.download.DownloadPreferences"
android:key="downloads"
android:order="17"
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -114,7 +114,7 @@ import org.chromium.chrome.browser.printing.TabPrinter;
@@ -118,7 +118,7 @@ import org.chromium.chrome.browser.printing.TabPrinter;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareMenuActionHandler;
import org.chromium.chrome.browser.snackbar.BottomContainer;
@@ -51,7 +47,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
import org.chromium.chrome.browser.sync.ProfileSyncService;
@@ -252,7 +252,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -263,7 +263,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
protected ReaderModeManager mReaderModeManager;
private SnackbarManager mSnackbarManager;
private ModalDialogManager mModalDialogManager;
@@ -60,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
private AppMenuHandler mAppMenuHandler;
private ToolbarManager mToolbarManager;
@@ -600,6 +600,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -666,6 +666,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
mTabModelSelectorTabObserver = new TabModelSelectorTabObserver(mTabModelSelector) {
@Override
public void didFirstVisuallyNonEmptyPaint(Tab tab) {
@@ -68,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
// Only alert about data savings once the first paint has happened. It
// doesn't make sense to show a snackbar about savings when nothing has been
// displayed yet.
@@ -613,6 +614,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -679,6 +680,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
DataReductionProxySettings.getInstance()
.getTotalHttpContentLengthSaved());
}
@@ -79,10 +75,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/MainPreferences.java
@@ -18,9 +18,9 @@ import org.chromium.chrome.R;
@@ -17,9 +17,9 @@ import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.autofill.PersonalDataManager;
import org.chromium.chrome.browser.contextual_suggestions.EnabledStateMonitor;
import org.chromium.chrome.browser.contextual_suggestions.ContextualSuggestionsEnabledStateUtils;
-import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
+//import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
@@ -91,32 +87,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
import org.chromium.chrome.browser.search_engines.TemplateUrl;
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
import org.chromium.chrome.browser.signin.SigninManager;
@@ -35,21 +35,21 @@ import java.util.Map;
@@ -34,13 +34,11 @@ import java.util.Map;
public class MainPreferences extends PreferenceFragment
implements SigninManager.SignInStateObserver, TemplateUrlService.LoadListener {
public static final String PREF_ACCOUNT_SECTION = "account_section";
- public static final String PREF_SIGN_IN = "sign_in";
+// public static final String PREF_SIGN_IN = "sign_in";
public static final String PREF_SYNC_AND_SERVICES = "sync_and_services";
public static final String PREF_AUTOFILL_SETTINGS = "autofill_settings";
public static final String PREF_SEARCH_ENGINE = "search_engine";
public static final String PREF_SAVED_PASSWORDS = "saved_passwords";
public static final String PREF_CONTEXTUAL_SUGGESTIONS = "contextual_suggestions";
public static final String PREF_HOMEPAGE = "homepage";
- public static final String PREF_DATA_REDUCTION = "data_reduction";
+// public static final String PREF_DATA_REDUCTION = "data_reduction";
public static final String PREF_NOTIFICATIONS = "notifications";
public static final String PREF_LANGUAGES = "languages";
public static final String PREF_DOWNLOADS = "downloads";
@@ -52,7 +50,6 @@ public class MainPreferences extends PreferenceFragment
private final ManagedPreferenceDelegate mManagedPreferenceDelegate;
private final Map<String, Preference> mAllPreferences = new HashMap<>();
- private SignInPreference mSignInPreference;
+// private SignInPreference mSignInPreference;
public MainPreferences() {
setHasOptionsMenu(true);
@@ -65,25 +65,29 @@ public class MainPreferences extends PreferenceFragment
@@ -68,25 +65,29 @@ public class MainPreferences extends PreferenceFragment
@Override
public void onDestroy() {
super.onDestroy();
@@ -147,7 +140,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
}
@Override
@@ -96,9 +100,9 @@ public class MainPreferences extends PreferenceFragment
@@ -99,16 +100,16 @@ public class MainPreferences extends PreferenceFragment
PreferenceUtils.addPreferencesFromResource(this, R.xml.main_preferences);
cachePreferences();
@@ -159,16 +152,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
getPreferenceScreen().removePreference(findPreference(PREF_ACCOUNT_SECTION));
getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES));
}
@@ -106,7 +110,7 @@ public class MainPreferences extends PreferenceFragment
setManagedPreferenceDelegateForPreference(PREF_SEARCH_ENGINE);
setManagedPreferenceDelegateForPreference(PREF_AUTOFILL_SETTINGS);
setManagedPreferenceDelegateForPreference(PREF_SAVED_PASSWORDS);
- setManagedPreferenceDelegateForPreference(PREF_DATA_REDUCTION);
+ //setManagedPreferenceDelegateForPreference(PREF_DATA_REDUCTION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// If we are on Android O+ the Notifications preference should lead to the Android
@@ -162,7 +166,7 @@ public class MainPreferences extends PreferenceFragment
@@ -164,7 +165,7 @@ public class MainPreferences extends PreferenceFragment
Preference preference = getPreferenceScreen().getPreference(index);
mAllPreferences.put(preference.getKey(), preference);
}
@@ -177,7 +169,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
}
private void setManagedPreferenceDelegateForPreference(String key) {
@@ -171,12 +175,6 @@ public class MainPreferences extends PreferenceFragment
@@ -173,12 +174,6 @@ public class MainPreferences extends PreferenceFragment
}
private void updatePreferences() {
@@ -190,7 +182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
updateSearchEnginePreference();
if (HomepageManager.shouldShowHomepageSetting()) {
@@ -197,9 +195,11 @@ public class MainPreferences extends PreferenceFragment
@@ -201,9 +196,11 @@ public class MainPreferences extends PreferenceFragment
removePreferenceIfPresent(PREF_CONTEXTUAL_SUGGESTIONS);
}
@@ -202,7 +194,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
}
private Preference addPreferenceIfAbsent(String key) {
@@ -250,11 +250,11 @@ public class MainPreferences extends PreferenceFragment
@@ -254,11 +251,11 @@ public class MainPreferences extends PreferenceFragment
private void onSignInPreferenceStateChanged() {
// Remove "Account" section header if the personalized sign-in promo is shown.
@@ -217,7 +209,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
}
// TemplateUrlService.LoadListener implementation.
@@ -280,9 +280,11 @@ public class MainPreferences extends PreferenceFragment
@@ -280,9 +277,11 @@ public class MainPreferences extends PreferenceFragment
if (PREF_SAVED_PASSWORDS.equals(preference.getKey())) {
return PrefServiceBridge.getInstance().isRememberPasswordsManaged();
}
@@ -229,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Mai
if (PREF_SEARCH_ENGINE.equals(preference.getKey())) {
return TemplateUrlService.getInstance().isDefaultSearchManaged();
}
@@ -304,11 +306,13 @@ public class MainPreferences extends PreferenceFragment
@@ -296,11 +295,13 @@ public class MainPreferences extends PreferenceFragment
return prefs.isRememberPasswordsManaged()
&& !prefs.isRememberPasswordsEnabled();
}
@@ -9,7 +9,7 @@ Subject: Disable signin/data reduction promos
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -601,7 +601,7 @@ public class ChromeTabbedActivity
@@ -603,7 +603,7 @@ public class ChromeTabbedActivity
// TODO(tedchoc): Unify promo dialog logic as the search engine promo dialog checks
// might not have completed at this point and we could show multiple
// promos.
@@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Promo dialogs in multiwindow mode are broken on some devices: http://crbug.com/354696
boolean isLegacyMultiWindow = MultiWindowUtils.getInstance().isLegacyMultiWindow(this);
if (!isShowingPromo && !mIntentWithEffect && FirstRunStatus.getFirstRunFlowComplete()
@@ -619,7 +619,7 @@ public class ChromeTabbedActivity
@@ -621,7 +621,7 @@ public class ChromeTabbedActivity
ChromePreferenceManager.PROMOS_SKIPPED_ON_FIRST_START, true);
}
@@ -3,14 +3,14 @@ Date: Wed, 22 Mar 2017 19:10:30 -0400
Subject: Remove Sync and Translate menu
---
.../java/res/drawable-hdpi/settings_translate.png | Bin 399 -> 0 bytes
.../java/res/drawable-mdpi/settings_translate.png | Bin 284 -> 0 bytes
.../java/res/drawable-xhdpi/settings_translate.png | Bin 547 -> 0 bytes
.../java/res/drawable-xxhdpi/settings_translate.png | Bin 793 -> 0 bytes
.../java/res/drawable-xxxhdpi/settings_translate.png | Bin 1038 -> 0 bytes
.../android/java/res/xml/site_settings_preferences.xml | 4 ++--
.../preferences/website/SiteSettingsPreferences.java | 14 +++++++-------
7 files changed, 9 insertions(+), 9 deletions(-)
.../java/res/drawable-hdpi/settings_translate.png | Bin 399 -> 0 bytes
.../java/res/drawable-mdpi/settings_translate.png | Bin 284 -> 0 bytes
.../java/res/drawable-xhdpi/settings_translate.png | Bin 547 -> 0 bytes
.../res/drawable-xxhdpi/settings_translate.png | Bin 793 -> 0 bytes
.../res/drawable-xxxhdpi/settings_translate.png | Bin 1038 -> 0 bytes
.../java/res/xml/site_settings_preferences.xml | 8 ++++----
.../website/SiteSettingsPreferences.java | 22 ++-------------------
7 files changed, 6 insertions(+), 24 deletions(-)
delete mode 100644 chrome/android/java/res/drawable-hdpi/settings_translate.png
delete mode 100644 chrome/android/java/res/drawable-mdpi/settings_translate.png
delete mode 100644 chrome/android/java/res/drawable-xhdpi/settings_translate.png
@@ -33,10 +33,22 @@ diff --git a/chrome/android/java/res/drawable-xxxhdpi/settings_translate.png b/c
deleted file mode 100644
index 058b50b84dd216d983e9dea2ea264b39773ac318..0000000000000000000000000000000000000000
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
index 81658269058c..346cdce944c6 100644
index d5ae426f7d7b..a01b1144639c 100644
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
@@ -73,11 +73,11 @@
@@ -50,9 +50,9 @@
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
android:key="ads" />
<!-- Background sync -->
- <org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
+ <!-- org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
- android:key="background_sync" />
+ android:key="background_sync" /-->
<!-- Automatic Downloads -->
<org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
@@ -77,11 +77,11 @@
android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
android:key="sound" />
<!-- Google Translate -->
@@ -51,51 +63,74 @@ index 81658269058c..346cdce944c6 100644
<!-- TODO(finnur): Move this over to the new Usage screen, once it exists. -->
<org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
index 1274fd3c7118..831f01c52fe0 100644
index 95a1c127a28f..e8b87fcefb3f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
@@ -89,7 +89,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
@@ -39,7 +39,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
// are defined in the SiteSettingsCategory, additional keys
// are listed here.
static final String MEDIA_KEY = "media";
- static final String TRANSLATE_KEY = "translate";
// Whether the Protected Content menu is available for display.
boolean mProtectedContentMenuAvailable;
@@ -83,11 +82,10 @@ public class SiteSettingsPreferences extends PreferenceFragment
// The Media sub-menu only contains Protected Content and Autoplay, so remove all other
// menus.
for (@Type int i = 0; i < Type.NUM_ENTRIES; i++) {
- if (i == Type.AUTOPLAY || i == Type.PROTECTED_MEDIA) continue;
+ if (i == Type.AUTOPLAY || i == Type.PROTECTED_MEDIA || i == Type.BACKGROUND_SYNC) continue;
getPreferenceScreen().removePreference(findPreference(i));
}
getPreferenceScreen().removePreference(findPreference(MEDIA_KEY));
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
+// getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
} else {
// If both Autoplay and Protected Content menus are available, they'll be tucked under
// the Media key. Otherwise, we can remove the Media menu entry.
@@ -118,9 +118,9 @@ public class SiteSettingsPreferences extends PreferenceFragment
@@ -109,11 +107,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
getPreferenceScreen().removePreference(findPreference(Type.CLIPBOARD));
}
// The new Languages Preference *feature* is an advanced version of this translate
// preference. Once Languages Preference is enabled, remove this setting.
- // The new Languages Preference *feature* is an advanced version of this translate
- // preference. Once Languages Preference is enabled, remove this setting.
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
- getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
- }
+// if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
+// getPreferenceScreen().removePreference(findPreference(TRANSLATE_KEY));
+// }
if (!ChromeFeatureList.isEnabled(ChromeFeatureList.GENERIC_SENSOR_EXTRA_CLASSES)) {
getPreferenceScreen().removePreference(
findPreference(SiteSettingsCategory.Type.SENSORS));
@@ -132,8 +132,8 @@ public class SiteSettingsPreferences extends PreferenceFragment
getPreferenceScreen().removePreference(findPreference(Type.SENSORS));
}
@@ -123,10 +116,6 @@ public class SiteSettingsPreferences extends PreferenceFragment
private void updatePreferenceStates() {
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
// Translate preference.
- // Translate preference.
- Preference translatePref = findPreference(TRANSLATE_KEY);
- if (translatePref != null) setTranslateStateSummary(translatePref);
+// Preference translatePref = findPreference(TRANSLATE_KEY);
+// if (translatePref != null) setTranslateStateSummary(translatePref);
-
// Preferences that navigate to Website Settings.
List<Integer> websitePrefs = new ArrayList<Integer>();
@@ -149,7 +149,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
if (mMediaSubMenu) {
@@ -143,7 +132,7 @@ public class SiteSettingsPreferences extends PreferenceFragment
if (!mProtectedContentMenuAvailable) {
websitePrefs.add(SiteSettingsCategory.Type.AUTOPLAY);
websitePrefs.add(Type.AUTOPLAY);
}
- websitePrefs.add(SiteSettingsCategory.Type.BACKGROUND_SYNC);
+ //websitePrefs.add(SiteSettingsCategory.Type.BACKGROUND_SYNC);
websitePrefs.add(SiteSettingsCategory.Type.CAMERA);
- websitePrefs.add(Type.BACKGROUND_SYNC);
+// websitePrefs.add(Type.BACKGROUND_SYNC);
websitePrefs.add(Type.CAMERA);
if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
websitePrefs.add(SiteSettingsCategory.Type.CLIPBOARD);
websitePrefs.add(Type.CLIPBOARD);
@@ -246,11 +235,4 @@ public class SiteSettingsPreferences extends PreferenceFragment
preference.getTitle().toString());
return false;
}
-
- private void setTranslateStateSummary(Preference translatePref) {
- boolean translateEnabled = PrefServiceBridge.getInstance().isTranslateEnabled();
- translatePref.setSummary(translateEnabled
- ? R.string.website_settings_category_ask
- : R.string.website_settings_category_blocked);
- }
}
--
2.11.0
@@ -1,6 +1,6 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Tue, 12 Jun 2018 15:03:29 +0200
Subject: Hide "Send reports to Google"
Subject: Hide send reports checkbox
---
chrome/android/java/res/layout/fre_tosanduma.xml | 2 +-
@@ -10,7 +10,7 @@ Subject: ungoogled-chromium: Disable signin
diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc
--- a/chrome/browser/ui/chrome_pages.cc
+++ b/chrome/browser/ui/chrome_pages.cc
@@ -71,12 +71,6 @@ void OpenBookmarkManagerForNode(Browser* browser, int64_t node_id) {
@@ -72,12 +72,6 @@ void OpenBookmarkManagerForNode(Browser* browser, int64_t node_id) {
ShowSingletonTabOverwritingNTP(browser, std::move(params));
}
@@ -9,7 +9,7 @@ Subject: ungoogled-chromium: Disable webRTC log uploader
diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
--- a/chrome/browser/media/webrtc/webrtc_log_uploader.cc
+++ b/chrome/browser/media/webrtc/webrtc_log_uploader.cc
@@ -117,30 +117,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
@@ -119,30 +119,7 @@ void WebRtcLogUploader::LoggingStoppedDoUpload(
DCHECK(meta_data.get());
DCHECK(!upload_done_data.log_path.empty());
@@ -41,7 +41,7 @@ diff --git a/chrome/browser/media/webrtc/webrtc_log_uploader.cc b/chrome/browser
}
void WebRtcLogUploader::PrepareMultipartPostData(
@@ -151,6 +128,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
@@ -153,6 +130,9 @@ void WebRtcLogUploader::PrepareMultipartPostData(
DCHECK(!compressed_log.empty());
DCHECK(meta_data.get());
@@ -28,7 +28,7 @@ diff --git a/chrome/browser/android/rlz/rlz_ping_handler.cc b/chrome/browser/and
diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser/plugins/plugins_resource_service.cc
--- a/chrome/browser/plugins/plugins_resource_service.cc
+++ b/chrome/browser/plugins/plugins_resource_service.cc
@@ -53,9 +53,6 @@ const int kStartResourceFetchDelayMs = 60 * 1000;
@@ -54,9 +54,6 @@ const int kStartResourceFetchDelayMs = 60 * 1000;
// Delay between calls to update the cache 1 day and 2 minutes in testing mode.
const int kCacheUpdateDelayMs = 24 * 60 * 60 * 1000;
@@ -38,7 +38,7 @@ diff --git a/chrome/browser/plugins/plugins_resource_service.cc b/chrome/browser
GURL GetPluginsServerURL() {
std::string filename;
#if defined(OS_WIN)
@@ -70,7 +67,7 @@ GURL GetPluginsServerURL() {
@@ -71,7 +68,7 @@ GURL GetPluginsServerURL() {
#error Unknown platform
#endif
@@ -25,7 +25,7 @@ diff --git a/components/translate/content/renderer/translate_helper.cc b/compone
diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
--- a/components/translate/core/browser/translate_manager.cc
+++ b/components/translate/core/browser/translate_manager.cc
@@ -133,8 +133,9 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
@@ -134,8 +134,9 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
if (net::NetworkChangeNotifier::IsOffline())
return;
@@ -40,7 +40,7 @@ diff --git a/components/translate/core/browser/translate_manager.cc b/components
diff --git a/components/translate/core/browser/translate_script.cc b/components/translate/core/browser/translate_script.cc
--- a/components/translate/core/browser/translate_script.cc
+++ b/components/translate/core/browser/translate_script.cc
@@ -154,9 +154,8 @@ void TranslateScript::OnScriptFetchComplete(bool success,
@@ -151,9 +151,8 @@ void TranslateScript::OnScriptFetchComplete(bool success,
base::StringAppendF(&data_, "var serverParams = '%s';\n",
server_params.c_str());
@@ -2,10 +2,49 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Mon, 12 Feb 2018 21:29:30 +0100
Subject: ungoogled-chromium: Disable profile avatar downloading
Added some Bromite-specific further improvements
---
chrome/browser/profiles/profile_avatar_downloader.cc | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
chrome/browser/BUILD.gn | 2 --
chrome/browser/profiles/profile_attributes_entry.cc | 14 --------------
chrome/browser/profiles/profile_avatar_downloader.cc | 8 +-------
3 files changed, 1 insertion(+), 23 deletions(-)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1268,8 +1268,6 @@ jumbo_split_static_library("browser") {
"profiles/profile_attributes_entry.h",
"profiles/profile_attributes_storage.cc",
"profiles/profile_attributes_storage.h",
- "profiles/profile_avatar_downloader.cc",
- "profiles/profile_avatar_downloader.h",
"profiles/profile_avatar_icon_util.cc",
"profiles/profile_avatar_icon_util.h",
"profiles/profile_destroyer.cc",
diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc
--- a/chrome/browser/profiles/profile_attributes_entry.cc
+++ b/chrome/browser/profiles/profile_attributes_entry.cc
@@ -83,20 +83,6 @@ base::string16 ProfileAttributesEntry::GetUserName() const {
}
const gfx::Image& ProfileAttributesEntry::GetAvatarIcon() const {
- if (IsUsingGAIAPicture()) {
- const gfx::Image* image = GetGAIAPicture();
- if (image)
- return *image;
- }
-
-#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID)
- // Use the high resolution version of the avatar if it exists. Mobile and
- // ChromeOS don't need the high resolution version so no need to fetch it.
- const gfx::Image* image = GetHighResAvatar();
- if (image)
- return *image;
-#endif
-
int resource_id =
profiles::GetDefaultAvatarIconResourceIDAtIndex(GetAvatarIconIndex());
return ui::ResourceBundle::GetSharedInstance().GetNativeImageNamed(
diff --git a/chrome/browser/profiles/profile_avatar_downloader.cc b/chrome/browser/profiles/profile_avatar_downloader.cc
--- a/chrome/browser/profiles/profile_avatar_downloader.cc
+++ b/chrome/browser/profiles/profile_avatar_downloader.cc
@@ -71,7 +71,7 @@ diff --git a/chrome/common/page_load_metrics/page_load_metrics_util.cc b/chrome/
diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc
--- a/components/google/core/common/google_util.cc
+++ b/components/google/core/common/google_util.cc
@@ -42,118 +42,16 @@ namespace {
@@ -43,118 +43,16 @@ namespace {
bool gUseMockLinkDoctorBaseURLForTesting = false;
@@ -148,9 +148,9 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
- // same page.
- StripTrailingDot(&tld);
-
- CR_DEFINE_STATIC_LOCAL(std::set<std::string>, google_tlds,
- ({GOOGLE_TLD_LIST}));
- return base::ContainsKey(google_tlds, tld.as_string());
- static base::NoDestructor<std::set<std::string>> google_tlds(
- {GOOGLE_TLD_LIST});
- return base::ContainsKey(*google_tlds, tld.as_string());
-}
-
-// True if |url| is a valid URL with a host that is in the static list of
@@ -163,10 +163,10 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
- base::StringPiece host(url.host_piece());
- StripTrailingDot(&host);
-
- CR_DEFINE_STATIC_LOCAL(std::set<std::string>, google_subdomains,
- ({"ipv4.google.com", "ipv6.google.com"}));
- static base::NoDestructor<std::set<std::string>> google_subdomains(
- {"ipv4.google.com", "ipv6.google.com"});
-
- return base::ContainsKey(google_subdomains, host.as_string());
- return base::ContainsKey(*google_subdomains, host.as_string());
-}
-
} // namespace
@@ -191,7 +191,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
}
void SetMockLinkDoctorBaseURLForTesting() {
@@ -167,120 +65,50 @@ std::string GetGoogleLocale(const std::string& application_locale) {
@@ -168,120 +66,50 @@ std::string GetGoogleLocale(const std::string& application_locale) {
GURL AppendGoogleLocaleParam(const GURL& url,
const std::string& application_locale) {
@@ -237,19 +237,19 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co
- // Unit tests may add command-line flags after the first call to this
- // function, so we don't simply initialize a static |base_url| directly and
- // then unconditionally return it.
- CR_DEFINE_STATIC_LOCAL(std::string, switch_value, ());
CR_DEFINE_STATIC_LOCAL(GURL, base_url, ());
- static base::NoDestructor<std::string> switch_value;
static base::NoDestructor<GURL> base_url;
- std::string current_switch_value(
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- switches::kGoogleBaseURL));
- if (current_switch_value != switch_value) {
- switch_value = current_switch_value;
- base_url = url_formatter::FixupURL(switch_value, std::string());
- if (!base_url.is_valid() || base_url.has_query() || base_url.has_ref())
- base_url = GURL();
- if (current_switch_value != *switch_value) {
- *switch_value = current_switch_value;
- *base_url = url_formatter::FixupURL(*switch_value, std::string());
- if (!base_url->is_valid() || base_url->has_query() || base_url->has_ref())
- *base_url = GURL();
- }
+ base_url = GURL();
return base_url;
+ *base_url = GURL();
return *base_url;
}
bool StartsWithCommandLineGoogleBaseURL(const GURL& url) {
@@ -11,14 +11,14 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
--- a/components/gcm_driver/gcm_client_impl.cc
+++ b/components/gcm_driver/gcm_client_impl.cc
@@ -493,6 +493,7 @@ void GCMClientImpl::StartGCM() {
device_checkin_info_.Reset();
StartCheckin();
}
+ return;
void GCMClientImpl::InitializeMCSClient() {
+ return;
std::vector<GURL> endpoints;
endpoints.push_back(gservices_settings_.GetMCSMainEndpoint());
GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint();
@@ -686,6 +687,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
DCHECK(network_connection_tracker_);
@@ -685,6 +686,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) {
}
void GCMClientImpl::StartCheckin() {
@@ -26,7 +26,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc
// Make sure no checkin is in progress.
if (checkin_request_)
return;
@@ -761,6 +763,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
@@ -760,6 +762,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) {
}
void GCMClientImpl::SchedulePeriodicCheckin() {
@@ -18,7 +18,7 @@ See also: https://github.com/Eloston/ungoogled-chromium/issues/104
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -312,7 +312,6 @@
@@ -348,7 +348,6 @@
<include name="IDR_INLINE_LOGIN_HTML" file="resources\inline_login\inline_login.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
<include name="IDR_INLINE_LOGIN_CSS" file="resources\inline_login\inline_login.css" flattenhtml="true" type="BINDATA" />
<include name="IDR_INLINE_LOGIN_JS" file="resources\inline_login\inline_login.js" flattenhtml="true" type="BINDATA" />
@@ -26,7 +26,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
<include name="IDR_INSPECT_CSS" file="resources\inspect\inspect.css" flattenhtml="true" type="BINDATA" />
<include name="IDR_INSPECT_HTML" file="resources\inspect\inspect.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
<include name="IDR_INSPECT_JS" file="resources\inspect\inspect.js" flattenhtml="true" type="BINDATA" />
@@ -453,7 +452,6 @@
@@ -492,7 +491,6 @@
<include name="IDR_WEBRTC_LOGS_JS" file="resources\media\webrtc_logs.js" type="BINDATA" />
<include name="IDR_WEBSTORE_MANIFEST" file="resources\webstore_app\manifest.json" type="BINDATA" />
<include name="IDR_CRYPTOTOKEN_MANIFEST" file="resources\cryptotoken\manifest.json" type="BINDATA" />
@@ -37,7 +37,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
diff --git a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
--- a/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
+++ b/chrome/browser/extensions/component_extensions_whitelist/whitelist.cc
@@ -68,7 +68,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) {
@@ -67,7 +67,6 @@ bool IsComponentExtensionWhitelisted(int manifest_resource_id) {
#endif
case IDR_CRYPTOTOKEN_MANIFEST:
case IDR_FEEDBACK_MANIFEST:
@@ -98,9 +98,9 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
-const size_t kMaxMessageSize = 1024 * 1024; // 1MB
+//const size_t kMaxMessageSize = 1024 * 1024; // 1MB
bool CookiePartsContains(const std::vector<std::string>& parts,
const char* part) {
@@ -262,6 +262,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
std::unique_ptr<const GaiaAuthConsumer::ClientOAuthResult>
ExtractOAuth2TokenPairResponse(const std::string& data) {
@@ -240,6 +240,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
const net::NetworkTrafficAnnotationTag& traffic_annotation) {
DCHECK(!fetch_pending_) << "Tried to fetch two things at once!";
@@ -108,7 +108,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_
auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url = gaia_gurl;
original_url_ = gaia_gurl;
@@ -310,6 +311,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
@@ -294,6 +295,7 @@ void GaiaAuthFetcher::CreateAndStartGaiaFetcher(
base::BindOnce(&GaiaAuthFetcher::OnURLLoadComplete,
base::Unretained(this)),
kMaxMessageSize);
@@ -12,7 +12,7 @@ Subject: ungoogled-chromium: Disable domain reliability
diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliability/BUILD.gn
--- a/components/domain_reliability/BUILD.gn
+++ b/components/domain_reliability/BUILD.gn
@@ -7,26 +7,6 @@ action("bake_in_configs") {
@@ -9,26 +9,6 @@ action("bake_in_configs") {
script = "bake_in_configs.py"
inputs = [
@@ -39,7 +39,7 @@ diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliabil
]
output_file = "$target_gen_dir/baked_in_configs.cc"
@@ -36,13 +16,21 @@ action("bake_in_configs") {
@@ -38,13 +18,21 @@ action("bake_in_configs") {
# The JSON file list is too long for the command line on Windows, so put
# them in a response file.
@@ -67,7 +67,7 @@ diff --git a/components/domain_reliability/BUILD.gn b/components/domain_reliabil
+ }
}
component("domain_reliability") {
jumbo_component("domain_reliability") {
diff --git a/components/domain_reliability/bake_in_configs.py b/components/domain_reliability/bake_in_configs.py
--- a/components/domain_reliability/bake_in_configs.py
+++ b/components/domain_reliability/bake_in_configs.py
@@ -17,7 +17,7 @@ Related comment: https://bugs.chromium.org/p/chromium/issues/detail?id=710701#c1
diff --git a/third_party/blink/renderer/devtools/BUILD.gn b/third_party/blink/renderer/devtools/BUILD.gn
--- a/third_party/blink/renderer/devtools/BUILD.gn
+++ b/third_party/blink/renderer/devtools/BUILD.gn
@@ -1150,10 +1150,8 @@ action("generate_devtools_grd") {
@@ -1162,10 +1162,8 @@ action("generate_devtools_grd") {
devtools_embedder_scripts +
[ "$resources_out_dir/devtools_extension_api.js" ]
@@ -1,6 +1,6 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Mon, 11 Dec 2017 22:42:11 +0100
Subject: Add Google English-only engine
Subject: Add English-only search engine
Add a Google search engine that forces languages to English,
disable from all its searches RLZ and field experiments querystring parameters.
@@ -9,7 +9,7 @@ Subject: Fix crash when accessing page info / site settings
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
--- a/chrome/browser/permissions/permission_manager.cc
+++ b/chrome/browser/permissions/permission_manager.cc
@@ -675,6 +675,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
@@ -677,6 +677,9 @@ PermissionResult PermissionManager::GetPermissionStatusHelper(
GURL canonical_requesting_origin =
GetCanonicalOrigin(requesting_origin, embedding_origin);
PermissionContextBase* context = GetPermissionContext(permission);
@@ -18,7 +18,7 @@ Send a random key press to circumvent idle status detection
diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/renderer/core/dom/BUILD.gn
--- a/third_party/blink/renderer/core/dom/BUILD.gn
+++ b/third_party/blink/renderer/core/dom/BUILD.gn
@@ -145,6 +145,8 @@ blink_core_sources("dom") {
@@ -146,6 +146,8 @@ blink_core_sources("dom") {
"global_event_handlers.h",
"icon_url.cc",
"icon_url.h",
@@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/dom/BUILD.gn b/third_party/blink/re
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -230,6 +230,7 @@
@@ -233,6 +233,7 @@
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
#include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h"
#include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h"
@@ -38,16 +38,16 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
#include "third_party/blink/renderer/core/paint/compositing/paint_layer_compositor.h"
#include "third_party/blink/renderer/core/paint/first_meaningful_paint_detector.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
@@ -289,6 +290,8 @@
@@ -291,6 +292,8 @@
#include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h"
#include "third_party/blink/renderer/platform/wtf/time.h"
+#include "extensions/anti_amp_cure.h"
+
#ifndef NDEBUG
using WeakDocumentSet =
blink::PersistentHeapHashSet<blink::WeakMember<blink::Document>>;
@@ -6027,8 +6030,31 @@ void Document::FinishedParsing() {
using WeakDocumentSet = blink::HeapHashSet<blink::WeakMember<blink::Document>>;
static WeakDocumentSet& liveDocumentSet();
@@ -6088,8 +6091,31 @@ void Document::FinishedParsing() {
fetcher_->ClearResourcesFromPreviousFetcher();
}
@@ -63,7 +63,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
+ if (bodyElement) {
+ size_t pos = host.Find(".google.");
+ if ((pos != WTF::kNotFound) && (host.length() - pos - 8 < 4)) {
+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload";
+ LOG(INFO) << "injecting anti-AMP-cure Javascript payload, URL: " << url_.GetString();
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
+ e->setText(ANTI_AMP_CURE_JS);
+ bodyElement->AppendChild(e);
@@ -71,7 +71,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
+
+ // check for eligibility of the video bg fix
+ if ((WTF::kNotFound != host.Find("youtube.com")) || (WTF::kNotFound != host.Find("vimeo.com"))) {
+ LOG(INFO) << "injecting video-bg-play Javascript payload";
+ LOG(INFO) << "injecting video-bg-play Javascript payload, URL: " << url_.GetString();
+ HTMLScriptElement* e = HTMLScriptElement::Create(*this, CreateElementFlags());
+ e->setText(VIDEO_BG_PLAY_JS);
+ bodyElement->AppendChild(e);
@@ -88,7 +88,7 @@ new file mode 100644
+#ifndef anti_amp_cure_h
+#define anti_amp_cure_h
+
+#define ANTI_AMP_CURE_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=<url>)\n // Mobile (/url?q=<url>)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks(document));\n}\n\nfunction hookMoreResults() {\n var extrares = document.getElementById('extrares');\n if (!extrares) {\n console.log(\"could not hook more results\");\n return;\n }\n // mutation observers are great but they don't work\n extrares.addEventListener(\"DOMNodeInserted\", function(e) {\n var node = e.target;\n if (node.id && node.id.startsWith(\"arc-srp\"))\n console.log(\"hyperlinks sanitized on new result node: \", sanitizeAllHyperlinks(node));\n });\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('qslc');\n if (mlogo && mlogo.children[0]) {\n mlogo = mlogo.children[0];\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks(rootNode) {\n var saned = 0, total = 0;\n rootNode.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && (document.location.host.indexOf(\"news.google.\") == -1)) {\n sanitizeAll();\n}\nsetMlogoClick();\n\nhookMoreResults();\n"
+#define ANTI_AMP_CURE_JS "/* Bromite click-tracking and AMP removal v0.3.5 */\n\nfunction recreateHyperlink(a) {\n // skip already-sanitized hyperlinks\n if (a.sane) return false;\n\n // create new A element - old one has event listeners attached\n var newA = document.createElement('a');\n newA.referrerPolicy = 'origin';\n // property set when hyperlink has been created by this script\n newA.sane = 1;\n\n // remove AMP class, get actual page URL\n var ampCur = a.getAttribute('data-amp-cur');\n if (ampCur) {\n newA.href = ampCur;\n a.classList.remove('amp_r');\n } else {\n var realLink = getRealLinkFromGoogleUrl(a);\n if (realLink) {\n newA.href = realLink;\n } else {\n // might not be an actual hyperlink, ignore it\n if (!a.href) {\n return false;\n }\n // leave original href unchanged\n newA.href = a.href;\n }\n }\n // copy CSS classes\n newA.className = a.className;\n\n // copy nodes inside the hyperlink\n while (a.firstChild) {\n newA.appendChild(a.lastChild);\n }\n // replace hyperlink\n a.parentNode.replaceChild(newA, a);\n return true;\n}\n\nfunction isResult(a) {\n if (a.getAttribute('data-amp-cur'))\n return true;\n var inlineMousedown = a.getAttribute('onmousedown');\n if (!inlineMousedown)\n\treturn false;\n // return rwt(....); // E.g Google search results.\n // return google.rwt(...); // E.g. sponsored search results\n // return google.arwt(this); // E.g. sponsored search results (dec 2016).\n return /\\ba?rwt\\(/.test(inlineMousedown) || /\\bctpacw\\b/.test(inlineMousedown);\n}\n\n/**\n * @returns {String} the real URL if the given link is a Google redirect URL.\n */\nfunction getRealLinkFromGoogleUrl(a) {\n if ((a.hostname === location.hostname || a.hostname.indexOf('www.google.') == 0) &&\n /^\\/(local_)?url$/.test(a.pathname)) {\n // Google Maps / Dito (/local_url?q=<url>)\n // Mobile (/url?q=<url>)\n var url = /[?&](?:q|url)=((?:https?|ftp)[%:][^&]+)/.exec(a.search);\n if (url) {\n return decodeURIComponent(url[1]);\n }\n // Help pages, e.g. safe browsing (/url?...&q=%2Fsupport%2Fanswer...)\n url = /[?&](?:q|url)=((?:%2[Ff]|\\/)[^&]+)/.exec(a.search);\n if (url) {\n return a.origin + decodeURIComponent(url[1]);\n }\n }\n}\n\nfunction sanitizeAds() {\n // scan all divs\n var div = document.getElementById('tads');\n if (div) {\n div.style.display = 'none';\n\treturn true;\n }\n return false;\n}\n\nfunction sanitizeAll() {\n console.log(\"ads removed: \", sanitizeAds());\n console.log(\"hyperlinks sanitized: \", sanitizeAllHyperlinks(document));\n}\n\nfunction hookMoreResults() {\n var extrares = document.getElementById('extrares');\n if (!extrares) {\n console.log(\"could not hook more results\");\n return;\n }\n // mutation observers are great but they don't work\n extrares.addEventListener(\"DOMNodeInserted\", function(e) {\n var node = e.target;\n if (node.id && node.id.startsWith(\"arc-srp\"))\n console.log(\"hyperlinks sanitized on new result node: \", sanitizeAllHyperlinks(node));\n });\n}\n\nfunction setMlogoClick() {\n var mlogo = document.getElementById('qslc');\n if (mlogo && mlogo.children[0]) {\n mlogo = mlogo.children[0];\n mlogo.removeAttribute(\"href\");\n mlogo.setAttribute(\"onclick\", \"sanitizeAll()\");\n console.log(\"logo link replaced\");\n } else {\n console.log(\"could not replace logo link\");\n }\n}\n\nfunction sanitizeAllHyperlinks(rootNode) {\n var saned = 0, total = 0;\n rootNode.querySelectorAll('div[data-hveid]:not([data-hveid=\"\"]) a').forEach(function(a) {\n\ttotal++;\n\tvar res = recreateHyperlink(a);\n\tif (res) saned++;\n });\n console.log(\"sanitized \", saned, \"/\", total, \" hyperlinks\");\n\n return saned;\n}\n\n// avoid running cleanup on non-search pages\nif ((document.location.host.indexOf(\"images.google.\") == -1) && \n (document.location.host.indexOf(\"accounts.google.\") == -1) &&\n (document.location.host.indexOf(\"news.google.\") == -1)) {\n sanitizeAll();\n}\nsetMlogoClick();\n\nhookMoreResults();\n"
+
+#endif // anti_amp_cure_h
diff --git a/third_party/blink/renderer/core/dom/extensions/video_bg_play.h b/third_party/blink/renderer/core/dom/extensions/video_bg_play.h
@@ -10,7 +10,7 @@ Subject: Allow playing audio in background
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -879,6 +879,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
@@ -908,6 +908,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
return pipeline_metadata_.has_audio;
}
@@ -23,7 +23,7 @@ diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_imp
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
const blink::WebVector<blink::WebMediaPlayer::TrackId>& enabledTrackIds) {
DCHECK(main_task_runner_->BelongsToCurrentThread());
@@ -2993,7 +2999,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
@@ -3053,7 +3059,10 @@ bool WebMediaPlayerImpl::ShouldPauseVideoWhenHidden() const {
// If suspending background video, pause any video that's not remoted or
// not unlocked to play in the background.
if (IsBackgroundSuspendEnabled(delegate_)) {
@@ -13,8 +13,8 @@ Disable it by default on Android as it is everywhere else
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3519,6 +3519,11 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(media::kPictureInPicture)},
@@ -3439,6 +3439,11 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kUseGoogleLocalNtp)},
#endif // !defined(OS_ANDROID)
+ {"resume-background-video",
@@ -23,12 +23,12 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+ FEATURE_VALUE_TYPE(media::kResumeBackgroundVideo)},
+
#if defined(OS_MACOSX)
{"mac-touchbar", flag_descriptions::kMacTouchBarName,
flag_descriptions::kMacTouchBarDescription, kOsMac,
{"mac-rtl", flag_descriptions::kMacRTLName,
flag_descriptions::kMacRTLDescription, kOsMac,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -747,6 +747,11 @@ const char kEnablePictureInPictureName[] = "Enable Picture-in-Picture.";
@@ -759,6 +759,11 @@ const char kEnablePictureInPictureName[] = "Enable Picture-in-Picture.";
const char kEnablePictureInPictureDescription[] =
"Enable the Picture-in-Picture feature for videos.";
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -465,6 +465,9 @@ extern const char kOOPHPStackModePseudo[];
@@ -470,6 +470,9 @@ extern const char kOOPHPStackModePseudo[];
extern const char kEnablePictureInPictureName[];
extern const char kEnablePictureInPictureDescription[];
@@ -56,7 +56,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
--- a/media/base/media_switches.cc
+++ b/media/base/media_switches.cc
@@ -220,11 +220,7 @@ const base::Feature kPreloadMetadataSuspend{"PreloadMetadataSuspend",
@@ -221,11 +221,7 @@ const base::Feature kPreloadMetadataLazyLoad{"PreloadMetadataLazyLoad",
// when in background.
const base::Feature kResumeBackgroundVideo {
"resume-background-video",
@@ -9,7 +9,7 @@ Subject: Open YouTube links in Bromite
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
@@ -384,6 +384,13 @@ public class ExternalNavigationHandler {
@@ -386,6 +386,13 @@ public class ExternalNavigationHandler {
return OverrideUrlLoadingResult.NO_OVERRIDE;
}
+3 -3
View File
@@ -13,7 +13,7 @@ Corrected Exit functionality
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -78,6 +78,8 @@
@@ -80,6 +80,8 @@
android:title="@string/menu_help" />
<item android:id="@+id/enter_vr_id"
android:title="@string/enter_vr" />
@@ -25,7 +25,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -2019,6 +2019,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2100,6 +2100,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
RecordUserAction.record("MobileMenuSettings");
} else if (id == R.id.show_menu) {
showAppMenuForKeyboardEvent();
@@ -53,7 +53,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -2921,6 +2921,9 @@ To obtain new licenses, connect to the internet and play your downloaded content
@@ -2992,6 +2992,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_PREFERENCES" desc="Menu item for opening browser preferences. [CHAR-LIMIT=27]">
Settings
</message>
+3 -3
View File
@@ -12,7 +12,7 @@ Subject: Remove help menu item
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -74,8 +74,6 @@
@@ -76,8 +76,6 @@
android:icon="@drawable/reader_mode_prefs_icon" />
<item android:id="@+id/preferences_id"
android:title="@string/menu_preferences" />
@@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -2043,15 +2043,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2124,15 +2124,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
final Tab currentTab = getActivityTab();
@@ -56,7 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
@@ -1220,7 +1220,7 @@ public class CustomTabActivity extends ChromeActivity {
@@ -1314,7 +1314,7 @@ public class CustomTabActivity extends ChromeActivity<CustomTabActivityComponent
public boolean onMenuOrKeyboardAction(int id, boolean fromMenu) {
// Disable creating new tabs, bookmark, history, print, help, focus_url, etc.
if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id
@@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -59,6 +59,7 @@
@@ -61,6 +61,7 @@
android:title="@string/menu_add_to_homescreen" />
<item android:id="@+id/open_webapk_id"
android:title="@string/menu_open_webapk" />
@@ -53,7 +53,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
<item android:id="@+id/request_desktop_site_row_menu_id"
android:title="@null">
<menu>
@@ -69,6 +70,18 @@
@@ -71,6 +72,18 @@
android:checkable="true" />
</menu>
</item>
@@ -75,7 +75,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -2111,6 +2111,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2195,6 +2195,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();
currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
RecordUserAction.record("MobileMenuRequestDesktopSite");
@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1711,6 +1711,14 @@ public class ChromeTabbedActivity
@@ -1718,6 +1718,14 @@ public class ChromeTabbedActivity
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
import org.chromium.chrome.browser.ShortcutHelper;
import org.chromium.chrome.browser.UrlConstants;
import org.chromium.chrome.browser.banners.AppBannerManager;
@@ -197,6 +198,8 @@ public class AppMenuPropertiesDelegate {
@@ -209,6 +210,8 @@ public class AppMenuPropertiesDelegate {
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
@@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
// Only display reader mode settings menu option if the current page is in reader mode.
menu.findItem(R.id.reader_mode_prefs_id)
.setVisible(DomDistillerUrlUtils.isDistilledPage(currentTab.getUrl()));
@@ -436,6 +439,41 @@ public class AppMenuPropertiesDelegate {
@@ -448,6 +451,41 @@ public class AppMenuPropertiesDelegate {
}
/**
@@ -173,7 +173,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -172,6 +172,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -182,6 +182,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
}
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
@@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -2906,6 +2906,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
@@ -2977,6 +2977,17 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_FIND_IN_PAGE" desc="Menu item allowing users to find text within the current page. [CHAR-LIMIT=27]">
Find in page
</message>
+47 -23
View File
@@ -18,12 +18,12 @@ New mechanism for adblocking based on Brave's adblocking hook
.../browser/appmenu/AppMenuPropertiesDelegate.java | 38 +++
.../CustomTabAppMenuPropertiesDelegate.java | 2 +
.../java/strings/android_chrome_strings.grd | 11 +
chrome/browser/net/chrome_network_delegate.cc | 58 ++++
chrome/browser/net/chrome_network_delegate.cc | 83 ++++--
.../subresource_filter_content_settings_manager.cc | 1 +
net/BUILD.gn | 7 +
net/url_request/adblock_intercept.cc | 325 +++++++++++++++++++++
net/url_request/adblock_intercept.h | 24 ++
12 files changed, 505 insertions(+)
12 files changed, 510 insertions(+), 20 deletions(-)
create mode 100644 net/url_request/adblock_intercept.cc
create mode 100644 net/url_request/adblock_intercept.h
@@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/
diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml
--- a/chrome/android/java/res/menu/main_menu.xml
+++ b/chrome/android/java/res/menu/main_menu.xml
@@ -82,6 +82,17 @@
@@ -84,6 +84,17 @@
</menu>
</item>
@@ -73,7 +73,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -2121,6 +2121,14 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -2205,6 +2205,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
RecordUserAction.record("MobileMenuRequestEnableJavascript");
} else if (id == R.id.reader_mode_prefs_id) {
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
@@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1669,6 +1669,14 @@ public class ChromeTabbedActivity
@@ -1676,6 +1676,14 @@ public class ChromeTabbedActivity
reportNewTabShortcutUsed(true);
getTabCreator(true).launchNTP();
}
@@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegate.java
@@ -196,6 +196,8 @@ public class AppMenuPropertiesDelegate {
@@ -208,6 +208,8 @@ public class AppMenuPropertiesDelegate {
&& !TextUtils.isEmpty(url);
prepareAddToHomescreenMenuItem(menu, currentTab, canShowHomeScreenMenuItem);
@@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
updateEnableJavascriptMenuItem(menu, currentTab);
@@ -474,6 +476,42 @@ public class AppMenuPropertiesDelegate {
@@ -486,6 +488,42 @@ public class AppMenuPropertiesDelegate {
}
/**
@@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java
@@ -171,6 +171,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -181,6 +181,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
}
}
@@ -176,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -2926,6 +2926,17 @@ To obtain new licenses, connect to the internet and play your downloaded content
@@ -2997,6 +2997,17 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_REQUEST_DESKTOP_SITE_OFF" desc="Accessibility description for when Request Desktop Site is disabled.">
Turn on Request desktop site
</message>
@@ -197,7 +197,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
--- a/chrome/browser/net/chrome_network_delegate.cc
+++ b/chrome/browser/net/chrome_network_delegate.cc
@@ -24,6 +24,7 @@
@@ -25,6 +25,7 @@
#include "build/build_config.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/cookie_settings_factory.h"
@@ -205,7 +205,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/custom_handlers/protocol_handler_registry.h"
#include "chrome/browser/net/chrome_extensions_network_delegate.h"
@@ -57,6 +58,7 @@
@@ -60,6 +61,7 @@
#if defined(OS_ANDROID)
#include "base/android/path_utils.h"
#include "chrome/browser/io_thread.h"
@@ -213,7 +213,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
#endif
#if defined(OS_CHROMEOS)
@@ -174,15 +176,71 @@ void ChromeNetworkDelegate::set_cookie_settings(
@@ -207,34 +209,75 @@ void ChromeNetworkDelegate::set_cookie_settings(
cookie_settings_ = cookie_settings;
}
@@ -223,7 +223,26 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
net::URLRequest* request,
net::CompletionOnceCallback callback,
GURL* new_url) {
+
- extensions_delegate_->ForwardStartRequestStatus(request);
-
- // The non-redirect case is handled in GoogleURLLoaderThrottle.
- bool force_safe_search =
- (force_google_safe_search_ && force_google_safe_search_->GetValue() &&
- request->is_redirecting());
-
- net::CompletionOnceCallback wrapped_callback = std::move(callback);
-
- if (force_safe_search) {
- wrapped_callback = base::BindOnce(
- &ForceGoogleSafeSearchCallbackWrapper, std::move(wrapped_callback),
- base::Unretained(request), base::Unretained(new_url));
- }
- int rv = extensions_delegate_->NotifyBeforeURLRequest(
- request, std::move(wrapped_callback), new_url);
-
- if (force_safe_search && rv == net::OK && new_url->is_empty())
- safe_search_util::ForceGoogleSafeSearch(request->url(), new_url);
+#if defined(OS_ANDROID)
+ if (request) {
+ bool block = false, isValidUrl;
@@ -244,14 +263,18 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
+ content::WebContents* web_contents = web_contents_getter.Run();
+ if (web_contents) {
+ Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext());
+ //FIXME: this should not be called from the IO thread
+ const HostContentSettingsMap* content_settings = HostContentSettingsMapFactory::GetForProfile(profile);
+
+ // check global value first
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetDefaultContentSetting(ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS, NULL);
+ if (content_settings) {
+ // check global value first
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetDefaultContentSetting(ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS, NULL);
+
+ if (!adblock_enabled) {
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetContentSetting(request->url(), GURL(), ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS,
+ std::string());
+ if (!adblock_enabled) {
+ // check per-site value
+ adblock_enabled = CONTENT_SETTING_BLOCK == content_settings->GetContentSetting(request->url(), GURL(), ContentSettingsType::CONTENT_SETTINGS_TYPE_ADS,
+ std::string());
+ }
+ }
+ }
+
@@ -274,10 +297,11 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
+ } // valid URL and info
+ } // request
+#endif // OS_ANDROID
+
extensions_delegate_->ForwardStartRequestStatus(request);
return extensions_delegate_->NotifyBeforeURLRequest(
request, std::move(callback), new_url);
- return rv;
+ extensions_delegate_->ForwardStartRequestStatus(request);
+ return extensions_delegate_->NotifyBeforeURLRequest(
+ request, std::move(callback), new_url);
}
+#undef TRANSPARENT1PXGIF
@@ -299,7 +323,7 @@ diff --git a/chrome/browser/subresource_filter/subresource_filter_content_settin
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1712,6 +1712,13 @@ component("net") {
@@ -1731,6 +1731,13 @@ component("net") {
"url_request/websocket_handshake_userdata_key.h",
]
+71 -33
View File
@@ -4,9 +4,9 @@ Subject: User Agent: anonymize
Use a fixed device name and Chrome product version.
---
components/version_info/version_info.cc | 17 ++++++++++-
content/common/user_agent.cc | 50 ++++++++++++++++-----------------
2 files changed, 40 insertions(+), 27 deletions(-)
components/version_info/version_info.cc | 17 +++++++-
content/common/user_agent.cc | 73 +++++++++++++++++++++------------
2 files changed, 62 insertions(+), 28 deletions(-)
diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
--- a/components/version_info/version_info.cc
@@ -56,34 +56,13 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
std::string GetWebKitVersion() {
return base::StringPrintf("%d.%d (%s)",
WEBKIT_VERSION_MAJOR,
@@ -65,29 +60,32 @@ std::string BuildOSCpuInfo(bool include_android_build_number) {
architecture_token = "; Win64; IA64";
@@ -66,7 +61,33 @@ std::string BuildOSCpuInfo(bool include_android_build_number) {
}
#elif defined(OS_ANDROID)
- std::string android_version_str = base::SysInfo::OperatingSystemVersion();
+ std::string android_version_str = base::StringPrintf("%d.%d.%d", os_major_version, os_minor_version, os_bugfix_version);
std::string android_info_str;
- // Send information about the device.
- bool semicolon_inserted = false;
- std::string android_build_codename = base::SysInfo::GetAndroidBuildCodename();
- std::string android_device_name = base::SysInfo::HardwareModelName();
- if ("REL" == android_build_codename && android_device_name.size() > 0) {
- android_info_str += "; " + android_device_name;
- semicolon_inserted = true;
- }
-
- // Append the build ID.
- if (base::FeatureList::IsEnabled(kAndroidUserAgentStringContainsBuildId) ||
- include_android_build_number) {
- std::string android_build_id = base::SysInfo::GetAndroidBuildID();
- if (android_build_id.size() > 0) {
- if (!semicolon_inserted) {
- android_info_str += ";";
- }
- android_info_str += " Build/" + android_build_id;
- }
std::string android_version_str = base::SysInfo::OperatingSystemVersion();
- std::string android_info_str = GetAndroidOSInfo(include_android_build_number);
+ std::string android_info_str;
+
+ // Send information about the device and build ID.
+ // Use a common device/build ID based on Android major version.
+ switch (os_major_version) {
@@ -106,18 +85,77 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
+ default: // version 8 and above
+ android_info_str = "SM-G950U Build/R16NW";
+ break;
}
+ }
+
+ android_info_str = " " + android_info_str;
#elif (defined(OS_POSIX) && !defined(OS_MACOSX)) || defined(OS_FUCHSIA)
@@ -125,7 +123,7 @@ std::string BuildOSCpuInfo(bool include_android_build_number) {
// Should work on any Posix system.
struct utsname unixinfo;
@@ -102,7 +123,7 @@ std::string BuildOSCpuInfo(bool include_android_build_number) {
os_minor_version,
os_bugfix_version
#elif defined(OS_ANDROID)
- "Android %s%s",
+ "Android %s; %s",
+ "Android %s;%s",
android_version_str.c_str(),
android_info_str.c_str()
#elif defined(OS_POSIX) || defined(OS_FUCHSIA)
@@ -137,18 +158,6 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
return BuildUserAgentFromOSAndProduct(os_info, product);
}
-#if defined(OS_ANDROID)
-std::string BuildUserAgentFromProductAndExtraOSInfo(
- const std::string& product,
- const std::string& extra_os_info,
- bool include_android_build_number) {
- std::string os_info;
- base::StringAppendF(&os_info, "%s%s%s", getUserAgentPlatform().c_str(),
- BuildOSCpuInfo(include_android_build_number).c_str(),
- extra_os_info.c_str());
- return BuildUserAgentFromOSAndProduct(os_info, product);
-}
-
std::string GetAndroidOSInfo(bool include_android_build_number) {
std::string android_info_str;
@@ -162,18 +171,28 @@ std::string GetAndroidOSInfo(bool include_android_build_number) {
}
// Append the build ID.
- if (base::FeatureList::IsEnabled(kAndroidUserAgentStringContainsBuildId) ||
- include_android_build_number) {
- std::string android_build_id = base::SysInfo::GetAndroidBuildID();
- if (!android_build_id.empty()) {
- if (!semicolon_inserted)
- android_info_str += ";";
- android_info_str += " Build/" + android_build_id;
- }
+ std::string android_build_id = base::SysInfo::GetAndroidBuildID();
+ if (!android_build_id.empty()) {
+ if (!semicolon_inserted)
+ android_info_str += ";";
+ android_info_str += " Build/" + android_build_id;
}
return android_info_str;
}
+
+#if defined(OS_ANDROID)
+std::string BuildUserAgentFromProductAndExtraOSInfo(
+ const std::string& product,
+ const std::string& extra_os_info,
+ bool include_android_build_number) {
+ std::string os_info;
+ base::StringAppendF(&os_info, "%s%s%s", getUserAgentPlatform().c_str(),
+ BuildOSCpuInfo(include_android_build_number).c_str(),
+ extra_os_info.c_str());
+ return BuildUserAgentFromOSAndProduct(os_info, product);
+}
+
#endif // defined(OS_ANDROID)
std::string BuildUserAgentFromOSAndProduct(const std::string& os_info,
--
2.11.0
@@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.idl b/thir
diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc
--- a/third_party/blink/renderer/modules/webaudio/audio_context.cc
+++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc
@@ -315,6 +315,7 @@ void AudioContext::StopRendering() {
@@ -320,6 +320,7 @@ void AudioContext::StopRendering() {
double AudioContext::baseLatency() const {
DCHECK(IsMainThread());
DCHECK(destination());
@@ -13,32 +13,85 @@ to poison the well.
See also: http://www.gsd.inesc-id.pt/~mpc/pubs/fingerprinting-trustcom2016.pdf
---
third_party/blink/renderer/core/dom/element.cc | 17 +++++++++++++++++
third_party/blink/renderer/core/dom/range.cc | 20 +++++++++++++++++++-
.../blink/renderer/core/html/canvas/text_metrics.cc | 18 ++++++++++++++++++
.../blink/renderer/core/html/canvas/text_metrics.h | 2 ++
.../canvas/canvas2d/canvas_rendering_context_2d.cc | 10 +++++++++-
5 files changed, 65 insertions(+), 2 deletions(-)
third_party/blink/renderer/core/dom/document.cc | 13 +++++++++++++
third_party/blink/renderer/core/dom/document.h | 5 +++++
third_party/blink/renderer/core/dom/element.cc | 16 ++++++++++++++++
third_party/blink/renderer/core/dom/range.cc | 18 +++++++++++++++++-
.../blink/renderer/core/html/canvas/text_metrics.cc | 18 ++++++++++++++++++
.../blink/renderer/core/html/canvas/text_metrics.h | 2 ++
.../canvas/canvas2d/canvas_rendering_context_2d.cc | 10 +++++++++-
7 files changed, 80 insertions(+), 2 deletions(-)
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -33,6 +33,7 @@
#include "base/auto_reset.h"
#include "base/optional.h"
+#include "base/rand_util.h"
#include "services/metrics/public/cpp/mojo_ukm_recorder.h"
#include "services/metrics/public/cpp/ukm_builders.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
@@ -725,6 +726,10 @@ Document::Document(const DocumentInit& initializer,
}
DCHECK(fetcher_);
+ // add X/Y noise factors that will be used to mitigate fingerprinting
+ shuffleFactorX_ = base::RandDouble();
+ shuffleFactorY_ = base::RandDouble();
+
root_scroller_controller_ = RootScrollerController::Create(*this);
// We depend on the url getting immediately set in subframes, but we
@@ -790,6 +795,14 @@ Range* Document::CreateRangeAdjustedToTreeScope(const TreeScope& tree_scope,
Position::BeforeNode(*shadow_host));
}
+double Document::GetShuffleFactorX() {
+ return shuffleFactorX_;
+}
+
+double Document::GetShuffleFactorY() {
+ return shuffleFactorY_;
+}
+
SelectorQueryCache& Document::GetSelectorQueryCache() {
if (!selector_query_cache_)
selector_query_cache_ = std::make_unique<SelectorQueryCache>();
diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h
--- a/third_party/blink/renderer/core/dom/document.h
+++ b/third_party/blink/renderer/core/dom/document.h
@@ -427,6 +427,9 @@ class CORE_EXPORT Document : public ContainerNode,
has_xml_declaration_ = has_xml_declaration ? 1 : 0;
}
+ double GetShuffleFactorX();
+ double GetShuffleFactorY();
+
String visibilityState() const;
mojom::PageVisibilityState GetPageVisibilityState() const;
bool hidden() const;
@@ -1780,6 +1783,8 @@ class CORE_EXPORT Document : public ContainerNode,
double start_time_;
+ double shuffleFactorX_, shuffleFactorY_;
+
TraceWrapperMember<ScriptRunner> script_runner_;
HeapVector<Member<ScriptElementBase>> current_script_stack_;
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
@@ -27,6 +27,7 @@
#include "third_party/blink/renderer/core/dom/element.h"
#include <memory>
+#include "base/rand_util.h"
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
#include "third_party/blink/renderer/bindings/core/v8/dictionary.h"
@@ -1383,6 +1384,15 @@ DOMRectList* Element::getClientRects() {
@@ -1363,6 +1363,15 @@ DOMRectList* Element::getClientRects() {
DCHECK(element_layout_object);
GetDocument().AdjustFloatQuadsForScrollAndAbsoluteZoom(
quads, *element_layout_object);
+
+ // scale all quads
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleX = 1 + (GetDocument().GetShuffleFactorX() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (GetDocument().GetShuffleFactorY() - 0.5) * 0.000003;
+
+ for (FloatQuad& quad : quads) {
+ quad.Scale(shuffleX, shuffleY);
@@ -47,14 +100,14 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
return DOMRectList::Create(quads);
}
@@ -1400,6 +1410,13 @@ DOMRect* Element::getBoundingClientRect() {
@@ -1380,6 +1389,13 @@ DOMRect* Element::getBoundingClientRect() {
DCHECK(element_layout_object);
GetDocument().AdjustFloatRectForScrollAndAbsoluteZoom(result,
*element_layout_object);
+
+ // scale rect by 3/1000000th
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleX = 1 + (GetDocument().GetShuffleFactorX() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (GetDocument().GetShuffleFactorY() - 0.5) * 0.000003;
+
+ result.Scale(shuffleX, shuffleY);
+
@@ -64,22 +117,13 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/renderer/core/dom/range.cc
--- a/third_party/blink/renderer/core/dom/range.cc
+++ b/third_party/blink/renderer/core/dom/range.cc
@@ -25,6 +25,8 @@
#include "third_party/blink/renderer/core/dom/range.h"
+#include "base/rand_util.h"
+
#include "third_party/blink/renderer/bindings/core/v8/string_or_trusted_html.h"
#include "third_party/blink/renderer/core/dom/character_data.h"
#include "third_party/blink/renderer/core/dom/container_node.h"
@@ -1607,11 +1609,27 @@ DOMRectList* Range::getClientRects() const {
@@ -1606,11 +1606,27 @@ DOMRectList* Range::getClientRects() const {
Vector<FloatQuad> quads;
GetBorderAndTextQuads(quads);
+ // scale all quads by 3/1000000th
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleX = 1 + (owner_document_->GetShuffleFactorX() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (owner_document_->GetShuffleFactorY() - 0.5) * 0.000003;
+
+ for (FloatQuad& quad : quads) {
+ quad.Scale(shuffleX, shuffleY);
@@ -93,8 +137,8 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
+ auto rect = BoundingRect();
+
+ // scale rect by 3/1000000th
+ auto shuffleX = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleX = 1 + (owner_document_->GetShuffleFactorX() - 0.5) * 0.000003;
+ auto shuffleY = 1 + (owner_document_->GetShuffleFactorY() - 0.5) * 0.000003;
+
+ rect.Scale(shuffleX, shuffleY);
+
@@ -105,7 +149,7 @@ diff --git a/third_party/blink/renderer/core/dom/range.cc b/third_party/blink/re
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
@@ -49,6 +49,24 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
@@ -38,6 +38,24 @@ float TextMetrics::GetFontBaseline(const TextBaseline& text_baseline,
return 0;
}
@@ -135,7 +179,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
@@ -68,6 +68,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
static float GetFontBaseline(const TextBaseline&, const FontMetrics&);
static float GetFontBaseline(const TextBaseline&, const SimpleFontData&);
+ void Shuffle(const double factor);
+
@@ -154,7 +198,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
@@ -781,8 +783,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
@@ -782,8 +784,14 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
else
direction = ToTextDirection(GetState().GetDirection(), canvas());
@@ -10,13 +10,35 @@ without a visible effect.
Credits to Slaviro (https://github.com/Slaviro) for coming up with a better
approach to change color components.
---
.../canvas/canvas2d/canvas_rendering_context_2d.cc | 4 +-
.../modules/webgl/webgl_debug_renderer_info.cc | 4 +-
third_party/blink/renderer/platform/BUILD.gn | 4 +-
.../platform/graphics/image_data_buffer.cc | 5 +
.../platform/graphics/static_bitmap_image.cc | 156 +++++++++++++++++++++
.../platform/graphics/static_bitmap_image.h | 2 +
5 files changed, 168 insertions(+), 3 deletions(-)
6 files changed, 169 insertions(+), 6 deletions(-)
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.cc
@@ -33,8 +33,6 @@
#include "third_party/blink/renderer/modules/canvas/canvas2d/canvas_rendering_context_2d.h"
-#include "base/rand_util.h"
-
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/public/platform/web_scroll_into_view_params.h"
@@ -788,7 +786,7 @@ TextMetrics* CanvasRenderingContext2D::measureText(const String& text) {
GetState().GetTextAlign(), text);
// scale text metrics by 3/1000000th
- auto shuffleFactor = 1 + (base::RandDouble() - 0.5) * 0.000003;
+ auto shuffleFactor = 1 + (canvas()->GetDocument().GetShuffleFactorX() - 0.5) * 0.000003;
textMetrics->Shuffle(shuffleFactor);
return textMetrics;
diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
--- a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.cc
@@ -37,7 +59,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_debug_renderer_info.
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -1428,7 +1428,9 @@ jumbo_component("platform") {
@@ -1432,7 +1432,9 @@ jumbo_component("platform") {
"//third_party/blink/renderer:non_test_config",
]
@@ -87,10 +109,10 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
#include "third_party/skia/include/core/SkImage.h"
#include "third_party/skia/include/core/SkPaint.h"
+#include "third_party/skia/src/core/SkColorData.h"
#include "third_party/skia/include/core/SkSurface.h"
#include "third_party/skia/include/gpu/GrContext.h"
namespace blink {
@@ -154,10 +157,163 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
@@ -176,10 +179,163 @@ bool StaticBitmapImage::ConvertToArrayBufferContents(
DCHECK(read_pixels_successful ||
!sk_image->bounds().intersect(SkIRect::MakeXYWH(
rect.X(), rect.Y(), info.width(), info.height())));
@@ -1,44 +1,52 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Mon, 22 Oct 2018 21:29:53 +0200
Subject: Add flag to disable device motion API
Subject: Add flags to disable device motion and orientation APIs
Both flags will be disabled by default and prevent usage of gyroscope and
legacy acceleration events.
---
chrome/browser/about_flags.cc | 3 +++
chrome/browser/flag_descriptions.cc | 4 ++++
chrome/browser/flag_descriptions.h | 3 +++
content/browser/renderer_host/render_process_host_impl.cc | 1 +
content/child/runtime_features.cc | 3 +++
content/public/common/content_switches.cc | 3 +++
content/public/common/content_switches.h | 1 +
third_party/blink/public/platform/web_runtime_features.h | 1 +
third_party/blink/renderer/modules/modules_initializer.cc | 3 ++-
third_party/blink/renderer/platform/exported/web_runtime_features.cc | 4 ++++
third_party/blink/renderer/platform/runtime_enabled_features.json5 | 4 ++++
11 files changed, 29 insertions(+), 1 deletion(-)
chrome/browser/about_flags.cc | 6 ++++++
chrome/browser/flag_descriptions.cc | 8 ++++++++
chrome/browser/flag_descriptions.h | 6 ++++++
content/child/runtime_features.cc | 3 +++
content/public/common/content_features.cc | 10 ++++++++++
content/public/common/content_features.h | 2 ++
third_party/blink/public/platform/web_runtime_features.h | 2 ++
third_party/blink/renderer/modules/modules_initializer.cc | 9 ++++++---
.../blink/renderer/platform/exported/web_runtime_features.cc | 8 ++++++++
.../blink/renderer/platform/runtime_enabled_features.json5 | 8 ++++++++
10 files changed, 59 insertions(+), 3 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3040,6 +3040,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -3005,6 +3005,12 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-generic-sensor", flag_descriptions::kEnableGenericSensorName,
flag_descriptions::kEnableGenericSensorDescription, kOsAll,
FEATURE_VALUE_TYPE(features::kGenericSensor)},
+ {"disable-device-motion", flag_descriptions::kDisableDeviceMotionName,
+ flag_descriptions::kDisableDeviceMotionDescription, kOsAll,
+ SINGLE_DISABLE_VALUE_TYPE(switches::kDisableDeviceMotion)},
+ {"enable-device-motion", flag_descriptions::kEnableDeviceMotionName,
+ flag_descriptions::kEnableDeviceMotionDescription, kOsAll,
+ FEATURE_VALUE_TYPE(features::kDeviceMotion)},
+ {"enable-device-orientation", flag_descriptions::kEnableDeviceOrientationName,
+ flag_descriptions::kEnableDeviceOrientationDescription, kOsAll,
+ FEATURE_VALUE_TYPE(features::kDeviceOrientation)},
{"enable-generic-sensor-extra-classes",
flag_descriptions::kEnableGenericSensorExtraClassesName,
flag_descriptions::kEnableGenericSensorExtraClassesDescription, kOsAll,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -556,6 +556,10 @@ const char kEnableGenericSensorDescription[] =
@@ -551,6 +551,14 @@ const char kEnableGenericSensorDescription[] =
"Accelerometer, LinearAccelerationSensor, Gyroscope, "
"AbsoluteOrientationSensor and RelativeOrientationSensor interfaces.";
+const char kDisableDeviceMotionName[] = "Disable device motion";
+const char kDisableDeviceMotionDescription[] =
+ "Disable device motion API";
+const char kEnableDeviceMotionName[] = "Enable device motion";
+const char kEnableDeviceMotionDescription[] =
+ "Enable device motion API which is used to detect changes in acceleration";
+
+const char kEnableDeviceOrientationName[] = "Enable device orientation";
+const char kEnableDeviceOrientationDescription[] =
+ "Enable device orientation API which is used to detect changes in orientation";
+
const char kEnableGenericSensorExtraClassesName[] =
"Generic Sensor Extra Classes";
@@ -46,98 +54,109 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -366,6 +366,9 @@ extern const char kEnableEnumeratingAudioDevicesDescription[];
@@ -362,6 +362,12 @@ extern const char kEnableEnumeratingAudioDevicesDescription[];
extern const char kEnableGenericSensorName[];
extern const char kEnableGenericSensorDescription[];
+extern const char kDisableDeviceMotionName[];
+extern const char kDisableDeviceMotionDescription[];
+extern const char kEnableDeviceMotionName[];
+extern const char kEnableDeviceMotionDescription[];
+
+extern const char kEnableDeviceOrientationName[];
+extern const char kEnableDeviceOrientationDescription[];
+
extern const char kEnableGenericSensorExtraClassesName[];
extern const char kEnableGenericSensorExtraClassesDescription[];
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -2938,6 +2938,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kDisableCompositorUkmForTests,
switches::kDisablePreferCompositingToLCDText,
switches::kDisableDatabases,
+ switches::kDisableDeviceMotion,
switches::kDisableFileSystem,
switches::kDisableFrameRateLimit,
switches::kDisableGpuMemoryBufferVideoFrames,
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -144,6 +144,9 @@ void SetRuntimeFeaturesDefaultsAndUpdateFromArgs(
@@ -143,6 +143,9 @@ void SetRuntimeFeaturesDefaultsAndUpdateFromArgs(
if (command_line.HasSwitch(switches::kDisableSharedWorkers))
WebRuntimeFeatures::EnableSharedWorker(false);
+ if (command_line.HasSwitch(switches::kDisableDeviceMotion))
+ WebRuntimeFeatures::EnableDeviceMotion(false);
+ WebRuntimeFeatures::EnableDeviceMotion(base::FeatureList::IsEnabled(features::kDeviceMotion));
+ WebRuntimeFeatures::EnableDeviceOrientation(base::FeatureList::IsEnabled(features::kDeviceOrientation));
+
if (command_line.HasSwitch(switches::kDisableSpeechAPI))
WebRuntimeFeatures::EnableScriptedSpeech(false);
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc
--- a/content/public/common/content_switches.cc
+++ b/content/public/common/content_switches.cc
@@ -98,6 +98,9 @@ const char kDisableCompositorUkmForTests[] = "disable-compositor-ukm-for-tests";
// Disables HTML5 DB support.
const char kDisableDatabases[] = "disable-databases";
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -570,6 +570,16 @@ const base::Feature kWebRtcHideLocalIpsWithMdns{
// https://wicg.github.io/webusb
const base::Feature kWebUsb{"WebUSB", base::FEATURE_ENABLED_BY_DEFAULT};
+// Disable device motion events.
+const char kDisableDeviceMotion[] = "disable-device-motion";
+// Enables the device motion API used to track device acceleration;
+// no user authorization or notifications happens when in use.
+const base::Feature kDeviceMotion{"DeviceMotion",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
// Disable the per-domain blocking for 3D APIs after GPU reset.
// This switch is intended only for tests.
const char kDisableDomainBlockingFor3DAPIs[] =
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h
--- a/content/public/common/content_switches.h
+++ b/content/public/common/content_switches.h
@@ -42,6 +42,7 @@ CONTENT_EXPORT extern const char kDisableBlinkFeatures[];
CONTENT_EXPORT extern const char kDisableCompositorUkmForTests[];
CONTENT_EXPORT extern const char kDisableDatabases[];
CONTENT_EXPORT extern const char kDisableDisplayList2dCanvas[];
+CONTENT_EXPORT extern const char kDisableDeviceMotion[];
extern const char kDisableDomainBlockingFor3DAPIs[];
CONTENT_EXPORT extern const char kDisableWebGL[];
CONTENT_EXPORT extern const char kDisableWebGL2[];
+// Enables the device orientation API used to track device orientation;
+// no user authorization or notifications happens when in use.
+const base::Feature kDeviceOrientation{"DeviceOrientation",
+ base::FEATURE_DISABLED_BY_DEFAULT};
+
// Controls whether WebVR VSync-aligned render loop timing is enabled.
const base::Feature kWebVrVsyncAlign{"WebVrVsyncAlign",
base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -152,6 +152,8 @@ CONTENT_EXPORT extern const char kWebXrRenderPathParamValueGpuFence[];
CONTENT_EXPORT extern const char kWebXrRenderPathParamValueSharedBuffer[];
#endif // defined(OS_ANDROID)
+CONTENT_EXPORT extern const base::Feature kDeviceMotion, kDeviceOrientation;
+
#if !defined(OS_ANDROID)
CONTENT_EXPORT extern const base::Feature kWebUIPolymer2;
#endif // !defined(OS_ANDROID)
diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_party/blink/public/platform/web_runtime_features.h
--- a/third_party/blink/public/platform/web_runtime_features.h
+++ b/third_party/blink/public/platform/web_runtime_features.h
@@ -84,6 +84,7 @@ class WebRuntimeFeatures {
@@ -85,6 +85,8 @@ class WebRuntimeFeatures {
BLINK_PLATFORM_EXPORT static void EnableCSSFragmentIdentifiers(bool);
BLINK_PLATFORM_EXPORT static void EnableScrollTopLeftInterop(bool);
BLINK_PLATFORM_EXPORT static void EnableDatabase(bool);
+ BLINK_PLATFORM_EXPORT static void EnableDeviceMotion(bool);
+ BLINK_PLATFORM_EXPORT static void EnableDeviceOrientation(bool);
BLINK_PLATFORM_EXPORT static void EnableDecodeToYUV(bool);
BLINK_PLATFORM_EXPORT static void EnableDisplayCutoutAPI(bool);
BLINK_PLATFORM_EXPORT static void EnableFastMobileScrolling(bool);
diff --git a/third_party/blink/renderer/modules/modules_initializer.cc b/third_party/blink/renderer/modules/modules_initializer.cc
--- a/third_party/blink/renderer/modules/modules_initializer.cc
+++ b/third_party/blink/renderer/modules/modules_initializer.cc
@@ -233,7 +233,8 @@ void ModulesInitializer::InitInspectorAgentSession(
@@ -233,9 +233,12 @@ void ModulesInitializer::InitInspectorAgentSession(
void ModulesInitializer::OnClearWindowObjectInMainWorld(
Document& document,
const Settings& settings) const {
- DeviceMotionController::From(document);
- DeviceOrientationController::From(document);
- DeviceOrientationAbsoluteController::From(document);
+ if (RuntimeEnabledFeatures::DeviceMotionEnabled())
+ DeviceMotionController::From(document);
DeviceOrientationController::From(document);
DeviceOrientationAbsoluteController::From(document);
+ if (RuntimeEnabledFeatures::DeviceOrientationEnabled()) {
+ DeviceOrientationController::From(document);
+ DeviceOrientationAbsoluteController::From(document);
+ }
NavigatorGamepad::From(document);
NavigatorServiceWorker::From(document);
DOMWindowStorageController::From(document);
diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.cc b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
--- a/third_party/blink/renderer/platform/exported/web_runtime_features.cc
+++ b/third_party/blink/renderer/platform/exported/web_runtime_features.cc
@@ -140,6 +140,10 @@ void WebRuntimeFeatures::EnableDatabase(bool enable) {
@@ -136,6 +136,14 @@ void WebRuntimeFeatures::EnableDatabase(bool enable) {
RuntimeEnabledFeatures::SetDatabaseEnabled(enable);
}
+void WebRuntimeFeatures::EnableDeviceMotion(bool enable) {
+ RuntimeEnabledFeatures::SetDeviceMotionEnabled(enable);
+}
+
+void WebRuntimeFeatures::EnableDeviceOrientation(bool enable) {
+ RuntimeEnabledFeatures::SetDeviceOrientationEnabled(enable);
+}
+
void WebRuntimeFeatures::EnableDecodeToYUV(bool enable) {
RuntimeEnabledFeatures::SetDecodeToYUVEnabled(enable);
@@ -145,13 +164,17 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -348,6 +348,10 @@
@@ -357,6 +357,14 @@
status: "stable",
},
{
+ name: "DeviceMotion",
+ status: "stable",
+ },
+ {
+ name: "DeviceOrientation",
+ status: "stable",
+ },
+ {
name: "DecodeToYUV",
status: "experimental",
@@ -10,7 +10,7 @@ Originally from http://bazaar.launchpad.net/~saiarcot895/chromium-browser/chromi
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -531,7 +531,7 @@ void ChromeContentClient::AddContentDecryptionModules(
@@ -538,7 +538,7 @@ void ChromeContentClient::AddContentDecryptionModules(
base::FilePath cdm_path;
content::CdmCapability capability;
if (IsWidevineAvailable(&cdm_path, &capability)) {
@@ -9,7 +9,7 @@ Subject: Disable metrics on all I/O threads
diff --git a/chrome/browser/profiles/profile_io_data.cc b/chrome/browser/profiles/profile_io_data.cc
--- a/chrome/browser/profiles/profile_io_data.cc
+++ b/chrome/browser/profiles/profile_io_data.cc
@@ -956,7 +956,7 @@ void ProfileIOData::InitializeMetricsEnabledStateOnUIThread() {
@@ -873,7 +873,7 @@ void ProfileIOData::InitializeMetricsEnabledStateOnUIThread() {
bool ProfileIOData::GetMetricsEnabledStateOnIOThread() const {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
@@ -23,8 +23,8 @@ See also: https://tools.ietf.org/id/draft-ietf-doh-dns-over-https-12.txt
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -416,6 +416,13 @@ const FeatureEntry::Choice kChromeHomeSwipeLogicChoices[] = {
switches::kChromeHomeSwipeLogicType, "velocity"},
@@ -461,6 +461,13 @@ const FeatureEntry::FeatureVariation kCCTModuleCacheVariations[] = {
base::size(kCCTModuleCache_ThirtyMinutes), nullptr},
};
+const FeatureEntry::Choice kDnsOverHttpsChoices[] = {
@@ -37,7 +37,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
#endif // OS_ANDROID
const FeatureEntry::Choice kNumRasterThreadsChoices[] = {
@@ -3722,6 +3729,12 @@ const FeatureEntry kFeatureEntries[] = {
@@ -3659,6 +3666,12 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kAsyncDns)},
#endif // defined(OS_ANDROID)
@@ -53,9 +53,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -2248,6 +2248,9 @@ const char kAndroidPaymentAppsDescription[] =
const char kAsyncDnsName[] = "Async DNS resolver";
const char kAsyncDnsDescription[] = "Enables the built-in DNS resolver.";
@@ -2209,6 +2209,9 @@ const char kAutoFetchOnNetErrorPageDescription[] =
"When enabled, and navigation fails with an offline error, schedule a "
"fetch of the page when online again.";
+const char kDnsOverHttpsName[] = "DNS over HTTPS";
+const char kDnsOverHttpsDescription[] = "Enables DNS-over-HTTPS (experimental).";
@@ -66,9 +66,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1353,6 +1353,9 @@ extern const char kAppNotificationStatusMessagingDescription[];
extern const char kAsyncDnsName[];
extern const char kAsyncDnsDescription[];
@@ -1343,6 +1343,9 @@ extern const char kAsyncDnsDescription[];
extern const char kAutoFetchOnNetErrorPageName[];
extern const char kAutoFetchOnNetErrorPageDescription[];
+extern const char kDnsOverHttpsName[];
+extern const char kDnsOverHttpsDescription[];
@@ -79,16 +79,16 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/component_updater/crl_set_component_installer.h"
@@ -22,6 +22,7 @@
#include "chrome/browser/component_updater/sth_set_component_installer.h"
#include "chrome/browser/io_thread.h"
#include "chrome/browser/net/chrome_mojo_proxy_resolver_factory.h"
+#include "components/network_session_configurator/common/network_switches.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
#include "chrome/browser/ssl/ssl_config_service_manager.h"
#include "chrome/common/channel_info.h"
@@ -355,15 +356,12 @@ SystemNetworkContextManager::SystemNetworkContextManager()
base::Value(ShouldEnableAsyncDns()));
@@ -389,15 +390,12 @@ SystemNetworkContextManager::SystemNetworkContextManager(
base::Value(ShouldEnableAsyncDns()));
base::ListValue default_doh_servers;
base::ListValue default_doh_server_methods;
- if (base::FeatureList::IsEnabled(features::kDnsOverHttps)) {
@@ -107,14 +107,14 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
+ default_doh_servers.AppendString(server);
+ default_doh_server_methods.AppendString("POST");
}
local_state->SetDefaultPrefValue(prefs::kDnsOverHttpsServers,
std::move(default_doh_servers));
local_state_->SetDefaultPrefValue(prefs::kDnsOverHttpsServers,
std::move(default_doh_servers));
diff --git a/components/network_session_configurator/common/network_features.cc b/components/network_session_configurator/common/network_features.cc
--- a/components/network_session_configurator/common/network_features.cc
+++ b/components/network_session_configurator/common/network_features.cc
@@ -11,7 +11,9 @@ namespace features {
// TODO(nharper): Disable kChannelID on all platforms in M69.
const base::Feature kChannelID{"channel-id", base::FEATURE_ENABLED_BY_DEFAULT};
@@ -10,7 +10,9 @@ namespace features {
const base::Feature kChannelID{"channel-id", base::FEATURE_DISABLED_BY_DEFAULT};
-const base::Feature kDnsOverHttps{"dns-over-https",
- base::FEATURE_DISABLED_BY_DEFAULT};
@@ -173,7 +173,7 @@ diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h
diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
--- a/net/dns/dns_transaction.cc
+++ b/net/dns/dns_transaction.cc
@@ -357,30 +357,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
@@ -358,30 +358,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
HttpRequestHeaders extra_request_headers;
extra_request_headers.SetHeader("Accept", kDnsOverHttpResponseContentType);
@@ -205,7 +205,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
net_log_ = request_->net_log();
if (use_post) {
@@ -396,6 +373,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
@@ -397,6 +374,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate {
request_->SetExtraRequestHeaders(extra_request_headers);
request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE |
@@ -213,7 +213,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
LOAD_BYPASS_PROXY);
request_->set_allow_credentials(false);
}
@@ -818,7 +796,7 @@ class DnsTransactionImpl : public DnsTransaction,
@@ -819,7 +797,7 @@ class DnsTransactionImpl : public DnsTransaction,
had_tcp_attempt_(false),
doh_attempt_(false),
first_server_index_(0),
@@ -225,7 +225,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -434,21 +434,25 @@ void URLRequestHttpJob::Start() {
@@ -434,19 +434,23 @@ void URLRequestHttpJob::Start() {
// plugin could set a referrer although sending the referrer is inhibited.
request_info_.extra_headers.RemoveHeader(HttpRequestHeaders::kReferer);
@@ -242,8 +242,6 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
+ }
}
request_info_.token_binding_referrer = request_->token_binding_referrer();
// This should be kept in sync with the corresponding code in
// URLRequest::GetUserAgent.
- request_info_.extra_headers.SetHeaderIfMissing(
@@ -256,7 +254,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
AddExtraHeaders();
AddCookieHeaderAndStart();
@@ -666,10 +670,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
@@ -664,10 +668,12 @@ void URLRequestHttpJob::AddExtraHeaders() {
HttpRequestHeaders::kAcceptEncoding)) {
// Advertise "br" encoding only if transferred data is opaque to proxy.
bool advertise_brotli = false;
@@ -273,7 +271,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
}
}
@@ -686,7 +692,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
@@ -684,7 +690,7 @@ void URLRequestHttpJob::AddExtraHeaders() {
advertised_encodings);
}
@@ -11,7 +11,7 @@ Do not read experiment value for cronet async DNS configuration
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -202,7 +202,7 @@ void OnAuthPrefsChanged(const std::string& pref_name) {
@@ -216,7 +216,7 @@ void OnAuthPrefsChanged(PrefService* local_state,
// Android this includes checking the Android version in the field trial.
bool ShouldEnableAsyncDns() {
bool feature_can_be_enabled = true;
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
diff --git a/components/cronet/url_request_context_config.cc b/components/cronet/url_request_context_config.cc
--- a/components/cronet/url_request_context_config.cc
+++ b/components/cronet/url_request_context_config.cc
@@ -466,7 +466,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
@@ -476,7 +476,8 @@ void URLRequestContextConfig::ParseAndSetExperimentalOptions(
effective_experimental_options->Remove(it.key(), nullptr);
continue;
}
@@ -18,7 +18,7 @@ with limited CPU/memory resources and it is disabled by default.
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -909,6 +909,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
@@ -963,6 +963,11 @@ const FeatureEntry::Choice kForceEffectiveConnectionTypeChoices[] = {
net::kEffectiveConnectionType4G},
};
@@ -30,7 +30,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// Ensure that all effective connection types returned by Network Quality
// Estimator (NQE) are also exposed via flags.
static_assert(net::EFFECTIVE_CONNECTION_TYPE_LAST + 2 ==
@@ -2607,6 +2612,9 @@ const FeatureEntry kFeatureEntries[] = {
@@ -2606,6 +2611,9 @@ const FeatureEntry kFeatureEntries[] = {
flag_descriptions::kMaterialDesignIncognitoNTPName,
flag_descriptions::kMaterialDesignIncognitoNTPDescription, kOsAndroid,
FEATURE_VALUE_TYPE(features::kMaterialDesignIncognitoNTP)},
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1141,6 +1141,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
@@ -1142,6 +1142,10 @@ const char kMaterialDesignIncognitoNTPDescription[] =
"If enabled, the Incognito New Tab page uses the new material design with "
"a better readable text.";
@@ -57,7 +57,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -708,6 +708,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
@@ -710,6 +710,9 @@ extern const char kMarkHttpAsWarningAndDangerousOnPasswordsAndCreditCards[];
extern const char kMaterialDesignIncognitoNTPName[];
extern const char kMaterialDesignIncognitoNTPDescription[];
@@ -77,9 +77,9 @@ diff --git a/components/network_session_configurator/common/network_features.cc
+const char kMaxConnectionsPerHostChoiceDefault[] = "6",
+ kMaxConnectionsPerHostChoice15[] = "15";
+
// TODO(nharper): Disable kChannelID on all platforms in M69.
const base::Feature kChannelID{"channel-id", base::FEATURE_ENABLED_BY_DEFAULT};
const base::Feature kChannelID{"channel-id", base::FEATURE_DISABLED_BY_DEFAULT};
const char kDnsOverHttpsChoiceDefault[] = "Disabled",
diff --git a/components/network_session_configurator/common/network_features.h b/components/network_session_configurator/common/network_features.h
--- a/components/network_session_configurator/common/network_features.h
+++ b/components/network_session_configurator/common/network_features.h
@@ -41,7 +41,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.profiles.Profile;
@@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
import org.chromium.chrome.browser.searchwidget.SearchActivity;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.DocumentModeAssassin;
@@ -269,6 +270,7 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
@@ -272,6 +273,7 @@ public class LaunchIntentDispatcher implements IntentHandler.IntentHandlerDelega
*/
public static boolean isCustomTabIntent(Intent intent) {
if (intent == null) return false;
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
private static final String PREF_SAFE_BROWSING = "safe_browsing";
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
@@ -139,6 +140,11 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -135,6 +136,11 @@ public class PrivacyPreferences extends PreferenceFragment
? PREF_SAFE_BROWSING_EXTENDED_REPORTING : PREF_SAFE_BROWSING_SCOUT_REPORTING;
preferenceScreen.removePreference(findPreference(extended_reporting_pref_to_remove));
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
ChromeBaseCheckBoxPreference safeBrowsingPref =
(ChromeBaseCheckBoxPreference) findPreference(PREF_SAFE_BROWSING);
safeBrowsingPref.setOnPreferenceChangeListener(this);
@@ -158,6 +164,10 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -154,6 +160,10 @@ public class PrivacyPreferences extends PreferenceFragment
|| PREF_SAFE_BROWSING_SCOUT_REPORTING.equals(key)) {
PrefServiceBridge.getInstance().setSafeBrowsingExtendedReportingEnabled(
(boolean) newValue);
@@ -94,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -3763,6 +3763,13 @@ However, you arent invisible. Going private doesnt hide your browsing from
@@ -3875,6 +3875,13 @@ However, you arent invisible. Going private doesnt hide your browsing from
Browse
</message>
@@ -1,15 +1,15 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Tue, 28 Aug 2018 23:27:23 +0200
Subject: Add privacy option to keep cookies until session exit
Subject: Add site settings option for session-only cookies
---
chrome/android/java/res/values/values.xml | 3 +++
chrome/android/java/res/xml/website_preferences.xml | 7 +++++++
.../browser/preferences/PrefServiceBridge.java | 10 ++++++++++
.../website/SingleCategoryPreferences.java | 20 +++++++++++++++++++-
.../android/java/strings/android_chrome_strings.grd | 6 ++++++
.../android/preferences/pref_service_bridge.cc | 19 +++++++++++++++++++
6 files changed, 64 insertions(+), 1 deletion(-)
chrome/android/java/res/values/values.xml | 3 +++
.../android/java/res/xml/website_preferences.xml | 7 ++++++
.../browser/preferences/PrefServiceBridge.java | 10 +++++++++
.../website/SingleCategoryPreferences.java | 21 +++++++++++++++++-
.../java/strings/android_chrome_strings.grd | 6 ++++++
.../android/preferences/pref_service_bridge.cc | 25 ++++++++++++++++++++++
6 files changed, 71 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
--- a/chrome/android/java/res/values/values.xml
@@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
/**
* @return Whether third-party cookie blocking is configured by policy
*/
@@ -630,6 +634,10 @@ public class PrefServiceBridge {
@@ -638,6 +642,10 @@ public class PrefServiceBridge {
nativeSetBlockThirdPartyCookiesEnabled(enabled);
}
@@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
public void setDoNotTrackEnabled(boolean enabled) {
nativeSetDoNotTrackEnabled(enabled);
}
@@ -1072,6 +1080,7 @@ public class PrefServiceBridge {
@@ -1086,6 +1094,7 @@ public class PrefServiceBridge {
private native boolean nativeGetAutoplayEnabled();
private native boolean nativeGetBackgroundSyncEnabled();
private native boolean nativeGetBlockThirdPartyCookiesEnabled();
@@ -74,14 +74,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/Pre
private native boolean nativeGetBlockThirdPartyCookiesManaged();
private native boolean nativeGetRememberPasswordsEnabled();
private native boolean nativeGetPasswordManagerAutoSigninEnabled();
@@ -1118,6 +1127,7 @@ public class PrefServiceBridge {
private native void nativeSetAllowCookiesEnabled(boolean allow);
private native void nativeSetBackgroundSyncEnabled(boolean allow);
private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled);
@@ -1132,6 +1141,7 @@ public class PrefServiceBridge {
private native void nativeSetAutoplayEnabled(boolean enabled);
private native void nativeSetAllowCookiesEnabled(boolean enabled);
private native void nativeSetBackgroundSyncEnabled(boolean enabled);
+ private native void nativeSetCookiesSessionOnlyEnabled(boolean enabled);
private native void nativeSetClipboardEnabled(boolean allow);
private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled);
private native void nativeSetClipboardEnabled(boolean enabled);
private native void nativeSetDoNotTrackEnabled(boolean enabled);
private native void nativeSetRememberPasswordsEnabled(boolean allow);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
public static final String NOTIFICATIONS_VIBRATE_TOGGLE_KEY = "notifications_vibrate";
public static final String EXPLAIN_PROTECTED_MEDIA_KEY = "protected_content_learn_more";
private static final String ADD_EXCEPTION_KEY = "add_exception";
@@ -460,6 +461,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
@@ -438,6 +439,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
if (type == SiteSettingsCategory.Type.COOKIES) {
updateThirdPartyCookiesCheckBox();
@@ -101,7 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
} else if (type == SiteSettingsCategory.Type.NOTIFICATIONS) {
updateNotificationsVibrateCheckBox();
}
@@ -498,6 +500,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
@@ -476,6 +478,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
getInfoForOrigins();
} else if (THIRD_PARTY_COOKIES_TOGGLE_KEY.equals(preference.getKey())) {
prefServiceBridge.setBlockThirdPartyCookiesEnabled(!((boolean) newValue));
@@ -110,14 +110,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
} else if (NOTIFICATIONS_VIBRATE_TOGGLE_KEY.equals(preference.getKey())) {
prefServiceBridge.setNotificationsVibrateEnabled((boolean) newValue);
}
@@ -803,12 +807,17 @@ public class SingleCategoryPreferences extends PreferenceFragment
@@ -738,6 +742,8 @@ public class SingleCategoryPreferences extends PreferenceFragment
TriStateSiteSettingsPreference triStateToggle =
(TriStateSiteSettingsPreference) screen.findPreference(TRI_STATE_TOGGLE_KEY);
Preference thirdPartyCookies = screen.findPreference(THIRD_PARTY_COOKIES_TOGGLE_KEY);
+ Preference cookiesSessionOnly = getPreferenceScreen().findPreference(
+ COOKIES_SESSION_ONLY_TOGGLE_KEY);
Preference notificationsVibrate = screen.findPreference(NOTIFICATIONS_VIBRATE_TOGGLE_KEY);
Preference explainProtectedMediaKey = screen.findPreference(EXPLAIN_PROTECTED_MEDIA_KEY);
PreferenceGroup allowedGroup = (PreferenceGroup) screen.findPreference(ALLOWED_GROUP);
@@ -752,6 +758,7 @@ public class SingleCategoryPreferences extends PreferenceFragment
screen.removePreference(binaryToggle);
screen.removePreference(triStateToggle);
screen.removePreference(thirdPartyCookies);
+ screen.removePreference(cookiesSessionOnly);
screen.removePreference(notificationsVibrate);
screen.removePreference(explainProtectedMediaKey);
screen.removePreference(allowedGroup);
@@ -787,12 +794,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
configureBinaryToggle(binaryToggle, contentType);
}
- // Configure/hide the third-party cookie toggle, as needed.
+ // Configure/hide the third-party cookie toggle and session-only cookie toggle, as needed.
+ Preference cookiesSessionOnly = getPreferenceScreen().findPreference(
+ COOKIES_SESSION_ONLY_TOGGLE_KEY);
if (mCategory.showSites(SiteSettingsCategory.Type.COOKIES)) {
thirdPartyCookies.setOnPreferenceChangeListener(this);
updateThirdPartyCookiesCheckBox();
@@ -129,7 +144,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
}
// Configure/hide the notifications vibrate toggle, as needed.
@@ -894,6 +903,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
@@ -878,6 +888,15 @@ public class SingleCategoryPreferences extends PreferenceFragment
preference -> PrefServiceBridge.getInstance().isBlockThirdPartyCookiesManaged());
}
@@ -137,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/web
+ ChromeBaseCheckBoxPreference cookiesSessionOnlyPref = (ChromeBaseCheckBoxPreference)
+ getPreferenceScreen().findPreference(COOKIES_SESSION_ONLY_TOGGLE_KEY);
+ cookiesSessionOnlyPref.setChecked(
+ !PrefServiceBridge.getInstance().isCookiesSessionOnlyEnabled());
+ PrefServiceBridge.getInstance().isCookiesSessionOnlyEnabled());
+ cookiesSessionOnlyPref.setEnabled(PrefServiceBridge.getInstance().isCategoryEnabled(
+ ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES));
+ }
@@ -164,7 +179,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
--- a/chrome/browser/android/preferences/pref_service_bridge.cc
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc
@@ -304,6 +304,14 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
@@ -310,6 +310,17 @@ static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesEnabled(
return GetPrefService()->GetBoolean(prefs::kBlockThirdPartyCookies);
}
@@ -173,13 +188,16 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/
+ const JavaParamRef<jobject>& obj) {
+ HostContentSettingsMap* host_content_settings_map =
+ HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile());
+ return CONTENT_SETTING_SESSION_ONLY == host_content_settings_map->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES, nullptr);
+ auto value = host_content_settings_map->GetDefaultContentSetting(CONTENT_SETTINGS_TYPE_COOKIES, nullptr);
+ auto enabled = CONTENT_SETTING_SESSION_ONLY == value;
+ LOG(INFO) << "GetCookiesSessionOnly := " << enabled << " (raw_value = " << value << ")";
+ return enabled;
+}
+
static jboolean JNI_PrefServiceBridge_GetBlockThirdPartyCookiesManaged(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
@@ -756,6 +764,17 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
@@ -774,6 +785,20 @@ static void JNI_PrefServiceBridge_SetBlockThirdPartyCookiesEnabled(
GetPrefService()->SetBoolean(prefs::kBlockThirdPartyCookies, enabled);
}
@@ -189,9 +207,12 @@ diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/
+ jboolean enabled) {
+ HostContentSettingsMap* host_content_settings_map =
+ HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile());
+ LOG(INFO) << "SetCookiesSessionOnly -> " << (enabled ? "true" : "false") <<
+ "; false -> setting_allow: " << CONTENT_SETTING_ALLOW <<
+ "; true -> session_only: " << CONTENT_SETTING_SESSION_ONLY;
+ host_content_settings_map->SetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_COOKIES,
+ enabled ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_SESSION_ONLY);
+ enabled ? CONTENT_SETTING_SESSION_ONLY : CONTENT_SETTING_ALLOW);
+}
+
static void JNI_PrefServiceBridge_SetRememberPasswordsEnabled(
@@ -2,24 +2,25 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Wed, 1 Aug 2018 09:19:40 +0200
Subject: Add bookmark import/export actions in bookmarks activity and page
Thanks to Arnaud for the snippet on how to add toast notifications
---
.../java/res/menu/bookmark_action_bar_menu.xml | 14 ++
.../browser/bookmarks/BookmarkActionBar.java | 12 ++
.../chrome/browser/bookmarks/BookmarkActivity.java | 19 ++
.../chrome/browser/bookmarks/BookmarkBridge.java | 21 ++
.../chrome/browser/bookmarks/BookmarkBridge.java | 56 ++++++
.../chrome/browser/bookmarks/BookmarkDelegate.java | 10 +
.../chrome/browser/bookmarks/BookmarkManager.java | 20 ++
.../chrome/browser/bookmarks/BookmarkPage.java | 1 +
.../java/strings/android_chrome_strings.grd | 6 +
chrome/browser/BUILD.gn | 8 +-
.../browser/android/bookmarks/bookmark_bridge.cc | 219 +++++++++++++++++++++
chrome/browser/android/bookmarks/bookmark_bridge.h | 19 +-
.../browser/android/bookmarks/bookmark_bridge.cc | 215 +++++++++++++++++++++
chrome/browser/android/bookmarks/bookmark_bridge.h | 20 +-
chrome/browser/importer/profile_writer.cc | 2 +
chrome/common/BUILD.gn | 3 +
chrome/utility/BUILD.gn | 7 +-
chrome/utility/importer/bookmark_html_reader.cc | 27 ++-
chrome/utility/importer/bookmark_html_reader.h | 9 +
16 files changed, 387 insertions(+), 10 deletions(-)
16 files changed, 419 insertions(+), 10 deletions(-)
diff --git a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml b/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
--- a/chrome/android/java/res/menu/bookmark_action_bar_menu.xml
@@ -141,15 +142,36 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.profiles.Profile;
@@ -4,7 +4,11 @@
package org.chromium.chrome.browser.bookmarks;
+import android.content.Intent;
+import android.content.Context;
+import android.net.Uri;
import android.os.SystemClock;
+import android.provider.Browser;
import android.text.TextUtils;
import android.util.Pair;
@@ -13,11 +17,16 @@ import org.chromium.base.ObserverList;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.chrome.browser.document.ChromeLauncherActivity;
+import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;
import org.chromium.components.url_formatter.UrlFormatter;
+import org.chromium.ui.base.PageTransition;
+import org.chromium.ui.base.WindowAndroid;
+import org.chromium.ui.widget.Toast;
import java.util.ArrayList;
import java.util.List;
@@ -508,6 +509,24 @@ public class BookmarkBridge {
@@ -508,6 +517,24 @@ public class BookmarkBridge {
}
/**
@@ -174,7 +196,41 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
* Synchronously gets a list of bookmarks that match the specified search query.
* @param query Keyword used for searching bookmarks.
* @param maxNumberOfResult Maximum number of result to fetch.
@@ -906,6 +925,8 @@ public class BookmarkBridge {
@@ -840,6 +867,33 @@ public class BookmarkBridge {
depthList.add(depth);
}
+
+ @CalledByNative
+ public void bookmarksImported() {
+ Context context = ContextUtils.getApplicationContext();
+
+ //TODO: call this after actual import
+ //Toast.makeText(ContextUtils.getApplicationContext(), "Bookmarks imported", Toast.LENGTH_LONG).show();
+ }
+
+ @CalledByNative
+ public void bookmarksExported(String bookmarksPath) {
+ Context context = ContextUtils.getApplicationContext();
+
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("file://" + bookmarksPath));
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID,
+ context.getPackageName());
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.putExtra(IntentHandler.EXTRA_PAGE_TRANSITION_TYPE, PageTransition.AUTO_BOOKMARK);
+
+ // If the bookmark manager is shown in a tab on a phone (rather than in a separate
+ // activity) the component name may be null. Send the intent through
+ // ChromeLauncherActivity instead to avoid crashing. See crbug.com/615012.
+ intent.setClass(context, ChromeLauncherActivity.class);
+
+ IntentHandler.startActivityForTrustedIntent(intent);
+ }
+
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
for (int i = 0; i < left.length; i++) {
@@ -906,6 +960,8 @@ public class BookmarkBridge {
boolean getFolders, boolean getBookmarks, List<BookmarkId> bookmarksList);
private native BookmarkId nativeGetChildAt(long nativeBookmarkBridge, long id, int type,
int index);
@@ -275,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -218,6 +218,12 @@ CHAR-LIMIT guidelines:
@@ -224,6 +224,12 @@ CHAR-LIMIT guidelines:
<message name="IDS_SEARCH" desc="The label for a search button.">
Search
</message>
@@ -291,7 +347,7 @@ diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/and
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -140,6 +140,10 @@ jumbo_split_static_library("browser") {
@@ -149,6 +149,10 @@ jumbo_split_static_library("browser") {
"bitmap_fetcher/bitmap_fetcher_service.h",
"bitmap_fetcher/bitmap_fetcher_service_factory.cc",
"bitmap_fetcher/bitmap_fetcher_service_factory.h",
@@ -302,7 +358,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"bookmarks/bookmark_model_factory.cc",
"bookmarks/bookmark_model_factory.h",
"bookmarks/bookmark_stats.cc",
@@ -2537,8 +2541,6 @@ jumbo_split_static_library("browser") {
@@ -2586,8 +2590,6 @@ jumbo_split_static_library("browser") {
"banners/app_banner_infobar_delegate_desktop.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@@ -311,7 +367,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"certificate_viewer.h",
"chrome_browser_field_trials_desktop.cc",
"chrome_browser_field_trials_desktop.h",
@@ -2627,8 +2629,6 @@ jumbo_split_static_library("browser") {
@@ -2678,8 +2680,6 @@ jumbo_split_static_library("browser") {
"importer/importer_uma.h",
"importer/in_process_importer_bridge.cc",
"importer/in_process_importer_bridge.h",
@@ -437,7 +493,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
}
void BookmarkBridge::Destroy(JNIEnv*, const JavaParamRef<jobject>&) {
@@ -470,6 +539,156 @@ jint BookmarkBridge::GetTotalBookmarkCount(
@@ -470,6 +539,152 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count;
}
@@ -445,6 +501,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+ const JavaParamRef<jobject>& obj,
+ const JavaParamRef<jobject>& java_window) {
+ DCHECK(IsLoaded());
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+ ui::WindowAndroid* window =
+ ui::WindowAndroid::FromJavaWindowAndroid(java_window);
@@ -462,39 +519,39 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+ file_type_info.allowed_paths =
+ ui::SelectFileDialog::FileTypeInfo::NATIVE_OR_DRIVE_PATH;
+
+ const base::FilePath file_path;
+
+ select_file_dialog_->SelectFile(
+ ui::SelectFileDialog::SELECT_OPEN_FILE,
+ base::string16(),
+ file_path,
+ NULL,
+ import_path_,
+ &file_type_info,
+ 0,
+ base::FilePath::StringType(),
+ window,
+ NULL);
+}
+
+void ExporterCallback(Profile* profile, const base::FilePath& path) {
+ bookmark_html_writer::WriteBookmarks(profile, path, NULL);
+ //NOTE: nothing will be written if write permission has not been granted before
+ LOG(INFO) << "Bookmarks exported successfully in " << path;
+ //NOTE: this should be called after the actual import
+ Java_BookmarkBridge_bookmarksImported(env, obj);
+}
+
+void BookmarkBridge::ExportBookmarks(JNIEnv* env,
+ const JavaParamRef<jobject>& obj) {
+ DCHECK(IsLoaded());
+ base::FilePath path;
+ if (!base::android::GetDownloadsDirectory(&path)) {
+ LOG(ERROR) << "Could not retrieve downloads directory for bookmarks export";
+ return;
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+
+ if (import_path_.empty()) {
+ if (!base::android::GetDownloadsDirectory(&import_path_)) {
+ LOG(ERROR) << "Could not retrieve downloads directory for bookmarks export";
+ return;
+ }
+ import_path_ = import_path_.Append(FILE_PATH_LITERAL("bookmarks.html"));
+ }
+
+ path = path.Append(FILE_PATH_LITERAL("bookmarks.html"));
+ bookmark_html_writer::WriteBookmarks(profile_, import_path_, NULL);
+
+// base::PostTaskWithTraits(FROM_HERE, {base::MayBlock()},
+// base::BindOnce(&ExporterCallback, profile_, path));
+ ExporterCallback(profile_, path);
+ //NOTE: nothing will be written if write permission has not been granted before
+ LOG(INFO) << "Bookmarks exported successfully in " << import_path_;
+
+ Java_BookmarkBridge_bookmarksExported(env, obj, ConvertUTF8ToJavaString(env, import_path_.MaybeAsASCII()));
+}
+
+// Attempts to create a TemplateURL from the provided data. |title| is optional.
@@ -513,40 +570,6 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+ return std::make_unique<TemplateURL>(data);
+}
+
+void ImporterCallback(Profile* profile, const base::FilePath& path, const std::string& contents) {
+ // this import logic comes from BookmarksFileImporter class
+ std::vector<ImportedBookmarkEntry> bookmarks;
+ std::vector<importer::SearchEngineInfo> search_engines;
+
+ bookmark_html_reader::ImportBookmarksFile(
+ base::Callback<bool(void)>(),
+ base::Bind(internal::CanImportURL),
+ contents,
+ &bookmarks,
+ &search_engines,
+ nullptr);
+
+ // writing to profile will begin extensive changes and use the same bookmarks model for persisting changes
+ auto *writer = new ProfileWriter(profile);
+
+ if (!bookmarks.empty()) {
+ writer->AddBookmarks(bookmarks, base::ASCIIToUTF16("Imported"));
+ }
+ if (!search_engines.empty()) {
+ TemplateURLService::OwnedTemplateURLVector owned_template_urls;
+ for (const auto& search_engine : search_engines) {
+ std::unique_ptr<TemplateURL> owned_template_url = CreateTemplateURL(
+ search_engine.url, search_engine.keyword, search_engine.display_name);
+ if (owned_template_url)
+ owned_template_urls.push_back(std::move(owned_template_url));
+ }
+ writer->AddKeywords(std::move(owned_template_urls), false);
+ }
+
+ LOG(INFO) << "Imported " << bookmarks.size() << " bookmarks and " <<
+ search_engines.size() << " search engines from " << path;
+}
+
+void BookmarkBridge::FileSelected(const base::FilePath& path, int index,
+ void* params) {
+ base::File file;
@@ -582,10 +605,39 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.cc b/chrome/browse
+ return;
+ }
+
+ std::string content(buffer.begin(), buffer.end());
+// base::PostTaskWithTraits(FROM_HERE, {base::MayBlock()},
+// base::BindOnce(&ImporterCallback, profile_, path, content));
+ ImporterCallback(profile_, path, content);
+ std::string contents(buffer.begin(), buffer.end());
+
+ // the following import logic comes from BookmarksFileImporter class
+ std::vector<ImportedBookmarkEntry> bookmarks;
+ std::vector<importer::SearchEngineInfo> search_engines;
+
+ bookmark_html_reader::ImportBookmarksFile(
+ base::Callback<bool(void)>(),
+ base::Bind(internal::CanImportURL),
+ contents,
+ &bookmarks,
+ &search_engines,
+ nullptr);
+
+ // writing to profile will begin extensive changes and use the same bookmarks model for persisting changes
+ auto *writer = new ProfileWriter(profile_);
+
+ if (!bookmarks.empty()) {
+ writer->AddBookmarks(bookmarks, base::ASCIIToUTF16("Imported"));
+ }
+ if (!search_engines.empty()) {
+ TemplateURLService::OwnedTemplateURLVector owned_template_urls;
+ for (const auto& search_engine : search_engines) {
+ std::unique_ptr<TemplateURL> owned_template_url = CreateTemplateURL(
+ search_engine.url, search_engine.keyword, search_engine.display_name);
+ if (owned_template_url)
+ owned_template_urls.push_back(std::move(owned_template_url));
+ }
+ writer->AddKeywords(std::move(owned_template_urls), false);
+ }
+
+ LOG(INFO) << "Imported " << bookmarks.size() << " bookmarks and " <<
+ search_engines.size() << " search engines from " << import_path_;
+}
+
+void BookmarkBridge::FileSelectionCanceled(void* params) {
@@ -643,7 +695,14 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
void SetBookmarkTitle(JNIEnv* env,
const base::android::JavaParamRef<jobject>& obj,
jlong id,
@@ -267,6 +283,7 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
@@ -261,12 +277,14 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
void ShimBeingDeleted(PartnerBookmarksShim* shim) override;
Profile* profile_;
+ base::FilePath import_path_;
JavaObjectWeakGlobalRef weak_java_ref_;
bookmarks::BookmarkModel* bookmark_model_; // weak
bookmarks::ManagedBookmarkService* managed_bookmark_service_; // weak
std::unique_ptr<bookmarks::ScopedGroupBookmarkActions>
grouped_bookmark_actions_;
PrefChangeRegistrar pref_change_registrar_;
@@ -654,7 +713,7 @@ diff --git a/chrome/browser/android/bookmarks/bookmark_bridge.h b/chrome/browser
diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc
--- a/chrome/browser/importer/profile_writer.cc
+++ b/chrome/browser/importer/profile_writer.cc
@@ -109,12 +109,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
@@ -97,12 +97,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
HistoryServiceFactory::GetForProfile(profile_,
ServiceAccessType::EXPLICIT_ACCESS)
->AddPagesWithDetails(page, visit_source);
@@ -662,8 +721,8 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
// Measure the size of the history page after Auto Import on first run.
if (first_run::IsChromeFirstRun() &&
visit_source == history::SOURCE_IE_IMPORTED) {
UMA_HISTOGRAM_COUNTS("Import.ImportedHistorySize.AutoImportFromIE",
page.size());
UMA_HISTOGRAM_COUNTS_1M("Import.ImportedHistorySize.AutoImportFromIE",
page.size());
}
+#endif
}
@@ -672,7 +731,7 @@ diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -443,6 +443,9 @@ static_library("common") {
@@ -442,6 +442,9 @@ static_library("common") {
sources += [
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
@@ -41,7 +41,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -1023,8 +1023,10 @@ public class ChromeTabbedActivity
@@ -1030,8 +1030,10 @@ public class ChromeTabbedActivity
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
private static final String PREF_DO_NOT_TRACK = "do_not_track";
private static final String PREF_USAGE_AND_CRASH_REPORTING = "usage_and_crash_reports";
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
@@ -150,6 +153,11 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -146,6 +149,11 @@ public class PrivacyPreferences extends PreferenceFragment
safeBrowsingPref.setOnPreferenceChangeListener(this);
safeBrowsingPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
@@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
updateSummaries();
}
@@ -176,6 +184,12 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -172,6 +180,12 @@ public class PrivacyPreferences extends PreferenceFragment
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
PrefServiceBridge.getInstance().setBoolean(
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
@@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -3655,6 +3655,12 @@ However, you arent invisible. Going private doesnt hide your browsing from
@@ -3765,6 +3765,12 @@ However, you arent invisible. Going private doesnt hide your browsing from
<message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
IMAGE
</message>
@@ -111,7 +111,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -238,6 +238,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -249,6 +249,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
// Observes when sync becomes ready to create the mContextReporter.
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.
private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListener;
private ChromeFullscreenManager mFullscreenManager;
@@ -1627,6 +1628,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
@@ -1707,6 +1708,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -217,10 +217,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabDelegateFactory;
+import org.chromium.chrome.browser.tab.TabObserver;
import org.chromium.chrome.browser.tab.TabRedirectHandler;
import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType;
import org.chromium.chrome.browser.util.IntentUtils;
@@ -36,6 +39,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
@@ -37,6 +40,7 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
private final ChromeActivity mActivity;
private final boolean mIncognito;
@@ -228,7 +228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
private WindowAndroid mNativeWindow;
private TabModel mTabModel;
@@ -47,6 +51,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
@@ -48,6 +52,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
mActivity = activity;
mNativeWindow = nativeWindow;
mIncognito = incognito;
@@ -240,7 +240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
}
@Override
@@ -159,6 +168,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
@@ -160,6 +169,10 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
tab.getWebContents());
}
@@ -251,7 +251,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mTabModel.addTab(tab, position, type);
return tab;
} finally {
@@ -199,6 +212,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
@@ -200,6 +213,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
Tab tab = Tab.createLiveTab(
Tab.INVALID_TAB_ID, mIncognito, mNativeWindow, type, parentId, !openInForeground);
tab.initialize(webContents, mTabContentManager, delegateFactory, !openInForeground, false);
@@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
mTabModel.addTab(tab, position, type);
return true;
}
@@ -242,7 +260,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
@@ -243,7 +261,6 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
*/
public Tab launchUrlFromExternalApp(String url, String referer, String headers,
String appId, boolean forceNewTab, Intent intent, long intentTimestamp) {
@@ -271,7 +271,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
boolean isLaunchedFromChrome = TextUtils.equals(appId, mActivity.getPackageName());
// If an external app sends an intent for a Weblite URL and the Data Reduction Proxy is
@@ -302,6 +319,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
@@ -303,6 +320,11 @@ public class ChromeTabCreator extends TabCreatorManager.TabCreator {
tab.initialize(
null, mTabContentManager, createDefaultTabDelegateFactory(), !selectTab, false);
assert state.isIncognito() == mIncognito;
@@ -308,8 +308,8 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
chrome_java_sources = [
+ "java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java",
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabTaskDescriptionHelper.java",
"java/src/org/chromium/chrome/browser/ActivityTaskDescriptionIconGenerator.java",
--
2.11.0
@@ -4,8 +4,8 @@ Subject: Disable fetching of all field trials
---
.../src/org/chromium/chrome/browser/ChromeFeatureList.java | 12 +++---------
components/variations/service/variations_service.cc | 4 ++++
2 files changed, 7 insertions(+), 9 deletions(-)
components/variations/service/variations_service.cc | 12 +-----------
2 files changed, 4 insertions(+), 20 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -46,21 +46,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureLi
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
--- a/components/variations/service/variations_service.cc
+++ b/components/variations/service/variations_service.cc
@@ -225,6 +225,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
@@ -232,17 +232,7 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
// Variations seed fetching is only enabled in official Chrome builds, if a URL
// is specified on the command line, and for testing.
bool IsFetchingEnabled() {
+#if 0
#if !defined(GOOGLE_CHROME_BUILD)
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kVariationsServerURL) &&
@@ -236,6 +237,9 @@ bool IsFetchingEnabled() {
}
#endif
return true;
+#else
-#if !defined(GOOGLE_CHROME_BUILD)
- if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kVariationsServerURL) &&
- !g_should_fetch_for_testing) {
- DVLOG(1)
- << "Not performing repeated fetching in unofficial build without --"
- << switches::kVariationsServerURL << " specified.";
- return false;
- }
-#endif
- return true;
+ return false;
+#endif
}
std::unique_ptr<SeedResponse> MaybeImportFirstRunSeed(
@@ -9,7 +9,7 @@ Subject: Disable plugins enumeration
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -1219,10 +1219,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
@@ -1294,10 +1294,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
}
PluginData* LocalFrame::GetPluginData() const {
@@ -1,16 +1,16 @@
From: SergeyZhukovsky <serg.zhukovsky@gmail.com>
Date: Tue, 15 Aug 2017 15:33:16 -0400
Subject: Remove google account access permission on reboot
Subject: Remove request for account access permission on reboot
---
chrome/android/BUILD.gn | 3 +--
chrome/android/BUILD.gn | 4 +---
chrome/android/java/AndroidManifest.xml | 4 ++--
2 files changed, 3 insertions(+), 4 deletions(-)
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -924,8 +924,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
@@ -943,8 +943,7 @@ jinja_template_resources("chrome_public_apk_template_resources") {
resources = [
"java/res_template/xml/file_paths.xml",
"java/res_template/xml/launchershortcuts.xml",
@@ -20,10 +20,18 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
]
res_dir = "java/res_template"
variables = chrome_public_jinja_variables
@@ -955,7 +954,6 @@ jinja_template_resources("chrome_sync_shell_apk_template_resources") {
"java/res_template/xml/file_paths.xml",
"java/res_template/xml/launchershortcuts.xml",
"java/res_template/xml/searchable.xml",
- "java/res_template/xml/syncadapter.xml",
]
res_dir = "java/res_template"
variables = chrome_sync_shell_jinja_variables
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -806,14 +806,14 @@ by a child template that "extends" this file.
@@ -830,14 +830,14 @@ by a child template that "extends" this file.
</provider>
<!-- Sync adapter for browser invalidation. -->
@@ -1,6 +1,6 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: Mon, 15 Sep 2014 10:58:42 +0200
Subject: dns: send IPv6 connectivity probes to RIPE DNS rather than Google
Subject: dns: send IPv6 connectivity probes to RIPE DNS
Short of disabling the code (we may do that in a subsequent patch
anyway), avoid sending to Google.
@@ -11,7 +11,7 @@ anyway), avoid sending to Google.
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -110,10 +110,10 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
@@ -115,10 +115,10 @@ const unsigned kMinimumTTLSeconds = kCacheEntryTTLSeconds;
// cached.
const int kIPv6ProbePeriodMs = 1000;
@@ -11,7 +11,7 @@ Disables the autofill download manager (trk:158).
diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/components/autofill/core/browser/autofill_download_manager.cc
--- a/components/autofill/core/browser/autofill_download_manager.cc
+++ b/components/autofill/core/browser/autofill_download_manager.cc
@@ -42,7 +42,6 @@ namespace autofill {
@@ -49,7 +49,6 @@ namespace autofill {
namespace {
@@ -19,7 +19,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
const size_t kAutofillDownloadManagerMaxFormCacheSize = 16;
const size_t kMaxFieldsPerQueryRequest = 100;
@@ -415,6 +414,7 @@ bool AutofillDownloadManager::StartUploadRequest(
@@ -491,6 +490,7 @@ void AutofillDownloadManager::ClearUploadHistory(PrefService* pref_service) {
std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
const FormRequestData& request_data) const {
@@ -27,7 +27,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
std::string method("POST");
std::string query_str;
@@ -437,6 +437,10 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
@@ -513,6 +513,10 @@ std::tuple<GURL, std::string> AutofillDownloadManager::GetRequestURLAndMethod(
GURL url = autofill_server_url_
.Resolve(RequestTypeToString(request_data.request_type))
.ReplaceComponents(replacements);
@@ -41,7 +41,7 @@ diff --git a/components/autofill/core/browser/autofill_download_manager.cc b/com
diff --git a/components/autofill/core/browser/autofill_manager.cc b/components/autofill/core/browser/autofill_manager.cc
--- a/components/autofill/core/browser/autofill_manager.cc
+++ b/components/autofill/core/browser/autofill_manager.cc
@@ -1147,9 +1147,11 @@ AutofillManager::AutofillManager(
@@ -1166,9 +1166,11 @@ AutofillManager::AutofillManager(
weak_ptr_factory_(this) {
DCHECK(driver);
DCHECK(client_);
@@ -15,7 +15,7 @@ turn it back on.
diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc
--- a/chrome/browser/extensions/extension_system_impl.cc
+++ b/chrome/browser/extensions/extension_system_impl.cc
@@ -201,8 +201,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
@@ -203,8 +203,7 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
// ExtensionService depends on RuntimeData.
runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_)));
@@ -46,20 +46,20 @@ diff --git a/chrome/browser/safe_browsing/incident_reporting/incident_reporting_
diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
--- a/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_blocking_page.cc
@@ -59,8 +59,7 @@ class SafeBrowsingBlockingPageFactoryImpl
PrefService* prefs =
Profile::FromBrowserContext(web_contents->GetBrowserContext())
->GetPrefs();
@@ -61,8 +61,7 @@ class SafeBrowsingBlockingPageFactoryImpl
Profile* profile =
Profile::FromBrowserContext(web_contents->GetBrowserContext());
PrefService* prefs = profile->GetPrefs();
- bool is_extended_reporting_opt_in_allowed =
- IsExtendedReportingOptInAllowed(*prefs);
+ bool is_extended_reporting_opt_in_allowed = false;
bool is_proceed_anyway_disabled =
prefs->GetBoolean(prefs::kSafeBrowsingProceedAnywayDisabled);
unified_consent::UnifiedConsentService* consent_service =
diff --git a/chrome/browser/safe_browsing/safe_browsing_service.cc b/chrome/browser/safe_browsing/safe_browsing_service.cc
--- a/chrome/browser/safe_browsing/safe_browsing_service.cc
+++ b/chrome/browser/safe_browsing/safe_browsing_service.cc
@@ -326,8 +326,10 @@ SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() {
@@ -329,8 +329,10 @@ SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() {
void SafeBrowsingService::RegisterAllDelayedAnalysis() {
#if defined(FULL_SAFE_BROWSING)
@@ -38,7 +38,7 @@ diff --git a/chrome/browser/safe_browsing/client_side_detection_service.cc b/chr
diff --git a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
--- a/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
+++ b/chrome/browser/safe_browsing/download_protection/check_client_download_request.cc
@@ -1075,7 +1075,7 @@ void CheckClientDownloadRequest::SendRequest() {
@@ -1067,7 +1067,7 @@ void CheckClientDownloadRequest::SendRequest() {
auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url = PPAPIDownloadRequest::GetDownloadRequestUrl();
resource_request->method = "POST";
@@ -50,7 +50,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/check_client_downl
diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
--- a/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
+++ b/chrome/browser/safe_browsing/download_protection/ppapi_download_request.cc
@@ -248,7 +248,7 @@ void PPAPIDownloadRequest::SendRequest() {
@@ -250,7 +250,7 @@ void PPAPIDownloadRequest::SendRequest() {
auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url = GetDownloadRequestUrl();
resource_request->method = "POST";
@@ -62,7 +62,7 @@ diff --git a/chrome/browser/safe_browsing/download_protection/ppapi_download_req
diff --git a/components/safe_browsing/browser/threat_details_cache.cc b/components/safe_browsing/browser/threat_details_cache.cc
--- a/components/safe_browsing/browser/threat_details_cache.cc
+++ b/components/safe_browsing/browser/threat_details_cache.cc
@@ -113,6 +113,7 @@ void ThreatDetailsCacheCollector::OpenEntry() {
@@ -115,6 +115,7 @@ void ThreatDetailsCacheCollector::OpenEntry() {
// Only from cache, and don't save cookies.
resource_request->load_flags = net::LOAD_ONLY_FROM_CACHE |
net::LOAD_SKIP_CACHE_VALIDATION |
@@ -3,47 +3,45 @@ Date: Tue, 16 Oct 2018 05:22:59 +0200
Subject: ungoogled-chromium: disable safe browsing
---
chrome/browser/BUILD.gn | 2 -
chrome/browser/browser_process.h | 16 ---
chrome/browser/browser_process_impl.cc | 29 ------
chrome/browser/browser_process_impl.h | 6 --
.../chrome_browsing_data_remover_delegate.cc | 29 ------
chrome/browser/chrome_content_browser_client.cc | 32 +-----
.../file_type_policies_component_installer.cc | 14 ---
.../download/chrome_download_manager_delegate.cc | 17 ---
chrome/browser/download/download_commands.cc | 3 -
chrome/browser/download/download_item_model.cc | 10 +-
chrome/browser/download/download_prefs.cc | 13 +--
.../browser/download/download_target_determiner.cc | 24 +----
.../extensions/api/downloads/downloads_api.cc | 39 +------
.../extensions/api/downloads/downloads_api.h | 10 --
.../api/webstore_private/webstore_private_api.cc | 43 +-------
.../browser/extensions/blacklist_state_fetcher.cc | 34 +-----
.../browser/extensions/blacklist_state_fetcher.h | 3 -
.../extensions/webstore_inline_installer.cc | 38 +------
.../chrome_resource_dispatcher_host_delegate.cc | 7 +-
.../metrics/chrome_metrics_service_client.cc | 3 -
.../browser/net/trial_comparison_cert_verifier.cc | 3 -
.../chrome_browser_main_extra_parts_profiles.cc | 1 -
chrome/browser/profiles/profile_impl.cc | 14 +--
chrome/browser/safe_browsing/BUILD.gn | 2 +
chrome/browser/ssl/captive_portal_blocking_page.cc | 7 +-
chrome/browser/ssl/cert_report_helper.cc | 2 -
chrome/browser/ssl/security_state_tab_helper.cc | 72 -------------
.../chrome_subresource_filter_client.cc | 14 ---
chrome/browser/ui/BUILD.gn | 1 -
chrome/browser/ui/tab_helpers.cc | 5 -
.../ui/webui/interstitials/interstitial_ui.cc | 116 ---------------------
.../webui/md_downloads/md_downloads_dom_handler.cc | 37 -------
.../webui/md_downloads/md_downloads_dom_handler.h | 13 ---
chrome/renderer/chrome_content_renderer_client.cc | 1 -
components/safe_browsing/features.cc | 2 +-
35 files changed, 25 insertions(+), 637 deletions(-)
chrome/browser/BUILD.gn | 2 -
chrome/browser/browser_process.h | 16 -----
chrome/browser/browser_process_impl.cc | 29 ---------
chrome/browser/browser_process_impl.h | 6 --
.../chrome_browsing_data_remover_delegate.cc | 29 ---------
chrome/browser/chrome_content_browser_client.cc | 32 +---------
.../file_type_policies_component_installer.cc | 14 -----
.../download/chrome_download_manager_delegate.cc | 17 -----
chrome/browser/download/download_item_model.cc | 3 -
chrome/browser/download/download_prefs.cc | 13 +---
.../browser/download/download_target_determiner.cc | 24 +-------
.../extensions/api/downloads/downloads_api.cc | 39 +-----------
.../extensions/api/downloads/downloads_api.h | 10 ---
.../api/webstore_private/webstore_private_api.cc | 43 +------------
.../browser/extensions/blacklist_state_fetcher.cc | 34 ++--------
.../browser/extensions/blacklist_state_fetcher.h | 3 -
.../chrome_resource_dispatcher_host_delegate.cc | 7 +--
.../metrics/chrome_metrics_service_client.cc | 3 -
.../browser/net/trial_comparison_cert_verifier.cc | 3 -
.../chrome_browser_main_extra_parts_profiles.cc | 1 -
chrome/browser/profiles/profile_impl.cc | 14 +----
chrome/browser/safe_browsing/BUILD.gn | 2 +
chrome/browser/ssl/captive_portal_blocking_page.cc | 7 +--
chrome/browser/ssl/cert_report_helper.cc | 2 -
chrome/browser/ssl/security_state_tab_helper.cc | 72 ----------------------
.../chrome_subresource_filter_client.cc | 14 -----
chrome/browser/ui/BUILD.gn | 1 -
chrome/browser/ui/tab_helpers.cc | 5 --
.../ui/webui/interstitials/interstitial_ui.cc | 11 ++--
.../webui/md_downloads/md_downloads_dom_handler.cc | 37 -----------
.../webui/md_downloads/md_downloads_dom_handler.h | 13 ----
chrome/renderer/chrome_content_renderer_client.cc | 1 -
components/safe_browsing/features.cc | 2 +-
33 files changed, 22 insertions(+), 487 deletions(-)
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2570,8 +2570,6 @@ jumbo_split_static_library("browser") {
@@ -2619,8 +2619,6 @@ jumbo_split_static_library("browser") {
"download/download_commands.h",
"download/download_crx_util.cc",
"download/download_crx_util.h",
@@ -77,7 +75,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
// NOT THREAD SAFE, call only from the main thread.
// These functions shouldn't return NULL unless otherwise noted.
class BrowserProcess {
@@ -234,14 +226,6 @@ class BrowserProcess {
@@ -237,14 +229,6 @@ class BrowserProcess {
// on this platform (or this is a unit test).
virtual StatusTray* status_tray() = 0;
@@ -95,7 +93,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -71,7 +71,6 @@
@@ -72,7 +72,6 @@
#include "chrome/browser/printing/print_preview_dialog_controller.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/resource_coordinator/tab_lifecycle_unit_source.h"
@@ -103,7 +101,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
#include "chrome/browser/shell_integration.h"
#include "chrome/browser/status_icons/status_tray.h"
#include "chrome/browser/ui/browser_dialogs.h"
@@ -362,8 +361,6 @@ void BrowserProcessImpl::StartTearDown() {
@@ -373,8 +372,6 @@ void BrowserProcessImpl::StartTearDown() {
// that URLFetcher operation before going away.)
metrics_services_manager_.reset();
intranet_redirect_detector_.reset();
@@ -112,7 +110,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
network_time_tracker_.reset();
#if BUILDFLAG(ENABLE_PLUGINS)
plugins_resource_service_.reset();
@@ -976,22 +973,6 @@ StatusTray* BrowserProcessImpl::status_tray() {
@@ -999,22 +996,6 @@ StatusTray* BrowserProcessImpl::status_tray() {
return status_tray_.get();
}
@@ -135,7 +133,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
subresource_filter::ContentRulesetService*
BrowserProcessImpl::subresource_filter_ruleset_service() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -1279,16 +1260,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() {
@@ -1299,16 +1280,6 @@ void BrowserProcessImpl::CreateBackgroundPrintingManager() {
#endif
}
@@ -155,7 +153,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
--- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h
@@ -161,9 +161,6 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -176,9 +176,6 @@ class BrowserProcessImpl : public BrowserProcess,
void set_background_mode_manager_for_test(
std::unique_ptr<BackgroundModeManager> manager) override;
StatusTray* status_tray() override;
@@ -165,7 +163,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
subresource_filter::ContentRulesetService*
subresource_filter_ruleset_service() override;
optimization_guide::OptimizationGuideService* optimization_guide_service()
@@ -299,9 +296,6 @@ class BrowserProcessImpl : public BrowserProcess,
@@ -322,9 +319,6 @@ class BrowserProcessImpl : public BrowserProcess,
std::unique_ptr<BackgroundModeManager> background_mode_manager_;
#endif
@@ -178,7 +176,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -661,35 +661,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -649,35 +649,6 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
CONTENT_SETTINGS_TYPE_CLIENT_HINTS, base::Time(), base::Time::Max(),
base::BindRepeating(&WebsiteSettingsFilterAdapter, filter));
@@ -186,7 +184,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
- // doesn't make sense to apply the time period of deleting in the last X
- // hours/days to the safebrowsing cookies since they aren't the result of
- // any user action.
- if (delete_begin_ == base::Time()) {
- if (IsForAllTime()) {
- safe_browsing::SafeBrowsingService* sb_service =
- g_browser_process->safe_browsing_service();
- if (sb_service) {
@@ -217,7 +215,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -797,30 +797,6 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
@@ -812,30 +812,6 @@ void SetApplicationLocaleOnIOThread(const std::string& locale) {
g_io_thread_application_locale.Get() = locale;
}
@@ -248,7 +246,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if defined(OS_ANDROID)
float GetDeviceScaleAdjustment() {
static const float kMinFSM = 1.05f;
@@ -1979,7 +1955,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
@@ -1997,7 +1973,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
// Disable client-side phishing detection in the renderer if it is
// disabled in the Profile preferences or the browser process.
if (!prefs->GetBoolean(prefs::kSafeBrowsingEnabled) ||
@@ -257,7 +255,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
command_line->AppendSwitch(
switches::kDisableClientSidePhishingDetection);
}
@@ -2657,7 +2633,7 @@ void ChromeContentBrowserClient::AllowCertificateError(
@@ -2675,7 +2651,7 @@ void ChromeContentBrowserClient::AllowCertificateError(
SSLErrorHandler::HandleSSLError(
web_contents, cert_error, ssl_info, request_url,
expired_previous_decision,
@@ -266,7 +264,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
callback, SSLErrorHandler::BlockingPageReadyCallback());
}
@@ -2927,8 +2903,6 @@ bool ChromeContentBrowserClient::CanCreateWindow(
@@ -2945,8 +2921,6 @@ bool ChromeContentBrowserClient::CanCreateWindow(
void ChromeContentBrowserClient::ResourceDispatcherHostCreated() {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
@@ -275,7 +273,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
for (size_t i = 0; i < extra_parts_.size(); ++i)
extra_parts_[i]->ResourceDispatcherHostCreated();
@@ -4074,7 +4048,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -4112,7 +4086,7 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
if (base::FeatureList::IsEnabled(features::kSSLCommittedInterstitials)) {
throttles.push_back(std::make_unique<SSLErrorNavigationThrottle>(
handle,
@@ -311,7 +309,7 @@ diff --git a/chrome/browser/component_updater/file_type_policies_component_insta
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -314,13 +314,6 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() {
@@ -315,13 +315,6 @@ ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() {
void ChromeDownloadManagerDelegate::SetDownloadManager(DownloadManager* dm) {
download_manager_ = dm;
@@ -325,7 +323,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
}
#if defined(OS_ANDROID)
@@ -611,16 +604,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath(
@@ -618,16 +611,6 @@ void ChromeDownloadManagerDelegate::ChooseSavePath(
void ChromeDownloadManagerDelegate::SanitizeSavePackageResourceName(
base::FilePath* filename) {
@@ -342,61 +340,23 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
}
void ChromeDownloadManagerDelegate::OpenDownloadUsingPlatformHandler(
diff --git a/chrome/browser/download/download_commands.cc b/chrome/browser/download/download_commands.cc
--- a/chrome/browser/download/download_commands.cc
+++ b/chrome/browser/download/download_commands.cc
@@ -213,9 +213,6 @@ bool DownloadCommands::IsCommandEnabled(Command command) const {
// filename. Don't base an "Always open" decision based on it. Also
// exclude extensions.
return download_item_->CanOpenDownload() &&
- safe_browsing::FileTypePolicies::GetInstance()
- ->IsAllowedToOpenAutomatically(
- download_item_->GetTargetFilePath()) &&
!download_crx_util::IsExtensionDownload(*download_item_);
case CANCEL:
return !download_item_->IsDone();
diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/download/download_item_model.cc
--- a/chrome/browser/download/download_item_model.cc
+++ b/chrome/browser/download/download_item_model.cc
@@ -69,7 +69,7 @@ class DownloadItemModelData : public base::SupportsUserData::Data {
// Danger level of the file determined based on the file type and whether
// there was a user action associated with the download.
- DownloadFileType::DangerLevel danger_level_;
+ safe_browsing::DownloadFileType::DangerLevel danger_level_;
// Whether the download is currently being revived.
bool is_being_revived_;
@@ -106,7 +106,7 @@ DownloadItemModelData::DownloadItemModelData()
: should_show_in_shelf_(true),
was_ui_notified_(false),
should_prefer_opening_in_browser_(false),
- danger_level_(DownloadFileType::NOT_DANGEROUS),
+ danger_level_(safe_browsing::DownloadFileType::NOT_DANGEROUS),
is_being_revived_(false) {}
base::string16 InterruptReasonStatusMessage(
@@ -671,13 +671,13 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) {
data->should_prefer_opening_in_browser_ = preference;
}
-DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const {
+safe_browsing::DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const {
const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
- return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS;
+ return data ? data->danger_level_ : safe_browsing::DownloadFileType::NOT_DANGEROUS;
}
void DownloadItemModel::SetDangerLevel(
- DownloadFileType::DangerLevel danger_level) {
+ safe_browsing::DownloadFileType::DangerLevel danger_level) {
DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
data->danger_level_ = danger_level;
}
@@ -534,9 +534,6 @@ bool DownloadItemModel::IsCommandEnabled(
// filename. Don't base an "Always open" decision based on it. Also
// exclude extensions.
return download_->CanOpenDownload() &&
- safe_browsing::FileTypePolicies::GetInstance()
- ->IsAllowedToOpenAutomatically(
- download_->GetTargetFilePath()) &&
!download_crx_util::IsExtensionDownload(*download_);
case DownloadCommands::PAUSE:
return !download_->IsSavePackageDownload() &&
diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc
--- a/chrome/browser/download/download_prefs.cc
+++ b/chrome/browser/download/download_prefs.cc
@@ -205,14 +205,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) {
@@ -209,14 +209,7 @@ DownloadPrefs::DownloadPrefs(Profile* profile) : profile_(profile) {
base::FilePath::StringType(1, base::FilePath::kExtensionSeparator) +
extension);
@@ -412,7 +372,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download
}
}
@@ -373,10 +366,6 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension(
@@ -382,10 +375,6 @@ bool DownloadPrefs::IsAutoOpenEnabledBasedOnExtension(
bool DownloadPrefs::EnableAutoOpenBasedOnExtension(
const base::FilePath& file_name) {
base::FilePath::StringType extension = file_name.Extension();
@@ -426,7 +386,7 @@ diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download
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
@@ -987,29 +987,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
@@ -988,29 +988,7 @@ DownloadFileType::DangerLevel DownloadTargetDeterminer::GetDangerLevel(
download_->HasUserGesture())
return DownloadFileType::NOT_DANGEROUS;
@@ -468,7 +428,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/b
#include "chrome/browser/download/download_file_icon_extractor.h"
#include "chrome/browser/download/download_open_prompt.h"
#include "chrome/browser/download/download_prefs.h"
@@ -1311,9 +1310,6 @@ DownloadsAcceptDangerFunction::DownloadsAcceptDangerFunction() {}
@@ -1305,9 +1304,6 @@ DownloadsAcceptDangerFunction::DownloadsAcceptDangerFunction() {}
DownloadsAcceptDangerFunction::~DownloadsAcceptDangerFunction() {}
@@ -478,7 +438,7 @@ diff --git a/chrome/browser/extensions/api/downloads/downloads_api.cc b/chrome/b
bool DownloadsAcceptDangerFunction::RunAsync() {
std::unique_ptr<downloads::AcceptDanger::Params> params(
downloads::AcceptDanger::Params::Create(*args_));
@@ -1351,40 +1347,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) {
@@ -1345,40 +1341,7 @@ void DownloadsAcceptDangerFunction::PromptOrWait(int download_id, int retries) {
return;
}
RecordApiFunctions(DOWNLOADS_FUNCTION_ACCEPT_DANGER);
@@ -688,61 +648,10 @@ diff --git a/chrome/browser/extensions/blacklist_state_fetcher.h b/chrome/browse
scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_;
// SimpleURLLoader -> (owned loader, extension id).
diff --git a/chrome/browser/extensions/webstore_inline_installer.cc b/chrome/browser/extensions/webstore_inline_installer.cc
--- a/chrome/browser/extensions/webstore_inline_installer.cc
+++ b/chrome/browser/extensions/webstore_inline_installer.cc
@@ -116,45 +116,11 @@ bool WebstoreInlineInstaller::IsRequestorPermitted(
}
bool WebstoreInlineInstaller::SafeBrowsingNavigationEventsEnabled() const {
- return SafeBrowsingNavigationObserverManager::IsEnabledAndReady(profile());
+ return false;
}
std::string WebstoreInlineInstaller::GetPostData() {
- // web_contents() might return null during tab destruction. This object would
- // also be destroyed shortly thereafter but check to be on the safe side.
- if (!web_contents())
- return std::string();
-
- // Report extra data only when SafeBrowsing is enabled and SB navigation
- // observer is enabled for the current profile.
- if (!profile()->GetPrefs()->GetBoolean(prefs::kSafeBrowsingEnabled) ||
- !SafeBrowsingNavigationEventsEnabled()) {
- return std::string();
- }
-
- scoped_refptr<SafeBrowsingNavigationObserverManager>
- navigation_observer_manager = g_browser_process->safe_browsing_service()
- ->navigation_observer_manager();
-
- ReferrerChain referrer_chain;
- SafeBrowsingNavigationObserverManager::AttributionResult result =
- navigation_observer_manager->IdentifyReferrerChainByWebContents(
- web_contents(), kExtensionReferrerUserGestureLimit, &referrer_chain);
-
- // If the referrer chain is incomplete we'll append most recent navigations
- // to referrer chain for diagnose purpose. This only happens if user is not
- // in incognito mode and has opted into extended reporting to Scout reporting.
- int recent_navigations_to_collect =
- SafeBrowsingNavigationObserverManager::CountOfRecentNavigationsToAppend(
- *profile(), result);
- navigation_observer_manager->AppendRecentNavigations(
- recent_navigations_to_collect, &referrer_chain);
- safe_browsing::ExtensionWebStoreInstallRequest request;
- request.mutable_referrer_chain()->Swap(&referrer_chain);
- request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
- recent_navigations_to_collect);
-
- return request.SerializeAsString();
+ return std::string();
}
bool WebstoreInlineInstaller::CheckRequestorAlive() const {
diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
--- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
+++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
@@ -330,8 +330,7 @@ void LogCommittedPreviewsDecision(
@@ -326,8 +326,7 @@ void LogCommittedPreviewsDecision(
} // namespace
ChromeResourceDispatcherHostDelegate::ChromeResourceDispatcherHostDelegate()
@@ -752,16 +661,16 @@ diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b
ChromeResourceDispatcherHostDelegate::~ChromeResourceDispatcherHostDelegate() {
#if BUILDFLAG(ENABLE_EXTENSIONS)
@@ -345,8 +344,6 @@ void ChromeResourceDispatcherHostDelegate::RequestBeginning(
@@ -341,8 +340,6 @@ void ChromeResourceDispatcherHostDelegate::RequestBeginning(
content::AppCacheService* appcache_service,
ResourceType resource_type,
std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
- if (safe_browsing_.get())
- safe_browsing_->OnResourceRequest(request);
ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
client_hints::RequestBeginning(request, io_data->GetCookieSettings());
@@ -470,7 +467,7 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
#if BUILDFLAG(ENABLE_OFFLINE_PAGES) || BUILDFLAG(ENABLE_NACL)
@@ -461,7 +458,7 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
content::ResourceThrottle* first_throttle = NULL;
#if defined(OS_ANDROID)
first_throttle = DataReductionProxyResourceThrottle::MaybeCreate(
@@ -773,7 +682,7 @@ diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -712,9 +712,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() {
@@ -713,9 +713,6 @@ void ChromeMetricsServiceClient::RegisterMetricsServiceProviders() {
metrics_service_->RegisterMetricsProvider(
std::make_unique<HttpsEngagementMetricsProvider>());
@@ -786,7 +695,7 @@ diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/br
diff --git a/chrome/browser/net/trial_comparison_cert_verifier.cc b/chrome/browser/net/trial_comparison_cert_verifier.cc
--- a/chrome/browser/net/trial_comparison_cert_verifier.cc
+++ b/chrome/browser/net/trial_comparison_cert_verifier.cc
@@ -79,9 +79,6 @@ void SendTrialVerificationReport(void* profile_id,
@@ -80,9 +80,6 @@ void SendTrialVerificationReport(void* profile_id,
std::string serialized_report;
if (!report.Serialize(&serialized_report))
return;
@@ -799,7 +708,7 @@ diff --git a/chrome/browser/net/trial_comparison_cert_verifier.cc b/chrome/brows
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -228,7 +228,6 @@ void ChromeBrowserMainExtraPartsProfiles::
@@ -230,7 +230,6 @@ void ChromeBrowserMainExtraPartsProfiles::
#if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
CaptivePortalServiceFactory::GetInstance();
#endif
@@ -810,7 +719,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -541,18 +541,6 @@ ProfileImpl::ProfileImpl(
@@ -536,18 +536,6 @@ ProfileImpl::ProfileImpl(
create_mode == CREATE_MODE_SYNCHRONOUS);
#endif
@@ -829,7 +738,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
content::BrowserContext::Initialize(this, path_);
{
@@ -561,7 +549,7 @@ ProfileImpl::ProfileImpl(
@@ -556,7 +544,7 @@ ProfileImpl::ProfileImpl(
->CreateDelegate();
delegate->InitPrefRegistry(pref_registry_.get());
prefs_ = chrome_prefs::CreateProfilePrefs(
@@ -847,8 +756,8 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin
static_library("safe_browsing") {
+ if (false) {
sources = [
"chrome_cleaner/chrome_cleaner_controller_impl_win.cc",
"chrome_cleaner/chrome_cleaner_controller_impl_win.h",
"safe_browsing_controller_client.cc",
"safe_browsing_controller_client.h",
@@ -74,6 +75,7 @@ static_library("safe_browsing") {
} else {
sources += [ "chrome_cleaner/chrome_cleaner_extension_util_win_noop.cc" ]
@@ -884,7 +793,7 @@ diff --git a/chrome/browser/ssl/captive_portal_blocking_page.cc b/chrome/browser
diff --git a/chrome/browser/ssl/cert_report_helper.cc b/chrome/browser/ssl/cert_report_helper.cc
--- a/chrome/browser/ssl/cert_report_helper.cc
+++ b/chrome/browser/ssl/cert_report_helper.cc
@@ -182,8 +182,6 @@ void CertReportHelper::FinishCertCollection() {
@@ -178,8 +178,6 @@ void CertReportHelper::FinishCertCollection() {
LOG(ERROR) << "Failed to serialize certificate report.";
return;
}
@@ -892,7 +801,7 @@ diff --git a/chrome/browser/ssl/cert_report_helper.cc b/chrome/browser/ssl/cert_
- ssl_cert_reporter_->ReportInvalidCertificateChain(serialized_report);
}
bool CertReportHelper::ShouldShowCertificateReporterCheckbox() {
bool CertReportHelper::IsShowingReportingCheckboxOrReportingAllowed() {
diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ssl/security_state_tab_helper.cc
--- a/chrome/browser/ssl/security_state_tab_helper.cc
+++ b/chrome/browser/ssl/security_state_tab_helper.cc
@@ -978,7 +887,7 @@ diff --git a/chrome/browser/ssl/security_state_tab_helper.cc b/chrome/browser/ss
diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
--- a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
+++ b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
@@ -69,20 +69,6 @@ void ChromeSubresourceFilterClient::DidStartNavigation(
@@ -70,20 +70,6 @@ void ChromeSubresourceFilterClient::DidStartNavigation(
void ChromeSubresourceFilterClient::MaybeAppendNavigationThrottles(
content::NavigationHandle* navigation_handle,
std::vector<std::unique_ptr<content::NavigationThrottle>>* throttles) {
@@ -989,8 +898,8 @@ diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.
- std::make_unique<subresource_filter::
- SubresourceFilterSafeBrowsingActivationThrottle>(
- navigation_handle, this,
- content::BrowserThread::GetTaskRunnerForThread(
- content::BrowserThread::IO),
- base::CreateSingleThreadTaskRunnerWithTraits(
- {content::BrowserThread::IO}),
- safe_browsing_service->database_manager()));
- }
-
@@ -1002,18 +911,18 @@ diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -2842,7 +2842,6 @@ jumbo_split_static_library("ui") {
@@ -2444,7 +2444,6 @@ jumbo_split_static_library("ui") {
"views/cookie_info_view.h",
"views/device_chooser_content_view.cc",
"views/device_chooser_content_view.h",
- "views/download/download_danger_prompt_views.cc",
"views/elevation_icon_setter.cc",
"views/elevation_icon_setter.h",
"views/exclusive_access_bubble_views.cc",
"views/download/download_in_progress_dialog_view.cc",
"views/download/download_in_progress_dialog_view.h",
"views/download/download_item_view.cc",
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -243,8 +243,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -242,8 +242,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
PreviewsUITabHelper::CreateForWebContents(web_contents);
RecentlyAudibleHelper::CreateForWebContents(web_contents);
ResourceLoadingHintsWebContentsObserver::CreateForWebContents(web_contents);
@@ -1022,7 +931,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
SearchEngineTabHelper::CreateForWebContents(web_contents);
SecurityStateTabHelper::CreateForWebContents(web_contents);
if (SiteEngagementService::IsEnabled())
@@ -298,9 +296,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -297,9 +295,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
new ChromePDFWebContentsHelperClient()));
PluginObserver::CreateForWebContents(web_contents);
SadTabHelper::CreateForWebContents(web_contents);
@@ -1035,123 +944,33 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
--- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
+++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
@@ -251,115 +251,6 @@ BadClockBlockingPage* CreateBadClockBlockingPage(
@@ -251,6 +251,7 @@ BadClockBlockingPage* CreateBadClockBlockingPage(
base::Callback<void(content::CertificateRequestResultType)>());
}
-safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
- content::WebContents* web_contents) {
- safe_browsing::SBThreatType threat_type =
- safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
- GURL request_url("http://example.com");
- std::string url_param;
- if (net::GetValueForKeyInQuery(web_contents->GetURL(),
- "url",
- &url_param)) {
- if (GURL(url_param).is_valid()) {
- request_url = GURL(url_param);
- }
- }
- GURL main_frame_url(request_url);
- // TODO(mattm): add flag to change main_frame_url or add dedicated flag to
- // test subresource interstitials.
- std::string type_param;
- if (net::GetValueForKeyInQuery(web_contents->GetURL(),
- "type",
- &type_param)) {
- if (type_param == "malware") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
- } else if (type_param == "phishing") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_PHISHING;
- } else if (type_param == "unwanted") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_UNWANTED;
- } else if (type_param == "clientside_malware") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_MALWARE;
- } else if (type_param == "clientside_phishing") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_CLIENT_SIDE_PHISHING;
- } else if (type_param == "billing") {
- threat_type = safe_browsing::SB_THREAT_TYPE_BILLING;
- }
- }
- safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
- resource.url = request_url;
- resource.is_subresource = request_url != main_frame_url;
- resource.is_subframe = false;
- resource.threat_type = threat_type;
- resource.web_contents_getter =
- security_interstitials::UnsafeResource::GetWebContentsGetter(
- web_contents->GetMainFrame()->GetProcess()->GetID(),
- web_contents->GetMainFrame()->GetRoutingID());
- resource.threat_source = g_browser_process->safe_browsing_service()
- ->database_manager()
- ->GetThreatSource();
-
- // Normally safebrowsing interstitial types which block the main page load
- // (SB_THREAT_TYPE_URL_MALWARE, SB_THREAT_TYPE_URL_PHISHING, and
- // SB_THREAT_TYPE_URL_UNWANTED on main-frame loads) would expect there to be a
- // pending navigation when the SafeBrowsingBlockingPage is created. This demo
- // creates a SafeBrowsingBlockingPage but does not actually show a real
- // interstitial. Instead it extracts the html and displays it manually, so the
- // parts which depend on the NavigationEntry are not hit.
- return safe_browsing::SafeBrowsingBlockingPage::CreateBlockingPage(
- g_browser_process->safe_browsing_service()->ui_manager().get(),
- web_contents, main_frame_url, resource);
-}
-
-TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
- content::WebContents* web_contents) {
- safe_browsing::SBThreatType threat_type =
- safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
- GURL request_url("http://example.com");
- std::string url_param;
- if (net::GetValueForKeyInQuery(web_contents->GetURL(), "url", &url_param)) {
- if (GURL(url_param).is_valid())
- request_url = GURL(url_param);
- }
- GURL main_frame_url(request_url);
- std::string type_param;
- bool is_giant_webview = false;
- if (net::GetValueForKeyInQuery(web_contents->GetURL(), "type", &type_param)) {
- if (type_param == "malware") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
- } else if (type_param == "phishing") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_PHISHING;
- } else if (type_param == "unwanted") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_UNWANTED;
- } else if (type_param == "giant") {
- threat_type = safe_browsing::SB_THREAT_TYPE_URL_MALWARE;
- is_giant_webview = true;
- }
- }
- safe_browsing::SafeBrowsingBlockingPage::UnsafeResource resource;
- resource.url = request_url;
- resource.is_subresource = request_url != main_frame_url;
- resource.is_subframe = false;
- resource.threat_type = threat_type;
- resource.web_contents_getter =
- security_interstitials::UnsafeResource::GetWebContentsGetter(
- web_contents->GetMainFrame()->GetProcess()->GetID(),
- web_contents->GetMainFrame()->GetRoutingID());
- resource.threat_source = g_browser_process->safe_browsing_service()
- ->database_manager()
- ->GetThreatSource();
-
- // Normally safebrowsing interstitial types which block the main page load
- // (SB_THREAT_TYPE_URL_MALWARE, SB_THREAT_TYPE_URL_PHISHING, and
- // SB_THREAT_TYPE_URL_UNWANTED on main-frame loads) would expect there to be a
- // pending navigation when the SafeBrowsingBlockingPage is created. This demo
- // creates a SafeBrowsingBlockingPage but does not actually show a real
- // interstitial. Instead it extracts the html and displays it manually, so the
- // parts which depend on the NavigationEntry are not hit.
- return TestSafeBrowsingBlockingPageQuiet::CreateBlockingPage(
- g_browser_process->safe_browsing_service()->ui_manager().get(),
- web_contents, main_frame_url, resource, is_giant_webview);
-}
-
+#if 0
safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
content::WebContents* web_contents) {
safe_browsing::SBThreatType threat_type =
@@ -309,7 +310,9 @@ safe_browsing::SafeBrowsingBlockingPage* CreateSafeBrowsingBlockingPage(
g_browser_process->safe_browsing_service()->ui_manager().get(),
web_contents, main_frame_url, resource);
}
+#endif
+#if 0
TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
content::WebContents* web_contents) {
safe_browsing::SBThreatType threat_type =
@@ -361,6 +364,7 @@ TestSafeBrowsingBlockingPageQuiet* CreateSafeBrowsingQuietBlockingPage(
g_browser_process->safe_browsing_service()->ui_manager().get(),
web_contents, main_frame_url, resource, is_giant_webview);
}
+#endif
#if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage(
content::WebContents* web_contents) {
@@ -464,8 +355,6 @@ void InterstitialHTMLSource::StartDataRequest(
@@ -465,8 +469,6 @@ void InterstitialHTMLSource::StartDataRequest(
CreateSSLBlockingPage(web_contents, true /* is superfish */));
} else if (path_without_query == "/mitm-software-ssl") {
interstitial_delegate.reset(CreateMITMSoftwareBlockingPage(web_contents));
@@ -1160,7 +979,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b
} else if (path_without_query == "/clock") {
interstitial_delegate.reset(CreateBadClockBlockingPage(web_contents));
#if BUILDFLAG(ENABLE_CAPTIVE_PORTAL_DETECTION)
@@ -476,11 +365,6 @@ void InterstitialHTMLSource::StartDataRequest(
@@ -477,11 +479,6 @@ void InterstitialHTMLSource::StartDataRequest(
if (path_without_query == "/supervised_user") {
html = GetSupervisedUserInterstitialHTML(path);
@@ -1175,7 +994,7 @@ diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/b
diff --git a/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc b/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc
--- a/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc
+++ b/chrome/browser/ui/webui/md_downloads/md_downloads_dom_handler.cc
@@ -20,7 +20,6 @@
@@ -21,7 +21,6 @@
#include "base/threading/thread.h"
#include "base/values.h"
#include "chrome/browser/browser_process.h"
@@ -1284,7 +1103,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/features.cc
--- a/components/safe_browsing/features.cc
+++ b/components/safe_browsing/features.cc
@@ -49,7 +49,7 @@ const base::Feature kInspectDownloadedRarFiles{
@@ -46,7 +46,7 @@ const base::Feature kInspectDownloadedRarFiles{
"InspectDownloadedRarFiles", base::FEATURE_DISABLED_BY_DEFAULT};
const base::Feature kSuspiciousSiteTriggerQuotaFeature{
@@ -6,8 +6,10 @@ Subject: Allow building without safebrowsing for Android
.../android/java/res/xml/privacy_preferences.xml | 12 -----
.../preferences/privacy/PrivacyPreferences.java | 58 ----------------------
.../chrome_browsing_data_remover_delegate.cc | 10 ----
.../chrome_resource_dispatcher_host_delegate.cc | 2 +
4 files changed, 2 insertions(+), 80 deletions(-)
chrome/browser/chrome_content_browser_client.cc | 14 +-----
.../chrome_resource_dispatcher_host_delegate.cc | 4 ++
chrome/browser/net/chrome_network_delegate.cc | 13 -----
6 files changed, 5 insertions(+), 106 deletions(-)
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
--- a/chrome/android/java/res/xml/privacy_preferences.xml
@@ -58,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
preferenceScreen.removePreference(findPreference(PREF_NETWORK_PREDICTIONS));
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
@@ -127,32 +118,11 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -123,32 +114,11 @@ public class PrivacyPreferences extends PreferenceFragment
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
}
@@ -91,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
ChromeBaseCheckBoxPreference closeTabsOnExitPref =
(ChromeBaseCheckBoxPreference) findPreference(PREF_CLOSE_TABS_ON_EXIT);
closeTabsOnExitPref.setOnPreferenceChangeListener(this);
@@ -166,12 +136,6 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -162,12 +132,6 @@ public class PrivacyPreferences extends PreferenceFragment
String key = preference.getKey();
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
@@ -104,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
} else if (PREF_ALLOW_CUSTOM_TAB_INTENTS.equals(key)) {
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
@@ -230,21 +194,6 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -226,21 +190,6 @@ public class PrivacyPreferences extends PreferenceFragment
searchSuggestionsPref.setChecked(prefServiceBridge.isSearchSuggestEnabled());
}
@@ -126,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
CheckBoxPreference canMakePaymentPref =
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
if (canMakePaymentPref != null) {
@@ -281,13 +230,6 @@ public class PrivacyPreferences extends PreferenceFragment
@@ -277,13 +226,6 @@ public class PrivacyPreferences extends PreferenceFragment
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
return prefs.isSearchSuggestManaged();
}
@@ -143,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -256,16 +256,6 @@ bool DoesOriginMatchEmbedderMask(int origin_type_mask,
@@ -254,16 +254,6 @@ bool DoesOriginMatchEmbedderMask(int origin_type_mask,
return false;
}
@@ -160,10 +162,42 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
} // namespace
ChromeBrowsingDataRemoverDelegate::ChromeBrowsingDataRemoverDelegate(
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -4862,19 +4862,7 @@ ChromeContentBrowserClient::GetSafeBrowsingUrlCheckerDelegate(
content::ResourceContext* resource_context) {
DCHECK_CURRENTLY_ON(BrowserThread::IO);
- ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
- if (!io_data->safe_browsing_enabled()->GetValue())
- return nullptr;
-
- // |safe_browsing_service_| may be unavailable in tests.
- if (safe_browsing_service_ && !safe_browsing_url_checker_delegate_) {
- safe_browsing_url_checker_delegate_ =
- base::MakeRefCounted<safe_browsing::UrlCheckerDelegateImpl>(
- safe_browsing_service_->database_manager(),
- safe_browsing_service_->ui_manager());
- }
-
- return safe_browsing_url_checker_delegate_.get();
+ return nullptr;
}
base::Optional<std::string>
diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
--- a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
+++ b/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc
@@ -466,8 +466,10 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
@@ -451,14 +451,18 @@ void ChromeResourceDispatcherHostDelegate::AppendStandardResourceThrottles(
content::ResourceContext* resource_context,
ResourceType resource_type,
std::vector<std::unique_ptr<content::ResourceThrottle>>* throttles) {
+#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
ProfileIOData* io_data = ProfileIOData::FromResourceContext(resource_context);
+#endif // defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
// Insert either safe browsing or data reduction proxy throttle at the front
// of the list, so one of them gets to decide if the resource is safe.
content::ResourceThrottle* first_throttle = NULL;
#if defined(OS_ANDROID)
@@ -174,6 +208,29 @@ diff --git a/chrome/browser/loader/chrome_resource_dispatcher_host_delegate.cc b
#endif // defined(OS_ANDROID)
#if defined(SAFE_BROWSING_DB_LOCAL) || defined(SAFE_BROWSING_DB_REMOTE)
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc
--- a/chrome/browser/net/chrome_network_delegate.cc
+++ b/chrome/browser/net/chrome_network_delegate.cc
@@ -81,19 +81,6 @@ namespace {
bool g_access_to_all_files_enabled = false;
-// Gets called when the extensions finish work on the URL. If the extensions
-// did not do a redirect (so |new_url| is empty) then we enforce the
-// SafeSearch parameters. Otherwise we will get called again after the
-// redirect and we enforce SafeSearch then.
-void ForceGoogleSafeSearchCallbackWrapper(net::CompletionOnceCallback callback,
- net::URLRequest* request,
- GURL* new_url,
- int rv) {
- if (rv == net::OK && new_url->is_empty())
- safe_search_util::ForceGoogleSafeSearch(request->url(), new_url);
- std::move(callback).Run(rv);
-}
-
bool IsAccessAllowedInternal(const base::FilePath& path,
const base::FilePath& profile_path) {
if (g_access_to_all_files_enabled)
--
2.11.0
@@ -18,7 +18,7 @@ References: https://github.com/iridium-browser/iridium-browser/issues/28
diff --git a/extensions/common/extension.cc b/extensions/common/extension.cc
--- a/extensions/common/extension.cc
+++ b/extensions/common/extension.cc
@@ -378,9 +378,12 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
@@ -379,9 +379,12 @@ bool Extension::ShouldDisplayInExtensionSettings() const {
}
bool Extension::ShouldExposeViaManagementAPI() const {
@@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml
--- a/chrome/android/java/res/values/dimens.xml
+++ b/chrome/android/java/res/values/dimens.xml
@@ -180,7 +180,6 @@
@@ -181,7 +181,6 @@
<dimen name="fre_stacked_button_margin">8dp</dimen>
<dimen name="fre_margin">24dp</dimen>
<dimen name="fre_image_height">120dp</dimen>
@@ -1,27 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 24 Jun 2018 01:51:49 +0200
Subject: lint: suppress hardcoded text warnings
---
build/android/lint/suppressions.xml | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/build/android/lint/suppressions.xml b/build/android/lint/suppressions.xml
--- a/build/android/lint/suppressions.xml
+++ b/build/android/lint/suppressions.xml
@@ -92,10 +92,8 @@ Still reading?
<ignore regexp="chromecast/internal" />
<ignore regexp="remoting/android/java/src/org/chromium/chromoting/TapGestureDetector.java" />
</issue>
- <issue id="HardcodedDebugMode" severity="Fatal">
- <ignore path="AndroidManifest.xml"/>
- </issue>
- <issue id="HardcodedText" severity="Error">
+ <issue id="HardcodedDebugMode" severity="Fatal" />
+ <issue id="HardcodedText" severity="ignore">
<ignore regexp="chromecast/internal"/>
<ignore regexp="remoting/android/host/res/layout/main.xml"/>
</issue>
--
2.11.0
@@ -1,11 +1,11 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:16:43 +0200
Subject: kill Translate(doesn't work)
Subject: kill Translate
---
chrome/android/java/res/xml/languages_preferences.xml | 3 ++-
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
.../src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 3 +++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/chrome/android/java/res/xml/languages_preferences.xml b/chrome/android/java/res/xml/languages_preferences.xml
--- a/chrome/android/java/res/xml/languages_preferences.xml
@@ -30,14 +30,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
import org.chromium.chrome.browser.search_engines.TemplateUrlService;
import org.chromium.chrome.browser.searchwidget.SearchWidgetProvider;
import org.chromium.ui.base.LocalizationUtils;
@@ -143,6 +144,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
mFreProgressStates.add(FRE_PROGRESS_DATA_SAVER_SHOWN);
notifyAdapter = true;
+ PrefServiceBridge.getInstance().setTranslateEnabled(false);
}
@@ -138,6 +139,8 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
if (mPostNativePageSequenceCreated) return;
mFirstRunFlowSequencer.onNativeInitialized(mFreProperties);
// An optional page to select a default search engine.
+ PrefServiceBridge.getInstance().setTranslateEnabled(false);
+
boolean notifyAdapter = false;
// An optional Data Saver page.
if (mFreProperties.getBoolean(SHOW_DATA_REDUCTION_PAGE)) {
--
2.11.0
-156
View File
@@ -1,156 +0,0 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:04:43 +0200
Subject: kill Vision
---
.../org/chromium/shape_detection/BarcodeDetectionImpl.java | 6 +++---
.../java/src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
.../chromium/shape_detection/FaceDetectionImplGmsCore.java | 6 +++---
.../chromium/shape_detection/FaceDetectionProviderImpl.java | 2 +-
.../src/org/chromium/shape_detection/InterfaceRegistrar.java | 10 +++++-----
.../src/org/chromium/shape_detection/TextDetectionImpl.java | 6 +++---
6 files changed, 15 insertions(+), 27 deletions(-)
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java
@@ -43,11 +43,11 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
// on the device; this happens "fast", but it might have not completed,
// bail in this case. Also, the API was disabled between and v.9.0 and
// v.9.2, see https://developers.google.com/android/guides/releases.
- if (!mBarcodeDetector.isOperational()) {
+// if (!mBarcodeDetector.isOperational()) {
Log.e(TAG, "BarcodeDetector is not operational");
callback.call(new BarcodeDetectionResult[0]);
return;
- }
+/* }
Frame frame = BitmapUtils.convertToFrame(bitmapData);
if (frame == null) {
@@ -77,7 +77,7 @@ public class BarcodeDetectionImpl implements BarcodeDetection {
barcodeArray[i].cornerPoints[j].y = corners[j].y;
}
}
- callback.call(barcodeArray);
+ callback.call(barcodeArray);*/
}
@Override
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
@@ -6,8 +6,6 @@ package org.chromium.shape_detection;
import android.graphics.Bitmap;
-import com.google.android.gms.vision.Frame;
-
import org.chromium.mojo_base.BigBufferUtil;
import org.chromium.skia.mojom.ColorType;
@@ -44,14 +42,4 @@ public class BitmapUtils {
return bitmap;
}
-
- public static Frame convertToFrame(org.chromium.skia.mojom.Bitmap bitmapData) {
- Bitmap bitmap = convertToBitmap(bitmapData);
- if (bitmap == null) {
- return null;
- }
-
- // This constructor implies a pixel format conversion to YUV.
- return new Frame.Builder().setBitmap(bitmap).build();
- }
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java
@@ -63,7 +63,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
// The vision library will be downloaded the first time the API is used
// on the device; this happens "fast", but it might have not completed,
// bail in this case.
- if (!mFaceDetector.isOperational()) {
+// if (!mFaceDetector.isOperational()) {
Log.e(TAG, "FaceDetector is not operational");
// Fallback to Android's FaceDetectionImpl.
@@ -73,7 +73,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
FaceDetectionImpl detector = new FaceDetectionImpl(options);
detector.detect(bitmapData, callback);
return;
- }
+/* }
Frame frame = BitmapUtils.convertToFrame(bitmapData);
if (frame == null) {
@@ -157,7 +157,7 @@ public class FaceDetectionImplGmsCore implements FaceDetection {
faceArray[i].boundingBox.height = face.getHeight();
}
}
- callback.call(faceArray);
+ callback.call(faceArray);*/
}
@Override
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
@@ -30,7 +30,7 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
== ConnectionResult.SUCCESS;
if (isGmsCoreSupported) {
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
+ //FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
} else {
FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
@@ -20,10 +20,10 @@ class InterfaceRegistrar {
// is not necessary to hold on to a reference to it explicitly.
InterfaceRegistry registry = InterfaceRegistry.create(
CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle());
- registry.addInterface(
- BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
- registry.addInterface(
- FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
- registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
+// registry.addInterface(
+// BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
+// registry.addInterface(
+// FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
+// registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
}
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/TextDetectionImpl.java
@@ -42,11 +42,11 @@ public class TextDetectionImpl implements TextDetection {
// on the device; this happens "fast", but it might have not completed,
// bail in this case. Also, the API was disabled between and v.9.0 and
// v.9.2, see https://developers.google.com/android/guides/releases.
- if (!mTextRecognizer.isOperational()) {
+// if (!mTextRecognizer.isOperational()) {
Log.e(TAG, "TextDetector is not operational");
callback.call(new TextDetectionResult[0]);
return;
- }
+/* }
Frame frame = BitmapUtils.convertToFrame(bitmapData);
if (frame == null) {
@@ -76,7 +76,7 @@ public class TextDetectionImpl implements TextDetection {
detectedTextArray[i].cornerPoints[j].y = corners[j].y;
}
}
- callback.call(detectedTextArray);
+ callback.call(detectedTextArray); */
}
@Override
--
2.11.0
+115
View File
@@ -0,0 +1,115 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:04:43 +0200
Subject: kill Vision
Barcode, face and text detection APIs
---
services/shape_detection/BUILD.gn | 4 ----
.../src/org/chromium/shape_detection/BitmapUtils.java | 12 ------------
.../shape_detection/FaceDetectionProviderImpl.java | 15 ++-------------
.../org/chromium/shape_detection/InterfaceRegistrar.java | 5 -----
4 files changed, 2 insertions(+), 34 deletions(-)
diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn
--- a/services/shape_detection/BUILD.gn
+++ b/services/shape_detection/BUILD.gn
@@ -86,14 +86,10 @@ if (is_android) {
android_library("shape_detection_java") {
java_files = [
- "android/java/src/org/chromium/shape_detection/BarcodeDetectionImpl.java",
- "android/java/src/org/chromium/shape_detection/BarcodeDetectionProviderImpl.java",
"android/java/src/org/chromium/shape_detection/FaceDetectionImpl.java",
- "android/java/src/org/chromium/shape_detection/FaceDetectionImplGmsCore.java",
"android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java",
"android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java",
"android/java/src/org/chromium/shape_detection/BitmapUtils.java",
- "android/java/src/org/chromium/shape_detection/TextDetectionImpl.java",
]
deps = [
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/BitmapUtils.java
@@ -6,8 +6,6 @@ package org.chromium.shape_detection;
import android.graphics.Bitmap;
-import com.google.android.gms.vision.Frame;
-
import org.chromium.mojo_base.BigBufferUtil;
import org.chromium.skia.mojom.ColorType;
@@ -44,14 +42,4 @@ public class BitmapUtils {
return bitmap;
}
-
- public static Frame convertToFrame(org.chromium.skia.mojom.Bitmap bitmapData) {
- Bitmap bitmap = convertToBitmap(bitmapData);
- if (bitmap == null) {
- return null;
- }
-
- // This constructor implies a pixel format conversion to YUV.
- return new Frame.Builder().setBitmap(bitmap).build();
- }
}
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
@@ -4,9 +4,6 @@
package org.chromium.shape_detection;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ContextUtils;
import org.chromium.mojo.bindings.InterfaceRequest;
import org.chromium.mojo.system.MojoException;
@@ -24,16 +21,8 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
@Override
public void createFaceDetection(
InterfaceRequest<FaceDetection> request, FaceDetectorOptions options) {
- final boolean isGmsCoreSupported =
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext())
- == ConnectionResult.SUCCESS;
-
- if (isGmsCoreSupported) {
- FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
- } else {
- FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
- }
+
+ FaceDetection.MANAGER.bind(new FaceDetectionImpl(options), request);
}
@Override
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/InterfaceRegistrar.java
@@ -8,9 +8,7 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.mojo.system.impl.CoreImpl;
import org.chromium.services.service_manager.InterfaceRegistry;
-import org.chromium.shape_detection.mojom.BarcodeDetectionProvider;
import org.chromium.shape_detection.mojom.FaceDetectionProvider;
-import org.chromium.shape_detection.mojom.TextDetection;
@JNINamespace("shape_detection")
class InterfaceRegistrar {
@@ -21,9 +19,6 @@ class InterfaceRegistrar {
InterfaceRegistry registry = InterfaceRegistry.create(
CoreImpl.getInstance().acquireNativeHandle(nativeHandle).toMessagePipeHandle());
registry.addInterface(
- BarcodeDetectionProvider.MANAGER, new BarcodeDetectionProviderImpl.Factory());
- registry.addInterface(
FaceDetectionProvider.MANAGER, new FaceDetectionProviderImpl.Factory());
- registry.addInterface(TextDetection.MANAGER, new TextDetectionImpl.Factory());
}
}
--
2.11.0
@@ -0,0 +1,48 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:05:17 +0200
Subject: kill Location, fall back to system
---
services/device/geolocation/BUILD.gn | 1 -
.../chromium/device/geolocation/LocationProviderFactory.java | 10 ++--------
2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
--- a/services/device/geolocation/BUILD.gn
+++ b/services/device/geolocation/BUILD.gn
@@ -131,7 +131,6 @@ if (is_android) {
"android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java",
"android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java",
"android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java",
- "android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java",
]
deps = [
diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
--- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
+++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java
@@ -26,19 +26,13 @@ public class LocationProviderFactory {
@CalledByNative
public static void useGmsCoreLocationProvider() {
- sUseGmsCoreLocationProvider = true;
+ sUseGmsCoreLocationProvider = false;
}
public static LocationProvider create() {
if (sProviderImpl != null) return sProviderImpl;
- if (sUseGmsCoreLocationProvider
- && LocationProviderGmsCore.isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext())) {
- sProviderImpl = new LocationProviderGmsCore(ContextUtils.getApplicationContext());
- } else {
- sProviderImpl = new LocationProviderAndroid();
- }
+ sProviderImpl = new LocationProviderAndroid();
return sProviderImpl;
}
}
--
2.11.0
@@ -1,323 +0,0 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:13:38 +0200
Subject: kill remaining Play Services checks
---
.../chromium/chrome/browser/ChromeVersionInfo.java | 10 +-------
.../browser/externalauth/ExternalAuthUtils.java | 28 +++++++---------------
.../externalauth/UserRecoverableErrorHandler.java | 10 --------
.../chrome/browser/omaha/UpdateMenuItemHelper.java | 10 +-------
chrome/android/java_sources.gni | 3 ---
.../components/signin/AccountIdProvider.java | 10 +-------
.../signin/GmsAvailabilityException.java | 4 +---
.../signin/SystemAccountManagerDelegate.java | 18 +++-----------
.../shape_detection/FaceDetectionProviderImpl.java | 8 +------
9 files changed, 16 insertions(+), 85 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeVersionInfo.java
@@ -7,8 +7,6 @@ package org.chromium.chrome.browser;
import android.content.Context;
import android.content.pm.PackageManager;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
@@ -88,7 +86,7 @@ public class ChromeVersionInfo {
public static String getGmsInfo() {
Context context = ContextUtils.getApplicationContext();
- final long sdkVersion = GoogleApiAvailability.GOOGLE_PLAY_SERVICES_VERSION_CODE;
+ final long sdkVersion = 0L;
final long installedGmsVersion = getPlayServicesApkVersionNumber(context);
final String accessType;
@@ -105,12 +103,6 @@ public class ChromeVersionInfo {
}
private static long getPlayServicesApkVersionNumber(Context context) {
- try {
- return context.getPackageManager()
- .getPackageInfo(GoogleApiAvailability.GOOGLE_PLAY_SERVICES_PACKAGE, 0)
- .versionCode;
- } catch (PackageManager.NameNotFoundException e) {
return 0;
- }
}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/ExternalAuthUtils.java
@@ -15,9 +15,6 @@ import android.os.SystemClock;
import android.support.annotation.WorkerThread;
import android.text.TextUtils;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
@@ -164,9 +161,10 @@ public class ExternalAuthUtils {
* when it is updating.
*/
public boolean isGooglePlayServicesMissing(final Context context) {
- final int resultCode = checkGooglePlayServicesAvailable(context);
+/* final int resultCode = checkGooglePlayServicesAvailable(context);
return (resultCode == ConnectionResult.SERVICE_MISSING
- || resultCode == ConnectionResult.SERVICE_INVALID);
+ || resultCode == ConnectionResult.SERVICE_INVALID); */
+ return true;
}
/**
@@ -181,7 +179,7 @@ public class ExternalAuthUtils {
* @return true if and only if Google Play Services can be used
*/
public boolean canUseGooglePlayServices(final UserRecoverableErrorHandler errorHandler) {
- Context context = ContextUtils.getApplicationContext();
+/* Context context = ContextUtils.getApplicationContext();
final int resultCode = checkGooglePlayServicesAvailable(context);
recordConnectionResult(resultCode);
if (resultCode == ConnectionResult.SUCCESS) return true;
@@ -195,7 +193,7 @@ public class ExternalAuthUtils {
}
};
ThreadUtils.runOnUiThread(errorHandlerTask);
- }
+ } */
return false;
}
@@ -257,17 +255,7 @@ public class ExternalAuthUtils {
* @return The code produced by calling the external code
*/
protected int checkGooglePlayServicesAvailable(final Context context) {
- // Temporarily allowing disk access. TODO: Fix. See http://crbug.com/577190
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
- try {
- long time = SystemClock.elapsedRealtime();
- int isAvailable =
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context);
- mRegistrationTimeHistogramSample.record(SystemClock.elapsedRealtime() - time);
- return isAvailable;
- } finally {
- StrictMode.setThreadPolicy(oldPolicy);
- }
+ return 1;
}
/**
@@ -278,7 +266,7 @@ public class ExternalAuthUtils {
* @return true If the code represents a user-recoverable error
*/
protected boolean isUserRecoverableError(final int errorCode) {
- return GoogleApiAvailability.getInstance().isUserResolvableError(errorCode);
+ return false;
}
/**
@@ -288,6 +276,6 @@ public class ExternalAuthUtils {
* @return a textual description of the error code
*/
protected String describeError(final int errorCode) {
- return GoogleApiAvailability.getInstance().getErrorString(errorCode);
+ return "";
}
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalauth/UserRecoverableErrorHandler.java
@@ -10,8 +10,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.support.annotation.IntDef;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.CachedMetrics.ActionEvent;
import org.chromium.base.metrics.CachedMetrics.EnumeratedHistogramSample;
@@ -120,7 +118,6 @@ public abstract class UserRecoverableErrorHandler {
sErrorHandlerActionHistogramSample.record(ErrorHandlerAction.IGNORED_AS_REDUNDANT);
return;
}
- GoogleApiAvailability.getInstance().showErrorNotification(context, errorCode);
sErrorHandlerActionHistogramSample.record(ErrorHandlerAction.SYSTEM_NOTIFICATION);
}
}
@@ -213,13 +210,6 @@ public abstract class UserRecoverableErrorHandler {
if (mErrorCode != errorCode) {
cancelDialog();
}
- if (mDialog == null) {
- mDialog = GoogleApiAvailability.getInstance().getErrorDialog(
- mActivity, errorCode, NO_RESPONSE_REQUIRED);
- mErrorCode = errorCode;
-
- DialogUserActionRecorder.createAndAttachToDialog(mDialog);
- }
// This can happen if |errorCode| is ConnectionResult.SERVICE_INVALID.
if (mDialog != null && !mDialog.isShowing()) {
mDialog.setCancelable(mCancelable);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java
@@ -21,8 +21,6 @@ import android.text.TextUtils;
import android.view.View;
import android.view.animation.LinearInterpolator;
-import com.google.android.gms.common.GooglePlayServicesUtil;
-
import org.chromium.base.AsyncTask;
import org.chromium.base.CommandLine;
import org.chromium.base.Log;
@@ -163,13 +161,7 @@ public class UpdateMenuItemHelper {
}
private static boolean isGooglePlayStoreAvailable(Context context) {
- try {
- context.getPackageManager().getPackageInfo(
- GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE, 0);
- } catch (PackageManager.NameNotFoundException e) {
- return false;
- }
- return true;
+ return false;
}
/**
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -618,10 +618,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/fullscreen/FullscreenManager.java",
"java/src/org/chromium/chrome/browser/fullscreen/FullscreenOptions.java",
"java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClient.java",
- "java/src/org/chromium/chrome/browser/gcore/ChromeGoogleApiClientImpl.java",
"java/src/org/chromium/chrome/browser/gcore/ConnectedTask.java",
- "java/src/org/chromium/chrome/browser/gcore/GoogleApiClientHelper.java",
- "java/src/org/chromium/chrome/browser/gcore/LifecycleHook.java",
"java/src/org/chromium/chrome/browser/gsa/ContextReporter.java",
"java/src/org/chromium/chrome/browser/gsa/GSAAccountChangeListener.java",
"java/src/org/chromium/chrome/browser/gsa/GSAContextDisplaySelection.java",
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountIdProvider.java
@@ -4,9 +4,6 @@
package org.chromium.components.signin;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.StrictModeContext;
@@ -47,12 +44,7 @@ public class AccountIdProvider {
* Google Play services is available.
*/
public boolean canBeUsed() {
- // TODO(http://crbug.com/577190): Remove StrictMode override.
- try (StrictModeContext unused = StrictModeContext.allowDiskWrites()) {
- int resultCode = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext());
- return resultCode == ConnectionResult.SUCCESS;
- }
+ return false;
}
/**
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/GmsAvailabilityException.java
@@ -4,8 +4,6 @@
package org.chromium.components.signin;
-import com.google.android.gms.common.GoogleApiAvailability;
-
/**
* This class encapsulates return code if GMSCore package is not available.
*/
@@ -27,6 +25,6 @@ public class GmsAvailabilityException extends AccountManagerDelegateException {
}
public boolean isUserResolvableError() {
- return GoogleApiAvailability.getInstance().isUserResolvableError(mResultCode);
+ return false;
}
}
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
--- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
+++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
@@ -24,9 +24,6 @@ import android.os.PatternMatcher;
import android.os.Process;
import android.os.SystemClock;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.Callback;
import org.chromium.base.ContextUtils;
@@ -83,17 +80,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
}
protected void checkCanUseGooglePlayServices() throws AccountManagerDelegateException {
- Context context = ContextUtils.getApplicationContext();
- final int resultCode =
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context);
- if (resultCode == ConnectionResult.SUCCESS) {
- return;
- }
-
- throw new GmsAvailabilityException(
- String.format("Can't use Google Play Services: %s",
- GoogleApiAvailability.getInstance().getErrorString(resultCode)),
- resultCode);
+ throw new GmsAvailabilityException("Can't use Google Play Services: CFOSS",0);
}
@Override
@@ -210,8 +197,9 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
callback.onResult(null);
}
};
- mAccountManager.addAccount(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, null, null, null, null,
+ /*mAccountManager.addAccount(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, null, null, null, null,
accountManagerCallback, null);
+ */
}
// No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs
diff --git a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
--- a/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
+++ b/services/shape_detection/android/java/src/org/chromium/shape_detection/FaceDetectionProviderImpl.java
@@ -4,9 +4,6 @@
package org.chromium.shape_detection;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.base.ContextUtils;
import org.chromium.mojo.bindings.InterfaceRequest;
import org.chromium.mojo.system.MojoException;
@@ -24,10 +21,7 @@ public class FaceDetectionProviderImpl implements FaceDetectionProvider {
@Override
public void createFaceDetection(
InterfaceRequest<FaceDetection> request, FaceDetectorOptions options) {
- final boolean isGmsCoreSupported =
- GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- ContextUtils.getApplicationContext())
- == ConnectionResult.SUCCESS;
+ final boolean isGmsCoreSupported = false;
if (isGmsCoreSupported) {
//FaceDetection.MANAGER.bind(new FaceDetectionImplGmsCore(options), request);
--
2.11.0
@@ -3,10 +3,10 @@ Date: Fri, 22 Jun 2018 17:06:15 +0200
Subject: kill Auth
---
.../org/chromium/chrome/browser/signin/SigninHelper.java | 6 ++----
.../org/chromium/components/signin/AccountIdProvider.java | 9 +--------
.../components/signin/SystemAccountManagerDelegate.java | 15 +++++++++------
3 files changed, 12 insertions(+), 18 deletions(-)
.../chrome/browser/signin/SigninHelper.java | 22 +---------
.../components/signin/AccountIdProvider.java | 9 +---
.../signin/SystemAccountManagerDelegate.java | 50 ++--------------------
3 files changed, 5 insertions(+), 76 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHelper.java
@@ -19,22 +19,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninHe
-import com.google.android.gms.auth.GoogleAuthException;
-import com.google.android.gms.auth.GoogleAuthUtil;
-
import org.chromium.base.AsyncTask;
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
@@ -71,6 +67,7 @@ public class SigninHelper {
import org.chromium.base.VisibleForTesting;
@@ -71,23 +67,7 @@ public class SigninHelper {
@Override
public List<String> getAccountChangeEvents(
Context context, int index, String accountName) {
+ /*
try {
List<AccountChangeEvent> list = GoogleAuthUtil.getAccountChangeEvents(
context, index, accountName);
@@ -88,6 +85,7 @@ public class SigninHelper {
} catch (GoogleAuthException e) {
Log.w(TAG, "Failed to get change events", e);
}
+ */
- try {
- List<AccountChangeEvent> list = GoogleAuthUtil.getAccountChangeEvents(
- context, index, accountName);
- List<String> result = new ArrayList<>(list.size());
- for (AccountChangeEvent e : list) {
- if (e.getChangeType() == GoogleAuthUtil.CHANGE_TYPE_ACCOUNT_RENAMED_TO) {
- result.add(e.getChangeData());
- } else {
- result.add(null);
- }
- }
- return result;
- } catch (IOException e) {
- Log.w(TAG, "Failed to get change events", e);
- } catch (GoogleAuthException e) {
- Log.w(TAG, "Failed to get change events", e);
- }
+
return new ArrayList<>(0);
}
}
@@ -77,56 +86,76 @@ diff --git a/components/signin/core/browser/android/java/src/org/chromium/compon
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
@@ -117,9 +114,9 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
@@ -117,48 +114,18 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
// so don't report any accounts if Google Play Services are out of date.
checkCanUseGooglePlayServices();
- if (!hasGetAccountsPermission()) {
- return new Account[] {};
- }
- long now = SystemClock.elapsedRealtime();
- Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
- long elapsed = SystemClock.elapsedRealtime() - now;
- recordElapsedTimeHistogram("Signin.AndroidGetAccountsTime_AccountManager", elapsed);
- if (ThreadUtils.runningOnUiThread()) {
- recordElapsedTimeHistogram(
- "Signin.AndroidGetAccountsTimeUiThread_AccountManager", elapsed);
- }
- return accounts;
+ return new Account[] {};
+
+ /*
long now = SystemClock.elapsedRealtime();
Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
long elapsed = SystemClock.elapsedRealtime() - now;
@@ -129,12 +126,15 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
"Signin.AndroidGetAccountsTimeUiThread_AccountManager", elapsed);
}
return accounts;
+ */
}
@Override
public String getAuthToken(Account account, String authTokenScope) throws AuthException {
assert !ThreadUtils.runningOnUiThread();
assert AccountManagerFacade.GOOGLE_ACCOUNT_TYPE.equals(account.type);
- try {
- return GoogleAuthUtil.getTokenWithNotification(
- ContextUtils.getApplicationContext(), account, authTokenScope, null);
- } catch (GoogleAuthException ex) {
- // This case includes a UserRecoverableNotifiedException, but most clients will have
- // their own retry mechanism anyway.
- throw new AuthException(AuthException.NONTRANSIENT,
- "Error while getting token for scope '" + authTokenScope + "'", ex);
- } catch (IOException ex) {
- throw new AuthException(AuthException.TRANSIENT, ex);
- }
+ return null;
+ /*
try {
return GoogleAuthUtil.getTokenWithNotification(
ContextUtils.getApplicationContext(), account, authTokenScope, null);
@@ -146,10 +146,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
} catch (IOException ex) {
throw new AuthException(AuthException.TRANSIENT, ex);
}
+ */
}
@Override
public void invalidateAuthToken(String authToken) throws AuthException {
+ /*
try {
GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken);
} catch (GooglePlayServicesAvailabilityException ex) {
@@ -159,6 +161,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
} catch (IOException ex) {
throw new AuthException(AuthException.TRANSIENT, ex);
}
+ */
- public void invalidateAuthToken(String authToken) throws AuthException {
- try {
- GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken);
- } catch (GooglePlayServicesAvailabilityException ex) {
- throw new AuthException(AuthException.NONTRANSIENT, ex);
- } catch (GoogleAuthException ex) {
- throw new AuthException(AuthException.NONTRANSIENT, ex);
- } catch (IOException ex) {
- throw new AuthException(AuthException.TRANSIENT, ex);
- }
+ public void invalidateAuthToken(String authToken) {
}
@Override
@@ -198,17 +165,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate {
@SuppressLint("MissingPermission")
@Override
public void createAddAccountIntent(Callback<Intent> callback) {
- AccountManagerCallback<Bundle> accountManagerCallback = accountManagerFuture -> {
- try {
- Bundle bundle = accountManagerFuture.getResult();
- callback.onResult(bundle.getParcelable(AccountManager.KEY_INTENT));
- } catch (OperationCanceledException | IOException | AuthenticatorException e) {
- Log.e(TAG, "Error while creating an intent to add an account: ", e);
- callback.onResult(null);
- }
- };
- mAccountManager.addAccount(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, null, null, null, null,
- accountManagerCallback, null);
}
// No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs
--
2.11.0
+978
View File
@@ -0,0 +1,978 @@
From: thermatk <thermatk@thermatk.com>
Date: Fri, 22 Jun 2018 17:11:38 +0200
Subject: kill GCM
---
build/secondary/third_party/android_tools/BUILD.gn | 3 -
chrome/android/BUILD.gn | 1 -
chrome/android/java/AndroidManifest.xml | 62 ---------
.../chrome/browser/BackgroundSyncLauncher.java | 97 --------------
.../chrome/browser/ChromeBackgroundService.java | 1 -
.../invalidation/InvalidationController.java | 13 --
.../browser/ntp/snippets/SnippetsLauncher.java | 44 -------
.../browser/services/gcm/GCMBackgroundTask.java | 2 -
.../gcm/InvalidationGcmUpstreamSender.java | 15 ---
chrome/android/java_sources.gni | 2 -
components/background_task_scheduler/BUILD.gn | 1 -
.../BackgroundTaskSchedulerGcmNetworkManager.java | 146 +--------------------
components/gcm_driver/android/BUILD.gn | 1 -
components/gcm_driver/instance_id/android/BUILD.gn | 1 -
.../gcm_driver/instance_id/InstanceIDBridge.java | 31 +----
components/sync/android/BUILD.gn | 1 -
third_party/cacheinvalidation/BUILD.gn | 6 -
.../client/contrib/MultiplexingGcmListener.java | 92 +------------
.../android2/channel/AndroidNetworkChannel.java | 18 +--
19 files changed, 14 insertions(+), 523 deletions(-)
diff --git a/build/secondary/third_party/android_tools/BUILD.gn b/build/secondary/third_party/android_tools/BUILD.gn
--- a/build/secondary/third_party/android_tools/BUILD.gn
+++ b/build/secondary/third_party/android_tools/BUILD.gn
@@ -53,9 +53,6 @@ if (enable_java_templates) {
testonly = true
java_files = [ "//third_party/android_tools/sdk/extras/chromium/support/src/org/chromium/android/support/PackageManagerWrapper.java" ]
}
- android_java_prebuilt("android_gcm_java") {
- jar_path = "//third_party/android_tools/sdk/extras/google/gcm/gcm-client/dist/gcm.jar"
- }
android_java_prebuilt("emma_device_java") {
jar_path = "//third_party/android_tools/sdk/tools/lib/emma_device.jar"
include_java_resources = true
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -308,7 +308,6 @@ android_library("chrome_java") {
"//third_party/android_deps:javax_inject_javax_inject_java",
"//third_party/android_media:android_media_java",
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
- "//third_party/android_tools:android_gcm_java",
"//third_party/blink/public:android_mojo_bindings_java",
"//third_party/blink/public:blink_headers_java",
"//third_party/blink/public/mojom:android_mojo_bindings_java",
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -78,22 +78,17 @@ by a child template that "extends" this file.
<permission android:name="{{ manifest_package }}.permission.CHILD_SERVICE" android:protectionLevel="signature" />
<permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" android:protectionLevel="signatureOrSystem" />
<permission android:name="{{ manifest_package }}.TOS_ACKED" android:protectionLevel="signatureOrSystem" />
- <!-- Only chrome can receive the messages and registration result -->
- <permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE"
- android:protectionLevel="signature" />
<permission android:name="{{ manifest_package }}.permission.DEBUG"
android:label="Debug web pages"
android:permissionGroup="android.permission-group.DEVELOPMENT_TOOLS"
android:protectionLevel="signature" />
- <uses-permission android:name="{{ manifest_package }}.permission.C2D_MESSAGE" />
<uses-permission android:name="{{ manifest_package }}.permission.READ_WRITE_BOOKMARK_FOLDERS" />
<uses-permission android:name="{{ manifest_package }}.TOS_ACKED" />
<uses-permission android:name="com.chrome.permission.DEVICE_EXTRAS" />
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
- <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
<uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
@@ -912,43 +907,6 @@ by a child template that "extends" this file.
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize"
android:hardwareAccelerated="false" />
- <!-- Receiver for GCM messages. -->
- <receiver android:name="com.google.android.gms.gcm.GcmReceiver"
- android:exported="true"
- android:permission="com.google.android.c2dm.permission.SEND">
- <intent-filter>
- <action android:name="com.google.android.c2dm.intent.RECEIVE" />
- <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
- <category android:name="{{ manifest_package }}"/>
- </intent-filter>
- </receiver>
- <!-- GcmTaskService for registration for Invalidations. -->
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.GcmRegistrationTaskService"
- android:exported="true"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE" >
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY"/>
- </intent-filter>
- </service>
- <!-- InstanceIDListenerService for token refresh events from GCM. -->
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidInstanceIDListenerService"
- android:exported="false">
- <intent-filter>
- <action android:name="com.google.android.gms.iid.InstanceID"/>
- </intent-filter>
- </service>
- <!-- GcmListenerService for messages from GCM. -->
- <service android:name="org.chromium.chrome.browser.services.gcm.ChromeGcmListenerService"
- android:exported="false" >
- <intent-filter>
- <action android:name="com.google.android.c2dm.intent.RECEIVE" />
- </intent-filter>
- </service>
- <meta-data android:name="ipc.invalidation.ticl.gcm_upstream_service_class"
- android:value="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender" />
- <service android:name="org.chromium.chrome.browser.services.gcm.InvalidationGcmUpstreamSender"
- android:exported="false"/>
-
<!-- Notification service for sync. -->
<meta-data android:name="ipc.invalidation.ticl.listener_service_class"
android:value="org.chromium.chrome.browser.invalidation.ChromeInvalidationClientService"/>
@@ -960,8 +918,6 @@ by a child template that "extends" this file.
</service>
<service android:name="com.google.ipc.invalidation.ticl.android2.TiclService"
android:exported="false"/>
- <service android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"
- android:exported="false"/>
<receiver android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"
android:exported="false"/>
<receiver android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"
@@ -988,24 +944,6 @@ by a child template that "extends" this file.
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"/>
- <!-- Background Task Scheduler GCM task service -->
- <service android:name="org.chromium.components.background_task_scheduler.BackgroundTaskGcmTaskService"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
- android:exported="true">
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
- </intent-filter>
- </service>
-
- <!-- GcmTaskService implementation to wake Chrome on scheduled events -->
- <service android:name="org.chromium.chrome.browser.ChromeBackgroundService"
- android:permission="com.google.android.gms.permission.BIND_NETWORK_TASK_SERVICE"
- android:exported="true">
- <intent-filter>
- <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
- </intent-filter>
- </service>
-
<service android:name="org.chromium.chrome.browser.prerender.ChromePrerenderService"
android:exported="true"
tools:ignore="ExportedService" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BackgroundSyncLauncher.java
@@ -8,10 +8,6 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.os.StrictMode;
-import com.google.android.gms.gcm.GcmNetworkManager;
-import com.google.android.gms.gcm.OneoffTask;
-import com.google.android.gms.gcm.Task;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
@@ -37,8 +33,6 @@ public class BackgroundSyncLauncher {
// BackgroundSyncLauncherAndroid, if any. If it is non-null then the browser is running.
private static BackgroundSyncLauncher sInstance;
- private GcmNetworkManager mScheduler;
-
/**
* Disables the automatic use of the GCMNetworkManager. When disabled, the methods which
* interact with GCM can still be used, but will not be called automatically on creation, or by
@@ -124,30 +118,6 @@ public class BackgroundSyncLauncher {
@VisibleForTesting
@CalledByNative
protected void launchBrowserIfStopped(final boolean shouldLaunch, final long minDelayMs) {
- mLaunchBrowserIfStoppedTask = new AsyncTask<Void>() {
- @Override
- protected Void doInBackground() {
- SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
- prefs.edit()
- .putBoolean(PREF_BACKGROUND_SYNC_LAUNCH_NEXT_ONLINE, shouldLaunch)
- .apply();
- return null;
- }
- @Override
- protected void onPostExecute(Void params) {
- if (sGCMEnabled) {
- if (shouldLaunch) {
- RecordHistogram.recordBooleanHistogram(
- "BackgroundSync.LaunchTask.ScheduleSuccess",
- scheduleLaunchTask(mScheduler, minDelayMs));
- } else {
- RecordHistogram.recordBooleanHistogram(
- "BackgroundSync.LaunchTask.CancelSuccess",
- removeScheduledTasks(mScheduler));
- }
- }
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
/**
@@ -159,7 +129,6 @@ public class BackgroundSyncLauncher {
}
protected BackgroundSyncLauncher() {
- mScheduler = GcmNetworkManager.getInstance(ContextUtils.getApplicationContext());
launchBrowserIfStopped(false, 0);
}
@@ -188,72 +157,6 @@ public class BackgroundSyncLauncher {
return !sGCMEnabled;
}
- private static boolean scheduleLaunchTask(GcmNetworkManager scheduler, long minDelayMs) {
- // Google Play Services may not be up to date, if the application was not installed through
- // the Play Store. In this case, scheduling the task will fail silently.
- final long minDelaySecs = minDelayMs / 1000;
- OneoffTask oneoff = new OneoffTask.Builder()
- .setService(ChromeBackgroundService.class)
- .setTag(TASK_TAG)
- // We have to set a non-zero execution window here
- .setExecutionWindow(minDelaySecs, minDelaySecs + 1)
- .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED)
- .setPersisted(true)
- .setUpdateCurrent(true)
- .build();
- try {
- scheduler.schedule(oneoff);
- } catch (IllegalArgumentException e) {
- // Disable GCM for the remainder of this session.
- setGCMEnabled(false);
- // Return false so that the failure will be logged.
- return false;
- }
- return true;
- }
-
- private static boolean removeScheduledTasks(GcmNetworkManager scheduler) {
- // Third-party code causes broadcast to touch disk. http://crbug.com/614679
- StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
- try {
- scheduler.cancelTask(TASK_TAG, ChromeBackgroundService.class);
- } catch (IllegalArgumentException e) {
- // This occurs when BackgroundSyncLauncherService is not found in the application
- // manifest. This should not happen in code that reaches here, but has been seen in
- // the past. See https://crbug.com/548314
- // Disable GCM for the remainder of this session.
- setGCMEnabled(false);
- // Return false so that the failure will be logged.
- return false;
- } finally {
- StrictMode.setThreadPolicy(oldPolicy);
- }
- return true;
- }
-
- /**
- * Reschedule any required background sync tasks, if they have been removed due to an
- * application upgrade.
- *
- * This method checks the saved preferences, and reschedules the sync tasks as appropriate
- * to match the preferences.
- * This method is static so that it can be run without actually instantiating a
- * BackgroundSyncLauncher.
- */
- protected static void rescheduleTasksOnUpgrade(final Context context) {
- final GcmNetworkManager scheduler = GcmNetworkManager.getInstance(context);
- BackgroundSyncLauncher.ShouldLaunchCallback callback = shouldLaunch -> {
- if (shouldLaunch) {
- // It's unclear what time the sync event was supposed to fire, so fire
- // without delay and let the browser reschedule if necessary.
- // TODO(iclelland): If this fails, report the failure via UMA (not now,
- // since the browser is not running, but on next startup.)
- scheduleLaunchTask(scheduler, 0);
- }
- };
- BackgroundSyncLauncher.shouldLaunchBrowserIfStopped(callback);
- }
-
@VisibleForTesting
static void setGCMEnabled(boolean enabled) {
sGCMEnabled = enabled;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBackgroundService.java
@@ -106,7 +106,6 @@ public class ChromeBackgroundService extends GcmTaskService {
@VisibleForTesting
protected void rescheduleBackgroundSyncTasksOnUpgrade() {
- BackgroundSyncLauncher.rescheduleTasksOnUpgrade(this);
}
private void handleSnippetsOnBrowserUpgraded() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/invalidation/InvalidationController.java
@@ -10,8 +10,6 @@ import android.os.Build;
import android.os.Handler;
import android.os.SystemClock;
-import com.google.ipc.invalidation.ticl.android2.channel.AndroidGcmController;
-
import org.chromium.base.ApplicationState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ContextUtils;
@@ -198,18 +196,7 @@ public class InvalidationController implements ApplicationStatus.ApplicationStat
* Registers for Google Cloud Messaging (GCM) for Invalidations.
*/
private void ensureGcmIsInitialized() {
- if (mGcmInitialized) return;
mGcmInitialized = true;
- new AsyncTask<Void>() {
- @Override
- protected Void doInBackground() {
- boolean useGcmUpstream = true;
- AndroidGcmController.get(ContextUtils.getApplicationContext())
- .initializeGcm(useGcmUpstream);
- return null;
- }
- }
- .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
@VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsLauncher.java
@@ -7,15 +7,10 @@ package org.chromium.chrome.browser.ntp.snippets;
import android.content.Context;
import android.net.ConnectivityManager;
-import com.google.android.gms.gcm.GcmNetworkManager;
-import com.google.android.gms.gcm.PeriodicTask;
-import com.google.android.gms.gcm.Task;
-
import org.chromium.base.ContextUtils;
import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
-import org.chromium.chrome.browser.ChromeBackgroundService;
import org.chromium.chrome.browser.externalauth.ExternalAuthUtils;
/**
@@ -40,8 +35,6 @@ public class SnippetsLauncher {
// If it is non-null then the browser is running.
private static SnippetsLauncher sInstance;
- private GcmNetworkManager mScheduler;
-
private boolean mGCMEnabled = true;
/**
@@ -78,7 +71,6 @@ public class SnippetsLauncher {
protected SnippetsLauncher() {
checkGCM();
- mScheduler = GcmNetworkManager.getInstance(ContextUtils.getApplicationContext());
}
private void checkGCM() {
@@ -89,32 +81,7 @@ public class SnippetsLauncher {
}
}
- private static PeriodicTask buildFetchTask(
- String tag, long periodSeconds, int requiredNetwork) {
- // Add a bit of "flex" around the target period. This achieves the following:
- // - It makes sure the task doesn't run (significantly) before its initial period has
- // elapsed. In practice, the scheduler seems to behave like that anyway, but it doesn't
- // guarantee that, so we shouldn't rely on it.
- // - It gives the scheduler a bit of room to optimize for battery life.
- long effectivePeriodSeconds = (long) (periodSeconds * (1.0 + FLEX_FACTOR));
- long flexSeconds = (long) (periodSeconds * (2.0 * FLEX_FACTOR));
- return new PeriodicTask.Builder()
- .setService(ChromeBackgroundService.class)
- .setTag(tag)
- .setPeriod(effectivePeriodSeconds)
- .setFlex(flexSeconds)
- .setRequiredNetwork(requiredNetwork)
- .setPersisted(true)
- .setUpdateCurrent(true)
- .build();
- }
-
private void scheduleOrCancelFetchTask(String taskTag, long period, int requiredNetwork) {
- if (period > 0) {
- mScheduler.schedule(buildFetchTask(taskTag, period, requiredNetwork));
- } else {
- mScheduler.cancelTask(taskTag, ChromeBackgroundService.class);
- }
}
@CalledByNative
@@ -127,23 +94,12 @@ public class SnippetsLauncher {
.edit()
.putBoolean(PREF_IS_SCHEDULED, isScheduled)
.apply();
-
- // Google Play Services may not be up to date, if the application was not installed through
- // the Play Store. In this case, scheduling the task will fail silently.
- try {
- scheduleOrCancelFetchTask(
- TASK_TAG_WIFI, periodWifiSeconds, Task.NETWORK_STATE_UNMETERED);
- scheduleOrCancelFetchTask(
- TASK_TAG_FALLBACK, periodFallbackSeconds, Task.NETWORK_STATE_CONNECTED);
- } catch (IllegalArgumentException e) {
// Disable GCM for the remainder of this session.
mGCMEnabled = false;
ContextUtils.getAppSharedPreferences().edit().remove(PREF_IS_SCHEDULED).apply();
// Return false so that the failure will be logged.
return false;
- }
- return true;
}
@CalledByNative
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java
@@ -39,8 +39,6 @@ public class GCMBackgroundTask implements BackgroundTask {
Log.e(TAG, "The received bundle containing message data could not be validated.");
return false;
}
-
- ChromeGcmListenerService.dispatchMessageToDriver(context, new GCMMessage(extras));
return false;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java
@@ -12,7 +12,6 @@ import android.os.Parcel;
import android.support.annotation.MainThread;
import android.util.Log;
-import com.google.android.gms.gcm.GoogleCloudMessaging;
import com.google.ipc.invalidation.ticl.android2.channel.GcmUpstreamSenderService;
import org.chromium.base.ContextUtils;
@@ -96,20 +95,6 @@ public class InvalidationGcmUpstreamSender extends GcmUpstreamSenderService {
* This function runs on a thread from the AsyncTask.THREAD_POOL_EXECUTOR.
*/
private void sendUpstreamMessage(String to, Bundle data, String token, Context context) {
- // Add the OAuth2 token to the bundle. The token should have the prefix Bearer added to it.
- data.putString("Authorization", "Bearer " + token);
- if (!isMessageWithinLimit(data)) {
- GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SIZE_LIMIT_EXCEEDED);
- return;
- }
- String msgId = UUID.randomUUID().toString();
- try {
- GoogleCloudMessaging.getInstance(ContextUtils.getApplicationContext())
- .send(to, msgId, 1, data);
- } catch (IOException | IllegalArgumentException exception) {
- Log.w(TAG, "Send message failed");
- GcmUma.recordGcmUpstreamHistogram(context, GcmUma.UMA_UPSTREAM_SEND_FAILED);
- }
}
private boolean isMessageWithinLimit(Bundle data) {
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -27,7 +27,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/ChromeActivity.java",
"java/src/org/chromium/chrome/browser/ChromeActivitySessionTracker.java",
"java/src/org/chromium/chrome/browser/ChromeApplication.java",
- "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
"java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
"java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
"java/src/org/chromium/chrome/browser/ChromeFeatureList.java",
@@ -1345,7 +1344,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/services/AndroidEduAndChildAccountHelper.java",
"java/src/org/chromium/chrome/browser/services/AndroidEduOwnerCheckCallback.java",
"java/src/org/chromium/chrome/browser/services/GoogleServicesManager.java",
- "java/src/org/chromium/chrome/browser/services/gcm/ChromeGcmListenerService.java",
"java/src/org/chromium/chrome/browser/services/gcm/GCMBackgroundTask.java",
"java/src/org/chromium/chrome/browser/services/gcm/GcmUma.java",
"java/src/org/chromium/chrome/browser/services/gcm/InvalidationGcmUpstreamSender.java",
diff --git a/components/background_task_scheduler/BUILD.gn b/components/background_task_scheduler/BUILD.gn
--- a/components/background_task_scheduler/BUILD.gn
+++ b/components/background_task_scheduler/BUILD.gn
@@ -30,7 +30,6 @@ if (is_android) {
android_library("background_task_scheduler_java") {
java_files = [
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTask.java",
- "android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskGcmTaskService.java",
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskJobService.java",
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskReflection.java",
"android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskScheduler.java",
diff --git a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java
--- a/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java
+++ b/components/background_task_scheduler/android/java/src/org/chromium/components/background_task_scheduler/BackgroundTaskSchedulerGcmNetworkManager.java
@@ -8,14 +8,6 @@ import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
-import com.google.android.gms.common.ConnectionResult;
-import com.google.android.gms.common.GoogleApiAvailability;
-import com.google.android.gms.gcm.GcmNetworkManager;
-import com.google.android.gms.gcm.OneoffTask;
-import com.google.android.gms.gcm.PeriodicTask;
-import com.google.android.gms.gcm.Task;
-import com.google.android.gms.gcm.TaskParams;
-
import org.chromium.base.Log;
import org.chromium.base.ThreadUtils;
import org.chromium.base.VisibleForTesting;
@@ -34,104 +26,6 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
@VisibleForTesting
static final String BACKGROUND_TASK_EXTRAS_KEY = "_background_task_extras";
- static BackgroundTask getBackgroundTaskFromTaskParams(@NonNull TaskParams taskParams) {
- String backgroundTaskClassName = getBackgroundTaskClassFromTaskParams(taskParams);
- return BackgroundTaskReflection.getBackgroundTaskFromClassName(backgroundTaskClassName);
- }
-
- private static String getBackgroundTaskClassFromTaskParams(@NonNull TaskParams taskParams) {
- Bundle extras = taskParams.getExtras();
- if (extras == null) return null;
- return extras.getString(BACKGROUND_TASK_CLASS_KEY);
- }
-
- /**
- * Retrieves the {@link TaskParameters} from the {@link TaskParams}, which are passed as
- * one of the keys. Only values valid for {@link android.os.BaseBundle} are supported, and other
- * values are stripped at the time when the task is scheduled.
- *
- * @param taskParams the {@link TaskParams} to extract the {@link TaskParameters} from.
- * @return the {@link TaskParameters} for the current job.
- */
- static TaskParameters getTaskParametersFromTaskParams(@NonNull TaskParams taskParams) {
- int taskId;
- try {
- taskId = Integer.parseInt(taskParams.getTag());
- } catch (NumberFormatException e) {
- Log.e(TAG, "Cound not parse task ID from task tag: " + taskParams.getTag());
- return null;
- }
-
- TaskParameters.Builder builder = TaskParameters.create(taskId);
-
- Bundle extras = taskParams.getExtras();
- Bundle taskExtras = extras.getBundle(BACKGROUND_TASK_EXTRAS_KEY);
- builder.addExtras(taskExtras);
-
- return builder.build();
- }
-
- @VisibleForTesting
- static Task createTaskFromTaskInfo(@NonNull TaskInfo taskInfo) {
- Bundle taskExtras = new Bundle();
- taskExtras.putString(
- BACKGROUND_TASK_CLASS_KEY, taskInfo.getBackgroundTaskClass().getName());
- taskExtras.putBundle(BACKGROUND_TASK_EXTRAS_KEY, taskInfo.getExtras());
-
- Task.Builder builder;
- if (taskInfo.isPeriodic()) {
- builder = getPeriodicTaskBuilder(taskInfo.getPeriodicInfo());
- } else {
- builder = getOneOffTaskBuilder(taskInfo.getOneOffInfo());
- }
-
- builder.setExtras(taskExtras)
- .setPersisted(taskInfo.isPersisted())
- .setRequiredNetwork(getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
- taskInfo.getRequiredNetworkType()))
- .setRequiresCharging(taskInfo.requiresCharging())
- .setService(BackgroundTaskGcmTaskService.class)
- .setTag(taskIdToTaskTag(taskInfo.getTaskId()))
- .setUpdateCurrent(taskInfo.shouldUpdateCurrent());
-
- return builder.build();
- }
-
- private static Task.Builder getPeriodicTaskBuilder(TaskInfo.PeriodicInfo periodicInfo) {
- PeriodicTask.Builder builder = new PeriodicTask.Builder();
- builder.setPeriod(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getIntervalMs()));
- if (periodicInfo.hasFlex()) {
- builder.setFlex(TimeUnit.MILLISECONDS.toSeconds(periodicInfo.getFlexMs()));
- }
- return builder;
- }
-
- private static Task.Builder getOneOffTaskBuilder(TaskInfo.OneOffInfo oneOffInfo) {
- OneoffTask.Builder builder = new OneoffTask.Builder();
- long windowStartSeconds = oneOffInfo.hasWindowStartTimeConstraint()
- ? TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowStartTimeMs())
- : 0;
- builder.setExecutionWindow(windowStartSeconds,
- TimeUnit.MILLISECONDS.toSeconds(oneOffInfo.getWindowEndTimeMs()));
- return builder;
- }
-
- private static int getGcmNetworkManagerNetworkTypeFromTypeFromTaskNetworkType(
- @TaskInfo.NetworkType int networkType) {
- switch (networkType) {
- // This is correct: GcmNM ANY means no network is guaranteed.
- case TaskInfo.NETWORK_TYPE_NONE:
- return Task.NETWORK_STATE_ANY;
- case TaskInfo.NETWORK_TYPE_ANY:
- return Task.NETWORK_STATE_CONNECTED;
- case TaskInfo.NETWORK_TYPE_UNMETERED:
- return Task.NETWORK_STATE_UNMETERED;
- default:
- assert false;
- }
- return Task.NETWORK_STATE_ANY;
- }
-
@Override
public boolean schedule(Context context, @NonNull TaskInfo taskInfo) {
ThreadUtils.assertOnUiThread();
@@ -142,50 +36,12 @@ class BackgroundTaskSchedulerGcmNetworkManager implements BackgroundTaskSchedule
+ " has no parameterless public constructor.");
return false;
}
-
- GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
- if (gcmNetworkManager == null) {
- Log.e(TAG, "GcmNetworkManager is not available.");
- return false;
- }
-
- try {
- Task task = createTaskFromTaskInfo(taskInfo);
- gcmNetworkManager.schedule(task);
- } catch (IllegalArgumentException e) {
- String gcmErrorMessage = e.getMessage() == null ? "null." : e.getMessage();
- Log.e(TAG,
- "GcmNetworkManager failed to schedule task, gcm message: " + gcmErrorMessage);
- return false;
- }
-
- return true;
+ return false;
}
@Override
public void cancel(Context context, int taskId) {
ThreadUtils.assertOnUiThread();
-
- GcmNetworkManager gcmNetworkManager = getGcmNetworkManager(context);
- if (gcmNetworkManager == null) {
- Log.e(TAG, "GcmNetworkManager is not available.");
- return;
- }
-
- try {
- gcmNetworkManager.cancelTask(
- taskIdToTaskTag(taskId), BackgroundTaskGcmTaskService.class);
- } catch (IllegalArgumentException e) {
- Log.e(TAG, "GcmNetworkManager failed to cancel task.");
- }
- }
-
- private GcmNetworkManager getGcmNetworkManager(Context context) {
- if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)
- == ConnectionResult.SUCCESS) {
- return GcmNetworkManager.getInstance(context);
- }
- return null;
}
private static String taskIdToTaskTag(int taskId) {
diff --git a/components/gcm_driver/android/BUILD.gn b/components/gcm_driver/android/BUILD.gn
--- a/components/gcm_driver/android/BUILD.gn
+++ b/components/gcm_driver/android/BUILD.gn
@@ -15,7 +15,6 @@ android_library("gcm_driver_java") {
deps = [
"//base:base_java",
"//content/public/android:content_java",
- "//third_party/android_tools:android_gcm_java",
"//third_party/jsr-305:jsr_305_javalib",
]
diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm_driver/instance_id/android/BUILD.gn
--- a/components/gcm_driver/instance_id/android/BUILD.gn
+++ b/components/gcm_driver/instance_id/android/BUILD.gn
@@ -26,7 +26,6 @@ android_library("instance_id_driver_java") {
java_files = [
"java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java",
- "java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDWithSubtype.java",
]
}
diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
--- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
+++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java
@@ -32,7 +32,6 @@ public class InstanceIDBridge {
* Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be
* initialized on a background thread.
*/
- private InstanceIDWithSubtype mInstanceID;
private static boolean sBlockOnAsyncTasksForTesting;
@@ -108,7 +107,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<String>() {
@Override
protected String doBackgroundWork() {
- return mInstanceID.getId();
+ return "";
}
@Override
protected void sendResultToNative(String id) {
@@ -123,7 +122,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Long>() {
@Override
protected Long doBackgroundWork() {
- return mInstanceID.getCreationTime();
+ return 0L;
}
@Override
protected void sendResultToNative(Long creationTime) {
@@ -148,12 +147,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<String>() {
@Override
protected String doBackgroundWork() {
- try {
- storeLazinessInformation(authorizedEntity, isLazy);
- return mInstanceID.getToken(authorizedEntity, scope, extras);
- } catch (IOException ex) {
- return "";
- }
+ return "";
}
@Override
protected void sendResultToNative(String token) {
@@ -169,12 +163,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Boolean>() {
@Override
protected Boolean doBackgroundWork() {
- try {
- mInstanceID.deleteToken(authorizedEntity, scope);
- return true;
- } catch (IOException ex) {
- return false;
- }
+ return true;
}
@Override
protected void sendResultToNative(Boolean success) {
@@ -189,12 +178,7 @@ public class InstanceIDBridge {
new BridgeAsyncTask<Boolean>() {
@Override
protected Boolean doBackgroundWork() {
- try {
- mInstanceID.deleteInstanceID();
- return true;
- } catch (IOException ex) {
- return false;
- }
+ return true;
}
@Override
protected void sendResultToNative(Boolean success) {
@@ -233,11 +217,6 @@ public class InstanceIDBridge {
@Override
@SuppressWarnings("NoSynchronizedThisCheck") // Only used/accessible by native.
protected Result doInBackground() {
- synchronized (InstanceIDBridge.this) {
- if (mInstanceID == null) {
- mInstanceID = InstanceIDWithSubtype.getInstance(mSubtype);
- }
- }
return doBackgroundWork();
}
@Override
diff --git a/components/sync/android/BUILD.gn b/components/sync/android/BUILD.gn
--- a/components/sync/android/BUILD.gn
+++ b/components/sync/android/BUILD.gn
@@ -11,7 +11,6 @@ android_library("sync_java") {
"//components/signin/core/browser/android:java",
"//net/android:net_java",
"//third_party/android_deps:android_support_annotations_java",
- "//third_party/android_tools:android_gcm_java",
"//third_party/cacheinvalidation:cacheinvalidation_javalib",
"//third_party/cacheinvalidation:cacheinvalidation_proto_java",
"//third_party/jsr-305:jsr_305_javalib",
diff --git a/third_party/cacheinvalidation/BUILD.gn b/third_party/cacheinvalidation/BUILD.gn
--- a/third_party/cacheinvalidation/BUILD.gn
+++ b/third_party/cacheinvalidation/BUILD.gn
@@ -141,7 +141,6 @@ if (is_android) {
"$google_play_services_package:google_play_services_iid_java",
"$google_play_services_package:google_play_services_tasks_java",
"//third_party/android_protobuf:protobuf_nano_javalib",
- "//third_party/android_tools:android_gcm_java",
]
java_files = [
@@ -207,13 +206,8 @@ if (is_android) {
"src/java/com/google/ipc/invalidation/ticl/android2/WakeLockManager.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidChannelConstants.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidChannelPreferences.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidGcmController.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidInstanceIDListenerService.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageReceiverService.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidMessageSenderService.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/CommonUtils.java",
- "src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmRegistrationTaskService.java",
"src/java/com/google/ipc/invalidation/ticl/android2/channel/GcmUpstreamSenderService.java",
"src/java/com/google/ipc/invalidation/ticl/proto/AndroidChannel.java",
"src/java/com/google/ipc/invalidation/ticl/proto/AndroidListenerProtocol.java",
diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java
--- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java
+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/external/client/contrib/MultiplexingGcmListener.java
@@ -16,9 +16,6 @@
package com.google.ipc.invalidation.external.client.contrib;
-import com.google.android.gcm.GCMBaseIntentService;
-import com.google.android.gcm.GCMBroadcastReceiver;
-import com.google.android.gcm.GCMRegistrar;
import com.google.ipc.invalidation.external.client.SystemResources.Logger;
import com.google.ipc.invalidation.external.client.android.service.AndroidLogger;
import com.google.ipc.invalidation.ticl.android2.WakeLockManager;
@@ -69,7 +66,7 @@ import android.content.pm.ServiceInfo;
* there is nothing to do except log an error (which this class does).
*
*/
-public class MultiplexingGcmListener extends GCMBaseIntentService {
+public class MultiplexingGcmListener {
/* This class is public so that it can be instantiated by the Android runtime. */
/** Constants used in broadcast Intents. */
@@ -106,18 +103,6 @@ public class MultiplexingGcmListener extends GCMBaseIntentService {
}
/**
- * {@link GCMBroadcastReceiver} that forwards GCM intents to the {@code MultiplexingGcmListener}
- * class.
- */
- public static class GCMReceiver extends GCMBroadcastReceiver {
- /* This class is public so that it can be instantiated by the Android runtime. */
- @Override
- protected String getGCMIntentServiceClassName(Context context) {
- return MultiplexingGcmListener.class.getName();
- }
- }
-
- /**
* Convenience base class for client implementations. It provides base classes for a broadcast
* receiver and an intent service that work together to handle events from the
* {@code MultiplexingGcmListener} while holding a wake lock.
@@ -260,85 +245,10 @@ public class MultiplexingGcmListener extends GCMBaseIntentService {
/** Logger. */
private static final Logger logger = AndroidLogger.forTag("MplexGcmListener");
- // All onYYY methods work by constructing an appropriate Intent and broadcasting it.
-
- @Override
- protected void onMessage(Context context, Intent intent) {
- Intent newIntent = new Intent();
- newIntent.putExtra(Intents.EXTRA_OP_MESSAGE, true);
- newIntent.putExtras(intent);
- rebroadcast(newIntent);
- }
-
- @Override
- protected void onRegistered(Context context, String registrationId) {
- Intent intent = new Intent();
- intent.putExtra(Intents.EXTRA_OP_REGISTERED, true);
- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId);
- rebroadcast(intent);
- }
-
- @Override
- protected void onUnregistered(Context context, String registrationId) {
- Intent intent = new Intent();
- intent.putExtra(Intents.EXTRA_OP_UNREGISTERED, true);
- intent.putExtra(Intents.EXTRA_DATA_REG_ID, registrationId);
- rebroadcast(intent);
- }
-
- @Override
- protected void onDeletedMessages(Context context, int total) {
- Intent intent = new Intent();
- intent.putExtra(Intents.EXTRA_OP_DELETED_MESSAGES, true);
- intent.putExtra(Intents.EXTRA_DATA_NUM_DELETED_MSGS, total);
- rebroadcast(intent);
- }
-
- @Override
- protected void onError(Context context, String errorId) {
- // This is called for unrecoverable errors, so just log a warning.
- logger.warning("GCM error: %s", errorId);
- }
-
- @Override
- protected String[] getSenderIds(Context context) {
- return readSenderIdsFromManifestOrDie(this);
- }
-
- /**
- * Broadcasts {@code intent} with the action set to {@link Intents#ACTION} and the package name
- * set to the package name of this service.
- */
- private void rebroadcast(Intent intent) {
- intent.setAction(Intents.ACTION);
- intent.setPackage(getPackageName());
- sendBroadcast(intent);
- }
-
- /**
- * Registers with GCM if not already registered. Also verifies that the device supports GCM
- * and that the manifest is correctly configured. Returns the existing registration id, if one
- * exists, or the empty string if one does not.
- *
- * @throws UnsupportedOperationException if the device does not have all GCM dependencies
- * @throws IllegalStateException if the manifest is not correctly configured
- */
- public static String initializeGcm(Context context) {
- AndroidChannelPreferences.setGcmChannelType(context, GcmChannelType.DEFAULT);
- GCMRegistrar.checkDevice(context);
- GCMRegistrar.checkManifest(context);
- final String regId = GCMRegistrar.getRegistrationId(context);
- if (regId.isEmpty()) {
- GCMRegistrar.register(context, readSenderIdsFromManifestOrDie(context));
- }
- return regId;
- }
-
/**
* Returns the GCM sender ids from {@link #GCM_SENDER_IDS_METADATA_KEY} or throws a
* {@code RuntimeException} if they are not defined.
*/
-
static String[] readSenderIdsFromManifestOrDie(Context context) {
try {
ServiceInfo serviceInfo = context.getPackageManager().getServiceInfo(
diff --git a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
--- a/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
+++ b/third_party/cacheinvalidation/src/java/com/google/ipc/invalidation/ticl/android2/channel/AndroidNetworkChannel.java
@@ -48,16 +48,12 @@ public class AndroidNetworkChannel implements TestableNetworkChannel {
Intent intent = ProtocolIntents.newOutboundMessageIntent(outgoingMessage);
// Select the sender service to use for upstream message.
- if (AndroidChannelPreferences.getGcmChannelType(context) == GcmChannelType.GCM_UPSTREAM){
- String upstreamServiceClass = new AndroidTiclManifest(context).getGcmUpstreamServiceClass();
- if (upstreamServiceClass == null || upstreamServiceClass.isEmpty()) {
- logger.warning("GcmUpstreamSenderService class not found.");
- return;
- }
- intent.setClassName(context, upstreamServiceClass);
- } else {
- intent.setClassName(context, AndroidMessageSenderService.class.getName());
- }
+ String upstreamServiceClass = new AndroidTiclManifest(context).getGcmUpstreamServiceClass();
+ if (upstreamServiceClass == null || upstreamServiceClass.isEmpty()) {
+ logger.warning("GcmUpstreamSenderService class not found.");
+ return;
+ }
+ intent.setClassName(context, upstreamServiceClass);
try {
context.startService(intent);
} catch (IllegalStateException exception) {
@@ -77,6 +73,6 @@ public class AndroidNetworkChannel implements TestableNetworkChannel {
@Override
public NetworkEndpointId getNetworkIdForTest() {
- return AndroidMessageSenderService.getNetworkEndpointId(context, resources.getLogger());
+ return null;
}
}
--
2.11.0
@@ -1,7 +1,6 @@
From: xsmile <xsmile@users.noreply.github.com>
Date: Thu, 11 Oct 2018 21:29:35 +0200
Subject: Allow sign-in to Google sites like Gmail without signing in to
Chromium
Subject: Allow website sign-in without account sign-in
Disable prefs::kSigninAllowedOnNextStartup by default. The setting can be found in chrome://settings
---
@@ -11,7 +10,7 @@ Disable prefs::kSigninAllowedOnNextStartup by default. The setting can be found
diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
--- a/chrome/browser/signin/account_consistency_mode_manager.cc
+++ b/chrome/browser/signin/account_consistency_mode_manager.cc
@@ -172,7 +172,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
@@ -175,7 +175,7 @@ void AccountConsistencyModeManager::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kAccountConsistencyMirrorRequired,
false);
#endif
@@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 28 Oct 2018 14:11:50 +0100
Subject: Offer builtin autocomplete for chrome://flags
---
chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -242,6 +242,8 @@ std::vector<base::string16>
ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
std::vector<base::string16> builtins_to_provide;
builtins_to_provide.push_back(
+ base::ASCIIToUTF16(chrome::kChromeUIFlagsURL));
+ builtins_to_provide.push_back(
base::ASCIIToUTF16(chrome::kChromeUIChromeURLsURL));
#if !defined(OS_ANDROID)
builtins_to_provide.push_back(
--
2.11.0
@@ -1,137 +0,0 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Wed, 17 Oct 2018 06:06:11 +0200
Subject: Permanently disable query-in-omnibox
---
.../chromium/chrome/browser/ChromeFeatureList.java | 1 -
.../chrome/browser/toolbar/ToolbarModel.java | 2 +-
chrome/browser/about_flags.cc | 4 ----
chrome/browser/android/chrome_feature_list.cc | 1 -
chrome/browser/flag_descriptions.cc | 5 ----
chrome/browser/flag_descriptions.h | 3 ---
components/omnibox/browser/query_in_omnibox.cc | 27 +---------------------
7 files changed, 2 insertions(+), 41 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -272,7 +272,6 @@ public abstract class ChromeFeatureList {
public static final String SOUND_CONTENT_SETTING = "SoundContentSetting";
public static final String SPANNABLE_INLINE_AUTOCOMPLETE = "SpannableInlineAutocomplete";
public static final String SUBRESOURCE_FILTER = "SubresourceFilter";
- public static final String QUERY_IN_OMNIBOX = "QueryInOmnibox";
public static final String TAB_REPARENTING = "TabReparenting";
public static final String TRUSTED_WEB_ACTIVITY = "TrustedWebActivity";
public static final String TRUSTED_WEB_ACTIVITY_POST_MESSAGE = "TrustedWebActivityPostMessage";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModel.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModel.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModel.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModel.java
@@ -85,7 +85,7 @@ public class ToolbarModel implements ToolbarDataProvider {
*/
public void initializeWithNative() {
mNativeToolbarModelAndroid = nativeInit();
- mQueryInOmniboxEnabled = ChromeFeatureList.isEnabled(ChromeFeatureList.QUERY_IN_OMNIBOX);
+ mQueryInOmniboxEnabled = false;
}
/**
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3982,10 +3982,6 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kOobeRecommendAppsScreen)},
#endif // OS_CHROMEOS
- {"enable-query-in-omnibox", flag_descriptions::kQueryInOmniboxName,
- flag_descriptions::kQueryInOmniboxDescription, kOsAll,
- FEATURE_VALUE_TYPE(omnibox::kQueryInOmnibox)},
-
{"enable-viz-hit-test-draw-quad",
flag_descriptions::kVizHitTestDrawQuadName,
flag_descriptions::kVizHitTestDrawQuadDescription, kOsAll,
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
--- a/chrome/browser/android/chrome_feature_list.cc
+++ b/chrome/browser/android/chrome_feature_list.cc
@@ -167,7 +167,6 @@ const base::Feature* kFeaturesExposedToJava[] = {
&offline_pages::kOfflinePagesSharingFeature,
&offline_pages::kOfflinePagesLivePageSharingFeature,
&offline_pages::kPrefetchingOfflinePagesFeature,
- &omnibox::kQueryInOmnibox,
&omnibox::kUIExperimentHideSteadyStateUrlSchemeAndSubdomains,
&password_manager::features::kPasswordExport,
&password_manager::features::kPasswordSearchMobile,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1527,11 +1527,6 @@ const char kPullToRefreshDescription[] =
"Pull-to-refresh gesture in response to vertical overscroll.";
const char kPullToRefreshEnabledTouchscreen[] = "Enabled for touchscreen only";
-const char kQueryInOmniboxName[] = "Query in Omnibox";
-const char kQueryInOmniboxDescription[] =
- "Only display query terms in the omnibox when viewing a search results "
- "page.";
-
const char kQuicName[] = "Experimental QUIC protocol";
const char kQuicDescription[] = "Enable experimental QUIC protocol support.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -937,9 +937,6 @@ extern const char kPullToRefreshName[];
extern const char kPullToRefreshDescription[];
extern const char kPullToRefreshEnabledTouchscreen[];
-extern const char kQueryInOmniboxName[];
-extern const char kQueryInOmniboxDescription[];
-
extern const char kQuicName[];
extern const char kQuicDescription[];
diff --git a/components/omnibox/browser/query_in_omnibox.cc b/components/omnibox/browser/query_in_omnibox.cc
--- a/components/omnibox/browser/query_in_omnibox.cc
+++ b/components/omnibox/browser/query_in_omnibox.cc
@@ -10,16 +10,6 @@
#include "components/omnibox/browser/omnibox_field_trial.h"
#include "components/search_engines/template_url_service.h"
-namespace {
-
-bool SecurityLevelSafeForQueryInOmnibox(
- security_state::SecurityLevel security_level) {
- return security_level == security_state::SecurityLevel::SECURE ||
- security_level == security_state::SecurityLevel::EV_SECURE;
-}
-
-} // namespace
-
QueryInOmnibox::QueryInOmnibox(AutocompleteClassifier* autocomplete_classifier,
TemplateURLService* template_url_service)
: autocomplete_classifier_(autocomplete_classifier),
@@ -32,22 +22,7 @@ bool QueryInOmnibox::GetDisplaySearchTerms(
security_state::SecurityLevel security_level,
const GURL& url,
base::string16* search_terms) {
- if (!base::FeatureList::IsEnabled(omnibox::kQueryInOmnibox))
- return false;
-
- if (!ignore_security_level_ &&
- !SecurityLevelSafeForQueryInOmnibox(security_level)) {
- return false;
- }
-
- base::string16 extracted_search_terms = ExtractSearchTermsInternal(url);
- if (extracted_search_terms.empty())
- return false;
-
- if (search_terms)
- *search_terms = extracted_search_terms;
-
- return true;
+ return false;
}
base::string16 QueryInOmnibox::ExtractSearchTermsInternal(const GURL& url) {
--
2.11.0
@@ -0,0 +1,24 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Fri, 2 Nov 2018 14:06:17 +0100
Subject: Enable history requirement of user gesture
Set #enable-history-entry-requires-user-gesture to enabled by default
---
chrome/browser/about_flags.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1510,7 +1510,7 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-history-entry-requires-user-gesture",
flag_descriptions::kHistoryRequiresUserGestureName,
flag_descriptions::kHistoryRequiresUserGestureDescription, kOsAll,
- SINGLE_VALUE_TYPE(switches::kHistoryEntryRequiresUserGesture)},
+ SINGLE_DISABLE_VALUE_TYPE(switches::kHistoryEntryRequiresUserGesture)},
{"disable-pushstate-throttle",
flag_descriptions::kDisablePushStateThrottleName,
flag_descriptions::kDisablePushStateThrottleDescription, kOsAll,
--
2.11.0
@@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Mon, 5 Nov 2018 09:39:50 +0100
Subject: Enable TLS 1.3 (final) by default
---
chrome/browser/ssl/ssl_config_service_manager_pref.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/browser/ssl/ssl_config_service_manager_pref.cc b/chrome/browser/ssl/ssl_config_service_manager_pref.cc
--- a/chrome/browser/ssl/ssl_config_service_manager_pref.cc
+++ b/chrome/browser/ssl/ssl_config_service_manager_pref.cc
@@ -180,7 +180,7 @@ SSLConfigServiceManagerPref::SSLConfigServiceManagerPref(
} else if (tls13_variant == "draft23") {
tls13_value = switches::kTLS13VariantDraft23;
version_value = switches::kSSLVersionTLSv13;
- } else if (tls13_variant == "final") {
+ } else if (tls13_variant == "final" || tls13_variant.empty()) {
tls13_value = switches::kTLS13VariantFinal;
version_value = switches::kSSLVersionTLSv13;
}
--
2.11.0
@@ -0,0 +1,23 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 10 Nov 2018 19:47:39 +0100
Subject: Do not grant notifications to default search engine
---
chrome/common/chrome_features.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -296,7 +296,7 @@ const base::Feature kGeoLanguage{"GeoLanguage",
#if defined(OS_ANDROID)
const base::Feature kGrantNotificationsToDSE{"GrantNotificationsToDSE",
- base::FEATURE_ENABLED_BY_DEFAULT};
+ base::FEATURE_DISABLED_BY_DEFAULT};
#endif // defined(OS_ANDROID)
#if defined (OS_CHROMEOS)
--
2.11.0
@@ -0,0 +1,37 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 10 Nov 2018 16:09:26 +0100
Subject: Remove contacts picker permission
---
chrome/android/java/AndroidManifest.xml | 1 -
ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java | 4 +---
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -35,7 +35,6 @@ by a child template that "extends" this file.
{% endif %}
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH"/>
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN"/>
- <uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
<uses-permission-sdk-23 android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
--- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
+++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
@@ -324,9 +324,7 @@ public class SelectFileDialog
* 3.) There is a valid Android Activity associated with the file request.
*/
private boolean shouldUseContactsPicker() {
- if (mFileTypes.size() != 1) return false;
- if (!mFileTypes.get(0).equals("text/json+contacts")) return false;
- return UiUtils.shouldShowContactsPicker() && mWindowAndroid.getActivity().get() != null;
+ return false;
}
/**
--
2.11.0
@@ -0,0 +1,169 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sat, 10 Nov 2018 17:20:21 +0100
Subject: Disable promos displayed in bookmarks manager
Remove personalized signin promo view from
bookmarks, never reach signin thresholds.
---
.../personalized_signin_promo_view_bookmarks.xml | 30 ----------------------
.../browser/bookmarks/BookmarkItemsAdapter.java | 23 ++---------------
.../browser/signin/SigninPromoController.java | 19 ++------------
chrome/android/java_sources.gni | 1 -
4 files changed, 4 insertions(+), 69 deletions(-)
delete mode 100644 chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
diff --git a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml b/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
deleted file mode 100644
--- a/chrome/android/java/res/layout/personalized_signin_promo_view_bookmarks.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2017 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. -->
-
-<org.chromium.chrome.browser.signin.PersonalizedSigninPromoView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/signin_promo_view_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:background="@drawable/hairline_border_card_background"
- android:gravity="center_horizontal"
- android:orientation="vertical"
- android:paddingBottom="12dp"
- android:paddingTop="14dp">
-
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="12dp"
- android:layout_marginEnd="12dp"
- android:layout_marginStart="12dp">
-
- <include layout="@layout/personalized_signin_promo_view_header"/>
- </FrameLayout>
-
- <include layout="@layout/personalized_signin_promo_view_body"/>
-
-</org.chromium.chrome.browser.signin.PersonalizedSigninPromoView>
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java
@@ -57,7 +57,6 @@ class BookmarkItemsAdapter
private BookmarkDelegate mDelegate;
private Context mContext;
- private BookmarkPromoHeader mPromoHeaderManager;
private String mSearchText;
private BookmarkId mCurrentFolder;
@@ -211,9 +210,9 @@ class BookmarkItemsAdapter
switch (viewType) {
case ViewType.PERSONALIZED_SIGNIN_PROMO:
- return mPromoHeaderManager.createPersonalizedSigninPromoHolder(parent);
+ return null;
case ViewType.SYNC_PROMO:
- return mPromoHeaderManager.createSyncPromoHolder(parent);
+ return null;
case ViewType.FOLDER:
BookmarkFolderRow folder = (BookmarkFolderRow) LayoutInflater.from(
parent.getContext()).inflate(R.layout.bookmark_folder_row, parent, false);
@@ -234,8 +233,6 @@ class BookmarkItemsAdapter
public void onBindViewHolder(ViewHolder holder, int position) {
switch (holder.getItemViewType()) {
case ViewType.PERSONALIZED_SIGNIN_PROMO:
- PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) holder.itemView;
- mPromoHeaderManager.setupPersonalizedSigninPromo(view);
break;
case ViewType.SYNC_PROMO:
break;
@@ -254,7 +251,6 @@ class BookmarkItemsAdapter
public void onViewRecycled(ViewHolder holder) {
switch (holder.getItemViewType()) {
case ViewType.PERSONALIZED_SIGNIN_PROMO:
- mPromoHeaderManager.detachPersonalizePromoView();
break;
default:
// Other view holders don't have special recycling code.
@@ -289,7 +285,6 @@ class BookmarkItemsAdapter
}
};
- mPromoHeaderManager = new BookmarkPromoHeader(mContext, promoHeaderChangeAction);
populateTopLevelFoldersList();
notifyDataSetChanged();
}
@@ -300,7 +295,6 @@ class BookmarkItemsAdapter
mDelegate.removeUIObserver(this);
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
mDelegate = null;
- mPromoHeaderManager.destroy();
}
@Override
@@ -367,19 +361,6 @@ class BookmarkItemsAdapter
if (currentUIState == BookmarkUIState.STATE_SEARCHING) return;
assert currentUIState == BookmarkUIState.STATE_FOLDER : "Unexpected UI state";
-
- switch (mPromoHeaderManager.getPromoState()) {
- case BookmarkPromoHeader.PromoState.PROMO_NONE:
- return;
- case BookmarkPromoHeader.PromoState.PROMO_SIGNIN_PERSONALIZED:
- mPromoHeaderSection.add(ViewType.PERSONALIZED_SIGNIN_PROMO);
- return;
- case BookmarkPromoHeader.PromoState.PROMO_SYNC:
- mPromoHeaderSection.add(ViewType.SYNC_PROMO);
- return;
- default:
- assert false : "Unexpected value for promo state!";
- }
}
private void populateTopLevelFoldersList() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoController.java
@@ -77,23 +77,8 @@ public class SigninPromoController {
*/
public static boolean hasNotReachedImpressionLimit(@AccessPoint int accessPoint) {
SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
- switch (accessPoint) {
- case SigninAccessPoint.BOOKMARK_MANAGER:
- return sharedPreferences.getInt(SIGNIN_PROMO_IMPRESSIONS_COUNT_BOOKMARKS, 0)
- < MAX_IMPRESSIONS_BOOKMARKS;
- case SigninAccessPoint.NTP_CONTENT_SUGGESTIONS:
- // There is no impression limit for NTP content suggestions.
- return true;
- case SigninAccessPoint.RECENT_TABS:
- // There is no impression limit for Recent Tabs.
- return true;
- case SigninAccessPoint.SETTINGS:
- return sharedPreferences.getInt(SIGNIN_PROMO_IMPRESSIONS_COUNT_SETTINGS, 0)
- < MAX_IMPRESSIONS_SETTINGS;
- default:
- assert false : "Unexpected value for access point: " + accessPoint;
- return false;
- }
+ // never show anything
+ return true;
}
/**
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -140,7 +140,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java",
- "java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkRow.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIObserver.java",
"java/src/org/chromium/chrome/browser/bookmarks/BookmarkUIState.java",
--
2.11.0
@@ -0,0 +1,110 @@
From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Sun, 18 Nov 2018 13:06:49 +0100
Subject: Add flag to disable IPv6 probes
---
chrome/browser/about_flags.cc | 5 +++++
chrome/browser/flag_descriptions.cc | 4 ++++
chrome/browser/flag_descriptions.h | 3 +++
net/dns/host_resolver_impl.cc | 10 ++++++++--
services/network/public/cpp/features.cc | 3 +++
services/network/public/cpp/features.h | 2 ++
6 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -3498,6 +3498,11 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(features::kEnableVirtualKeyboardUkm)},
#endif // OS_CHROMEOS
+ {"ipv6-probing",
+ flag_descriptions::kIPv6ProbingName,
+ flag_descriptions::kIPv6ProbingDescription, kOsAll,
+ FEATURE_VALUE_TYPE(network::features::kIPv6Probing)},
+
#if !defined(OS_ANDROID)
{"enable-picture-in-picture",
flag_descriptions::kEnablePictureInPictureName,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -763,6 +763,10 @@ const char kOOPHPStackModeNative[] = "Native";
const char kOOPHPStackModeNativeWithThreadNames[] = "Native with thread names";
const char kOOPHPStackModePseudo[] = "Trace events";
+const char kIPv6ProbingName[] = "Enable IPv6 probing.";
+const char kIPv6ProbingDescription[] =
+ "Send IPv6 probes to a RIPE DNS address to verify IPv6 connectivity.";
+
const char kEnablePictureInPictureName[] = "Enable Picture-in-Picture.";
const char kEnablePictureInPictureDescription[] =
"Enable the Picture-in-Picture feature for videos.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -473,6 +473,9 @@ extern const char kOOPHPStackModeNative[];
extern const char kOOPHPStackModeNativeWithThreadNames[];
extern const char kOOPHPStackModePseudo[];
+extern const char kIPv6ProbingName[];
+extern const char kIPv6ProbingDescription[];
+
extern const char kEnablePictureInPictureName[];
extern const char kEnablePictureInPictureDescription[];
diff --git a/net/dns/host_resolver_impl.cc b/net/dns/host_resolver_impl.cc
--- a/net/dns/host_resolver_impl.cc
+++ b/net/dns/host_resolver_impl.cc
@@ -76,6 +76,7 @@
#include "net/log/net_log_with_source.h"
#include "net/socket/client_socket_factory.h"
#include "net/socket/datagram_client_socket.h"
+#include "services/network/public/cpp/features.h"
#include "url/url_canon_ip.h"
#if BUILDFLAG(ENABLE_MDNS)
@@ -2719,8 +2720,13 @@ bool HostResolverImpl::IsIPv6Reachable(const NetLogWithSource& net_log) {
bool cached = true;
if ((tick_clock_->NowTicks() - last_ipv6_probe_time_).InMilliseconds() >
kIPv6ProbePeriodMs) {
- last_ipv6_probe_result_ =
- IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log);
+ if (!base::FeatureList::IsEnabled(network::features::kIPv6Probing)) {
+ // pretend IPv6 connectivy probe is successful when probing is disabled
+ last_ipv6_probe_result_ = true;
+ } else {
+ last_ipv6_probe_result_ =
+ IsGloballyReachable(IPAddress(kIPv6ProbeAddress), net_log);
+ }
last_ipv6_probe_time_ = tick_clock_->NowTicks();
cached = false;
}
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
--- a/services/network/public/cpp/features.cc
+++ b/services/network/public/cpp/features.cc
@@ -14,6 +14,9 @@ const base::Feature kExpectCTReporting{"ExpectCTReporting",
const base::Feature kNetworkErrorLogging{"NetworkErrorLogging",
base::FEATURE_ENABLED_BY_DEFAULT};
+
+const base::Feature kIPv6Probing{"IPv6Probing",
+ base::FEATURE_DISABLED_BY_DEFAULT};
// Enables the network service.
const base::Feature kNetworkService{"NetworkService",
base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
--- a/services/network/public/cpp/features.h
+++ b/services/network/public/cpp/features.h
@@ -18,6 +18,8 @@ extern const base::Feature kNetworkErrorLogging;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kNetworkService;
COMPONENT_EXPORT(NETWORK_CPP)
+extern const base::Feature kIPv6Probing;
+COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kOutOfBlinkCORS;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::Feature kReporting;
--
2.11.0