AP9-5174 Update Chromium code to latest

Update the version to 101.0.4951.69.
Fix the conflicts.
This commit is contained in:
Yifeng Wu 2022-05-25 20:37:25 +08:00
parent 914c3b1359
commit e27c948d5e
17 changed files with 914 additions and 178 deletions

182
README.md
View file

@ -1,3 +1,185 @@
# Chromium Bromite patches + Promethean additions
This is a fork of the [Bromite repo on Github](https://github.com/bromite/bromite).
It contains a number of patches to Chromium that greatly increase
security and privacy and fix various annoyances.
One patch has been removed from the original Bromite distribution:
- Automated domain substitution
One patch has been modified:
- The Bromite adblock engine is disabled by default
# Build instructions
## Getting Chromium
Building requires a [properly set up
environment](https://chromium.googlesource.com/chromium/src/+/refs/tags/95.0.4638.78/docs/android_build_instructions.md#System-requirements). The
Promethean [builder machine](https://builder.waq.be) has the proper
dependencies installed.
The builder also has an existing Chromium checkout in
`/tank/chromium/src` and a checkout of this repo in
`/tank/chromium/bromite`. Before starting, you may wish to make a
clone of `/tank/chromium`:
```
sudo zfs snapshot tank/chromium@allen
sudo zfs clone tank/chromium@allen tank/chromium4allen
```
If you are not using the builder or wish to
start from scratch, follow the instructions to [install depot_tools]
and [get the code] but stop before the [Install additional build
dependencies](https://chromium.googlesource.com/chromium/src/+/refs/tags/95.0.4638.78/docs/android_build_instructions.md#Install-additional-build-dependencies)
section. If you're building on the builder box, skip that particular
instruction. Apply the patches before continuing.
## Prepare your environment
All the operations that follow assume you are in an updated checkout
of Chromium. It's advisable to set your `PATH` to where `gclient` is
located. For example:
```
export PATH=/tank/chromium4allen/depot_tools/:$PATH
cd /tank/chromium4allen/src
```
## Prepare Chromium
The patches are intended to be applied to the `101.0.4951.69` tag of
the Chromium repo. Before continuing, make sure you are on that tag in
the Chromium source repo:
```
git fetch origin
git checkout -B promethean-101.0.4951.69 101.0.4951.69
gclient sync --with_branch_heads --with_tags
gclient runhooks
```
Do a quick check to see if there are any new dependencies that might be missing:
```
./build/install-build-deps.sh --quick-check
```
Note: this does not do a comprehensive check for missing
dependencies. If you have troubles with the build, you may wish to run
`./build/install-build-deps.sh` to make sure dependencies are properly
installed.
## Applying the patches
Now apply the patches in correct order. Make sure you do this from the
`src/` directory of the Chromium checkout and set the `BROMITE_REPO`
variable to the location of this checkout:
```
export BROMITE_REPO=/tank/chromium4allen/bromite
for patchName in `cat $BROMITE_REPO/build/bromite_patches_list.txt`; do
git am $BROMITE_REPO/build/patches/$patchName || break
done
```
All patches should apply cleanly. If they did not, make sure you have
checked out the proper Chromium tag (101.0.4951.69).
## Getting the third dependencies
If you have added the third dependencies to `third_party/android_deps/build.gradle`,
you need to run `third_party/android_deps/fetch_all.py` to regenerate libs.
```
python3 third_party/android_deps/fetch_all.py --android-deps-dir third_party/android_deps/ --ignore-vulnerabilities --ignore-licenses
```
### How to add third dependencies
First, you need to add the configurations to `third_party/android_deps/build.gradle`,
like `compile 'com.prometheanworld:telemetry:0.3.2'`.
Also, if other configurations (such as `resource_overlay = true`, `enable_bytecode_checks = false`) are needed,
you need to add these configurations to `third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenerator.groovy`.
Secondly, if you want to use these libs on `chrome/android`, you need to add these to `chrome/android/BUILD.gn`.
If you don't know where to add, maybe you can run the build, the error message will tell you.
Finally, if you don't know how to begin with, maybe `Telemetry-event-video-full-screen.patch` will help you.
## Setting the build arguments
The arguments in `bromite/build/bromite.gn_args` must be used as the Chromium
build arguments. To do this, run `gn args` with the default args
file. You can optionally set your preferred editor. This is done from
the Chromium src directory:
```
EDITOR=vi gn args out/Default
```
Replace all the args with the contents of the `build/bromite.gn_args` file in this repo.
## Continuing the build
This command will build Chromium for the Android API 28 target. This
should produce a package with the highest level of optimization for
ActivPanel devices:
```
autoninja -C out/Default monochrome_public_apk
```
The resulting APK can be found at
`out/Default/apks/MonochromePublic.apk` in the Chromium source
directory.
(Original Bromite README follows)
## Merging upstream changes
Periodically the Bromite project will add new patches for
release. There is a specific process to add these to this repo which
should be followed to ensure a clean and maintainable Git history.
1. Make sure the upstream remote is established.
If you do not have an upstream remote, add it with:
git remote add upstream https://github.com/bromite/bromite.git
2. Retrieve the upstream changes
git fetch upstream
3. Find the latest Bromite release tag
git describe --tags --abbrev=0 upstream/master
This will give you output like `101.0.4951.69` which we'll use as an example going forward.
4. Create a new branch based on this tag
git checkout -b upstream-101.0.4951.69 101.0.4951.69
5. Rebase this branch on the current master
git rebase origin/master
If the rebase complete cleanly, you're done! Push the branch and open
a PR to master.
If you run into conflicts, there is more work to do. We want to keep
the upstream commits faithful to their original source. This means
collecting any conflicts and putting them into a separate commit. The
procedure is largely the same but start out by adding a commit with
the conflicts pre-resolved. Then rebase onto `origin/master` and -- if
the rebase succeeds cleanly -- push the new branch.
# Bromite - Take back your browser
<a href="https://github.com/bromite/bromite/releases/latest">
<img src="https://www.bromite.org/release.svg" alt="current Bromite release" title="current Bromite release" /> </a>

View file

@ -37,6 +37,8 @@ safe_browsing_mode=0
symbol_level=1
system_webview_package_name="org.bromite.webview"
target_os="android"
target_cpu="arm"
treat_warnings_as_errors=false
use_cfi_cast=true
use_debug_fission=true
use_errorprone_java_compiler=false

View file

@ -156,7 +156,6 @@ Allow-building-without-enable_reporting.patch
Disable-lock-icon-in-address-bar-by-default.patch
Enable-share-intent.patch
Site-setting-for-images.patch
Bromite-auto-updater.patch
Experimental-user-scripts-support.patch
Keep-empty-tabs-between-sessions.patch
Disable-third-party-origin-trials.patch
@ -189,10 +188,25 @@ Disable-TLS-resumption.patch
Partition-DNS-requests-by-top-frame-NIK.patch
Remove-mremap-from-seccomp-baseline-policy.patch
Move-navigation-bar-to-bottom.patch
Welcome-screen.patch
Content-settings-infrastructure.patch
Add-webGL-site-setting.patch
Add-site-engagement-flag.patch
Add-webRTC-site-settings.patch
enable-process-isolated-sandboxed-iframes-by-default.patch
Automated-domain-substitution.patch
Turn-AdBlock-off-by-default.patch
Force-tablet-mode.patch
Set-default-page-url.patch
change-Android-userAgent-to-deskmode-userAgent.patch
Force-accessibility-text-scaling.patch
Force-package-name-to-org.chromium.chrome.patch
Donot-stretch-when-force-enable-zoom-checked.patch
Force-desktop-mode.patch
Telemetry-event-video-full-screen.patch
Fix-google-web-apps-show-unsupported-message.patch
Update-telemetry-lib-implementation.patch
Fix-uncheck-desktop-site-no-effect.patch
Fix-not-current-site-when-tab-opened-blank-target.patch
Modify-default-url-AP9-5158.patch
Hide-bookmark-and-settings.patch
Fix-build-error-of-101_0_4951_69.patch

View file

@ -3,22 +3,9 @@ Date: Sun, 27 Feb 2022 23:58:22 +0100
Subject: Disable minidump upload scheduling
---
chrome/browser/endpoint_fetcher/endpoint_fetcher.cc | 2 +-
.../minidump_uploader/MinidumpUploadJobService.java | 5 ++++-
2 files changed, 5 insertions(+), 2 deletions(-)
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc b/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
--- a/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
+++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher.cc
@@ -337,7 +337,7 @@ void EndpointFetcher::OnResponseFetched(
auto response = std::make_unique<EndpointResponse>();
// TODO(crbug.com/993393) Add more detailed error messaging
std::string net_error = net::ErrorToString(simple_url_loader_->NetError());
- VLOG(1) << __func__ << " with response error: " << net_error;
+ LOG(ERROR) << __func__ << " with response error: " << net_error;
response->response = "There was a response error";
simple_url_loader_.reset();
std::move(endpoint_fetcher_callback).Run(std::move(response));
diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java
--- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java
+++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java

View file

@ -8,15 +8,15 @@ Refer to: https://prometheanworld.atlassian.net/browse/AP9-2791
---
content/browser/web_contents/web_contents_impl.cc | 2 +-
chrome/android/java/res/xml/accessibility_preferences.xml | 4 ++--
chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java | 8 ++++----
components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml | 4 ++--
components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java | 8 ++++----
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2849,9 +2849,9 @@
#if defined(OS_ANDROID)
@@ -2907,9 +2907,9 @@
#if BUILDFLAG(IS_ANDROID)
for (FrameTreeNode* node : primary_frame_tree_.Nodes()) {
RenderFrameHostImpl* rfh = node->current_frame_host();
if (rfh->is_local_root()) {
@ -26,11 +26,11 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
}
}
#endif
diff --git a/chrome/android/java/res/xml/accessibility_preferences.xml b/chrome/android/java/res/xml/accessibility_preferences.xml
--- a/chrome/android/java/res/xml/accessibility_preferences.xml
+++ b/chrome/android/java/res/xml/accessibility_preferences.xml
@@ -8,14 +8,14 @@
<org.chromium.chrome.browser.accessibility.settings.TextScalePreference
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
@@ -13,14 +13,14 @@
<org.chromium.components.browser_ui.accessibility.TextScalePreference
android:key="text_scale"
android:title="@string/font_size"
android:selectable="false" />
@ -46,18 +46,18 @@ diff --git a/chrome/android/java/res/xml/accessibility_preferences.xml b/chrome/
android:key="reader_for_accessibility"
android:summary="@string/reader_for_accessibility_summary"
android:title="@string/reader_for_accessibility_title" />
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
@@ -36,6 +36,6 @@
static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions";
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -33,6 +33,6 @@
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
private TextScalePreference mTextScalePref;
- private ChromeBaseCheckBoxPreference mForceEnableZoomPref;
+ //private ChromeBaseCheckBoxPreference mForceEnableZoomPref;
private boolean mRecordFontSizeChangeOnStop;
@@ -44,11 +44,11 @@
@@ -45,11 +45,11 @@
private FontSizePrefsObserver mFontSizePrefsObserver = new FontSizePrefsObserver() {
@Override
public void onFontScaleFactorChanged(float fontScaleFactor, float userFontScaleFactor) {
@ -70,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
+ //mForceEnableZoomPref.setChecked(enabled);
}
};
@@ -68,11 +68,11 @@
@@ -79,11 +79,11 @@
mTextScalePref = (TextScalePreference) findPreference(PREF_TEXT_SCALE);
mTextScalePref.setOnPreferenceChangeListener(this);
mTextScalePref.updateFontScaleFactors(mFontSizePrefs.getFontScaleFactor(),

View file

@ -0,0 +1,564 @@
From: Yifeng <wuyifeng@nd.com.cn>
Date: Wed, 29 Dec 2021 05:40:00 +0000
Subject: Fix the build error of 101.0.4951.69
---
chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java | 2 +-
chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java | 2 +-
chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java | 2 +-
chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java | 4 ++--
4 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
@@ -31,8 +31,6 @@ import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.fonts.FontPreloader;
import org.chromium.chrome.browser.metrics.UmaUtils;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
-import org.chromium.chrome.browser.signin.SigninFirstRunFragment;
-import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
import org.chromium.ui.base.LocalizationUtils;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -96,8 +94,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
@Nullable
private static FirstRunActivityObserver sObserver;
- private String mResultSyncConsentAccountName;
-
private boolean mPostNativeAndPolicyPagesCreated;
// Use hasValue() to simplify access. Will be null before initialized.
private final OneshotSupplierImpl<Boolean> mNativeSideIsInitializedSupplier =
@@ -146,18 +142,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
/** Creates first page and sets up adapter. Should result UI being shown on the screen. */
private void createFirstPage() {
BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage();
- if (FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
- mPages.add(new FirstRunPage<>(SigninFirstRunFragment.class, showWelcomePage));
- } else {
- // TODO(crbug.com/1111490): Revisit during post-MVP.
- // There's an edge case where we accept the welcome page in the main app, abort the FRE,
- // then go through this CCT FRE again.
- mPages.add(shouldCreateEnterpriseCctTosPage()
- ? new FirstRunPage<>(
- TosAndUmaFirstRunFragmentWithEnterpriseSupport.class,
- showWelcomePage)
- : new FirstRunPage<>(ToSAndUMAFirstRunFragment.class, showWelcomePage));
- }
+ mPages.add(new FirstRunPage<>(ToSAndUMAFirstRunFragment.class, showWelcomePage));
mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN);
mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages);
mPager.setAdapter(mPagerAdapter);
@@ -165,15 +150,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
// native and policy service have been initialized.
}
- private boolean shouldCreateEnterpriseCctTosPage() {
- // TODO(crbug.com/1111490): Revisit case when #shouldSkipWelcomePage = true.
- // If the client has already accepted ToS (FirstRunStatus#shouldSkipWelcomePage), do not
- // use the subclass ToSAndUmaCCTFirstRunFragment. Instead, use the base class
- // (ToSAndUMAFirstRunFragment) which simply shows a loading spinner while waiting for
- // native to be loaded.
- return mLaunchedFromCCT && !FirstRunStatus.shouldSkipWelcomePage();
- }
-
/**
* Create the page sequence which requires native initialized, and policies loaded if any
* on-device policies may exists.
@@ -187,7 +163,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
BooleanSupplier showSearchEnginePromo =
() -> mFreProperties.getBoolean(SHOW_SEARCH_ENGINE_PAGE);
- BooleanSupplier showSyncConsent = () -> mFreProperties.getBoolean(SHOW_SYNC_CONSENT_PAGE);
// An optional page to select a default search engine.
if (showSearchEnginePromo.getAsBoolean()) {
@@ -196,11 +171,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN);
}
- // An optional sync consent page, the visibility of this page will be decided on the fly
- // according to the situation.
- mPages.add(new FirstRunPage<>(SyncConsentFirstRunFragment.class, showSyncConsent));
- mFreProgressStates.add(MobileFreProgress.SYNC_CONSENT_SHOWN);
-
if (mPagerAdapter != null) {
mPagerAdapter.notifyDataSetChanged();
}
@@ -245,10 +215,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
@Override
public void triggerLayoutInflation() {
- // Generate trial group as early as possible to guarantee it's available by the time native
- // needs to register the synthetic trial group. See https://crbug.com/1295692 for details.
- FREMobileIdentityConsistencyFieldTrial.createFirstRunTrial();
-
initializeStateFromLaunchData();
RecordHistogram.recordTimesHistogram("MobileFre.FromLaunch.TriggerLayoutInflation",
SystemClock.elapsedRealtime() - mIntentCreationElapsedRealtimeMs);
@@ -256,8 +222,12 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
setFinishOnTouchOutside(true);
setContentView(createContentView());
- ViewDrawBlocker.blockViewDrawUntilReady(
+ if (mPagerAdapter == null) {
+ createFirstPage();
+ } else {
+ ViewDrawBlocker.blockViewDrawUntilReady(
findViewById(android.R.id.content), () -> mPages.size() > 0);
+ }
mFirstRunFlowSequencer = new FirstRunFlowSequencer(this) {
@Override
@@ -462,12 +432,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
public void completeFirstRunExperience() {
RecordHistogram.recordMediumTimesHistogram("MobileFre.FromLaunch.FreCompleted",
SystemClock.elapsedRealtime() - mIntentCreationElapsedRealtimeMs);
- if (mFreProperties.getBoolean(OPEN_ADVANCED_SYNC_SETTINGS)) {
- recordFreProgressHistogram(MobileFreProgress.SYNC_CONSENT_SETTINGS_LINK_CLICK);
- }
-
- FirstRunFlowSequencer.markFlowAsCompleted(mResultSyncConsentAccountName,
- mFreProperties.getBoolean(OPEN_ADVANCED_SYNC_SETTINGS));
+ FirstRunFlowSequencer.markFlowAsCompleted();
if (sObserver != null) sObserver.onUpdateCachedEngineName(this);
@@ -510,16 +475,10 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
@Override
public void refuseSync() {
- mResultSyncConsentAccountName = null;
- mFreProperties.putBoolean(OPEN_ADVANCED_SYNC_SETTINGS, false);
- recordFreProgressHistogram(MobileFreProgress.SYNC_CONSENT_DISMISSED);
}
@Override
public void acceptSync(String accountName, boolean openSettings) {
- mResultSyncConsentAccountName = accountName;
- mFreProperties.putBoolean(OPEN_ADVANCED_SYNC_SETTINGS, openSettings);
- recordFreProgressHistogram(MobileFreProgress.SYNC_CONSENT_ACCEPTED);
}
@Override
@@ -536,10 +495,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa
public void acceptTermsOfService(boolean allowCrashUpload) {
assert mNativeSideIsInitializedSupplier.hasValue();
- // If default is true then it corresponds to opt-out and false corresponds to opt-in.
- UmaUtils.recordMetricsReportingDefaultOptIn(!DEFAULT_METRICS_AND_CRASH_REPORTING);
- RecordHistogram.recordMediumTimesHistogram("MobileFre.FromLaunch.TosAccepted",
- SystemClock.elapsedRealtime() - mIntentCreationElapsedRealtimeMs);
FirstRunUtils.acceptTermsOfService(allowCrashUpload);
FirstRunStatus.setSkipWelcomePage(true);
flushPersistentData();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
@@ -26,15 +26,8 @@ import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.browser.locale.LocaleManager;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.SearchEnginePromoType;
-import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
-import org.chromium.chrome.browser.signin.services.IdentityServicesProvider;
-import org.chromium.chrome.browser.signin.services.SigninManager;
import org.chromium.chrome.browser.vr.VrModuleProvider;
import org.chromium.components.embedder_support.util.UrlConstants;
-import org.chromium.components.signin.AccountManagerFacadeProvider;
-import org.chromium.components.signin.AccountUtils;
-import org.chromium.components.signin.identitymanager.ConsentLevel;
-import org.chromium.components.signin.identitymanager.IdentityManager;
import java.util.List;
@@ -59,27 +52,7 @@ public abstract class FirstRunFlowSequencer {
/** Returns true if the sync consent promo page should be shown. */
boolean shouldShowSyncConsentPage(
Activity activity, List<Account> accounts, boolean isChild) {
- if (isChild) {
- // Always show the sync consent page for child account.
- return true;
- }
- final IdentityManager identityManager =
- IdentityServicesProvider.get().getIdentityManager(
- Profile.getLastUsedRegularProfile());
- if (identityManager.hasPrimaryAccount(ConsentLevel.SYNC) || !isSyncAllowed()) {
- // No need to show the sync consent page if users already consented to sync or
- // if sync is not allowed.
- return false;
- }
- if (FREMobileIdentityConsistencyFieldTrial.isEnabled()) {
- // Show the sync consent page only to the signed-in users.
- return identityManager.hasPrimaryAccount(ConsentLevel.SIGNIN);
- } else {
- // We show the sync consent page if sync is allowed, and not signed in, and
- // - "skip the first use hints" is not set, or
- // - "skip the first use hints" is set, but there is at least one account.
- return !shouldSkipFirstUseHints(activity) || !accounts.isEmpty();
- }
+ return false;
}
/** @return true if the Search Engine promo page should be shown. */
@@ -94,10 +67,7 @@ public abstract class FirstRunFlowSequencer {
/** @return true if Sync is allowed for the current user. */
@VisibleForTesting
protected boolean isSyncAllowed() {
- SigninManager signinManager = IdentityServicesProvider.get().getSigninManager(
- Profile.getLastUsedRegularProfile());
- return FirstRunUtils.canAllowSync() && !signinManager.isSigninDisabledByPolicy()
- && signinManager.isSigninSupported();
+ return false;
}
/** @return true if first use hints should be skipped. */
@@ -141,19 +111,8 @@ public abstract class FirstRunFlowSequencer {
* Once finished, calls onFlowIsKnown().
*/
void start() {
- long childAccountStatusStart = SystemClock.elapsedRealtime();
- AccountManagerFacadeProvider.getInstance().getAccounts().then(accounts -> {
- AccountUtils.checkChildAccountStatus(
- AccountManagerFacadeProvider.getInstance(), accounts, (isChild, account) -> {
- RecordHistogram.recordCountHistogram(
- "Signin.AndroidDeviceAccountsNumberWhenEnteringFRE",
- Math.min(accounts.size(), 2));
- RecordHistogram.recordTimesHistogram("MobileFre.ChildAccountStatusDuration",
- SystemClock.elapsedRealtime() - childAccountStatusStart);
- initializeSharedState(isChild, accounts);
- processFreEnvironmentPreNative();
- });
- });
+ mIsChild = false;
+ processFreEnvironmentPreNative();
}
@VisibleForTesting
@@ -162,22 +121,15 @@ public abstract class FirstRunFlowSequencer {
}
private boolean shouldShowSyncConsentPage() {
- return mDelegate.shouldShowSyncConsentPage(mActivity, mGoogleAccounts, mIsChild);
+ return false;
}
@VisibleForTesting
protected void setFirstRunFlowSignInComplete() {
- FirstRunSignInProcessor.setFirstRunFlowSignInComplete(true);
- }
-
- private void initializeSharedState(boolean isChild, List<Account> accounts) {
- mIsChild = isChild;
- mGoogleAccounts = accounts;
}
private void processFreEnvironmentPreNative() {
Bundle freProperties = new Bundle();
- freProperties.putBoolean(SyncConsentFirstRunFragment.IS_CHILD_ACCOUNT, mIsChild);
onFlowIsKnown(freProperties);
if (mIsChild) {
@@ -191,8 +143,8 @@ public abstract class FirstRunFlowSequencer {
* @param freProperties Resulting FRE properties bundle.
*/
public void updateFirstRunProperties(Bundle freProperties) {
- freProperties.putBoolean(
- FirstRunActivity.SHOW_SYNC_CONSENT_PAGE, shouldShowSyncConsentPage());
+ if (freProperties == null)
+ throw new RuntimeException("attempting to update null FRE properties");
freProperties.putBoolean(
FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage());
}
@@ -202,17 +154,15 @@ public abstract class FirstRunFlowSequencer {
* @param syncConsentAccountName The account name for the pending sign-in request. (Or null)
* @param showAdvancedSyncSettings Whether the user selected to see the settings once signed in.
*/
- public static void markFlowAsCompleted(
- String syncConsentAccountName, boolean showAdvancedSyncSettings) {
+ public static void markFlowAsCompleted() {
// When the user accepts ToS in the Setup Wizard, we do not show the ToS page to the user
// because the user has already accepted one outside FRE.
if (!FirstRunUtils.isFirstRunEulaAccepted()) {
FirstRunUtils.setEulaAccepted();
}
- // Mark the FRE flow as complete and set the sign-in flow preferences if necessary.
- FirstRunSignInProcessor.finalizeFirstRunFlowState(
- syncConsentAccountName, showAdvancedSyncSettings);
+ // Mark the FRE flow as complete.
+ FirstRunStatus.setFirstRunFlowComplete(true);
}
/**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ToSAndUMAFirstRunFragment.java
@@ -24,8 +24,6 @@ import androidx.fragment.app.Fragment;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
-import org.chromium.chrome.browser.signin.services.FREMobileIdentityConsistencyFieldTrial;
-import org.chromium.chrome.browser.ui.signin.fre.FreUMADialogCoordinator;
import org.chromium.components.version_info.VersionInfo;
import org.chromium.ui.modaldialog.ModalDialogManagerHolder;
import org.chromium.ui.text.NoUnderlineClickableSpan;
@@ -41,7 +39,7 @@ import java.util.List;
* User Metrics Analysis) as defined in the Chrome Privacy Notice.
*/
public class ToSAndUMAFirstRunFragment
- extends Fragment implements FirstRunFragment, FreUMADialogCoordinator.Listener {
+ extends Fragment implements FirstRunFragment {
/** Alerts about some methods once ToSAndUMAFirstRunFragment executes them. */
public interface Observer {
/** See {@link #onNativeInitialized}. */
@@ -58,11 +56,8 @@ public class ToSAndUMAFirstRunFragment
private boolean mNativeInitialized;
private boolean mPolicyServiceInitialized;
private boolean mTosButtonClicked;
- // TODO(https://crbug.com/1274145): Rename mAllowCrashUpload field.
- private boolean mAllowCrashUpload;
private Button mAcceptButton;
- private CheckBox mSendReportCheckBox;
private TextView mTosAndPrivacy;
private View mTitle;
private View mProgressSpinner;
@@ -89,13 +84,10 @@ public class ToSAndUMAFirstRunFragment
mProgressSpinner = view.findViewById(R.id.progress_spinner);
mProgressSpinner.setVisibility(View.GONE);
mAcceptButton = (Button) view.findViewById(R.id.terms_accept);
- mSendReportCheckBox = (CheckBox) view.findViewById(R.id.send_report_checkbox);
mTosAndPrivacy = (TextView) view.findViewById(R.id.tos_and_privacy);
// Register event listeners.
mAcceptButton.setOnClickListener((v) -> onTosButtonClicked());
- mSendReportCheckBox.setOnCheckedChangeListener(
- ((compoundButton, isChecked) -> mAllowCrashUpload = isChecked));
// Make TextView links clickable.
mTosAndPrivacy.setMovementMethod(LinkMovementMethod.getInstance());
@@ -111,7 +103,9 @@ public class ToSAndUMAFirstRunFragment
// initialized at which point the activity will skip the page.
// We distinguish case 1 from case 2 by the value of |mNativeInitialized|, as that is set
// via onAttachFragment() from FirstRunActivity - which is before this onViewCreated().
- if (isWaitingForNativeAndPolicyInit() && FirstRunStatus.shouldSkipWelcomePage()) {
+ boolean isW = isWaitingForNativeAndPolicyInit();
+ boolean ssw = FirstRunStatus.shouldSkipWelcomePage();
+ if (isW && ssw) {
setSpinnerVisible(true);
}
}
@@ -137,7 +131,6 @@ public class ToSAndUMAFirstRunFragment
// On certain versions of Android, the checkbox will appear unchecked upon revisiting
// the page. Force it to the end state of the drawable animation as a work around.
// crbug.com/666258
- mSendReportCheckBox.jumpDrawablesToCurrentState();
}
}
@@ -164,13 +157,6 @@ public class ToSAndUMAFirstRunFragment
assert !isWaitingForNativeAndPolicyInit();
setSpinnerVisible(false);
- mSendReportCheckBox.setChecked(mAllowCrashUpload);
- }
-
- /** Implements {@link FreUMADialogCoordinator.Listener} */
- @Override
- public void onAllowCrashUploadChecked(boolean allowCrashUpload) {
- mAllowCrashUpload = allowCrashUpload;
}
private void updateView() {
@@ -179,110 +165,24 @@ public class ToSAndUMAFirstRunFragment
return;
}
- final boolean umaDialogMayBeShown =
- FREMobileIdentityConsistencyFieldTrial.shouldShowOldFreWithUmaDialog();
- final boolean hasChildAccount = getPageDelegate().getProperties().getBoolean(
- SyncConsentFirstRunFragment.IS_CHILD_ACCOUNT, false);
- final boolean isMetricsReportingDisabledByPolicy = !isWaitingForNativeAndPolicyInit()
- && !PrivacyPreferencesManagerImpl.getInstance()
- .isUsageAndCrashReportingPermittedByPolicy();
-
- updateTosText(umaDialogMayBeShown, hasChildAccount, isMetricsReportingDisabledByPolicy);
+ updateTosText();
- updateReportCheckbox(umaDialogMayBeShown, isMetricsReportingDisabledByPolicy);
- }
-
- private SpanInfo buildTermsOfServiceLink() {
- NoUnderlineClickableSpan clickableGoogleTermsSpan =
- new NoUnderlineClickableSpan(getContext(), (view1) -> {
- if (!isAdded()) return;
- getPageDelegate().showInfoPage(R.string.google_terms_of_service_url);
- });
- return new SpanInfo("<TOS_LINK>", "</TOS_LINK>", clickableGoogleTermsSpan);
+ updateReportCheckbox();
}
- private SpanInfo buildAdditionalTermsOfServiceLink() {
- NoUnderlineClickableSpan clickableChromeAdditionalTermsSpan =
+ private SpanInfo buildPrivacyPolicyLink(String suffix, int url) {
+ NoUnderlineClickableSpan clickableSpan =
new NoUnderlineClickableSpan(getContext(), (view1) -> {
if (!isAdded()) return;
- getPageDelegate().showInfoPage(R.string.chrome_additional_terms_of_service_url);
+ getPageDelegate().showInfoPage(url);
});
- return new SpanInfo("<ATOS_LINK>", "</ATOS_LINK>", clickableChromeAdditionalTermsSpan);
- }
-
- private SpanInfo buildPrivacyPolicyLink() {
- NoUnderlineClickableSpan clickableFamilyLinkPrivacySpan =
- new NoUnderlineClickableSpan(getContext(), (view1) -> {
- if (!isAdded()) return;
- getPageDelegate().showInfoPage(R.string.google_privacy_policy_url);
- });
-
- return new SpanInfo("<PRIVACY_LINK>", "</PRIVACY_LINK>", clickableFamilyLinkPrivacySpan);
- }
-
- private SpanInfo buildMetricsAndCrashReportingLink() {
- NoUnderlineClickableSpan clickableUMADialogSpan =
- new NoUnderlineClickableSpan(getContext(), (view1) -> openUmaDialog());
- return new SpanInfo("<UMA_LINK>", "</UMA_LINK>", clickableUMADialogSpan);
- }
-
- private void updateTosText(boolean umaDialogMayBeShown, boolean hasChildAccount,
- boolean isMetricsReportingDisabledByPolicy) {
- List<SpanInfo> spans = new LinkedList<SpanInfo>();
-
- // Description always has a Terms of Service link.
- spans.add(buildTermsOfServiceLink());
-
- // Additional terms of service link.
- if (!umaDialogMayBeShown) {
- spans.add(buildAdditionalTermsOfServiceLink());
- }
-
- // Privacy policy link.
- if (hasChildAccount) {
- spans.add(buildPrivacyPolicyLink());
- }
-
- // Metrics and crash reporting link.
- if (umaDialogMayBeShown && !isMetricsReportingDisabledByPolicy) {
- spans.add(buildMetricsAndCrashReportingLink());
- }
-
- String tosString;
- if (umaDialogMayBeShown) {
- tosString =
- getString(hasChildAccount ? R.string.signin_fre_footer_tos_with_supervised_user
- : R.string.signin_fre_footer_tos);
-
- if (!isMetricsReportingDisabledByPolicy) {
- tosString += "\n" + getString(R.string.signin_fre_footer_metrics_reporting);
- }
- } else {
- tosString = getString(hasChildAccount ? R.string.fre_tos_and_privacy_child_account
- : R.string.fre_tos);
- }
-
- mTosAndPrivacy.setText(SpanApplier.applySpans(tosString, spans.toArray(new SpanInfo[0])));
+ return new SpanInfo("<PRIVACY_LINK" + suffix + ">", "</PRIVACY_LINK" + suffix + ">", clickableSpan);
}
- private void updateReportCheckbox(
- boolean umaDialogMayBeShown, boolean isMetricsReportingDisabledByPolicy) {
- mAllowCrashUpload = getUmaCheckBoxInitialState();
- mSendReportCheckBox.setChecked(mAllowCrashUpload);
-
- if (!canShowUmaCheckBox()) {
- if (!umaDialogMayBeShown) {
- mAllowCrashUpload = (sShowUmaCheckBoxForTesting || VersionInfo.isOfficialBuild())
- && !isMetricsReportingDisabledByPolicy;
- }
- mSendReportCheckBox.setVisibility(View.GONE);
- }
+ private void updateTosText() {
}
- private void openUmaDialog() {
- new FreUMADialogCoordinator(requireContext(),
- ((ModalDialogManagerHolder) getActivity()).getModalDialogManager(), this,
- mAllowCrashUpload);
+ private void updateReportCheckbox() {
}
private void onPolicyServiceInitialized(boolean onDevicePolicyFound) {
@@ -319,7 +219,8 @@ public class ToSAndUMAFirstRunFragment
* @param fromButtonClicked Whether called from {@link #onTosButtonClicked()}.
*/
private void tryMarkTermsAccepted(boolean fromButtonClicked) {
- if (!mTosButtonClicked || isWaitingForNativeAndPolicyInit()) {
+ boolean isW = isWaitingForNativeAndPolicyInit();
+ if (!mTosButtonClicked || isW) {
if (fromButtonClicked) setSpinnerVisible(true);
return;
}
@@ -330,7 +231,7 @@ public class ToSAndUMAFirstRunFragment
RecordHistogram.recordTimesHistogram("MobileFre.TosFragment.SpinnerVisibleDuration",
SystemClock.elapsedRealtime() - mTosAcceptedTime);
}
- getPageDelegate().acceptTermsOfService(mAllowCrashUpload);
+ getPageDelegate().acceptTermsOfService(false);
getPageDelegate().advanceToNextPage();
}
@@ -373,10 +274,6 @@ public class ToSAndUMAFirstRunFragment
mAcceptButton.setVisibility(visibility);
mTosAndPrivacy.setVisibility(visibility);
- // Avoid updating visibility if the UMA check box can't be shown right now.
- if (canShowUmaCheckBox()) {
- mSendReportCheckBox.setVisibility(visibility);
- }
}
protected View getToSAndPrivacyText() {
@@ -389,18 +286,6 @@ public class ToSAndUMAFirstRunFragment
}
}
- /**
- * @return Whether the check box for Uma metrics can be shown. It should be used in conjunction
- * with whether other non-spinner elements can generally be shown.
- */
- protected boolean canShowUmaCheckBox() {
- return !FREMobileIdentityConsistencyFieldTrial.shouldShowOldFreWithUmaDialog()
- && (sShowUmaCheckBoxForTesting || VersionInfo.isOfficialBuild())
- && (isWaitingForNativeAndPolicyInit()
- || PrivacyPreferencesManagerImpl.getInstance()
- .isUsageAndCrashReportingPermittedByPolicy());
- }
-
@VisibleForTesting
public static void setShowUmaCheckBoxForTesting(boolean showForTesting) {
sShowUmaCheckBoxForTesting = showForTesting;
diff --git a/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java b/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
--- a/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
+++ b/chrome/browser/first_run/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunStatus.java
@@ -44,7 +44,7 @@ public class FirstRunStatus {
*/
public static boolean getFirstRunFlowComplete() {
return SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE, false);
+ ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE, true);
}
/**
@@ -62,7 +62,7 @@ public class FirstRunStatus {
*/
public static boolean shouldSkipWelcomePage() {
return SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE, false);
+ ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE, true);
}
/**
--
2.17.1

View file

@ -13,7 +13,7 @@ The modified content is to add 'Chrome/xx' and 'Firefox/xx' to the User-Agent.
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
--- a/content/common/user_agent.cc
+++ b/content/common/user_agent.cc
@@ -328,7 +328,7 @@ std::string BuildUserAgentFromOSAndProduct(const std::string& os_info,
@@ -325,7 +325,7 @@ std::string BuildUserAgentFromOSAndProduct(const std::string& os_info,
std::string user_agent;
base::StringAppendF(&user_agent,
"Mozilla/5.0 (%s) AppleWebKit/537.36 (KHTML, like Gecko) "
@ -26,8 +26,9 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
@@ -267,14 +267,3 @@
std::string GetUserAgent() {
@@ -349,18 +349,4 @@
std::string GetUserAgent(
ForceMajorVersionToMinorPosition force_major_to_minor) {
- base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
- if (command_line->HasSwitch(kUserAgent)) {
- std::string ua = command_line->GetSwitchValueASCII(kUserAgent);
@ -36,15 +37,19 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
- LOG(WARNING) << "Ignored invalid value for flag --" << kUserAgent;
- }
-
- if (base::FeatureList::IsEnabled(blink::features::kReduceUserAgent))
- return GetReducedUserAgent();
- if (base::FeatureList::IsEnabled(blink::features::kFullUserAgent))
- return GetFullUserAgent();
-
return GetFullUserAgent();
- if (base::FeatureList::IsEnabled(blink::features::kReduceUserAgent))
- return GetReducedUserAgent(force_major_to_minor);
-
return GetFullUserAgent(force_major_to_minor);
}
@@ -291,9 +280,4 @@
std::string GetFullUserAgent() {
std::string product = GetProduct(/*allow_version_override=*/true);
-#if defined(OS_ANDROID)
@@ -383,10 +369,5 @@
std::string GetFullUserAgent(
ForceMajorVersionToMinorPosition force_major_to_minor) {
std::string product = GetProductAndVersion(force_major_to_minor);
-#if BUILDFLAG(IS_ANDROID)
- if (base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kUseMobileUserAgent))
- product += " Mobile";

View file

@ -56,15 +56,15 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con
diff --git a/content/browser/renderer_host/navigation_controller_impl.cc b/content/browser/renderer_host/navigation_controller_impl.cc
--- a/content/browser/renderer_host/navigation_controller_impl.cc
+++ b/content/browser/renderer_host/navigation_controller_impl.cc
@@ -61,6 +61,7 @@
@@ -63,6 +63,7 @@
#include "content/browser/renderer_host/debug_urls.h"
#include "content/browser/renderer_host/frame_tree.h"
#include "content/browser/renderer_host/frame_tree_node.h"
+#include "content/browser/renderer_host/navigation_controller_android.h"
#include "content/browser/renderer_host/navigation_controller_delegate.h"
#include "content/browser/renderer_host/navigation_entry_impl.h"
#include "content/browser/renderer_host/navigation_entry_restore_context_impl.h"
#include "content/browser/renderer_host/navigation_request.h"
@@ -3299,8 +3300,7 @@ base::WeakPtr<NavigationHandle> NavigationControllerImpl::NavigateWithoutEntry(
@@ -3322,8 +3323,7 @@ base::WeakPtr<NavigationHandle> NavigationControllerImpl::NavigateWithoutEntry(
// passed as a const reference, this is not possible.
// TODO(clamy): When we only create a NavigationRequest, move this to
// CreateNavigationRequestFromLoadURLParams.
@ -85,17 +85,17 @@ diff --git a/content/browser/renderer_host/navigator.cc b/content/browser/render
#include "content/browser/renderer_host/navigation_controller_impl.h"
#include "content/browser/renderer_host/navigation_entry_impl.h"
#include "content/browser/renderer_host/navigation_request.h"
@@ -929,9 +930,7 @@ void Navigator::OnBeginNavigation(
@@ -960,9 +961,8 @@ void Navigator::OnBeginNavigation(
NavigationEntryImpl* navigation_entry =
GetNavigationEntryForRendererInitiatedNavigation(*common_params,
frame_tree_node);
- const bool override_user_agent =
- delegate_ &&
- delegate_->ShouldOverrideUserAgentForRendererInitiatedNavigation();
+ const bool override_user_agent = IsDesktopSite();
if (navigation_entry)
navigation_entry->SetIsOverridingUserAgent(override_user_agent);
frame_tree_node->CreatedNavigationRequest(
diff --git a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/framehost/NavigationControllerImpl.java

View file

@ -27,56 +27,56 @@ diff --git a/content/public/common/user_agent.h b/content/public/common/user_age
- "Safari/537.36";
+ "Safari/537.36 Firefox/97.2.0";
const char kUnifiedPlatformAndroid[] = "Linux; Android 10; K";
const char kUnifiedPlatformCrOS[] = "X11; CrOS x86_64";
const char kUnifiedPlatformCrOS[] = "X11; CrOS x86_64 14541.0.0";
const char kUnifiedPlatformLinux[] = "X11; Linux x86_64";
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
--- a/content/common/user_agent.cc
+++ b/content/common/user_agent.cc
@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
#elif defined(USE_OZONE)
#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
return "X11; "; // strange, but that's what Firefox uses
#elif defined(OS_ANDROID)
#elif BUILDFLAG(IS_ANDROID)
- return "X11; ";
+ return "Linux; ";
#elif defined(OS_FUCHSIA)
// TODO(https://crbug.com/1225812): Determine what to report for Fuchsia,
// considering both backwards compatibility and User-Agent Reduction.
@@ -49,7 +49,9 @@ std::string GetUserAgentPlatform() {
#elif BUILDFLAG(IS_FUCHSIA)
return "";
#else
@@ -47,7 +47,9 @@ std::string GetUserAgentPlatform() {
} // namespace
std::string GetUnifiedPlatform() {
-#if defined(OS_CHROMEOS)
+#if defined(OS_ANDROID)
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID)
+ return frozen_user_agent_strings::kUnifiedPlatformAndroid;
+#elif defined(OS_CHROMEOS)
+#elif BUILDFLAG(IS_CHROMEOS)
return frozen_user_agent_strings::kUnifiedPlatformCrOS;
#elif defined(OS_MAC)
#elif BUILDFLAG(IS_MAC)
return frozen_user_agent_strings::kUnifiedPlatformMacOS;
@@ -217,7 +219,7 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
@@ -215,7 +217,7 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
const std::string& cpu_type) {
std::string os_cpu;
-#if defined(OS_POSIX) && !defined(OS_MAC)
+#if !defined(OS_ANDROID) && defined(OS_POSIX) && !defined(OS_MAC)
-#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+#if !BUILDFLAG(IS_ANDROID) && BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
// Should work on any Posix system.
struct utsname unixinfo;
uname(&unixinfo);
@@ -239,9 +241,7 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
@@ -238,9 +240,7 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
cpu_type.c_str(), // e.g. i686
os_version.c_str()
#elif defined(OS_ANDROID)
- "%s %s",
- unixinfo.sysname, // e.g. Linux
- cpu_type.c_str() // e.g. i686
#elif BUILDFLAG(IS_ANDROID)
- "%s %s",
- unixinfo.sysname, // e.g. Linux
- cpu_type.c_str() // e.g. i686
+ "Android %s", os_version.c_str()
#elif defined(OS_FUCHSIA)
#elif BUILDFLAG(IS_FUCHSIA)
"Fuchsia"
#elif defined(OS_POSIX)
@@ -257,9 +257,20 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
#elif BUILDFLAG(IS_POSIX)
@@ -256,9 +256,20 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
std::string GetReducedUserAgent(bool mobile, std::string major_version) {
std::string user_agent;
+#if defined(OS_ANDROID)
+#if BUILDFLAG(IS_ANDROID)
+ std::string device_compat;
+ // Note: The extra space after Mobile is meaningful here, to avoid
+ // "MobileSafari", but unneeded for non-mobile Android devices.
@ -110,10 +110,11 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
@@ -265,6 +265,17 @@ std::string GetProduct() {
@@ -347,6 +347,20 @@ std::string GetProduct() {
}
std::string GetUserAgent() {
std::string GetUserAgent(
ForceMajorVersionToMinorPosition force_major_to_minor) {
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(kUserAgent)) {
+ std::string ua = command_line->GetSwitchValueASCII(kUserAgent);
@ -122,17 +123,19 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
+ LOG(WARNING) << "Ignored invalid value for flag --" << kUserAgent;
+ }
+
+ if (base::FeatureList::IsEnabled(blink::features::kReduceUserAgent))
+ return GetReducedUserAgent();
+ if (base::FeatureList::IsEnabled(blink::features::kFullUserAgent))
+ return GetFullUserAgent();
+
return GetFullUserAgent();
+ if (base::FeatureList::IsEnabled(blink::features::kReduceUserAgent))
+ return GetReducedUserAgent(force_major_to_minor);
+
return GetFullUserAgent(force_major_to_minor);
}
@@ -280,5 +291,10 @@ std::string GetReducedUserAgent() {
std::string GetFullUserAgent() {
std::string product = GetProduct(/*allow_version_override=*/true);
+#if defined(OS_ANDROID)
@@ -368,5 +382,10 @@ std::string GetReducedUserAgent(
std::string GetFullUserAgent(
ForceMajorVersionToMinorPosition force_major_to_minor) {
std::string product = GetProductAndVersion(force_major_to_minor);
+#if BUILDFLAG(IS_ANDROID)
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kUseMobileUserAgent))
+ product += " Mobile";

View file

@ -45,7 +45,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAg
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
@@ -514,11 +514,11 @@
@@ -518,11 +518,11 @@
params.setOverrideUserAgent(calculateUserAgentOverrideOption());
final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
@ -62,7 +62,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
@@ -89,12 +89,12 @@
@@ -96,12 +96,12 @@
public static void switchUserAgent(Tab tab, boolean switchToDesktop, boolean forcedByUser) {
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, switchToDesktop);
@ -79,7 +79,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja
diff a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc
--- a/content/browser/renderer_host/navigation_controller_android.cc
+++ b/content/browser/renderer_host/navigation_controller_android.cc
@@ -393,6 +393,9 @@
@@ -380,6 +380,9 @@
bool NavigationControllerAndroid::GetUseDesktopUserAgent(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
@ -93,7 +93,7 @@ diff a/content/browser/renderer_host/navigation_controller_android.cc b/content/
diff a/content/public/browser/navigation_controller.h b/content/public/browser/navigation_controller.h
--- a/content/public/browser/navigation_controller.h
+++ b/content/public/browser/navigation_controller.h
@@ -206,6 +206,6 @@
@@ -208,6 +208,6 @@
// User agent override for this load. See comments in
// UserAgentOverrideOption definition.
- UserAgentOverrideOption override_user_agent = UA_OVERRIDE_INHERIT;
@ -104,7 +104,7 @@ diff a/content/public/browser/navigation_controller.h b/content/public/browser/n
diff a/content/browser/renderer_host/navigation_entry_impl.cc b/content/browser/renderer_host/navigation_entry_impl.cc
--- a/content/browser/renderer_host/navigation_entry_impl.cc
+++ b/content/browser/renderer_host/navigation_entry_impl.cc
@@ -396,10 +396,10 @@
@@ -412,10 +412,10 @@
update_virtual_url_with_url_(false),
title_(title),
transition_type_(transition_type),
@ -119,7 +119,7 @@ diff a/content/browser/renderer_host/navigation_entry_impl.cc b/content/browser/
diff a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
--- a/weblayer/browser/tab_impl.cc
+++ b/weblayer/browser/tab_impl.cc
@@ -884,14 +884,14 @@
@@ -905,14 +905,14 @@
jboolean TabImpl::IsDesktopUserAgentEnabled(JNIEnv* env) {
auto* entry = web_contents_->GetController().GetLastCommittedEntry();
if (!entry)

View file

@ -16,10 +16,9 @@ Done for AP9-2571
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 62fea240ee53d..6387769c4a3ad 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -44,15 +44,15 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
@@ -45,15 +45,15 @@ if (android_64bit_target_cpu && skip_secondary_abi_for_cq) {
}
-_default_package = "org.bromite.bromite"

View file

@ -6,15 +6,14 @@ Subject: [PATCH] Force tablet mode
This ensures that the toolbar will have back/forward/reload buttons
and generally gives a better experience on panels.
---
.../browser/accessibility/settings/AccessibilitySettings.java | 2 +-
components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java | 2 +-
ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
index 492de97ff714f..bffec8caf6260 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java
@@ -86,7 +86,7 @@ public class AccessibilitySettings
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
@@ -99,7 +99,7 @@ public class AccessibilitySettings
ChromeBaseCheckBoxPreference forceTabletUiPref =
(ChromeBaseCheckBoxPreference) findPreference(PREF_FORCE_TABLET_UI);
forceTabletUiPref.setChecked(SharedPreferencesManager.getInstance().readBoolean(
@ -22,9 +21,8 @@ index 492de97ff714f..bffec8caf6260 100644
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, true));
forceTabletUiPref.setOnPreferenceChangeListener(this);
ChromeBaseCheckBoxPreference mAccessibilityTabSwitcherPref =
ChromeBaseCheckBoxPreference accessibilityTabSwitcherPref =
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
index f9b5e4e5992a2..4717f4c61d438 100644
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
@@ -63,7 +63,7 @@ public class DeviceFormFactor {

View file

@ -14,7 +14,7 @@ Hide the Settings from the menu.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
@@ -524,5 +524,10 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -518,5 +518,10 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
// Only display the Enter VR button if VR Shell Dev environment is enabled.
menu.findItem(R.id.enter_vr_id).setVisible(isCurrentTabNotNull && shouldShowEnterVr());

View file

@ -50,7 +50,7 @@ diff --git a/third_party/android_deps/build.gradle b/third_party/android_deps/bu
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -1284,6 +1284,10 @@ by a child template that "extends" this file.
@@ -1300,6 +1300,10 @@ by a child template that "extends" this file.
android:readPermission="android.permission.GLOBAL_SEARCH" />
</provider>
@ -64,15 +64,15 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -180,6 +180,7 @@ android_resources("chrome_base_module_resources") {
@@ -193,6 +193,7 @@ android_resources("chrome_base_module_resources") {
"java/res_chromium_base/mipmap-xxxhdpi/app_icon.png",
"java/res_chromium_base/mipmap-xxxhdpi/layered_app_icon.png",
"java/res_chromium_base/mipmap-xxxhdpi/layered_app_icon_background.png",
"java/res_chromium_base/values/channel_constants.xml",
]
+ resource_overlay = true
}
android_resources("chrome_app_java_resources") {
@@ -2518,6 +2519,7 @@ android_library("base_module_java") {
@@ -2574,6 +2575,7 @@ android_library("base_module_java") {
"java/src/org/chromium/chrome/browser/tracing/TracingNotificationService.java",
]
deps = [
@ -93,8 +93,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/base/SplitMonoc
+import com.prometheanworld.telemetry.TelemetryInitializer;
import org.chromium.android_webview.nonembedded.WebViewApkApplication;
import org.chromium.base.library_loader.LibraryProcessType;
@@ -39,6 +43,14 @@ public class SplitMonochromeApplication extends SplitChromeApplication {
import org.chromium.base.annotations.IdentifierNameString;
@@ -42,6 +46,14 @@ public class SplitMonochromeApplication extends SplitChromeApplication {
initializeMonochromeProcessCommon(getPackageName());
}
@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/base/SplitMonoc
@Override
protected Impl createNonBrowserApplication() {
return new NonBrowserMonochromeApplication();
@@ -62,4 +74,20 @@ public class SplitMonochromeApplication extends SplitChromeApplication {
@@ -65,4 +77,20 @@ public class SplitMonochromeApplication extends SplitChromeApplication {
public boolean isWebViewProcess() {
return WebViewApkApplication.isWebViewProcess();
}
@ -133,7 +133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/base/SplitMonoc
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/FullscreenHtmlApiHandler.java
@@ -20,6 +20,8 @@
@@ -22,6 +22,8 @@
import androidx.annotation.Nullable;
import androidx.core.util.ObjectsCompat;
@ -142,14 +142,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Full
import org.chromium.base.ActivityState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ApplicationStatus.ActivityStateListener;
@@ -47,5 +49,6 @@
@@ -49,5 +51,6 @@
import org.chromium.content_public.browser.SelectionPopupController;
import org.chromium.content_public.browser.WebContents;
import org.chromium.ui.widget.Toast;
+import org.json.JSONObject;
import java.lang.ref.WeakReference;
@@ -500,4 +503,10 @@
@@ -508,4 +511,10 @@
mWebContentsInFullscreen = webContents;
mContentViewInFullscreen = contentView;
mTabInFullscreen = tab;
@ -188,11 +188,10 @@ diff --git a/third_party/android_deps/buildSrc/src/main/groovy/BuildConfigGenera
diff --git a/third_party/r8/desugar_jdk_libs.json b/third_party/r8/desugar_jdk_libs.json
--- a/third_party/r8/desugar_jdk_libs.json
+++ b/third_party/r8/desugar_jdk_libs.json
@@ -10,62 +10,11 @@
@@ -10,61 +10,11 @@
{
"api_level_below_or_equal": 25,
"wrapper_conversion": [
- "java.time.Clock"
]
},
{
@ -251,32 +250,15 @@ diff --git a/third_party/r8/desugar_jdk_libs.json b/third_party/r8/desugar_jdk_l
]
}
],
@@ -73,81 +22,25 @@
@@ -72,64 +22,23 @@
{
"api_level_below_or_equal": 25,
"rewrite_prefix": {
- "j$.time.": "java.time.",
- "java.time.": "j$.time.",
- "java.util.Desugar": "j$.util.Desugar"
},
"backport": {
- "java.lang.Double8": "java.lang.Double",
- "java.lang.Integer8": "java.lang.Integer",
- "java.lang.Long8": "java.lang.Long",
- "java.lang.Math8": "java.lang.Math"
},
"retarget_lib_member": {
- "java.util.Date#toInstant": "java.util.DesugarDate",
- "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar",
- "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone"
},
"custom_conversion": {
- "java.time.ZonedDateTime": "java.time.TimeConversions",
- "java.time.LocalDate": "java.time.TimeConversions",
- "java.time.Duration": "java.time.TimeConversions",
- "java.time.ZoneId": "java.time.TimeConversions",
- "java.time.MonthDay": "java.time.TimeConversions",
- "java.time.Instant": "java.time.TimeConversions"
}
},
{
@ -333,28 +315,15 @@ diff --git a/third_party/r8/desugar_jdk_libs.json b/third_party/r8/desugar_jdk_l
}
}
],
@@ -155,80 +48,23 @@
@@ -137,67 +46,23 @@
{
"api_level_below_or_equal": 25,
"rewrite_prefix": {
- "java.time.": "j$.time.",
- "java.util.Desugar": "j$.util.Desugar"
},
"retarget_lib_member": {
- "java.util.Calendar#toInstant": "java.util.DesugarCalendar",
- "java.util.Date#from": "java.util.DesugarDate",
- "java.util.Date#toInstant": "java.util.DesugarDate",
- "java.util.GregorianCalendar#from": "java.util.DesugarGregorianCalendar",
- "java.util.GregorianCalendar#toZonedDateTime": "java.util.DesugarGregorianCalendar",
- "java.util.TimeZone#toZoneId": "java.util.DesugarTimeZone"
},
"custom_conversion": {
- "java.time.ZonedDateTime": "java.time.TimeConversions",
- "java.time.LocalDate": "java.time.TimeConversions",
- "java.time.Duration": "java.time.TimeConversions",
- "java.time.ZoneId": "java.time.TimeConversions",
- "java.time.MonthDay": "java.time.TimeConversions",
- "java.time.Instant": "java.time.TimeConversions"
}
},
{

View file

@ -19,7 +19,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
index 6fff875f9c525..0a32f68f25a82 100644
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
@@ -339,7 +339,7 @@ void ContentSettingsRegistry::Init() {
@@ -340,7 +340,7 @@ void ContentSettingsRegistry::Init() {
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_AND_INSECURE_ORIGINS);
Register(ContentSettingsType::ADS, "subresource-filter",

View file

@ -6,7 +6,8 @@ Update the version to 1.0.3
---
third_party/android_deps/build.gradle | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
third_party/android_deps/buildSrc/src/main/groovy/ChromiumDepGraph.groovy | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/third_party/android_deps/build.gradle b/third_party/android_deps/build.gradle
--- a/third_party/android_deps/build.gradle
@ -20,4 +21,17 @@ diff --git a/third_party/android_deps/build.gradle b/third_party/android_deps/bu
// Upstream guava introduced versions with -android suffix starting with version
// 22 to remove incompatible code with android. Thus we keep two jars, one for
diff --git a/third_party/android_deps/buildSrc/src/main/groovy/ChromiumDepGraph.groovy b/third_party/android_deps/buildSrc/src/main/groovy/ChromiumDepGraph.groovy
--- a/third_party/android_deps/buildSrc/src/main/groovy/ChromiumDepGraph.groovy
+++ b/third_party/android_deps/buildSrc/src/main/groovy/ChromiumDepGraph.groovy
@@ -598,7 +598,6 @@ class ChromiumDepGraph {
}
if (skipLicenses) {
- dep.licenses.clear()
if (dep.id?.endsWith('license')) {
dep.exclude = true
}
--
2.17.1

View file

@ -8,54 +8,53 @@ Subject: [PATCH] change Android userAgent to deskmode userAgent
1 file changed, 11 insertions(+), 22 deletions(-)
diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc
index 6d76b0ef5de5e..e6d3dfa27d831 100644
--- a/content/common/user_agent.cc
+++ b/content/common/user_agent.cc
@@ -36,7 +36,7 @@ std::string GetUserAgentPlatform() {
#elif defined(USE_OZONE)
#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
return "X11; "; // strange, but that's what Firefox uses
#elif defined(OS_ANDROID)
#elif BUILDFLAG(IS_ANDROID)
- return "Linux; ";
+ return "X11; ";
#elif defined(OS_FUCHSIA)
// TODO(https://crbug.com/1225812): Determine what to report for Fuchsia,
// considering both backwards compatibility and User-Agent Reduction.
@@ -49,9 +49,7 @@ std::string GetUserAgentPlatform() {
#elif BUILDFLAG(IS_FUCHSIA)
return "";
#else
@@ -47,9 +47,7 @@ std::string GetUserAgentPlatform() {
} // namespace
std::string GetUnifiedPlatform() {
-#if defined(OS_ANDROID)
-#if BUILDFLAG(IS_ANDROID)
- return frozen_user_agent_strings::kUnifiedPlatformAndroid;
-#elif defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS)
-#elif BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_CHROMEOS)
return frozen_user_agent_strings::kUnifiedPlatformCrOS;
#elif defined(OS_MAC)
#elif BUILDFLAG(IS_MAC)
return frozen_user_agent_strings::kUnifiedPlatformMacOS;
@@ -218,7 +216,7 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
@@ -217,7 +215,7 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
const std::string& cpu_type) {
std::string os_cpu;
-#if !defined(OS_ANDROID) && defined(OS_POSIX) && !defined(OS_MAC)
+#if defined(OS_POSIX) && !defined(OS_MAC)
-#if !BUILDFLAG(IS_ANDROID) && BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
+#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_MAC)
// Should work on any Posix system.
struct utsname unixinfo;
uname(&unixinfo);
@@ -241,7 +239,9 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
@@ -240,7 +238,9 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
cpu_type.c_str(), // e.g. i686
os_version.c_str()
#elif defined(OS_ANDROID)
#elif BUILDFLAG(IS_ANDROID)
- "Android %s", os_version.c_str()
+ "%s %s",
+ unixinfo.sysname, // e.g. Linux
+ cpu_type.c_str() // e.g. i686
#elif defined(OS_FUCHSIA)
+ "%s %s",
+ unixinfo.sysname, // e.g. Linux
+ cpu_type.c_str() // e.g. i686
#elif BUILDFLAG(IS_FUCHSIA)
"Fuchsia"
#elif defined(OS_POSIX)
@@ -257,20 +257,9 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
#elif BUILDFLAG(IS_POSIX)
@@ -256,20 +256,9 @@ std::string BuildOSCpuInfoFromOSVersionAndCpuType(const std::string& os_version,
std::string GetReducedUserAgent(bool mobile, std::string major_version) {
std::string user_agent;
-#if defined(OS_ANDROID)
-#if BUILDFLAG(IS_ANDROID)
- std::string device_compat;
- // Note: The extra space after Mobile is meaningful here, to avoid
- // "MobileSafari", but unneeded for non-mobile Android devices.
@ -71,8 +70,8 @@ index 6d76b0ef5de5e..e6d3dfa27d831 100644
-
return user_agent;
}
@@ -300,10 +289,10 @@ std::string BuildUserAgentFromProductAndExtraOSInfo(
@@ -292,10 +281,10 @@ std::string BuildUserAgentFromProductAndExtraOSInfo(
const std::string& extra_os_info,
IncludeAndroidBuildNumber include_android_build_number) {
std::string os_info;
@ -86,8 +85,8 @@ index 6d76b0ef5de5e..e6d3dfa27d831 100644
+ .c_str());
return BuildUserAgentFromOSAndProduct(os_info, product);
}
@@ -345,7 +334,7 @@ std::string BuildUserAgentFromOSAndProduct(const std::string& os_info,
@@ -337,7 +326,7 @@ std::string BuildUserAgentFromOSAndProduct(const std::string& os_info,
base::StringAppendF(&user_agent,
"Mozilla/5.0 (%s) AppleWebKit/537.36 (KHTML, like Gecko) "
"%s Safari/537.36",
@ -95,7 +94,7 @@ index 6d76b0ef5de5e..e6d3dfa27d831 100644
+ os_info.c_str(), "");
return user_agent;
}
--
2.17.1