Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dbf32840c6 | ||
|
|
4b8e47060b | ||
|
|
43bf98a956 | ||
|
|
b94b80e096 | ||
|
|
52202a3ffb | ||
|
|
4e5c7c36a1 | ||
|
|
d1fb4d4974 | ||
|
|
edaf4c0f17 | ||
|
|
4a9cbe673d | ||
|
|
6340bb4398 |
@@ -1,3 +1,19 @@
|
||||
# 79.0.3945.111
|
||||
* restore enable-horizontal-tab-switcher flag
|
||||
* remove non-working contextual search settings
|
||||
* disable QUIC by default
|
||||
* fix DoH timeouts issue (https://github.com/bromite/bromite/issues/437)
|
||||
* remove logging for DoH timeouts
|
||||
|
||||
# 79.0.3945.107
|
||||
* always show cookies, javascript and ads site settings (fixes https://github.com/bromite/bromite/issues/133)
|
||||
* remove global ads and javascript menu options
|
||||
|
||||
# 79.0.3945.100
|
||||
* log timeout values for DoH
|
||||
* enable DFM (fixes https://github.com/bromite/bromite/issues/441)
|
||||
* updated User-agent version
|
||||
|
||||
# 79.0.3945.94
|
||||
* removed patches which do not apply anymore (Widevine version punting, always show homepage settings, network errors UMA recording)
|
||||
* removed split APKs support (Play integration)
|
||||
|
||||
@@ -69,14 +69,14 @@ Yes, since version 69. While the desktop version of Chromium has an option to di
|
||||
|
||||
# Features
|
||||
|
||||
* native adblock engine
|
||||
* customizable adblock filters via user-provided URL
|
||||
* remove click-tracking and AMP from search results
|
||||
* DNS-over-HTTPS support via Google, Cloudflare, Quad9 and AdGuard servers
|
||||
* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support
|
||||
* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines
|
||||
* chrome flags to disable custom intents and clear session on exit
|
||||
* DNS-over-HTTPS support, you can use any DoH endpoint
|
||||
* always-incognito mode
|
||||
* completely removed safe browsing and other privacy-unfriendly features
|
||||
* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support
|
||||
* [StartPage](https://startpage.com/), [DuckDuckGo](https://duckduckgo.com/) and [Qwant](https://www.qwant.com/) search engines available by default
|
||||
* chrome flags to disable custom intents and clear session on exit
|
||||
* anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs
|
||||
* use fixed User-Agent to conceal real model and browser version
|
||||
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
|
||||
|
||||
+3
-6
@@ -1,12 +1,11 @@
|
||||
android_channel="stable"
|
||||
blink_symbol_level=0
|
||||
blink_symbol_level=1
|
||||
dcheck_always_on=false
|
||||
debuggable_apks=false
|
||||
dfmify_dev_ui=true
|
||||
dfmify_dev_ui=false
|
||||
disable_android_lint=true
|
||||
disable_autofill_assistant_dfm=false
|
||||
disable_tab_ui_dfm=false
|
||||
disable_autofill_assistant_dfm=true
|
||||
disable_tab_ui_dfm=true
|
||||
enable_av1_decoder=true
|
||||
enable_dav1d_decoder=true
|
||||
enable_feed_in_chrome=false
|
||||
@@ -30,8 +29,6 @@ is_official_build=true
|
||||
rtc_build_examples=false
|
||||
safe_browsing_mode=0
|
||||
strip_absolute_paths_from_debug_symbols=true
|
||||
strip_debug_info=true
|
||||
symbol_level=0
|
||||
symbol_level=1
|
||||
target_os="android"
|
||||
use_debug_fission=true
|
||||
|
||||
@@ -12,7 +12,6 @@ Remove-EV-certificates.patch
|
||||
promo-disable-Google-promotion-fetching.patch
|
||||
Disable-omission-of-URL-elements-in-Omnibox.patch
|
||||
Modify-default-preferences.patch
|
||||
Disable-contextual-search-by-default.patch
|
||||
Do-not-store-passwords-by-default.patch
|
||||
Disable-NTP-remote-suggestions-by-default.patch
|
||||
Disable-references-to-fonts.googleapis.com.patch
|
||||
@@ -58,8 +57,6 @@ Add-flag-to-control-video-playback-resume-feature.patch
|
||||
Open-YouTube-links-in-Bromite.patch
|
||||
Add-exit-menu-item.patch
|
||||
Remove-help-menu-item.patch
|
||||
Add-menu-option-to-toggle-global-Javascript-preference.patch
|
||||
Add-menu-option-to-toggle-ad-blocker.patch
|
||||
User-Agent-anonymize.patch
|
||||
AudioBuffer-AnalyserNode-fingerprinting-mitigations-via-IDL.patch
|
||||
Multiple-fingerprinting-mitigations-for-canvas-text-and-client-rectangles.patch
|
||||
@@ -122,7 +119,6 @@ disable-payment-support-by-default.patch
|
||||
disable-background-sync-by-default.patch
|
||||
disable-sensors-access-site-setting-by-default.patch
|
||||
Disable-media-router-and-remoting-by-default.patch
|
||||
Disable-unified-consent-on-Android.patch
|
||||
Revert-Cleanup-Search-Ready-Omnibox-flag-since-it-has-launched.patch
|
||||
Disable-search-ready-omnibox-by-default.patch
|
||||
disable-AdsBlockedInfoBar.patch
|
||||
@@ -140,6 +136,9 @@ Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch
|
||||
Revert-flags-remove-disable-pull-to-refresh-effect.patch
|
||||
Use-dummy-DFM-installer.patch
|
||||
Disable-password-reuse-detection-on-android.patch
|
||||
Unified-consent-miscellanous-backport-fixes.patch
|
||||
Allow-building-without-feed-support.patch
|
||||
Disable-addresses-autofill-by-default.patch
|
||||
Always-show-site-settings-for-cookies-javascript-and-ads.patch
|
||||
Automated-domain-substitution.patch
|
||||
Do-not-enable-QUIC-by-default.patch
|
||||
Restore-enable-horizontal-tab-switcher-flag.patch
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
Revert-Remove-pre-unified-consent-code-in-sync-and-privacy-directory.patch
|
||||
Disable-unified-consent-on-Android.patch
|
||||
Unified-consent-miscellanous-backport-fixes.patch
|
||||
AV1-codec-support.patch
|
||||
Switch-to-fstack-protector-strong.patch
|
||||
Enable-fwrapv-in-Clang-for-non-UBSan-builds.patch
|
||||
Disable-password-reuse-detection-on-android.patch
|
||||
Allow-building-without-feed-support.patch
|
||||
|
||||
@@ -4,16 +4,18 @@ Subject: Add an always-incognito mode
|
||||
|
||||
More specifically, add a preference that causes all new tabs and all
|
||||
clicked links to launch as incognito.
|
||||
Make sure initial incognito status is correctly recognized.
|
||||
---
|
||||
chrome/android/chrome_java_sources.gni | 1 +
|
||||
.../java/res/xml/privacy_preferences.xml | 5 ++
|
||||
.../AlwaysIncognitoLinkInterceptor.java | 73 +++++++++++++++++++
|
||||
.../chrome/browser/ChromeActivity.java | 5 ++
|
||||
.../browser/appmenu/AppMenuHandlerImpl.java | 10 +++
|
||||
.../chrome/browser/ChromeActivity.java | 4 +
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 6 +-
|
||||
.../browser/appmenu/AppMenuHandlerImpl.java | 9 +++
|
||||
.../ChromeContextMenuPopulator.java | 9 ++-
|
||||
.../browser/tabmodel/ChromeTabCreator.java | 20 ++++-
|
||||
.../java/strings/android_chrome_strings.grd | 8 ++
|
||||
8 files changed, 129 insertions(+), 2 deletions(-)
|
||||
9 files changed, 131 insertions(+), 4 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
@@ -72,7 +74,7 @@ new file mode 100644
|
||||
+ */
|
||||
+public class AlwaysIncognitoLinkInterceptor extends EmptyTabObserver {
|
||||
+
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
+ public static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
+
|
||||
+ private final SharedPreferences alwaysIncognitoContainer;
|
||||
+ private final Map<Tab, String> lastUrls;
|
||||
@@ -123,51 +125,67 @@ 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
|
||||
@@ -228,6 +228,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
|
||||
private static final int RECORD_MULTI_WINDOW_SCREEN_WIDTH_DELAY_MS = 5000;
|
||||
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
+
|
||||
/**
|
||||
* Timeout in ms for reading PartnerBrowserCustomizations provider.
|
||||
*/
|
||||
@@ -1706,6 +1708,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -55,6 +55,7 @@ import org.chromium.base.annotations.UsedByReflection;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
import org.chromium.chrome.browser.appmenu.AppMenuBlocker;
|
||||
@@ -1706,6 +1707,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
throw new IllegalStateException(
|
||||
"Attempting to access TabCreator before initialization");
|
||||
}
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ return mIncognitoTabCreator;
|
||||
+ }
|
||||
return incognito ? mIncognitoTabCreator : mRegularTabCreator;
|
||||
}
|
||||
|
||||
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
|
||||
@@ -49,6 +49,7 @@ import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
|
||||
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
|
||||
import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
|
||||
@@ -1652,8 +1653,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
Bundle savedInstanceState = getSavedInstanceState();
|
||||
|
||||
// We determine the model as soon as possible so every systems get initialized coherently.
|
||||
- boolean startIncognito = savedInstanceState != null
|
||||
- && savedInstanceState.getBoolean("is_incognito_selected", false);
|
||||
+ boolean startIncognito = ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)
|
||||
+ || (savedInstanceState != null
|
||||
+ && savedInstanceState.getBoolean("is_incognito_selected", false));
|
||||
int index = savedInstanceState != null ? savedInstanceState.getInt(WINDOW_INDEX, 0) : 0;
|
||||
|
||||
mTabModelSelectorImpl = (TabModelSelectorImpl)
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuHandlerImpl.java
|
||||
@@ -20,6 +20,7 @@ import android.widget.PopupMenu;
|
||||
@@ -20,8 +20,10 @@ import android.widget.PopupMenu;
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.VisibleForTesting;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
|
||||
@@ -58,6 +59,8 @@ class AppMenuHandlerImpl
|
||||
*/
|
||||
private Integer mHighlightMenuId;
|
||||
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
+
|
||||
/**
|
||||
* Whether the highlighted item should use a circle highlight or not.
|
||||
*/
|
||||
@@ -208,6 +211,13 @@ class AppMenuHandlerImpl
|
||||
import org.chromium.chrome.browser.lifecycle.ConfigurationChangedObserver;
|
||||
import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver;
|
||||
@@ -208,6 +210,13 @@ class AppMenuHandlerImpl
|
||||
if (mDelegate.shouldShowHeader(appRect.height())) {
|
||||
headerResourceId = mDelegate.getHeaderResourceId();
|
||||
}
|
||||
+
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)) {
|
||||
+ final MenuItem newTabOption = mAppMenu.getMenu().findItem(R.id.new_tab_menu_id);
|
||||
+ if (newTabOption != null)
|
||||
+ newTabOption.setVisible(false);
|
||||
@@ -179,28 +197,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenu
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
@@ -16,6 +16,7 @@ import androidx.annotation.IntDef;
|
||||
@@ -16,7 +16,9 @@ import androidx.annotation.IntDef;
|
||||
|
||||
import org.chromium.base.library_loader.LibraryProcessType;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.compositor.bottombar.ephemeraltab.EphemeralTabPanel;
|
||||
@@ -47,6 +48,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
private static final String TAG = "CCMenuPopulator";
|
||||
private final ContextMenuItemDelegate mDelegate;
|
||||
private final @ContextMenuMode int mMode;
|
||||
+ private static final String PREF_ALWAYS_INCOGNITO = "always_incognito";
|
||||
private boolean mEnableLensWithSearchByImageText;
|
||||
|
||||
/**
|
||||
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item;
|
||||
@@ -301,7 +303,12 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && mMode == ContextMenuMode.NORMAL
|
||||
&& !isEmptyUrl(params.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(params.getUrl())) {
|
||||
- linkTab.add(new ChromeContextMenuItem(Item.OPEN_IN_NEW_TAB));
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(PREF_ALWAYS_INCOGNITO, false)
|
||||
+ if (ContextUtils.getAppSharedPreferences().getBoolean(AlwaysIncognitoLinkInterceptor.PREF_ALWAYS_INCOGNITO, false)
|
||||
+ && !mDelegate.isIncognito()) {
|
||||
+ // disallow open in new tab
|
||||
+ } else
|
||||
|
||||
@@ -35,9 +35,9 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
+ android:title="@string/allow_custom_tab_intents_title"
|
||||
+ android:summary="@string/allow_custom_tab_intents_summary"
|
||||
+ android:defaultValue="false" />
|
||||
<android.support.v7.preference.Preference
|
||||
android:key="contextual_search"
|
||||
android:title="@string/contextual_search_title"
|
||||
<Preference
|
||||
android:key="clear_browsing_data"
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
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
|
||||
@@ -61,7 +61,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -43,6 +43,8 @@ public class PrivacyPreferences
|
||||
@@ -41,6 +41,8 @@ public class PrivacyPreferences
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
|
||||
@@ -69,8 +69,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
+
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
|
||||
@@ -101,6 +103,10 @@ public class PrivacyPreferences
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
|
||||
@@ -75,6 +77,10 @@ public class PrivacyPreferences
|
||||
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
|
||||
} else if (PREF_NETWORK_PREDICTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
@@ -78,10 +78,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
+ SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
+ sharedPreferencesEditor.putBoolean(PREF_ALLOW_CUSTOM_TAB_INTENTS, (boolean)newValue);
|
||||
+ sharedPreferencesEditor.apply();
|
||||
} else if (PREF_CONTEXTUAL_SEARCH.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false");
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
@@ -140,6 +146,11 @@ public class PrivacyPreferences
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
@@ -111,6 +117,11 @@ public class PrivacyPreferences
|
||||
prefServiceBridge.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||
}
|
||||
|
||||
@@ -96,7 +96,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
|
||||
@@ -3987,6 +3987,13 @@ The site does NOT gain access to the camera. The camera images are only visible
|
||||
@@ -3965,6 +3965,13 @@ The site does NOT gain access to the camera. The camera images are only visible
|
||||
'Installing Extra ICU for Chrome…').">
|
||||
Extra ICU
|
||||
</message>
|
||||
|
||||
@@ -1,193 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 14 Sep 2019 10:19:07 +0200
|
||||
Subject: Add menu option to toggle ad blocker
|
||||
|
||||
---
|
||||
.../java/res/menu/custom_tabs_menu.xml | 12 ++++++
|
||||
chrome/android/java/res/menu/main_menu.xml | 11 +++++
|
||||
.../chrome/browser/ChromeActivity.java | 8 ++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 8 ++++
|
||||
.../AppMenuPropertiesDelegateImpl.java | 40 +++++++++++++++++++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 2 +
|
||||
.../java/strings/android_chrome_strings.grd | 11 +++++
|
||||
7 files changed, 92 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
@@ -75,6 +75,18 @@
|
||||
android:checkable="true" />
|
||||
</menu>
|
||||
</item>
|
||||
+ <item android:id="@+id/enable_adblock_row_menu_id"
|
||||
+ android:title="@null"
|
||||
+ android:orderInCategory="2">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_adblock_id"
|
||||
+ android:title="@string/menu_enable_adblock" />
|
||||
+ <item android:id="@+id/enable_adblock_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
+
|
||||
<!-- Title is intentionally left blank in xml and will be set in java. -->
|
||||
<item android:id="@+id/open_in_browser_id"
|
||||
android:title=""
|
||||
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
|
||||
@@ -84,6 +84,17 @@
|
||||
</menu>
|
||||
</item>
|
||||
|
||||
+ <item android:id="@+id/enable_adblock_row_menu_id"
|
||||
+ android:title="@null">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_adblock_id"
|
||||
+ android:title="@string/menu_enable_adblock" />
|
||||
+ <item android:id="@+id/enable_adblock_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
+
|
||||
<item android:id="@+id/reader_mode_prefs_id"
|
||||
android:title="@string/menu_reader_mode_prefs"
|
||||
android:icon="@drawable/reader_mode_prefs_icon" />
|
||||
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
|
||||
@@ -2226,6 +2226,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableAdBlock");
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
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
|
||||
@@ -1767,6 +1767,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
reportNewTabShortcutUsed(true);
|
||||
getTabCreator(true).launchNTP();
|
||||
}
|
||||
+ } else if (id == R.id.enable_adblock_id || id == R.id.enable_adblock_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean adblockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS, adblockEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableAdBlock");
|
||||
} else if (id == R.id.all_bookmarks_menu_id) {
|
||||
if (currentTab != null) {
|
||||
getCompositorViewHolder().hideKeyboard(() -> {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
@@ -27,6 +27,7 @@ import org.chromium.base.metrics.RecordHistogram;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ActivityTabProvider;
|
||||
import org.chromium.chrome.browser.ChromeSwitches;
|
||||
+import org.chromium.chrome.browser.ContentSettingsType;
|
||||
import org.chromium.chrome.browser.ShortcutHelper;
|
||||
import org.chromium.chrome.browser.banners.AppBannerManager;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
|
||||
@@ -235,6 +236,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
// Prepare translate menu button.
|
||||
prepareTranslateMenuItem(menu, currentTab);
|
||||
|
||||
+ updateEnableAdBlockMenuItem(menu, currentTab);
|
||||
+
|
||||
// Hide 'Add to homescreen' for the following:
|
||||
// * chrome:// pages - Android doesn't know how to direct those URLs.
|
||||
// * incognito pages - To avoid problems where users create shortcuts in incognito
|
||||
@@ -310,6 +313,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
PrefServiceBridge.getInstance().isIncognitoModeManaged());
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Updates the ad blocker item's state.
|
||||
+ *
|
||||
+ * @param menu {@link Menu} to enable ad blocker
|
||||
+ * @param currentTab Current tab being displayed.
|
||||
+ */
|
||||
+ protected void updateEnableAdBlockMenuItem(
|
||||
+ Menu menu, Tab currentTab) {
|
||||
+ MenuItem enableMenuRow = menu.findItem(R.id.enable_adblock_row_menu_id);
|
||||
+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_adblock_id);
|
||||
+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_adblock_check_id);
|
||||
+
|
||||
+
|
||||
+ // Hide Block ads on all chrome:// pages except for the NTP.
|
||||
+ String url = currentTab.getUrl();
|
||||
+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX)
|
||||
+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
|
||||
+ // Also hide enable javascsript on Reader Mode.
|
||||
+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url);
|
||||
+
|
||||
+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage;
|
||||
+ enableMenuRow.setVisible(itemVisible);
|
||||
+ if (!itemVisible) return;
|
||||
+
|
||||
+ boolean adBlockEnabled = !PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS);
|
||||
+
|
||||
+ // Mark the checkbox if ad blocker is globally activated.
|
||||
+ enableMenuCheck.setChecked(adBlockEnabled);
|
||||
+
|
||||
+ // This title doesn't seem to be displayed by Android, but it is used to set up
|
||||
+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}.
|
||||
+ enableMenuLabel.setTitleCondensed(adBlockEnabled
|
||||
+ ? mContext.getString(R.string.menu_enable_adblock_on)
|
||||
+ : mContext.getString(R.string.menu_enable_adblock_off));
|
||||
+ }
|
||||
+
|
||||
+
|
||||
/**
|
||||
* Sets the visibility and labels of the "Add to Home screen" and "Open WebAPK" menu items.
|
||||
*/
|
||||
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
|
||||
@@ -205,6 +205,8 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
}
|
||||
}
|
||||
|
||||
+ updateEnableAdBlockMenuItem(menu, currentTab);
|
||||
+
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
||||
updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible);
|
||||
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
|
||||
@@ -2865,6 +2865,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
+
|
||||
+ <message name="IDS_MENU_ENABLE_ADBLOCK" desc="Menu item in Chrome's overflow/options menu. If this menu item is unselected, Bromite will disable ad blocker engine for the page. [CHAR-LIMIT=27]">
|
||||
+ Block ads
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_ADBLOCK_ON" desc="Accessibility description for when Block ads is selected.">
|
||||
+ Turn off ad blocking
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_ADBLOCK_OFF" desc="Accessibility description for when Block ads is unselected.">
|
||||
+ Turn on ad blocking
|
||||
+ </message>
|
||||
+
|
||||
<message name="IDS_MENU_READER_MODE_PREFS" desc="Menu item to show reader mode preferences pane, which allows users to change the appearance (font size, theme, etc.) of the page. [CHAR-LIMIT=27]">
|
||||
Appearance
|
||||
</message>
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -1,200 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 18 Oct 2017 21:26:53 +0200
|
||||
Subject: Add menu option to toggle global Javascript preference
|
||||
|
||||
---
|
||||
.../java/res/menu/custom_tabs_menu.xml | 12 ++++++
|
||||
chrome/android/java/res/menu/main_menu.xml | 13 +++++++
|
||||
.../chrome/browser/ChromeActivity.java | 8 ++++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 8 ++++
|
||||
.../AppMenuPropertiesDelegateImpl.java | 39 +++++++++++++++++++
|
||||
.../CustomTabAppMenuPropertiesDelegate.java | 1 +
|
||||
.../java/strings/android_chrome_strings.grd | 11 ++++++
|
||||
7 files changed, 92 insertions(+)
|
||||
|
||||
diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
--- a/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
+++ b/chrome/android/java/res/menu/custom_tabs_menu.xml
|
||||
@@ -49,6 +49,7 @@
|
||||
<item android:id="@+id/open_webapk_id"
|
||||
android:title="@string/menu_open_webapk"
|
||||
android:orderInCategory="2" />
|
||||
+
|
||||
<item android:id="@+id/request_desktop_site_row_menu_id"
|
||||
android:title="@null"
|
||||
android:orderInCategory="2">
|
||||
@@ -63,6 +64,17 @@
|
||||
<item android:id="@+id/translate_id"
|
||||
android:title="@string/menu_translate"
|
||||
android:orderInCategory="2"/>
|
||||
+ <item android:id="@+id/enable_javascript_row_menu_id"
|
||||
+ android:title="@null"
|
||||
+ android:orderInCategory="2">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_javascript_id"
|
||||
+ android:title="@string/menu_enable_javascript" />
|
||||
+ <item android:id="@+id/enable_javascript_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
<!-- Title is intentionally left blank in xml and will be set in java. -->
|
||||
<item android:id="@+id/open_in_browser_id"
|
||||
android:title=""
|
||||
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
|
||||
@@ -61,6 +61,7 @@
|
||||
android:title="@string/menu_add_to_homescreen" />
|
||||
<item android:id="@+id/open_webapk_id"
|
||||
android:title="@string/menu_open_webapk" />
|
||||
+
|
||||
<item android:id="@+id/request_desktop_site_row_menu_id"
|
||||
android:title="@null">
|
||||
<menu>
|
||||
@@ -71,6 +72,18 @@
|
||||
android:checkable="true" />
|
||||
</menu>
|
||||
</item>
|
||||
+
|
||||
+ <item android:id="@+id/enable_javascript_row_menu_id"
|
||||
+ android:title="@null">
|
||||
+ <menu>
|
||||
+ <item android:id="@+id/enable_javascript_id"
|
||||
+ android:title="@string/menu_enable_javascript" />
|
||||
+ <item android:id="@+id/enable_javascript_check_id"
|
||||
+ android:title="@null"
|
||||
+ android:checkable="true" />
|
||||
+ </menu>
|
||||
+ </item>
|
||||
+
|
||||
<item android:id="@+id/reader_mode_prefs_id"
|
||||
android:title="@string/menu_reader_mode_prefs"
|
||||
android:icon="@drawable/reader_mode_prefs_icon" />
|
||||
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
|
||||
@@ -2216,6 +2216,14 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
currentTab.getWebContents().getNavigationController().setUseDesktopUserAgent(
|
||||
!usingDesktopUserAgent, reloadOnChange);
|
||||
RecordUserAction.record("MobileMenuRequestDesktopSite");
|
||||
+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.reader_mode_prefs_id) {
|
||||
DomDistillerUIUtils.openSettings(currentTab.getWebContents());
|
||||
} else {
|
||||
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
|
||||
@@ -1813,6 +1813,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
|
||||
}
|
||||
RecordUserAction.record("MobileMenuDownloadManager");
|
||||
+ } else if (id == R.id.enable_javascript_id || id == R.id.enable_javascript_check_id) {
|
||||
+ final boolean reloadOnChange = !currentTab.isNativePage();
|
||||
+ final boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
||||
+ PrefServiceBridge.getInstance().setCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT, !jsEnabled);
|
||||
+ if (reloadOnChange) {
|
||||
+ currentTab.reload();
|
||||
+ }
|
||||
+ RecordUserAction.record("MobileMenuRequestEnableJavascript");
|
||||
} else if (id == R.id.open_recently_closed_tab) {
|
||||
TabModel currentModel = mTabModelSelectorImpl.getCurrentModel();
|
||||
if (!currentModel.isIncognito()) currentModel.openMostRecentlyClosedTab();
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuPropertiesDelegateImpl.java
|
||||
@@ -252,6 +252,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */);
|
||||
|
||||
+ updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
+
|
||||
// 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()));
|
||||
@@ -438,6 +440,43 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
|
||||
}
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Updates the enable JavaScript item's state.
|
||||
+ *
|
||||
+ * @param menu {@link Menu} for enable javascript
|
||||
+ * @param currentTab Current tab being displayed.
|
||||
+ */
|
||||
+ protected void updateEnableJavascriptMenuItem(
|
||||
+ Menu menu, Tab currentTab) {
|
||||
+ MenuItem enableMenuRow = menu.findItem(R.id.enable_javascript_row_menu_id);
|
||||
+ MenuItem enableMenuLabel = menu.findItem(R.id.enable_javascript_id);
|
||||
+ MenuItem enableMenuCheck = menu.findItem(R.id.enable_javascript_check_id);
|
||||
+
|
||||
+ // Hide enable javascript on all chrome:// pages except for the NTP.
|
||||
+ String url = currentTab.getUrl();
|
||||
+ boolean isChromeScheme = url.startsWith(UrlConstants.CHROME_URL_PREFIX)
|
||||
+ || url.startsWith(UrlConstants.CHROME_NATIVE_URL_PREFIX);
|
||||
+ // Also hide enable javascsript on Reader Mode.
|
||||
+ boolean isDistilledPage = DomDistillerUrlUtils.isDistilledPage(url);
|
||||
+
|
||||
+ boolean itemVisible = (!isChromeScheme || currentTab.isNativePage()) && !isDistilledPage;
|
||||
+ enableMenuRow.setVisible(itemVisible);
|
||||
+ if (!itemVisible) return;
|
||||
+
|
||||
+ boolean jsEnabled = PrefServiceBridge.getInstance().isCategoryEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT);
|
||||
+
|
||||
+ // Mark the checkbox if Javascript is activated on this tab.
|
||||
+ enableMenuCheck.setChecked(jsEnabled);
|
||||
+
|
||||
+ // This title doesn't seem to be displayed by Android, but it is used to set up
|
||||
+ // accessibility text in {@link AppMenuAdapter#setupMenuButton}.
|
||||
+ enableMenuLabel.setTitleCondensed(jsEnabled
|
||||
+ ? mContext.getString(R.string.menu_enable_javascript_on)
|
||||
+ : mContext.getString(R.string.menu_enable_javascript_off));
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+
|
||||
/**
|
||||
* Updates the request desktop site item's state.
|
||||
*
|
||||
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
|
||||
@@ -206,6 +206,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
}
|
||||
|
||||
updateRequestDesktopSiteMenuItem(menu, currentTab, requestDesktopSiteVisible);
|
||||
+ updateEnableJavascriptMenuItem(menu, currentTab);
|
||||
prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible);
|
||||
}
|
||||
}
|
||||
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
|
||||
@@ -2845,6 +2845,17 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
+
|
||||
+ <message name="IDS_MENU_ENABLE_JAVASCRIPT" desc="Menu item in Chrome's overflow/options menu. If this menu item is unselected, Bromite will disable JavaScript support for the page. [CHAR-LIMIT=27]">
|
||||
+ JavaScript
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_JAVASCRIPT_ON" desc="Accessibility description for when Enable JavaScript is selected.">
|
||||
+ Turn off JavaScript
|
||||
+ </message>
|
||||
+ <message name="IDS_MENU_ENABLE_JAVASCRIPT_OFF" desc="Accessibility description for when Enable JavaScript is unselected.">
|
||||
+ Turn on JavaScript
|
||||
+ </message>
|
||||
+
|
||||
<message name="IDS_MENU_REQUEST_DESKTOP_SITE" desc="Menu item in Chrome's overflow/options menu. By default, when a user navigates to a web page, Chrome shows the mobile site, that is, the version of the site designed for mobile phones. If this menu item is selected, however, Chrome will try to load the 'desktop' site instead, i.e. the site designed for desktop computers or laptop computers, which have larger screens. [CHAR-LIMIT=24]">
|
||||
Desktop site
|
||||
</message>
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -26,10 +26,10 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -38,6 +38,11 @@
|
||||
android:key="contextual_search"
|
||||
android:title="@string/contextual_search_title"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ContextualSearchPreferenceFragment" />
|
||||
@@ -34,6 +34,11 @@
|
||||
android:title="@string/allow_custom_tab_intents_title"
|
||||
android:summary="@string/allow_custom_tab_intents_summary"
|
||||
android:defaultValue="false" />
|
||||
+ <org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
+ android:key="close_tabs_on_exit"
|
||||
+ android:title="@string/close_tabs_on_exit_title"
|
||||
@@ -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
|
||||
@@ -1173,8 +1173,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
@@ -1174,8 +1174,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements ScreenshotMo
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
@@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
import android.os.Bundle;
|
||||
import android.support.graphics.drawable.VectorDrawableCompat;
|
||||
import android.support.v7.preference.CheckBoxPreference;
|
||||
@@ -14,6 +15,7 @@ import android.view.Menu;
|
||||
@@ -13,6 +14,7 @@ import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
@@ -72,15 +72,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
@@ -38,6 +40,7 @@ public class PrivacyPreferences
|
||||
@@ -36,6 +38,7 @@ public class PrivacyPreferences
|
||||
private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_CONTEXTUAL_SEARCH = "contextual_search";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
+ private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
|
||||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
|
||||
@@ -112,6 +115,10 @@ public class PrivacyPreferences
|
||||
@@ -84,6 +87,10 @@ public class PrivacyPreferences
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
@@ -91,9 +91,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -162,6 +169,11 @@ public class PrivacyPreferences
|
||||
boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled();
|
||||
contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff);
|
||||
@@ -127,6 +134,11 @@ public class PrivacyPreferences
|
||||
doNotTrackPref.setSummary(
|
||||
prefServiceBridge.isDoNotTrackEnabled() ? R.string.text_on : R.string.text_off);
|
||||
}
|
||||
+
|
||||
+ ChromeBaseCheckBoxPreference closeTabsOnExitPref =
|
||||
@@ -106,7 +106,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
|
||||
@@ -3699,6 +3699,12 @@ The site does NOT gain access to the camera. The camera images are only visible
|
||||
@@ -3677,6 +3677,12 @@ The site does NOT gain access to the camera. The camera images are only visible
|
||||
<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>
|
||||
|
||||
@@ -3,9 +3,59 @@ Date: Thu, 19 Dec 2019 22:52:53 +0100
|
||||
Subject: Allow building without feed support
|
||||
|
||||
---
|
||||
.../chrome/browser/ntp/cards/ExploreOfflineCard.java | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
.../start_surface/StartSurfaceCoordinator.java | 5 -----
|
||||
.../start_surface/StartSurfaceMediator.java | 16 ----------------
|
||||
.../browser/ntp/cards/ExploreOfflineCard.java | 5 +----
|
||||
3 files changed, 1 insertion(+), 25 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
|
||||
--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
|
||||
+++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceCoordinator.java
|
||||
@@ -198,11 +198,6 @@ public class StartSurfaceCoordinator implements StartSurface {
|
||||
mBottomBarCoordinator = new BottomBarCoordinator(
|
||||
mActivity, mActivity.getCompositorViewHolder(), mPropertyModel);
|
||||
}
|
||||
-
|
||||
- mExploreSurfaceCoordinator = new ExploreSurfaceCoordinator(mActivity,
|
||||
- mSurfaceMode == SurfaceMode.SINGLE_PANE ? mTasksSurface.getBodyViewContainer()
|
||||
- : mActivity.getCompositorViewHolder(),
|
||||
- mPropertyModel, mSurfaceMode == SurfaceMode.SINGLE_PANE);
|
||||
}
|
||||
|
||||
private TabSwitcher.Controller initializeSecondaryTasksSurface() {
|
||||
diff --git a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
|
||||
--- a/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
|
||||
+++ b/chrome/android/features/start_surface/internal/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java
|
||||
@@ -253,15 +253,6 @@ class StartSurfaceMediator
|
||||
RecordUserAction.record("StartSurface.TasksOnly");
|
||||
}
|
||||
|
||||
- // Make sure FeedSurfaceCoordinator is built before the explore surface is showing by
|
||||
- // default.
|
||||
- if (mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE)
|
||||
- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) {
|
||||
- mPropertyModel.set(FEED_SURFACE_COORDINATOR,
|
||||
- mFeedSurfaceCreator.createFeedSurfaceCoordinator(
|
||||
- mNightModeStateProvider.isInNightMode()));
|
||||
- }
|
||||
-
|
||||
mPropertyModel.set(IS_SHOWING_OVERVIEW, true);
|
||||
mFakeboxDelegate.addUrlFocusChangeListener(mUrlFocusChangeListener);
|
||||
}
|
||||
@@ -361,13 +352,6 @@ class StartSurfaceMediator
|
||||
private void setExploreSurfaceVisibility(boolean isVisible) {
|
||||
if (isVisible == mPropertyModel.get(IS_EXPLORE_SURFACE_VISIBLE)) return;
|
||||
|
||||
- if (isVisible && mPropertyModel.get(IS_SHOWING_OVERVIEW)
|
||||
- && mPropertyModel.get(FEED_SURFACE_COORDINATOR) == null) {
|
||||
- mPropertyModel.set(FEED_SURFACE_COORDINATOR,
|
||||
- mFeedSurfaceCreator.createFeedSurfaceCoordinator(
|
||||
- mNightModeStateProvider.isInNightMode()));
|
||||
- }
|
||||
-
|
||||
mPropertyModel.set(IS_EXPLORE_SURFACE_VISIBLE, isVisible);
|
||||
|
||||
if (mSurfaceMode == SurfaceMode.TWO_PANES) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ExploreOfflineCard.java
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 28 Dec 2019 10:23:04 +0100
|
||||
Subject: Always show site settings for cookies, javascript and ads
|
||||
|
||||
Avoid displaying info about intrusive ads
|
||||
---
|
||||
.../website/SingleWebsitePreferences.java | 46 +++++++++----------
|
||||
.../browser/preferences/website/Website.java | 20 ++++++++
|
||||
2 files changed, 42 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
|
||||
@@ -46,6 +46,7 @@ import java.util.Set;
|
||||
*/
|
||||
public class SingleWebsitePreferences extends PreferenceFragmentCompat
|
||||
implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener {
|
||||
+ public static final String TAG = "SingleWebsitePreferences";
|
||||
// SingleWebsitePreferences expects either EXTRA_SITE (a Website) or
|
||||
// EXTRA_SITE_ADDRESS (a WebsiteAddress) to be present (but not both). If
|
||||
// EXTRA_SITE is present, the fragment will display the permissions in that
|
||||
@@ -345,7 +346,24 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat
|
||||
} else if (i == ContentSettingException.Type.SOUND) {
|
||||
setUpSoundPreference(preference);
|
||||
} else {
|
||||
- setUpListPreference(preference, mSite.getContentSettingPermission(i));
|
||||
+ // some Bromite-specific overrides for the defaults
|
||||
+ @ContentSettingValues
|
||||
+ @Nullable
|
||||
+ Integer permission = mSite.getContentSettingPermission(i);
|
||||
+ // initialize cookie and javascript with the category global defaults
|
||||
+ if (permission == null) {
|
||||
+ if (i == ContentSettingException.Type.COOKIE)
|
||||
+ permission = PrefServiceBridge.getInstance().isCategoryEnabled(
|
||||
+ ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
+ else if (i == ContentSettingException.Type.JAVASCRIPT)
|
||||
+ permission = PrefServiceBridge.getInstance().isCategoryEnabled(
|
||||
+ ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT)
|
||||
+ ? ContentSettingValues.ALLOW
|
||||
+ : ContentSettingValues.BLOCK;
|
||||
+ }
|
||||
+ setUpListPreference(preference, permission);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -626,17 +644,8 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat
|
||||
}
|
||||
|
||||
private void setUpAdsInformationalBanner() {
|
||||
- // Add the informational banner which shows at the top of the UI if ad blocking is
|
||||
- // activated on this site.
|
||||
- boolean adBlockingActivated = SiteSettingsCategory.adsCategoryEnabled()
|
||||
- && WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin())
|
||||
- && findPreference(PERMISSION_PREFERENCE_KEYS[ContentSettingException.Type.ADS])
|
||||
- != null;
|
||||
-
|
||||
- if (!adBlockingActivated) {
|
||||
- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO);
|
||||
- removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER);
|
||||
- }
|
||||
+ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO);
|
||||
+ removePreferenceSafely(PREF_INTRUSIVE_ADS_INFO_DIVIDER);
|
||||
}
|
||||
|
||||
private SiteSettingsCategory getWarningCategory() {
|
||||
@@ -711,6 +720,7 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat
|
||||
// TODO(crbug.com/735110): Figure out if this is the correct thing to do - here we are
|
||||
// effectively treating non-ALLOW values as BLOCK.
|
||||
int index = (value == ContentSettingValues.ALLOW ? 0 : 1);
|
||||
+
|
||||
listPreference.setValueIndex(index);
|
||||
listPreference.setOnPreferenceChangeListener(this);
|
||||
listPreference.setSummary("%s");
|
||||
@@ -782,22 +792,10 @@ public class SingleWebsitePreferences extends PreferenceFragmentCompat
|
||||
setUpListPreference(preference, null);
|
||||
return;
|
||||
}
|
||||
- // If the ad blocker is activated, then this site will have ads blocked unless there is an
|
||||
- // explicit permission disallowing the blocking.
|
||||
- boolean activated =
|
||||
- WebsitePreferenceBridge.getAdBlockingActivated(mSite.getAddress().getOrigin());
|
||||
@ContentSettingValues
|
||||
@Nullable
|
||||
Integer permission = mSite.getContentSettingPermission(ContentSettingException.Type.ADS);
|
||||
|
||||
- // If |permission| is null, there is no explicit (non-default) permission set for this site.
|
||||
- // If the site is not considered a candidate for blocking, do the standard thing and remove
|
||||
- // the preference.
|
||||
- if (permission == null && !activated) {
|
||||
- setUpListPreference(preference, null);
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
// However, if the blocking is activated, we still want to show the permission, even if it
|
||||
// is in the default state.
|
||||
if (permission == null) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java
|
||||
@@ -166,6 +166,26 @@ public class Website implements Serializable {
|
||||
new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS,
|
||||
getAddress().getOrigin(), ContentSettingValues.BLOCK, "");
|
||||
}
|
||||
+ } else if (type == ContentSettingException.Type.COOKIE) {
|
||||
+ // It is possible to set the permission without having an existing exception,
|
||||
+ // because we can show the ALLOW state even when this permission is set to the
|
||||
+ // default. In that case, just set an exception now to ALLOW to enable changing the
|
||||
+ // permission.
|
||||
+ if (mContentSettingException[type] == null) {
|
||||
+ mContentSettingException[type] =
|
||||
+ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES,
|
||||
+ getAddress().getOrigin(), ContentSettingValues.ALLOW, "");
|
||||
+ }
|
||||
+ } else if (type == ContentSettingException.Type.JAVASCRIPT) {
|
||||
+ // It is possible to set the permission without having an existing exception,
|
||||
+ // because we can show the ALLOW state even when this permission is set to the
|
||||
+ // default. In that case, just set an exception now to ALLOW to enable changing the
|
||||
+ // permission.
|
||||
+ if (mContentSettingException[type] == null) {
|
||||
+ mContentSettingException[type] =
|
||||
+ new ContentSettingException(ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT,
|
||||
+ getAddress().getOrigin(), ContentSettingValues.ALLOW, "");
|
||||
+ }
|
||||
} else if (type == ContentSettingException.Type.SOUND) {
|
||||
// It is possible to set the permission without having an existing exception,
|
||||
// because we always show the sound permission in Site Settings.
|
||||
--
|
||||
2.17.1
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,37 +0,0 @@
|
||||
From: Daniel Micay <danielmicay@gmail.com>
|
||||
Date: Wed, 23 Nov 2016 09:26:51 -0500
|
||||
Subject: Disable contextual search by default
|
||||
|
||||
Disable contextual search in preference by default
|
||||
---
|
||||
.../chromium/chrome/browser/preferences/PrefServiceBridge.java | 2 +-
|
||||
chrome/browser/profiles/profile.cc | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
|
||||
@@ -449,7 +449,7 @@ public class PrefServiceBridge {
|
||||
* @return Whether the Contextual Search feature was disabled by the user explicitly.
|
||||
*/
|
||||
public boolean isContextualSearchDisabled() {
|
||||
- return getContextualSearchPreference().equals(CONTEXTUAL_SEARCH_DISABLED);
|
||||
+ return !getContextualSearchPreference().equals(CONTEXTUAL_SEARCH_ENABLED);
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -154,7 +154,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterStringPref(
|
||||
prefs::kContextualSearchEnabled,
|
||||
- std::string(),
|
||||
+ "false",
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
#endif // defined(OS_ANDROID)
|
||||
registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true);
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -40,7 +40,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -232,7 +232,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -226,7 +226,7 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kMediaRouterFirstRunFlowAcknowledged,
|
||||
false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
|
||||
@@ -3,21 +3,24 @@ Date: Sun, 15 Dec 2019 22:39:56 +0100
|
||||
Subject: Disable password reuse detection on android
|
||||
|
||||
---
|
||||
components/password_manager/core/browser/BUILD.gn | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
components/password_manager/core/browser/BUILD.gn | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
|
||||
--- a/components/password_manager/core/browser/BUILD.gn
|
||||
+++ b/components/password_manager/core/browser/BUILD.gn
|
||||
@@ -12,7 +12,7 @@ if (is_android) {
|
||||
@@ -12,9 +12,9 @@ if (is_android) {
|
||||
|
||||
# TODO(crbug.com/1006430): Fix password reuse detection not fully functional on
|
||||
# Android.
|
||||
-password_reuse_detection_support = !is_ios
|
||||
+password_reuse_detection_support = !is_ios && !is_android
|
||||
password_reuse_warning_support = !is_android && !is_ios
|
||||
password_on_focus_ping_support = !is_android && !is_ios
|
||||
-password_on_focus_ping_support = !is_ios
|
||||
+password_on_focus_ping_support = !is_android && !is_ios
|
||||
|
||||
config("password_reuse_detection_config") {
|
||||
defines = []
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
||||
@@ -7,32 +7,32 @@ Contains Android-specific fixes to remove Safe Browsing
|
||||
---
|
||||
chrome/android/chrome_java_sources.gni | 1 -
|
||||
.../java/res/xml/privacy_preferences.xml | 21 -----
|
||||
.../res/xml/sync_and_services_preferences.xml | 20 ----
|
||||
.../privacy/PrivacyPreferences.java | 94 -------------------
|
||||
.../res/xml/sync_and_services_preferences.xml | 20 -----
|
||||
.../privacy/PrivacyPreferences.java | 77 -------------------
|
||||
.../browser/webshare/ShareServiceImpl.java | 6 --
|
||||
.../java/strings/android_chrome_strings.grd | 33 -------
|
||||
.../java/strings/android_chrome_strings.grd | 33 --------
|
||||
chrome/browser/BUILD.gn | 2 -
|
||||
chrome/browser/browser_process.h | 16 ----
|
||||
chrome/browser/browser_process_impl.cc | 36 -------
|
||||
chrome/browser/browser_process_impl.cc | 36 ---------
|
||||
chrome/browser/browser_process_impl.h | 6 --
|
||||
.../chrome_browsing_data_remover_delegate.cc | 41 --------
|
||||
.../browser/chrome_content_browser_client.cc | 60 +++---------
|
||||
.../chrome_browsing_data_remover_delegate.cc | 41 ----------
|
||||
.../browser/chrome_content_browser_client.cc | 60 ++++-----------
|
||||
.../file_type_policies_component_installer.cc | 16 +---
|
||||
.../chrome_download_manager_delegate.cc | 31 +++---
|
||||
.../chrome_download_manager_delegate.cc | 31 +++-----
|
||||
.../chrome_download_manager_delegate.h | 8 +-
|
||||
.../browser/download/download_item_model.cc | 13 ++-
|
||||
.../browser/download/download_item_model.cc | 13 +++-
|
||||
chrome/browser/download/download_item_model.h | 4 +
|
||||
chrome/browser/download/download_prefs.cc | 17 +---
|
||||
.../download/download_target_determiner.cc | 46 ++++-----
|
||||
chrome/browser/download/download_prefs.cc | 17 ++--
|
||||
.../download/download_target_determiner.cc | 46 +++++------
|
||||
.../download/download_target_determiner.h | 6 ++
|
||||
.../browser/download/download_target_info.cc | 4 +
|
||||
.../browser/download/download_target_info.h | 4 +
|
||||
chrome/browser/download/download_ui_model.cc | 4 +
|
||||
chrome/browser/download/download_ui_model.h | 4 +
|
||||
.../extensions/api/downloads/downloads_api.cc | 39 +-------
|
||||
.../extensions/api/downloads/downloads_api.h | 10 --
|
||||
.../webstore_private/webstore_private_api.cc | 44 +--------
|
||||
.../extensions/blacklist_state_fetcher.cc | 34 +------
|
||||
.../extensions/api/downloads/downloads_api.cc | 39 +---------
|
||||
.../extensions/api/downloads/downloads_api.h | 10 ---
|
||||
.../webstore_private/webstore_private_api.cc | 44 +----------
|
||||
.../extensions/blacklist_state_fetcher.cc | 34 +-------
|
||||
.../extensions/blacklist_state_fetcher.h | 3 -
|
||||
.../metrics/chrome_metrics_service_client.cc | 3 -
|
||||
...e_native_file_system_permission_context.cc | 5 +-
|
||||
@@ -44,19 +44,18 @@ Contains Android-specific fixes to remove Safe Browsing
|
||||
.../ssl/captive_portal_blocking_page.cc | 7 +-
|
||||
chrome/browser/ssl/cert_report_helper.cc | 2 -
|
||||
.../browser/ssl/security_state_tab_helper.cc | 2 +
|
||||
.../chrome_subresource_filter_client.cc | 10 --
|
||||
.../chrome_subresource_filter_client.cc | 10 ---
|
||||
chrome/browser/ui/BUILD.gn | 1 -
|
||||
chrome/browser/ui/tab_helpers.cc | 8 --
|
||||
.../ui/webui/interstitials/interstitial_ui.cc | 13 +--
|
||||
chrome/common/safe_browsing/BUILD.gn | 15 ---
|
||||
.../ui/webui/interstitials/interstitial_ui.cc | 13 +---
|
||||
chrome/common/safe_browsing/BUILD.gn | 15 ----
|
||||
.../chrome_content_renderer_client.cc | 1 -
|
||||
.../password_manager/core/browser/BUILD.gn | 2 +-
|
||||
components/safe_browsing/features.cc | 2 +-
|
||||
.../unified_consent_service.cc | 2 +-
|
||||
.../native_file_system_file_writer_impl.cc | 48 +---------
|
||||
.../native_file_system_file_writer_impl.h | 15 +--
|
||||
.../native_file_system_file_writer_impl.cc | 48 +-----------
|
||||
.../native_file_system_file_writer_impl.h | 15 +---
|
||||
.../native_file_system_permission_context.h | 7 --
|
||||
51 files changed, 128 insertions(+), 651 deletions(-)
|
||||
50 files changed, 127 insertions(+), 633 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
|
||||
--- a/chrome/android/chrome_java_sources.gni
|
||||
@@ -149,15 +148,7 @@ diff --git a/chrome/android/java/res/xml/sync_and_services_preferences.xml b/chr
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -17,7 +17,6 @@ import android.view.MenuItem;
|
||||
import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
-import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
|
||||
import org.chromium.chrome.browser.help.HelpAndFeedback;
|
||||
import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference;
|
||||
import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate;
|
||||
@@ -36,21 +35,15 @@ import org.chromium.ui.text.SpanApplier;
|
||||
@@ -34,11 +34,7 @@ import org.chromium.ui.text.SpanApplier;
|
||||
*/
|
||||
public class PrivacyPreferences
|
||||
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
@@ -167,11 +158,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
- "safe_browsing_scout_reporting";
|
||||
- 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";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
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";
|
||||
@@ -46,7 +42,6 @@ public class PrivacyPreferences
|
||||
private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER =
|
||||
"sync_and_services_link_divider";
|
||||
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
|
||||
@@ -179,22 +168,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
|
||||
@@ -78,12 +71,8 @@ public class PrivacyPreferences
|
||||
|
||||
if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
// Remove preferences that were migrated to SyncAndServicesPreferences.
|
||||
- preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
|
||||
preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
|
||||
preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
|
||||
|
||||
// TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch.
|
||||
networkPredictionPref.setTitle(R.string.preload_pages_title);
|
||||
@@ -112,32 +101,11 @@ public class PrivacyPreferences
|
||||
preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
@@ -72,28 +67,11 @@ public class PrivacyPreferences
|
||||
getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
|
||||
- ChromeBaseCheckBoxPreference navigationErrorPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR);
|
||||
@@ -206,10 +182,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
searchSuggestionsPref.setOnPreferenceChangeListener(this);
|
||||
searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
- if (!ContextualSearchFieldTrial.isEnabled()) {
|
||||
- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
- }
|
||||
-
|
||||
- // Listen to changes to the Extended Reporting pref.
|
||||
- ChromeBaseCheckBoxPreference scoutReportingPref =
|
||||
- (ChromeBaseCheckBoxPreference) findPreference(
|
||||
@@ -225,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
updateSummaries();
|
||||
}
|
||||
|
||||
@@ -146,15 +114,8 @@ public class PrivacyPreferences
|
||||
@@ -102,15 +80,8 @@ public class PrivacyPreferences
|
||||
String key = preference.getKey();
|
||||
if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setSearchSuggestEnabled((boolean) newValue);
|
||||
@@ -238,10 +210,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
- } else if (PREF_NAVIGATION_ERROR.equals(key)) {
|
||||
- PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((boolean) newValue);
|
||||
} else if (PREF_CONTEXTUAL_SEARCH.equals(key)) {
|
||||
PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false");
|
||||
} else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
@@ -181,32 +142,12 @@ public class PrivacyPreferences
|
||||
PrefServiceBridge.getInstance().setBoolean(
|
||||
Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
@@ -134,32 +105,12 @@ public class PrivacyPreferences
|
||||
CharSequence textOn = getActivity().getResources().getText(R.string.text_on);
|
||||
CharSequence textOff = getActivity().getResources().getText(R.string.text_off);
|
||||
|
||||
@@ -274,18 +246,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
CheckBoxPreference canMakePaymentPref =
|
||||
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
if (canMakePaymentPref != null) {
|
||||
@@ -225,50 +166,15 @@ public class PrivacyPreferences
|
||||
boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled();
|
||||
contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff);
|
||||
@@ -172,43 +123,15 @@ public class PrivacyPreferences
|
||||
doNotTrackPref.setSummary(
|
||||
prefServiceBridge.isDoNotTrackEnabled() ? R.string.text_on : R.string.text_off);
|
||||
}
|
||||
-
|
||||
- Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING);
|
||||
- if (usageAndCrashPref != null) {
|
||||
- usageAndCrashPref.setSummary(
|
||||
- privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn
|
||||
- : textOff);
|
||||
- }
|
||||
-
|
||||
- Preference usageStatsPref = findPreference(PREF_USAGE_STATS);
|
||||
- if (usageStatsPref != null) {
|
||||
- if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) {
|
||||
@@ -2005,18 +1970,6 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
|
||||
#include "components/spellcheck/spellcheck_buildflags.h"
|
||||
#include "components/startup_metric_utils/common/startup_metric.mojom.h"
|
||||
#include "components/subresource_filter/content/renderer/subresource_filter_agent.h"
|
||||
diff --git a/components/password_manager/core/browser/BUILD.gn b/components/password_manager/core/browser/BUILD.gn
|
||||
--- a/components/password_manager/core/browser/BUILD.gn
|
||||
+++ b/components/password_manager/core/browser/BUILD.gn
|
||||
@@ -14,7 +14,7 @@ if (is_android) {
|
||||
# Android.
|
||||
password_reuse_detection_support = !is_ios
|
||||
password_reuse_warning_support = !is_android && !is_ios
|
||||
-password_on_focus_ping_support = !is_ios
|
||||
+password_on_focus_ping_support = !is_android && !is_ios
|
||||
|
||||
config("password_reuse_detection_config") {
|
||||
defines = []
|
||||
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
|
||||
|
||||
@@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -33,12 +33,5 @@
|
||||
@@ -29,12 +29,5 @@
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Mon, 12 Aug 2019 08:45:43 +0200
|
||||
Subject: Disable unified consent on Android
|
||||
|
||||
---
|
||||
components/unified_consent/feature.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/unified_consent/feature.cc b/components/unified_consent/feature.cc
|
||||
--- a/components/unified_consent/feature.cc
|
||||
+++ b/components/unified_consent/feature.cc
|
||||
@@ -11,7 +11,7 @@ namespace unified_consent {
|
||||
// base::Feature definition.
|
||||
const base::Feature kUnifiedConsent {
|
||||
"UnifiedConsent",
|
||||
-#if defined(OS_CHROMEOS)
|
||||
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
|
||||
base::FEATURE_DISABLED_BY_DEFAULT
|
||||
#else
|
||||
base::FEATURE_ENABLED_BY_DEFAULT
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 4 Jan 2020 14:46:12 +0100
|
||||
Subject: Do not enable QUIC by default
|
||||
|
||||
For reference:
|
||||
* https://brave.com/quic-in-the-wild/
|
||||
* https://petsymposium.org/2019/files/papers/issue3/popets-2019-0046.pdf
|
||||
---
|
||||
.../browser/network_session_configurator.cc | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/components/network_session_configurator/browser/network_session_configurator.cc b/components/network_session_configurator/browser/network_session_configurator.cc
|
||||
--- a/components/network_session_configurator/browser/network_session_configurator.cc
|
||||
+++ b/components/network_session_configurator/browser/network_session_configurator.cc
|
||||
@@ -180,7 +180,7 @@ bool ShouldEnableQuic(base::StringPiece quic_trial_group,
|
||||
return quic_trial_group.starts_with(kQuicFieldTrialEnabledGroupName) ||
|
||||
quic_trial_group.starts_with(kQuicFieldTrialHttpsEnabledGroupName) ||
|
||||
base::LowerCaseEqualsASCII(
|
||||
- GetVariationParam(quic_trial_params, "enable_quic"), "true");
|
||||
+ GetVariationParam(quic_trial_params, "enable_quic"), "false");
|
||||
}
|
||||
|
||||
bool ShouldEnableQuicProxiesForHttpsUrls(
|
||||
@@ -188,7 +188,7 @@ bool ShouldEnableQuicProxiesForHttpsUrls(
|
||||
return base::LowerCaseEqualsASCII(
|
||||
GetVariationParam(quic_trial_params,
|
||||
"enable_quic_proxies_for_https_urls"),
|
||||
- "true");
|
||||
+ "false");
|
||||
}
|
||||
|
||||
bool ShouldRetryWithoutAltSvcOnQuicErrors(
|
||||
@@ -468,7 +468,6 @@ void ConfigureQuicParams(base::StringPiece quic_trial_group,
|
||||
params->enable_quic =
|
||||
ShouldEnableQuic(quic_trial_group, quic_trial_params,
|
||||
is_quic_force_disabled, is_quic_force_enabled);
|
||||
-
|
||||
params->enable_server_push_cancellation =
|
||||
ShouldEnableServerPushCancelation(quic_trial_params);
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -79,8 +79,8 @@ diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profil
|
||||
- true,
|
||||
+ false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
#if defined(OS_ANDROID)
|
||||
registry->RegisterStringPref(
|
||||
registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true);
|
||||
registry->RegisterStringPref(prefs::kSessionExitType, std::string());
|
||||
diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
--- a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
+++ b/chrome/browser/resources/settings/reset_page/reset_profile_dialog.html
|
||||
|
||||
@@ -22,9 +22,8 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
|
||||
.../chrome/browser/ChromeActivity.java | 34 -------
|
||||
.../browser/preferences/MainPreferences.java | 86 +-----------------
|
||||
.../DataReductionPreferenceFragment.java | 24 ++---
|
||||
.../privacy/PrivacyPreferences.java | 15 ----
|
||||
.../privacy/PrivacyPreferences.java | 7 --
|
||||
.../sync/SyncAndServicesPreferences.java | 8 --
|
||||
.../preferences/sync/SyncPreferenceUtils.java | 3 -
|
||||
.../chrome/browser/signin/SigninManager.java | 71 ++-------------
|
||||
.../java/strings/android_chrome_strings.grd | 18 ----
|
||||
.../android/signin/signin_manager_android.cc | 1 -
|
||||
@@ -34,7 +33,7 @@ ld.lld: error: undefined symbol: notifier::NotifierOptions::NotifierOptions()
|
||||
.../components/sync/AndroidSyncSettings.java | 24 +----
|
||||
.../net/HttpNegotiateAuthenticator.java | 88 +------------------
|
||||
.../chromoting/base/OAuthTokenFetcher.java | 2 -
|
||||
18 files changed, 26 insertions(+), 458 deletions(-)
|
||||
17 files changed, 26 insertions(+), 447 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
|
||||
--- a/chrome/android/BUILD.gn
|
||||
@@ -460,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/dat
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -24,7 +24,6 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||
@@ -23,7 +23,6 @@ import org.chromium.chrome.browser.preferences.Pref;
|
||||
import org.chromium.chrome.browser.preferences.PrefServiceBridge;
|
||||
import org.chromium.chrome.browser.preferences.PreferenceUtils;
|
||||
import org.chromium.chrome.browser.preferences.PreferencesLauncher;
|
||||
@@ -468,7 +467,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog;
|
||||
import org.chromium.ui.text.NoUnderlineClickableSpan;
|
||||
@@ -41,9 +40,6 @@ public class PrivacyPreferences
|
||||
@@ -39,9 +38,6 @@ public class PrivacyPreferences
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
private static final String PREF_DO_NOT_TRACK = "do_not_track";
|
||||
private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
|
||||
@@ -478,27 +477,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
|
||||
@@ -86,20 +82,9 @@ public class PrivacyPreferences
|
||||
networkPredictionPref.setOrder(canMakePaymentPref.getOrder());
|
||||
preferenceScreen.addPreference(networkPredictionPref);
|
||||
@@ -64,9 +60,6 @@ public class PrivacyPreferences
|
||||
networkPredictionPref.setOnPreferenceChangeListener(this);
|
||||
networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
- Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
|
||||
- NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> {
|
||||
- PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class,
|
||||
- SyncAndServicesPreferences.createArguments(false));
|
||||
- });
|
||||
- syncAndServicesLink.setSummary(
|
||||
- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
|
||||
- new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
|
||||
- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
- getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
-
|
||||
updateSummaries();
|
||||
return;
|
||||
}
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
|
||||
ChromeBaseCheckBoxPreference searchSuggestionsPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
|
||||
searchSuggestionsPref.setOnPreferenceChangeListener(this);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncAndServicesPreferences.java
|
||||
@@ -518,19 +506,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/syn
|
||||
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.sync_and_services_preferences);
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
|
||||
@@ -118,9 +118,6 @@ public class SyncPreferenceUtils {
|
||||
if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) {
|
||||
return res.getString(R.string.sync_need_passphrase);
|
||||
}
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
- return context.getString(R.string.sync_and_services_summary_sync_on);
|
||||
- }
|
||||
return context.getString(R.string.account_management_sync_summary, accountName);
|
||||
}
|
||||
return context.getString(R.string.sync_is_disabled);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninManager.java
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Sat, 4 Jan 2020 14:49:43 +0100
|
||||
Subject: Restore enable-horizontal-tab-switcher flag
|
||||
|
||||
---
|
||||
chrome/browser/flag-metadata.json | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
|
||||
--- a/chrome/browser/flag-metadata.json
|
||||
+++ b/chrome/browser/flag-metadata.json
|
||||
@@ -1360,7 +1360,7 @@
|
||||
{
|
||||
"name": "enable-horizontal-tab-switcher",
|
||||
"owners": [ "memex-team@9oo91e.qjz9zk" ],
|
||||
- "expiry_milestone": 77
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
"name": "enable-hosted-app-quit-notification",
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -3,11 +3,48 @@ Date: Mon, 14 Oct 2019 20:27:33 +0200
|
||||
Subject: Revert "[Merge to M78] Enable AImageReader by default."
|
||||
|
||||
This reverts commit 60c3d4531b180b911767fb3ea7c3553d7f408c25.
|
||||
---
|
||||
gpu/config/gpu_finch_features.cc | 2 +-
|
||||
media/base/media_switches.cc | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
Automatically disable hardware acceleration for Android Q on arm64
|
||||
---
|
||||
chrome/browser/android/chrome_startup_flags.cc | 9 +++++++++
|
||||
gpu/config/gpu_finch_features.cc | 2 +-
|
||||
gpu/ipc/service/gpu_init.cc | 8 ++------
|
||||
media/base/media_switches.cc | 2 +-
|
||||
4 files changed, 13 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/android/chrome_startup_flags.cc b/chrome/browser/android/chrome_startup_flags.cc
|
||||
--- a/chrome/browser/android/chrome_startup_flags.cc
|
||||
+++ b/chrome/browser/android/chrome_startup_flags.cc
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "chrome/browser/android/chrome_startup_flags.h"
|
||||
|
||||
+#include "base/android/build_info.h"
|
||||
#include "base/android/jni_android.h"
|
||||
#include "base/android/jni_string.h"
|
||||
#include "base/android/scoped_java_ref.h"
|
||||
@@ -16,6 +17,7 @@
|
||||
#include "chrome/common/chrome_switches.h"
|
||||
#include "components/browser_sync/browser_sync_switches.h"
|
||||
#include "components/dom_distiller/core/dom_distiller_switches.h"
|
||||
+#include "content/public/common/content_switches.h"
|
||||
#include "media/base/media_switches.h"
|
||||
|
||||
namespace {
|
||||
@@ -40,6 +42,13 @@ void SetChromeSpecificCommandLineFlags() {
|
||||
if (base::SysInfo::IsLowEndDevice())
|
||||
SetCommandLineSwitchASCII(switches::kDisableSyncTypes, "Favicon Images");
|
||||
|
||||
+#ifdef ARCH_CPU_ARM64
|
||||
+ // workaround for Android 10 "Q" arm64 crash
|
||||
+ if (base::android::BuildInfo::GetInstance()->sdk_int() > base::android::SDK_VERSION_P) {
|
||||
+ SetCommandLineSwitchASCII(switches::kDisableAcceleratedVideoDecode, "true");
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
// Enable DOM Distiller backend.
|
||||
SetCommandLineSwitch(switches::kEnableDomDistiller);
|
||||
}
|
||||
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
||||
--- a/gpu/config/gpu_finch_features.cc
|
||||
+++ b/gpu/config/gpu_finch_features.cc
|
||||
@@ -20,6 +57,31 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
|
||||
|
||||
// Use android SurfaceControl API for managing display compositor's buffer queue
|
||||
// and using overlays on Android.
|
||||
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
||||
--- a/gpu/ipc/service/gpu_init.cc
|
||||
+++ b/gpu/ipc/service/gpu_init.cc
|
||||
@@ -493,9 +493,7 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
|
||||
#if defined(OS_ANDROID)
|
||||
// Disable AImageReader if the workaround is enabled.
|
||||
- if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
- base::android::AndroidImageReader::DisableSupport();
|
||||
- }
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
#endif
|
||||
#if defined(USE_OZONE)
|
||||
gpu_feature_info_.supported_buffer_formats_for_allocation_and_texturing =
|
||||
@@ -523,9 +521,7 @@ void GpuInit::InitializeInProcess(base::CommandLine* command_line,
|
||||
default_offscreen_surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size());
|
||||
|
||||
// Disable AImageReader if the workaround is enabled.
|
||||
- if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
- base::android::AndroidImageReader::DisableSupport();
|
||||
- }
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
|
||||
UMA_HISTOGRAM_ENUMERATION("GPU.GLImplementation", gl::GetGLImplementation());
|
||||
}
|
||||
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
|
||||
|
||||
+116
-168
@@ -6,68 +6,71 @@ Subject: Revert "Remove pre unified consent code in sync and privacy
|
||||
This reverts commit c672a0683e89eba3554e2562156b3c8532136f21.
|
||||
|
||||
Restore translations
|
||||
Restore contextual search preference toggle
|
||||
Disable unified consent on Android
|
||||
Unified consent miscellanous backport fixes
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 30 ++++
|
||||
.../privacy/PrivacyPreferences.java | 159 ++++++++++++++++--
|
||||
.../preferences/sync/SyncPreferenceUtils.java | 5 +-
|
||||
.../sync/SyncNotificationController.java | 17 +-
|
||||
.../java/strings/android_chrome_strings.grd | 15 ++
|
||||
.../android_chrome_strings_am.xtb | 19 ++-
|
||||
.../android_chrome_strings_ar.xtb | 19 ++-
|
||||
.../android_chrome_strings_bg.xtb | 19 ++-
|
||||
.../android_chrome_strings_bn.xtb | 19 ++-
|
||||
.../android_chrome_strings_ca.xtb | 19 ++-
|
||||
.../android_chrome_strings_cs.xtb | 19 ++-
|
||||
.../android_chrome_strings_da.xtb | 19 ++-
|
||||
.../android_chrome_strings_de.xtb | 19 ++-
|
||||
.../android_chrome_strings_el.xtb | 19 ++-
|
||||
.../android_chrome_strings_en-GB.xtb | 19 ++-
|
||||
.../android_chrome_strings_es-419.xtb | 19 ++-
|
||||
.../android_chrome_strings_es.xtb | 19 ++-
|
||||
.../android_chrome_strings_et.xtb | 19 ++-
|
||||
.../android_chrome_strings_fa.xtb | 19 ++-
|
||||
.../android_chrome_strings_fi.xtb | 19 ++-
|
||||
.../android_chrome_strings_fil.xtb | 19 ++-
|
||||
.../android_chrome_strings_fr.xtb | 19 ++-
|
||||
.../android_chrome_strings_gu.xtb | 19 ++-
|
||||
.../android_chrome_strings_hi.xtb | 19 ++-
|
||||
.../android_chrome_strings_hr.xtb | 19 ++-
|
||||
.../android_chrome_strings_hu.xtb | 19 ++-
|
||||
.../android_chrome_strings_id.xtb | 19 ++-
|
||||
.../android_chrome_strings_it.xtb | 19 ++-
|
||||
.../android_chrome_strings_iw.xtb | 19 ++-
|
||||
.../android_chrome_strings_ja.xtb | 19 ++-
|
||||
.../android_chrome_strings_kn.xtb | 19 ++-
|
||||
.../android_chrome_strings_ko.xtb | 19 ++-
|
||||
.../android_chrome_strings_lt.xtb | 19 ++-
|
||||
.../android_chrome_strings_lv.xtb | 19 ++-
|
||||
.../android_chrome_strings_ml.xtb | 19 ++-
|
||||
.../android_chrome_strings_mr.xtb | 19 ++-
|
||||
.../android_chrome_strings_ms.xtb | 19 ++-
|
||||
.../android_chrome_strings_nl.xtb | 19 ++-
|
||||
.../android_chrome_strings_no.xtb | 19 ++-
|
||||
.../android_chrome_strings_pl.xtb | 19 ++-
|
||||
.../android_chrome_strings_pt-BR.xtb | 19 ++-
|
||||
.../android_chrome_strings_pt-PT.xtb | 19 ++-
|
||||
.../android_chrome_strings_ro.xtb | 19 ++-
|
||||
.../android_chrome_strings_ru.xtb | 19 ++-
|
||||
.../android_chrome_strings_sk.xtb | 19 ++-
|
||||
.../android_chrome_strings_sl.xtb | 19 ++-
|
||||
.../android_chrome_strings_sr.xtb | 19 ++-
|
||||
.../android_chrome_strings_sv.xtb | 19 ++-
|
||||
.../android_chrome_strings_sw.xtb | 19 ++-
|
||||
.../android_chrome_strings_ta.xtb | 19 ++-
|
||||
.../android_chrome_strings_te.xtb | 19 ++-
|
||||
.../android_chrome_strings_th.xtb | 19 ++-
|
||||
.../android_chrome_strings_tr.xtb | 19 ++-
|
||||
.../android_chrome_strings_uk.xtb | 19 ++-
|
||||
.../android_chrome_strings_vi.xtb | 19 ++-
|
||||
.../android_chrome_strings_zh-CN.xtb | 19 ++-
|
||||
.../android_chrome_strings_zh-TW.xtb | 19 ++-
|
||||
.../java/res/xml/privacy_preferences.xml | 26 +++++
|
||||
.../privacy/PrivacyPreferences.java | 103 +++++++++++++++---
|
||||
.../preferences/sync/SyncPreferenceUtils.java | 2 +-
|
||||
.../sync/SyncNotificationController.java | 11 +-
|
||||
.../java/strings/android_chrome_strings.grd | 15 +++
|
||||
.../android_chrome_strings_am.xtb | 19 +++-
|
||||
.../android_chrome_strings_ar.xtb | 19 +++-
|
||||
.../android_chrome_strings_bg.xtb | 19 +++-
|
||||
.../android_chrome_strings_bn.xtb | 19 +++-
|
||||
.../android_chrome_strings_ca.xtb | 19 +++-
|
||||
.../android_chrome_strings_cs.xtb | 19 +++-
|
||||
.../android_chrome_strings_da.xtb | 19 +++-
|
||||
.../android_chrome_strings_de.xtb | 19 +++-
|
||||
.../android_chrome_strings_el.xtb | 19 +++-
|
||||
.../android_chrome_strings_en-GB.xtb | 19 +++-
|
||||
.../android_chrome_strings_es-419.xtb | 19 +++-
|
||||
.../android_chrome_strings_es.xtb | 19 +++-
|
||||
.../android_chrome_strings_et.xtb | 19 +++-
|
||||
.../android_chrome_strings_fa.xtb | 19 +++-
|
||||
.../android_chrome_strings_fi.xtb | 19 +++-
|
||||
.../android_chrome_strings_fil.xtb | 19 +++-
|
||||
.../android_chrome_strings_fr.xtb | 19 +++-
|
||||
.../android_chrome_strings_gu.xtb | 19 +++-
|
||||
.../android_chrome_strings_hi.xtb | 19 +++-
|
||||
.../android_chrome_strings_hr.xtb | 19 +++-
|
||||
.../android_chrome_strings_hu.xtb | 19 +++-
|
||||
.../android_chrome_strings_id.xtb | 19 +++-
|
||||
.../android_chrome_strings_it.xtb | 19 +++-
|
||||
.../android_chrome_strings_iw.xtb | 19 +++-
|
||||
.../android_chrome_strings_ja.xtb | 19 +++-
|
||||
.../android_chrome_strings_kn.xtb | 19 +++-
|
||||
.../android_chrome_strings_ko.xtb | 19 +++-
|
||||
.../android_chrome_strings_lt.xtb | 19 +++-
|
||||
.../android_chrome_strings_lv.xtb | 19 +++-
|
||||
.../android_chrome_strings_ml.xtb | 19 +++-
|
||||
.../android_chrome_strings_mr.xtb | 19 +++-
|
||||
.../android_chrome_strings_ms.xtb | 19 +++-
|
||||
.../android_chrome_strings_nl.xtb | 19 +++-
|
||||
.../android_chrome_strings_no.xtb | 19 +++-
|
||||
.../android_chrome_strings_pl.xtb | 19 +++-
|
||||
.../android_chrome_strings_pt-BR.xtb | 19 +++-
|
||||
.../android_chrome_strings_pt-PT.xtb | 19 +++-
|
||||
.../android_chrome_strings_ro.xtb | 19 +++-
|
||||
.../android_chrome_strings_ru.xtb | 19 +++-
|
||||
.../android_chrome_strings_sk.xtb | 19 +++-
|
||||
.../android_chrome_strings_sl.xtb | 19 +++-
|
||||
.../android_chrome_strings_sr.xtb | 19 +++-
|
||||
.../android_chrome_strings_sv.xtb | 19 +++-
|
||||
.../android_chrome_strings_sw.xtb | 19 +++-
|
||||
.../android_chrome_strings_ta.xtb | 19 +++-
|
||||
.../android_chrome_strings_te.xtb | 19 +++-
|
||||
.../android_chrome_strings_th.xtb | 19 +++-
|
||||
.../android_chrome_strings_tr.xtb | 19 +++-
|
||||
.../android_chrome_strings_uk.xtb | 19 +++-
|
||||
.../android_chrome_strings_vi.xtb | 19 +++-
|
||||
.../android_chrome_strings_zh-CN.xtb | 19 +++-
|
||||
.../android_chrome_strings_zh-TW.xtb | 19 +++-
|
||||
.../chrome/browser/sync/SyncTestRule.java | 9 +-
|
||||
.../chromium/chrome/browser/sync/UkmTest.java | 50 +++++-
|
||||
59 files changed, 1200 insertions(+), 73 deletions(-)
|
||||
.../chromium/chrome/browser/sync/UkmTest.java | 50 ++++++++-
|
||||
chrome/browser/profiles/profile.cc | 6 -
|
||||
.../unified_consent_service_factory.cc | 5 +-
|
||||
61 files changed, 1130 insertions(+), 85 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
|
||||
@@ -97,7 +100,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
<org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference
|
||||
android:key="can_make_payment"
|
||||
android:title="@string/can_make_payment_title"
|
||||
@@ -19,15 +37,27 @@
|
||||
@@ -19,6 +37,10 @@
|
||||
android:key="usage_stats_reporting"
|
||||
android:title="@string/usage_stats_setting_title"
|
||||
android:persistent="false" />
|
||||
@@ -108,13 +111,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
<Preference
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.DoNotTrackPreference"
|
||||
android:key="do_not_track"
|
||||
android:title="@string/do_not_track_title" />
|
||||
+ <android.support.v7.preference.Preference
|
||||
+ android:key="contextual_search"
|
||||
+ android:title="@string/contextual_search_title"
|
||||
+ android:fragment="org.chromium.chrome.browser.preferences.privacy.ContextualSearchPreferenceFragment" />
|
||||
<Preference
|
||||
android:key="clear_browsing_data"
|
||||
@@ -28,6 +50,10 @@
|
||||
android:title="@string/clear_browsing_data_title"
|
||||
android:summary="@string/clear_browsing_data_summary"
|
||||
android:fragment="org.chromium.chrome.browser.preferences.privacy.ClearBrowsingDataTabsFragment" />
|
||||
@@ -128,23 +125,15 @@ 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/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -9,12 +9,15 @@ import android.support.graphics.drawable.VectorDrawableCompat;
|
||||
import android.support.v7.preference.CheckBoxPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceFragmentCompat;
|
||||
+import android.support.v7.preference.PreferenceScreen;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
@@ -15,6 +15,7 @@ import android.view.MenuItem;
|
||||
|
||||
import org.chromium.base.BuildInfo;
|
||||
import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.ChromeFeatureList;
|
||||
+import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
|
||||
import org.chromium.chrome.browser.help.HelpAndFeedback;
|
||||
import org.chromium.chrome.browser.preferences.ChromeBaseCheckBoxPreference;
|
||||
import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate;
|
||||
@@ -33,11 +36,21 @@ import org.chromium.ui.text.SpanApplier;
|
||||
@@ -33,18 +34,24 @@ import org.chromium.ui.text.SpanApplier;
|
||||
*/
|
||||
public class PrivacyPreferences
|
||||
extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
@@ -154,11 +143,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
+ "safe_browsing_scout_reporting";
|
||||
+ 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";
|
||||
private static final String PREF_NETWORK_PREDICTIONS = "preload_pages";
|
||||
- private static final String PREF_USAGE_STATS = "usage_stats_reporting";
|
||||
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";
|
||||
+ private static final String PREF_SYNC_AND_SERVICES_LINK_DIVIDER =
|
||||
+ "sync_and_services_link_divider";
|
||||
@@ -167,15 +154,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
|
||||
@@ -49,6 +62,7 @@ public class PrivacyPreferences
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
|
||||
- privacyPrefManager.migrateNetworkPredictionPreferences();
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
|
||||
getActivity().setTitle(R.string.prefs_privacy);
|
||||
setHasOptionsMenu(true);
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
+ PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||
|
||||
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
|
||||
|
||||
@@ -62,26 +76,90 @@ public class PrivacyPreferences
|
||||
@@ -62,26 +69,51 @@ public class PrivacyPreferences
|
||||
networkPredictionPref.setOnPreferenceChangeListener(this);
|
||||
networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
@@ -187,41 +173,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
- syncAndServicesLink.setSummary(
|
||||
- SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
|
||||
- new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
|
||||
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
+ // Remove preferences that were migrated to SyncAndServicesPreferences.
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_NAVIGATION_ERROR));
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING_SCOUT_REPORTING));
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_SAFE_BROWSING));
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_USAGE_AND_CRASH_REPORTING));
|
||||
+
|
||||
+ // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch.
|
||||
+ networkPredictionPref.setTitle(R.string.preload_pages_title);
|
||||
+ networkPredictionPref.setSummary(R.string.preload_pages_summary);
|
||||
+
|
||||
+ // Put networkPredictionPref after canMakePaymentPref by overriding order value.
|
||||
+ // However, calling setOrder doesn't change existing order if Preference has already
|
||||
+ // been added to PreferenceGroup. Remove and re-add it to work around this.
|
||||
+ // TODO(https://crbug.com/846376): Reorder prefs in XML after UNIFIED_CONSENT launch.
|
||||
+ preferenceScreen.removePreference(networkPredictionPref);
|
||||
+ networkPredictionPref.setOrder(canMakePaymentPref.getOrder());
|
||||
+ preferenceScreen.addPreference(networkPredictionPref);
|
||||
+
|
||||
+ Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
|
||||
+ NoUnderlineClickableSpan linkSpan = new NoUnderlineClickableSpan(getResources(), view -> {
|
||||
+ PreferencesLauncher.launchSettingsPage(getActivity(), SyncAndServicesPreferences.class,
|
||||
+ SyncAndServicesPreferences.createArguments(false));
|
||||
+ });
|
||||
+ syncAndServicesLink.setSummary(
|
||||
+ SpanApplier.applySpans(getString(R.string.privacy_sync_and_services_link),
|
||||
+ new SpanApplier.SpanInfo("<link>", "</link>", linkSpan)));
|
||||
+
|
||||
+ updateSummaries();
|
||||
+ return;
|
||||
+ }
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK_DIVIDER));
|
||||
+ getPreferenceScreen().removePreference(findPreference(PREF_SYNC_AND_SERVICES_LINK));
|
||||
+
|
||||
+ ChromeBaseCheckBoxPreference navigationErrorPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(PREF_NAVIGATION_ERROR);
|
||||
@@ -233,10 +186,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
+ searchSuggestionsPref.setOnPreferenceChangeListener(this);
|
||||
+ searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
+
|
||||
+ if (!ContextualSearchFieldTrial.isEnabled()) {
|
||||
+ preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
+ }
|
||||
+
|
||||
+ // Listen to changes to the Extended Reporting pref.
|
||||
+ ChromeBaseCheckBoxPreference scoutReportingPref =
|
||||
+ (ChromeBaseCheckBoxPreference) findPreference(
|
||||
@@ -270,20 +219,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
PrefServiceBridge.getInstance().setNetworkPredictionEnabled((boolean) newValue);
|
||||
+ } else if (PREF_NAVIGATION_ERROR.equals(key)) {
|
||||
+ PrefServiceBridge.getInstance().setResolveNavigationErrorEnabled((boolean) newValue);
|
||||
+ } else if (PREF_CONTEXTUAL_SEARCH.equals(key)) {
|
||||
+ PrefServiceBridge.getInstance().setContextualSearchPreference(((boolean) newValue) ? "true" : "false");
|
||||
+ } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
|
||||
+ PrefServiceBridge.getInstance().setBoolean(
|
||||
+ Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -98,6 +176,36 @@ public class PrivacyPreferences
|
||||
*/
|
||||
@@ -99,6 +131,35 @@ public class PrivacyPreferences
|
||||
public void updateSummaries() {
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
+ PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
|
||||
+
|
||||
|
||||
+ CharSequence textOn = getActivity().getResources().getText(R.string.text_on);
|
||||
+ CharSequence textOff = getActivity().getResources().getText(R.string.text_off);
|
||||
+
|
||||
@@ -312,30 +257,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
+ if (safeBrowsingPref != null) {
|
||||
+ safeBrowsingPref.setChecked(prefServiceBridge.isSafeBrowsingEnabled());
|
||||
+ }
|
||||
|
||||
+
|
||||
CheckBoxPreference canMakePaymentPref =
|
||||
(CheckBoxPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
|
||||
@@ -112,6 +220,19 @@ public class PrivacyPreferences
|
||||
prefServiceBridge.isDoNotTrackEnabled() ? R.string.text_on : R.string.text_off);
|
||||
}
|
||||
|
||||
+ Preference contextualPref = findPreference(PREF_CONTEXTUAL_SEARCH);
|
||||
+ if (contextualPref != null) {
|
||||
+ boolean isContextualSearchEnabled = !prefServiceBridge.isContextualSearchDisabled();
|
||||
+ contextualPref.setSummary(isContextualSearchEnabled ? textOn : textOff);
|
||||
+ }
|
||||
+
|
||||
+ Preference usageAndCrashPref = findPreference(PREF_USAGE_AND_CRASH_REPORTING);
|
||||
+ if (usageAndCrashPref != null) {
|
||||
+ usageAndCrashPref.setSummary(
|
||||
+ privacyPrefManager.isUsageAndCrashReportingPermittedByUser() ? textOn
|
||||
+ : textOff);
|
||||
+ }
|
||||
+
|
||||
Preference usageStatsPref = findPreference(PREF_USAGE_STATS);
|
||||
if (usageStatsPref != null) {
|
||||
if (BuildInfo.isAtLeastQ() && prefServiceBridge.getBoolean(Pref.USAGE_STATS_ENABLED)) {
|
||||
@@ -136,6 +257,18 @@ public class PrivacyPreferences
|
||||
if (canMakePaymentPref != null) {
|
||||
@@ -136,6 +197,18 @@ public class PrivacyPreferences
|
||||
return preference -> {
|
||||
String key = preference.getKey();
|
||||
PrefServiceBridge prefs = PrefServiceBridge.getInstance();
|
||||
@@ -357,14 +283,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/pri
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/sync/SyncPreferenceUtils.java
|
||||
@@ -118,7 +118,10 @@ public class SyncPreferenceUtils {
|
||||
@@ -118,7 +118,7 @@ public class SyncPreferenceUtils {
|
||||
if (profileSyncService.isPassphraseRequiredForPreferredDataTypes()) {
|
||||
return res.getString(R.string.sync_need_passphrase);
|
||||
}
|
||||
- return context.getString(R.string.sync_and_services_summary_sync_on);
|
||||
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
+ return context.getString(R.string.sync_and_services_summary_sync_on);
|
||||
+ }
|
||||
+ return context.getString(R.string.account_management_sync_summary, accountName);
|
||||
}
|
||||
return context.getString(R.string.sync_is_disabled);
|
||||
@@ -394,22 +317,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotifi
|
||||
import org.chromium.chrome.browser.sync.GoogleServiceAuthError.State;
|
||||
import org.chromium.chrome.browser.sync.ui.PassphraseActivity;
|
||||
import org.chromium.components.sync.AndroidSyncSettings;
|
||||
@@ -154,9 +157,17 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC
|
||||
@@ -154,9 +157,11 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC
|
||||
* @return the intent for opening the settings
|
||||
*/
|
||||
private Intent createSettingsIntent() {
|
||||
- return PreferencesLauncher.createIntentForSettingsPage(ContextUtils.getApplicationContext(),
|
||||
- SyncAndServicesPreferences.class.getName(),
|
||||
- SyncAndServicesPreferences.createArguments(false));
|
||||
+ final String fragmentName;
|
||||
+ final Bundle fragmentArguments;
|
||||
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
+ fragmentName = SyncAndServicesPreferences.class.getName();
|
||||
+ fragmentArguments = SyncAndServicesPreferences.createArguments(false);
|
||||
+ } else {
|
||||
+ fragmentName = AccountManagementFragment.class.getName();
|
||||
+ fragmentArguments = null;
|
||||
+ }
|
||||
+ final String fragmentName = AccountManagementFragment.class.getName();
|
||||
+ final Bundle fragmentArguments = null;
|
||||
+
|
||||
+ return PreferencesLauncher.createIntentForSettingsPage(
|
||||
+ ContextUtils.getApplicationContext(), fragmentName, fragmentArguments);
|
||||
}
|
||||
@@ -1954,6 +1871,37 @@ diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/sync/UkmTe
|
||||
+ }
|
||||
}
|
||||
}
|
||||
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
|
||||
--- a/chrome/browser/profiles/profile.cc
|
||||
+++ b/chrome/browser/profiles/profile.cc
|
||||
@@ -151,12 +151,6 @@ void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
prefs::kSearchSuggestEnabled,
|
||||
true,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
-#if defined(OS_ANDROID)
|
||||
- registry->RegisterStringPref(
|
||||
- prefs::kContextualSearchEnabled,
|
||||
- std::string(),
|
||||
- user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
-#endif // defined(OS_ANDROID)
|
||||
registry->RegisterBooleanPref(prefs::kSessionExitedCleanly, true);
|
||||
registry->RegisterStringPref(prefs::kSessionExitType, std::string());
|
||||
registry->RegisterInt64Pref(prefs::kSiteEngagementLastUpdateTime, 0,
|
||||
diff --git a/chrome/browser/unified_consent/unified_consent_service_factory.cc b/chrome/browser/unified_consent/unified_consent_service_factory.cc
|
||||
--- a/chrome/browser/unified_consent/unified_consent_service_factory.cc
|
||||
+++ b/chrome/browser/unified_consent/unified_consent_service_factory.cc
|
||||
@@ -36,10 +36,7 @@ std::vector<std::string> GetSyncedServicePrefNames() {
|
||||
return {
|
||||
prefs::kSearchSuggestEnabled, prefs::kAlternateErrorPagesEnabled,
|
||||
prefs::kSafeBrowsingEnabled, prefs::kSafeBrowsingScoutReportingEnabled,
|
||||
- spellcheck::prefs::kSpellCheckUseSpellingService,
|
||||
-#if defined(OS_ANDROID)
|
||||
- prefs::kContextualSearchEnabled
|
||||
-#endif
|
||||
+ spellcheck::prefs::kSpellCheckUseSpellingService
|
||||
};
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
From: csagan5 <32685696+csagan5@users.noreply.github.com>
|
||||
Date: Wed, 18 Dec 2019 23:54:37 +0100
|
||||
Subject: Unified consent miscellanous backport fixes
|
||||
|
||||
---
|
||||
.../privacy/PrivacyPreferences.java | 26 -------------------
|
||||
.../sync/SyncNotificationController.java | 12 +++------
|
||||
2 files changed, 3 insertions(+), 35 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferences.java
|
||||
@@ -10,7 +10,6 @@ import android.support.graphics.drawable.VectorDrawableCompat;
|
||||
import android.support.v7.preference.CheckBoxPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceFragmentCompat;
|
||||
-import android.support.v7.preference.PreferenceScreen;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
@@ -50,13 +49,10 @@ public class PrivacyPreferences
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
|
||||
- privacyPrefManager.migrateNetworkPredictionPreferences();
|
||||
PreferenceUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
|
||||
getActivity().setTitle(R.string.prefs_privacy);
|
||||
setHasOptionsMenu(true);
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
- PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||
|
||||
mManagedPreferenceDelegate = createManagedPreferenceDelegate();
|
||||
|
||||
@@ -70,27 +66,6 @@ public class PrivacyPreferences
|
||||
networkPredictionPref.setOnPreferenceChangeListener(this);
|
||||
networkPredictionPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
|
||||
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
- // Remove preferences that were migrated to SyncAndServicesPreferences.
|
||||
- preferenceScreen.removePreference(findPreference(PREF_SEARCH_SUGGESTIONS));
|
||||
- preferenceScreen.removePreference(findPreference(PREF_CONTEXTUAL_SEARCH));
|
||||
-
|
||||
- // TODO(https://crbug.com/846376): Update strings in XML after UNIFIED_CONSENT launch.
|
||||
- networkPredictionPref.setTitle(R.string.preload_pages_title);
|
||||
- networkPredictionPref.setSummary(R.string.preload_pages_summary);
|
||||
-
|
||||
- // Put networkPredictionPref after canMakePaymentPref by overriding order value.
|
||||
- // However, calling setOrder doesn't change existing order if Preference has already
|
||||
- // been added to PreferenceGroup. Remove and re-add it to work around this.
|
||||
- // TODO(https://crbug.com/846376): Reorder prefs in XML after UNIFIED_CONSENT launch.
|
||||
- preferenceScreen.removePreference(networkPredictionPref);
|
||||
- networkPredictionPref.setOrder(canMakePaymentPref.getOrder());
|
||||
- preferenceScreen.addPreference(networkPredictionPref);
|
||||
-
|
||||
- updateSummaries();
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
ChromeBaseCheckBoxPreference searchSuggestionsPref =
|
||||
(ChromeBaseCheckBoxPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
|
||||
searchSuggestionsPref.setOnPreferenceChangeListener(this);
|
||||
@@ -135,7 +110,6 @@ public class PrivacyPreferences
|
||||
*/
|
||||
public void updateSummaries() {
|
||||
PrefServiceBridge prefServiceBridge = PrefServiceBridge.getInstance();
|
||||
- PrivacyPreferencesManager privacyPrefManager = PrivacyPreferencesManager.getInstance();
|
||||
|
||||
CharSequence textOn = getActivity().getResources().getText(R.string.text_on);
|
||||
CharSequence textOff = getActivity().getResources().getText(R.string.text_off);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/SyncNotificationController.java
|
||||
@@ -157,15 +157,9 @@ public class SyncNotificationController implements ProfileSyncService.SyncStateC
|
||||
* @return the intent for opening the settings
|
||||
*/
|
||||
private Intent createSettingsIntent() {
|
||||
- final String fragmentName;
|
||||
- final Bundle fragmentArguments;
|
||||
- if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) {
|
||||
- fragmentName = SyncAndServicesPreferences.class.getName();
|
||||
- fragmentArguments = SyncAndServicesPreferences.createArguments(false);
|
||||
- } else {
|
||||
- fragmentName = AccountManagementFragment.class.getName();
|
||||
- fragmentArguments = null;
|
||||
- }
|
||||
+ final String fragmentName = AccountManagementFragment.class.getName();
|
||||
+ final Bundle fragmentArguments = null;
|
||||
+
|
||||
return PreferencesLauncher.createIntentForSettingsPage(
|
||||
ContextUtils.getApplicationContext(), fragmentName, fragmentArguments);
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -18,7 +18,7 @@ diff --git a/components/version_info/version_info.cc b/components/version_info/v
|
||||
std::string GetProductNameAndVersionForUserAgent() {
|
||||
- return "Chrome/" + GetVersionNumber();
|
||||
+ // latest stable version
|
||||
+ return "Chrome/79.0.3945.79";
|
||||
+ return "Chrome/79.0.3945.93";
|
||||
}
|
||||
|
||||
std::string GetProductName() {
|
||||
|
||||
Reference in New Issue
Block a user