Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e60f506 authored by Aayush Gupta's avatar Aayush Gupta
Browse files

Merge tag 86.0.4240.194 from bromite



57855660 Release 86.0.4240.194
f444a7db Merge pull request #802 from uazo/fix-791
200c855c Fix missing index lines
36e72671 Revert the removal of an option to block autoplay
a3d4ff73 Merge pull request #796 from uazo/fix-789
bc9eead9 Merge pull request #800 from uazo/fix-780
b886ead2 removed useless flag
52588960 restore search ready omnibox flags behaviour
66cded0c fix transition from and to webui with new flag enabled
bbd0f8c5 add a option to exclude internal schemes
b2a36c11 merge from master
58395a30 fix 789

Signed-off-by: Aayush Gupta's avatarAayush Gupta <theimpulson@e.email>
parents 6599c760 57855660
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
# 86.0.4240.194
* fix native pages displaying incorrectly with the sticky desktop mode (thanks to @uazo)
* re-introduce simplified NTP (fixes https://github.com/bromite/bromite/issues/701)
* re-introduce site settings to block autoplay (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/791)
* fix Omnibox flag not working (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/789)

# 86.0.4240.181
* allow sticky desktop mode for all tabs (thanks to @uazo, fixes https://github.com/bromite/bromite/issues/780)

+8 −0
Original line number Diff line number Diff line
@@ -116,6 +116,8 @@ No; Bromite will support extensions only if upstream (Chromium) does, or similar
* 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
* security enhancement patches from [GrapheneOS](https://github.com/GrapheneOS) project
* disable scroll-to-text-fragment
* reduced referer granularity
* block gateway attacks via websockets

## Features not related to privacy
* import/export bookmarks
@@ -130,6 +132,11 @@ No; Bromite will support extensions only if upstream (Chromium) does, or similar
* do not ignore save prompt for users without SD cards
* disable articles and increase number of icons on new tab page
* adding an URL as bookmark will clear its blocked status for the NTP tiles
* history support in incognito mode
* view source of pages
* timezone customization
* sticky desktop mode setting
* disable video autoplay by default

You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md).

@@ -141,6 +148,7 @@ Flags which have been retired from upstream Chromium but are still available in
* `#pull-to-refresh`
* `#enable-search-ready-omnibox`
* `#darken-websites-checkbox-in-themes-setting`
* `#simplified-ntp`

New flags:

+1 −1
Original line number Diff line number Diff line
86.0.4240.181
86.0.4240.194
+3 −1
Original line number Diff line number Diff line
@@ -147,5 +147,7 @@ Hardening-against-incognito-mode-detection.patch
Remove-weblayer-dependency-on-Play-Services.patch
Timezone-customization.patch
Move-some-account-settings-back-to-privacy-settings.patch
Add-a-flag-to-always-view-desktop-site-for-all-websites.patch
Add-flag-to-always-view-the-desktop-site-for-all-websites.patch
Revert-Remove-some-obsolete-NTP-code-post-Simplified-NTP-launch.patch
Revert-the-removal-of-an-option-to-block-autoplay.patch
Automated-domain-substitution.patch
+55 −30
Original line number Diff line number Diff line
@@ -6,20 +6,20 @@ Subject: Add flag to always view the desktop site for all websites
 chrome/android/chrome_java_resources.gni      |  1 +
 chrome/android/chrome_java_sources.gni        |  1 +
 .../android/java/res/xml/main_preferences.xml |  5 ++
 .../java/res/xml/useragent_preferences.xml    | 30 ++++++++++
 .../chrome/browser/app/ChromeActivity.java    | 17 +++++-
 .../settings/UserAgentPreferences.java        | 59 +++++++++++++++++++
 .../chromium/chrome/browser/tab/TabImpl.java  | 51 +++++++++++++++-
 .../browser/tabmodel/TabWindowManager.java    | 20 +++++++
 .../java/res/xml/useragent_preferences.xml    | 30 ++++++++
 .../chrome/browser/app/ChromeActivity.java    | 17 ++++-
 .../settings/UserAgentPreferences.java        | 60 +++++++++++++++
 .../chromium/chrome/browser/tab/TabImpl.java  | 75 ++++++++++++++++++-
 .../browser/tabmodel/TabWindowManager.java    | 20 +++++
 chrome/browser/android/tab_android.cc         |  5 +-
 chrome/browser/android/tab_android.h          |  3 +-
 .../preferences/ChromePreferenceKeys.java     |  7 ++-
 .../preferences/ChromePreferenceKeys.java     |  7 +-
 .../org/chromium/chrome/browser/tab/Tab.java  |  2 +
 .../strings/android_chrome_strings.grd        | 14 +++++
 .../strings/android_chrome_strings.grd        | 14 ++++
 .../navigation_controller_android.cc          |  6 +-
 .../navigation_controller_android.h           |  3 +-
 .../framehost/NavigationControllerImpl.java   |  6 +-
 16 files changed, 218 insertions(+), 12 deletions(-)
 16 files changed, 243 insertions(+), 12 deletions(-)
 create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml
 create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java

@@ -133,7 +133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAg
new file mode 100644
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
@@ -0,0 +1,59 @@
@@ -0,0 +1,60 @@
+/*
+    This file is part of Bromite.
+
@@ -177,26 +177,27 @@ new file mode 100644
+
+        ChromeSwitchPreference alwaysDesktopModeSwitch =
+                (ChromeSwitchPreference) findPreference(PREF_STICK_DESKTOP_MODE_SWITCH);
+        if (alwaysDesktopModeSwitch != null) {
+        boolean enabled = SharedPreferencesManager.getInstance().readBoolean(
+            ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
+        alwaysDesktopModeSwitch.setChecked(enabled);
+        alwaysDesktopModeSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
+            SharedPreferencesManager.getInstance().writeBoolean(
+                ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, (boolean) newValue);
+            UpdateAllTabs();
+            return true;
+        });
+    }
+
+    private void UpdateAllTabs() {
+        final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
+            ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false);
+        TabWindowManager.getInstance().SetOverrideUserAgentForAllTabs(alwaysDesktopModeEnabled);
+                return true;
+            });
+        }
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -57,6 +57,10 @@ import org.chromium.ui.base.WindowAndroid;
@@ -57,6 +57,12 @@ import org.chromium.ui.base.WindowAndroid;
 import org.chromium.ui.util.ColorUtils;
 import org.chromium.url.GURL;
 import org.chromium.url.Origin;
@@ -204,18 +205,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
+import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
+import org.chromium.content_public.browser.navigation_controller.UserAgentOverrideOption;
+import org.chromium.content_public.browser.NavigationController;
+import org.chromium.components.embedder_support.util.UrlUtilities;
+import org.chromium.components.url_formatter.UrlFormatter;
 
 /**
  * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}.
@@ -446,6 +450,18 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
@@ -446,6 +452,31 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
                 throw new RuntimeException("Tab.loadUrl called when no native side exists");
             }
 
+            final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
+                ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
+            if (stickyDesktopModeEnabled) {
+                final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
+                boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
+                    ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false);
+
+                if (UrlUtilities.isInternalScheme(UrlFormatter.fixupUrl(params.getUrl()))) {
+                    alwaysDesktopModeEnabled = false;
+                }
+
+                WebContents webContents = this.getWebContents();
+                if (webContents != null) {
+                    NavigationController navigationController = webContents.getNavigationController();
+                    boolean currentUseDesktopUserAgent = navigationController.getUseDesktopUserAgent();
+                    if (currentUseDesktopUserAgent != alwaysDesktopModeEnabled)
+                        navigationController.setUseDesktopUserAgent(alwaysDesktopModeEnabled, false);
+                }
+
+                if (alwaysDesktopModeEnabled) {
+                    params.setOverrideUserAgent((int)UserAgentOverrideOption.TRUE);
+                } else {
@@ -226,7 +242,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
             // We load the URL from the tab rather than directly from the ContentView so the tab has
             // a chance of using a prerenderer page is any.
             int loadType = TabImplJni.get().loadUrl(mNativeTabAndroid, TabImpl.this,
@@ -458,7 +474,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
@@ -458,7 +489,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
                     params.getReferrer() != null ? params.getReferrer().getPolicy() : 0,
                     params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(),
                     params.getHasUserGesture(), params.getShouldClearHistoryList(),
@@ -236,7 +252,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
 
             for (TabObserver observer : mObservers) {
                 observer.onLoadUrl(this, params, loadType);
@@ -1380,6 +1397,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
@@ -1380,6 +1412,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
             if (mWebContents != null) mWebContents.getNavigationController().loadIfNecessary();
             mIsBeingRestored = true;
             for (TabObserver observer : mObservers) observer.onRestoreStarted(this);
@@ -247,16 +263,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
         } finally {
             TraceEvent.end("Tab.restoreIfNeeded");
         }
@@ -1497,6 +1518,31 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
@@ -1497,6 +1533,40 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
         }
     }
 
+    int overrideUserAgentWhenUnFrozen = (int)UserAgentOverrideOption.INHERIT;
+
+    public void SetOverrideUserAgent(boolean usingDesktopUserAgent) {
+        WebContents webContents = this.getWebContents();
+        overrideUserAgentWhenUnFrozen = UserAgentOverrideOption.INHERIT;
+
+        WebContents webContents = this.getWebContents();
+        if (usingDesktopUserAgent) {
+            GURL url = this.getUrl();
+            if (webContents == null && this.getPendingLoadParams() != null) {
+                url = UrlFormatter.fixupUrl(this.getPendingLoadParams().getUrl());
+            }
+            if (UrlUtilities.isInternalScheme(url) == true)
+                usingDesktopUserAgent = false;
+        }
+
+        if (webContents != null) {
+            NavigationController navigationController = webContents.getNavigationController();
+            navigationController.setUseDesktopUserAgent(
@@ -279,7 +304,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
     @NativeMethods
     interface Natives {
         void init(TabImpl caller);
@@ -1517,7 +1563,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
@@ -1517,7 +1587,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer {
                 String referrerUrl, int referrerPolicy, boolean isRendererInitiated,
                 boolean shoulReplaceCurrentEntry, boolean hasUserGesture,
                 boolean shouldClearHistoryList, long inputStartTimestamp,
Loading