Compare commits

..
Author SHA1 Message Date
uazo ac973e33e3 AUTOMATED - git apply results 2024-04-03 16:00:15 +00:00
uazo b8df90d728 AUTOMATED - git apply results 2024-04-03 15:57:51 +00:00
Carmelo Messina 0068783e64 Bump to 123.0.6312.105 2024-04-03 17:49:28 +02:00
Carmelo Messina d93475c418 Remove old version 2024-04-03 17:47:17 +02:00
uazo e6be41912c Merge pull request #948 from uazo/create-pull-request/patch-ffc5de1
New files under control 123.0.6312.105
2024-04-03 09:35:27 -06:00
uazo 231c7911e7 Merge pull request #935 from uazo/Embed-Noto-Color-Emoji-font
Embed Noto Color Emoji font
2024-04-03 09:33:59 -06:00
Carmelo Messina 798b247bd7 final version 2024-04-03 17:01:30 +02:00
uazo 96057162da AUTOMATED - new files under control 123.0.6312.105 2024-04-03 02:30:38 +00:00
Carmelo Messina 81414bf266 #544 Embed Noto Color Emoji font 2024-03-27 17:17:43 +01:00
uazo ffc5de1ec7 Merge pull request #932 from uazo/create-pull-request/patch-68cd9af
Generate patches doc for  branch
2024-03-27 16:58:36 +01:00
uazo 6cd2f7afee Merge pull request #929 from uazo/create-pull-request/patch-6989c57
New files under control 123.0.6312.86
2024-03-27 16:58:26 +01:00
uazo 372e4b43d0 Merge pull request #931 from uazo/create-pull-request/patch-9eb6780
Git apply result for master branch
2024-03-27 16:58:15 +01:00
uazo 6c99513344 AUTOMATED - update patch docs 2024-03-27 15:56:34 +00:00
uazo 68cd9afc6c AUTOMATED - git apply results 2024-03-27 15:56:10 +00:00
Carmelo Messina 9eb67807ec Bump to 123.0.6312.86 2024-03-27 16:49:35 +01:00
Carmelo Messina fdc60b34ba #465 Remove keepalive support 2024-03-27 16:49:03 +01:00
Carmelo Messina f0c8b7b98c solves the case where FRE is not visible 2024-03-27 16:47:24 +01:00
Carmelo Messina e16f7a5a77 #542 Fix web search item visibility 2024-03-27 16:46:17 +01:00
Carmelo Messina d3765627a1 #207 Allow worklet in blink and disallow fetch later manager and speculation rules 2024-03-27 16:43:45 +01:00
uazo 89c6812817 Request for confirmation added 2024-03-27 07:51:32 +01:00
uazo 73f0df3c90 AUTOMATED - new files under control 123.0.6312.86 2024-03-27 02:31:44 +00:00
uazo 6989c57e63 Merge pull request #923 from uazo/create-pull-request/patch-351c24b
New files under control 123.0.6312.59
2024-03-26 21:14:23 +09:00
uazo 7ff2d1ed14 AUTOMATED - new files under control 123.0.6312.59 2024-03-26 02:35:13 +00:00
Carmelo Messina 351c24b3dc Add help me section 2024-03-23 09:53:45 +01:00
uazo f5d7de125b Merge pull request #910 from uazo/create-pull-request/patch-16818b1
Generate patches docs
2024-03-20 18:36:06 +02:00
uazo f708a519b1 AUTOMATED - update patch docs 2024-03-20 16:34:12 +00:00
Carmelo Messina 16818b1d05 Bump to 123.0.6312.58 2024-03-20 17:32:39 +01:00
Carmelo Messina 69c048fcbc #876 Disable Paint Preview by default 2024-03-20 17:32:15 +01:00
Carmelo Messina aa3c3ad076 #898 fix crash on guest mode 2024-03-20 17:30:22 +01:00
Carmelo Messina 7bb7d7a856 Disable blink feature flag 2024-03-20 17:29:32 +01:00
Carmelo Messina 3276e0f1ec #906 inhibits the saving of certain third-party cookies 2024-03-20 08:44:23 +01:00
Carmelo Messina b49ba700a7 Remove Compose from build 2024-03-20 08:41:55 +01:00
Carmelo Messina a4aad222af Update for v123 2024-03-20 08:41:07 +01:00
Carmelo Messina 4d82c0beec change bromite.idx to cromite.idx 2024-03-20 07:48:13 +01:00
uazo 563e6f9a2d Merge pull request #907 from uazo/create-pull-request/patch-7c751ae
New files under control 123.0.6312.58
2024-03-19 23:44:17 -07:00
uazo f8cc243015 Merge pull request #894 from uazo/next-v123
Rebase to v123
2024-03-19 23:43:46 -07:00
uazo 41e6364c29 AUTOMATED - new files under control 123.0.6312.58 2024-03-20 02:29:08 +00:00
uazo 7c751aedb2 Update file_list.txt
see #903
2024-03-19 01:25:05 +11:00
uazo 5951e48f47 Merge pull request #901 from uazo/create-pull-request/patch-a8503d9
Generate patches doc for next 123 branch
2024-03-17 19:43:30 +01:00
uazo 8923ff2278 AUTOMATED - update patch docs 2024-03-17 18:42:43 +00:00
Carmelo Messina a8503d9689 v123 final 2024-03-17 19:41:20 +01:00
uazo f0c183a124 Add log 2024-03-16 02:56:35 +11:00
Carmelo Messina 2d54179bf9 Bump to 123.0.6312.46 2024-03-15 16:28:00 +01:00
Carmelo Messina b937cb60ec v123 patches 2024-03-15 16:24:42 +01:00
uazo 948232d7fc Update file_list.txt
add chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
2024-03-15 01:31:42 -11:00
uazo 9ceadc8787 #887 added note concerning the location of the data folder 2024-03-14 20:49:22 -11:00
uazo 98b696850a Merge pull request #888 from uazo/create-pull-request/patch-cd81f3a
New files under control 123.0.6312.46
2024-03-14 17:00:43 +09:00
uazo 6c0676eeb8 AUTOMATED - new files under control 123.0.6312.46 2024-03-14 02:28:35 +00:00
uazo cd81f3a4c7 Merge pull request #883 from uazo/create-pull-request/patch-477e0b5
Git apply result for master branch
2024-03-13 05:56:45 -03:00
uazo 443396cd8f AUTOMATED - git apply results 2024-03-13 08:53:40 +00:00
Carmelo Messina 477e0b596a Bump to 122.0.6261.128 2024-03-13 09:45:25 +01:00
uazo 685ae28e96 Merge pull request #880 from uazo/create-pull-request/patch-bbea4e6
New files under control 122.0.6261.128
2024-03-13 05:04:39 -03:00
uazo 97e13fb5c0 AUTOMATED - new files under control 122.0.6261.128 2024-03-13 02:38:57 +00:00
uazo bbea4e614b Update PRIVACY_POLICY.md 2024-03-12 15:15:42 +00:00
uazo 66b68c0008 Update PRIVACY_POLICY.md 2024-03-12 14:57:29 +00:00
uazo 67d7c47488 Update README.md 2024-03-12 14:43:44 +00:00
uazo 91f6cb6fbd Create PRIVACY_POLICY.md 2024-03-12 14:43:07 +00:00
uazo a598f0d3ff Update README.md 2024-03-11 08:04:44 -09:00
uazo 37371ede06 Update update-patches-doc.yaml 2024-03-11 08:03:31 -09:00
uazo d24b215d27 Merge pull request #877 from uazo/create-pull-request/patch-fe0c1cb
Generate patches doc
2024-03-11 08:02:58 -09:00
uazo 7d160b893f AUTOMATED - update patch docs 2024-03-11 17:02:13 +00:00
Carmelo Messina fe0c1cba97 Update patches doc 2024-03-11 17:58:53 +01:00
Carmelo Messina ab02385ba8 Update patches doc 2024-03-11 17:33:10 +01:00
Carmelo Messina 8e19cfd2e0 drop changelog and faq 2024-03-11 13:30:12 +01:00
Carmelo Messina 322478cc9c Update license section 2024-03-11 13:20:13 +01:00
Carmelo Messina a252cb7bc9 Move features.md under docs 2024-03-11 13:15:20 +01:00
Carmelo Messina 8df670e568 Add how to build 2024-03-11 13:12:01 +01:00
Carmelo Messina 6511f3ec2e fix release 2024-03-11 08:59:20 +01:00
Carmelo Messina e071e7efbc Add description 2024-03-11 08:59:02 +01:00
Carmelo Messina 9405d5e482 add editorconfig 2024-03-11 08:52:15 +01:00
Carmelo Messina a1d941a0b6 #474 Put some files under source control 2024-03-11 08:51:30 +01:00
Carmelo Messina 534ab1be85 Bump to 122.0.6261.112 2024-03-10 11:52:14 +01:00
uazo b228ed72c2 Merge pull request #856 from uazo/platform_aac_hevc
Enable platform aac hevc in windows and android
2024-03-10 01:45:24 -09:00
Carmelo Messina 8c6ecb46a7 #474 Put some files under source control 2024-03-10 11:40:18 +01:00
uazo 6348da2dc7 Merge pull request #869 from uazo/create-pull-request/patch-d62bb78
New files under control
2024-03-10 01:29:16 -09:00
uazo dbacbb5d25 AUTOMATED - new files under control 2024-03-10 10:27:59 +00:00
Carmelo Messina d62bb78c21 #474 Put some files under source control 2024-03-10 11:26:00 +01:00
Carmelo Messina 1cc6c158f9 #474 Put some files under source control 2024-03-10 11:22:13 +01:00
Carmelo Messina f0682a0a9d #474 Put some files under source control 2024-03-10 11:20:47 +01:00
Carmelo Messina bc584f8fcb #474 Put some files under source control 2024-03-10 11:02:58 +01:00
Carmelo Messina 1cce2f1434 #474 Put some files under source control 2024-03-09 15:32:52 +01:00
Carmelo Messina 30bcef4e01 #474 Put some files under source contro 2024-03-09 15:18:20 +01:00
Carmelo Messina 9acda3aed3 #474 Put some files under source control 2024-03-09 15:07:45 +01:00
Carmelo Messina e84f1330b4 #474 changed script 2024-03-09 12:06:09 +01:00
Carmelo Messina 6144adc652 Merge branch 'platform_aac_hevc' of https://github.com/uazo/bromite into platform_aac_hevc 2024-03-07 08:57:15 +01:00
Carmelo Messina 2fcd346d93 Enable platform aac audio and h264 video 2024-03-07 08:56:24 +01:00
Carmelo Messina 5bc8c21500 Enable platform aac audio and h264 video 2024-03-06 21:10:45 +01:00
2448 changed files with 319345 additions and 4871 deletions
+5
View File
@@ -0,0 +1,5 @@
[*.{yaml,sh,gn_args}]
tab_width = 2
indent_size = 2
end_of_line = crlf
indent_style = space
+15
View File
@@ -46,6 +46,21 @@ body:
validations:
required: true
- type: dropdown
id: is_chromium2
attributes:
label: Are you sure?
description: |
Please check your answer above again, it is important information
If the bug is related to functionality that does not exist in Chromium then answer "No".
multiple: false
options:
- "Yes"
- "No"
validations:
required: true
- type: input
id: cromite_version
attributes:
+55 -5
View File
@@ -37,13 +37,13 @@ jobs:
- name: Reclaiming disk space on / by removing dotnet/android/ghc
#if: ${{ github.event.inputs.type == '' }}
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
test -d /usr/share/dotnet && sudo rm -rf /usr/share/dotnet
test -d /usr/local/lib/android && sudo rm -rf /usr/local/lib/android
test -d /opt/ghc && sudo rm -rf /opt/ghc
test -d /opt/hostedtoolcache/CodeQL && sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo apt-get remove google-cloud-cli azure-cli google-chrome-stable \
firefox mysql-server-core-8.0 mono-devel podman \
powershell
powershell || true
sudo apt-get autoremove
- name: Enable proxy on container
@@ -119,6 +119,56 @@ jobs:
fi
fi
- name: Update files under control
shell: bash
run: |
cd cromite
RELEASE=$(cat build/RELEASE | xargs)
cd tools/under-control
DO_UPDATE=0
if [ -n "$NEW_VERSION" ]; then
if [ "$RELEASE" != "$NEW_VERSION" ]; then
DO_UPDATE=1
fi
elif [ "$RELEASE" != "$(cat src/RELEASE | xargs)" ]; then
DO_UPDATE=1
NEW_VERSION=$RELEASE
fi
if [[ DO_UPDATE -eq 1 ]]; then
echo "Found new version $NEW_VERSION"
echo "Under control: $(cat src/RELEASE | xargs)"
echo "Current: $RELEASE"
test -d src && rm -rf src
docker build --progress=plain --build-arg "TAG=$NEW_VERSION" -o . .
echo $NEW_VERSION >src/RELEASE
fi
CHANGES=0 && git diff --quiet || CHANGES=1
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
if [[ CHANGES -eq 1 ]]; then
git add src
git diff --name-only --staged
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
if: env.CHANGES == '1'
with:
token: ${{ secrets.CROMITE_PULLS }}
path: cromite
add-paths: |
tools/under-control/*
commit-message: 'AUTOMATED - new files under control ${{ env.NEW_VERSION }}'
title: New files under control ${{ env.NEW_VERSION }}
body: ${{ env.MESSAGE }}
delete-branch: true
branch-suffix: short-commit-hash
- name: Create issue ${{ env.VERSION }}
if: "${{ env.NEW_VERSION != '' }}"
shell: bash
+82
View File
@@ -0,0 +1,82 @@
name: Update patches doc
permissions:
# actions: none
# checks: none
# contents: write
# deployments: none
# issues: none
# packages: none
pull-requests: write
# repository-projects: none
# security-events: none
# statuses: none
on:
push:
branches-ignore:
- 'ci'
paths:
- 'build/**'
workflow_dispatch:
inputs:
rtag:
description: 'uazo/cromite TAG or COMMIT'
required: true
default: ''
env:
RTAG: ${{ github.event.inputs.rtag }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: "Get value from dispatch"
run: |
if [ -z "${RTAG}" ]; then
echo "RTAG=$GITHUB_SHA" >> $GITHUB_ENV
echo "RTAG=$RTAG"
fi
- name: Checkout 'uazo/cromite' ${{ env.BRANCH }}
uses: actions/checkout@v2
with:
repository: 'uazo/cromite'
ref: ${{ github.event.inputs.rtag }}
path: 'cromite'
fetch-depth: 1
- name: Generate patches doc
run: |
export HOME=$GITHUB_WORKSPACE
bash ~/cromite/tools/extract-all-patch-data.sh ~/cromite/build/patches
- name: Check differences CHANGES=${{ env.CHANGES }}
run: |
export HOME=$GITHUB_WORKSPACE
cd ~/cromite
CHANGES=0 && git diff --quiet || CHANGES=1
echo "CHANGES=$CHANGES" >> $GITHUB_ENV
if [[ CHANGES -eq 1 ]]; then
git add docs/*.md
fi
- name: Create Pull Request
uses: peter-evans/create-pull-request@dcd5fd746d53dd8de555c0f10bca6c35628be47a #v3.12.0
if: env.CHANGES == '1'
with:
token: ${{ secrets.CROMITE_PULLS }}
path: cromite
base: ${{ env.BRANCH }}
add-paths: |
build/patches/*.patch
commit-message: 'AUTOMATED - update patch docs'
title: Generate patches doc for ${{ env.BRANCH }} branch
body: ${{ env.MESSAGE }}
delete-branch: true
branch-suffix: short-commit-hash
-1151
View File
File diff suppressed because it is too large Load Diff
-91
View File
@@ -1,91 +0,0 @@
# Frequently Asked Questions
## Does Google Sync/Translate/Data saver work?
No.
This is not a limitation of Bromite but of all Chromium-based projects in general, as general public is not allowed to use Google's APIs for free unless when using Chrome.
Additionally, these features would not be privacy-friendly.
## Does Bromite require root?
No.
## Is Bromite de-googled?
Yes, although this has not been verified (and hardly can be) under all situations; if you were to find connections to cloud-based services please report them via the issue tracker.
Bromite uses [ungoogled-chromium's python script](https://github.com/Eloston/ungoogled-chromium/blob/master/utils/domain_substitution.py) to disable URLs in the codebase since version `78.0.3904.93`.
Projects which follow a strict approach on this are [Iridium](https://iridiumbrowser.de/) and [Inox patchset](https://github.com/gcarq/inox-patchset).
## Does Bromite support DRM media?
Yes, in order to play protected/encrypted media content the browser will use Android's DRM media framework to automatically negotiate access (same as Chromium).
This means for example that requests to Android license servers will be performed (`www.googleapis.com`), see https://w3c.github.io/encrypted-media/#direct-individualization
To disable this functionality you should disable protected content playback from Site settings -> Protected Content.
## What is the SystemWebView?
It is the core component of Android for all web page visualizations. For example when you access a new wifi network and need to activate it, that is using the SystemWebView. If you do not know what it is then you do not need to install it.
See also [the wiki page](https://github.com/bromite/bromite/wiki/Installing-SystemWebView) for community-contributed installation instructions.
Ad-blocking was present and always enabled in the SystemWebView from version `72.0.3626.120` till version `77.0.3865.104`, when it stopped working due to [upstream NetworkService changes](https://docs.google.com/document/d/1TZEuPvr2KAbP4_TZpuuwtEEArQsyAkc2HDu68l66YwU/edit?ts=598244df#heading=h.ougoi5i6508y).
## How to enable DNS-over-HTTPS?
See [this page](https://www.bromite.org/doh).
## Can you add HTTPS everywhere?
No.
We cannot add add-ons to Bromite (merely some features).
## Is Bromite on Play Store?
No, and this is not going to change. Many limitations apply for submissions there, including which ads are allowed to be blocked.
Bromite favors user freedom in software choice: the device is yours so you get to choose which software to run on it, end of the story.
## Is Bromite on F-Droid?
It is not on the official F-Droid repository and there are no (more) plans to submit it.
You can use F-Droid client to install and receive updates via [the official Bromite F-Droid repository](https://www.bromite.org/fdroid).
## Does Bromite support WebRTC?
Partially, see https://github.com/bromite/bromite/wiki/WebRTC
## Using Bromite will favour the monopoly of the Chromium/Blink engine, why do you develop and maintain Bromite?
In short, to show what a Chromium-based engine could do **for the user** if the user experience and needs were the main focus of modern browser design.
For an Android browser using an alternative engine see [Fennec F-Droid](https://f-droid.org/en/packages/org.mozilla.fennec_fdroid/).
## Does Bromite support extensions?
No; Bromite will support extensions only if upstream (Chromium) does, or similarly another project maintains the patch and functionality.
## Why do push notifications not work on this website?
The [Chromium Blink engine](https://www.chromium.org/blink) uses [GCM](https://en.wikipedia.org/wiki/Google_Cloud_Messaging) to deliver messages
when websites use the [Push API](https://w3c.github.io/push-api/); this will not work in Bromite because cloud integrations are disabled (GCM in this case).
[ServiceWorker notifications](https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification) do work instead since they use
[android.app.Notification](https://developer.android.com/guide/topics/ui/notifiers/notifications).
## Can PWAs be installed?
PWAs are only supported as home shortcuts; WebAPKs will not work because they are generated server-side on googleapis.com (which is not allowed in Bromite).
## Does Bromite support the Android autofill framework?
Yes, since version 94.0.4606.109 the native Android autofill can be used; this does not require accessibility services as a workaround.
## Does Bromite support casting media content?
No, this would require Play Store binary blobs.
## Can you add this search engine as default?
No.
Bromite does not make any choice related to default search engines, the Chromium default is used.
Various Android browsers get some fee to ship their apps with a specific default search engine, Bromite does not get any fee from anyone.
Changing the default search engine would lead to an endless series of requests to change it based on personal preferences, thus no change is made to the default.
See also: https://github.com/bromite/bromite/wiki/SearchEngines
## Some sites show ads, how can I fix this?
You can compare the blocked URLs with a desktop browser and Bromite (using [remote debugging](https://developer.chrome.com/docs/devtools/remote-debugging/)) and figure out some new filter rules to be added.
If the ads are blocked via cosmetic filtering then blocking them is not possible with Bromite's engine and you might need something like an [user script](https://github.com/bromite/bromite/wiki/UserScripts) instead.
See also: https://github.com/bromite/bromite/wiki/AdBlocking
+16 -48
View File
@@ -12,16 +12,10 @@
</a>
<br>
### **** the documentation is a Work in progress (not the browser :) ****
Cromite is a [Chromium](https://www.chromium.org/Home) fork based on [Bromite](https://github.com/bromite/bromite) with built-in support for ad blocking and an eye for privacy.
Cromite is available for Android arm64-v8a, arm32-v7a and x86_64, Nougat and above (Minimum v7.0, API level 24), Windows and Linux 64bit.
For the Frequently Asked Questions see [F.A.Q.](./FAQ.md).
For documentation see the [wiki](https://github.com/bromite/bromite/wiki).
# Goals
Cromite's goal is to
@@ -31,14 +25,17 @@ Cromite's goal is to
In addition, Cromite would like to promote greater integration with other non-profit, open source browsers, encouraging closer collaboration with others, and attempt to integrate them directly into Chromium once they have reached an appropriate level of maturity.
# Features
see [Features](https://github.com/uazo/cromite/blob/master/FEATURES.md)
# Privacy limitations
Cromite's privacy features, including anti-fingerprinting mitigations (which are not comprehensive), **are not to be considered useful for journalists and people living in countries with freedom limitations**, please look at [Tor Browser](https://www.torproject.org/download/) in such cases.
Please note that this project is not free of bugs and that changing the behaviour of a browser can be risky and not without problems.
# Docs
- [Privacy Policy](https://github.com/uazo/cromite/blob/master/docs/PRIVACY_POLICY.md)
- [Features](https://github.com/uazo/cromite/blob/master/docs/FEATURES.md)
- [How to build](https://github.com/uazo/cromite/blob/master/docs/HOW_TO_BUILD.md)
- [Patch list](https://github.com/uazo/cromite/blob/master/docs/PATCHES.md)
# Releases
All built versions are available as [releases](https://github.com/uazo/cromite/releases).
@@ -66,7 +63,7 @@ ChromiumUpdateUrl=https://github.com/uazo/cromite/releases/latest/download/updat
# Command line for Chromium (string):
# note --user-data-dir= works better if path is absolute
# See here: http://peter.sh/experiments/chromium-command-line-switches/
ChromiumCommandLine=--user-data-dir=".\User Data" --no-default-browser-check
ChromiumCommandLine=--user-data-dir="C:\Users\<my user>\AppData\Local\Chromium\User Data" --no-default-browser-check
# to enable full logging in c:\temp\log.txt (daily rotate, no automatic deletion)
# ChromiumCommandLine=--enable-logging --v=0 --log-file=C:\temp\log.txt --user-data-dir=".\User Data" --no-default-browser-check
@@ -78,6 +75,7 @@ ChromiumBinary=chrome.exe
# Relative (to chrlauncher directory) or full path (env. variables supported).
ChromiumDirectory=.\bin
```
To prevent deletion by Microsoft Defender each time the browser is updated, check the `user-data-dir` folder by modifying it accordingly.
### Enable network process sandbox in windows
I don't include any setups because I don't like the experience of not knowing what they do, so you must manually run this command on first installation:
@@ -93,42 +91,14 @@ you can activate the 'RendererAppContainer' flag from the command line with
--enable-features=RendererAppContainer
```
## (TODO) Integrity and authenticity
You can verify the integrity of a downloaded APK file from this project with any `sha256sum`-compatible tool by downloading the corresponding `brm_X.Y.Z.sha256.txt` or `chr_X.Y.Z.sha256.txt` file, where X.Y.Z is the release version number. Example:
```
$ sha256sum --check brm_68.0.3440.54.sha256.txt
arm64_SystemWebView.apk: OK
arm64_ChromePublic.apk: OK
arm64_ChromeModernPublic.apk: OK
```
You can verify authenticity, e.g. that the author ([csagan5](https://github.com/csagan5)) released the file, by using gpg2:
```
$ gpg2 --quiet --verify brm_68.0.3440.54.sha256.txt.asc
gpg: assuming signed data in 'brm_68.0.3440.54.sha256.txt'
gpg: Signature made Sun 08 Jul 2018 04:22:52 PM CEST using RSA key ID D85DC0C5
gpg: Good signature from "csagan5 <32685696+csagan5@users.noreply.github.com>"
```
You can download csagan5's public GnuPG key from here: [csagan5.asc](./csagan5.asc).
# (TODO) How to build
The [Bromite main repository](https://github.com/bromite/bromite) contains tags for each corresponding Chromium release (see https://chromium.googlesource.com/chromium/src.git).
Please refer to [official Chromium build documentation](https://www.chromium.org/developers/how-tos/get-the-code) to get started on how to build Chromium; if you can build Chromium for Android, you can build Bromite.
The Chromium version tag used as base for the patches is available here: [RELEASE](./build/RELEASE); this is always corresponding to the git tag for every release.
The GN args used to build Bromite are available here: [bromite.gn_args](./build/bromite.gn_args).
The patches are to be applied second the order specified in the `bromite_patches_list.txt` file (you can use `git am`).
# (TODO) Contributing
# Contributing
Please submit issues following the issue template; beware that GitHub does not display the templates from mobile.
Patches are welcome and accepted if they match the project goals.
If you want to help me, [here](https://github.com/uazo/cromite/blob/master/docs/HELP_ME_PLEASE.md) is the list of things I would need.
For any usage or development discussion please use GitHub Discussions: https://github.com/uazo/cromite/discussions
# Credits
@@ -142,11 +112,9 @@ For any usage or development discussion please use GitHub Discussions: https://g
* [Inox patchset](https://github.com/gcarq/inox-patchset) for some patches (via ungoogled-chromium)
* [Brave Browser](https://github.com/brave/brave-core) for some patches
# (TODO) License
# License
The patches published as part of the Bromite project are released under [GNU GPL v3](./LICENSE).
[version-image]: https://img.shields.io/github/release/bromite/bromite.svg?style=flat-square
[version-url]: https://github.com/bromite/bromite/releases/latest
[license-image]: https://img.shields.io/github/license/bromite/bromite.svg
[license-url]: https://github.com/bromite/bromite/blob/master/LICENSE
Cromite is published under [GNU GPL v3](./LICENSE).
The patches published as part of the Bromite project are released under GNU GPL v3 only.
Cromite specific patches are under the GNU GPL-2+ licence.
Each individual patch contains specific information on the licence used.
+1 -1
View File
@@ -1 +1 @@
122.0.6261.111
123.0.6312.105
+31 -3
View File
@@ -37,13 +37,41 @@ enable_feed_v2=false
enable_cardboard=false
is_high_end_android=true
# media section
proprietary_codecs=true
ffmpeg_branding="Chrome"
enable_av1_decoder=true
enable_dav1d_decoder=true
enable_platform_dolby_vision=true
enable_platform_hevc=true
enable_mse_mpeg2ts_stream_parser=true
# disable cisco OpenH264
media_use_openh264 = false
# decoder flags
if (target_os == "android" || target_os == "win") {
# codec supported by default
# android: https://developer.android.com/media/platform/supported-formats
# windows: https://learn.microsoft.com/en-us/windows/win32/medfound/codecobjects
# enable aac and h264 hw decoder only
enable_platform_aac_audio = true
enable_platform_h264_video = true
# enable hw decoder for h265 (hevc)
enable_platform_hevc = true
# disable dolby vision
enable_platform_dolby_vision = false
enable_platform_encrypted_dolby_vision = false
if (target_os == "win") {
# enable ac3/eac codec
enable_platform_ac3_eac3_audio = true
}
}
# disable passthrough audio codecs
enable_platform_dts_audio = false
enable_passthrough_audio_codecs = false
# Do not compile libmonochrome.so with RELR relocations
# since supported only on API 28+
+4 -2
View File
@@ -282,6 +282,10 @@ Disable-Compose-feature.patch
Disable-offline-autofetch-flag.patch
Enable-percent-based-scrolling-on-Windows.patch
Show-NTP-at-startup.patch
Enable-platform-aac-audio-and-h264-video.patch
Disable-Paint-Preview-by-default.patch
Emoji-Fonts-fingerprinting-mitigation-02-02.patch
Emoji-Fonts-fingerprinting-mitigation-01-02.patch
Temp-PerformanceNavigationTiming-privacy-fix.patch
Temp-disable-predictive-back-gesture.patch
@@ -295,5 +299,3 @@ eyeo-beta-118.0.5993.48-android_api.patch
eyeo-beta-118.0.5993.48-android_settings.patch
eyeo-beta-118.0.5993.48-extension_api.patch
Eyeo-Adblock-Remove-Privacy-Issues.patch
AdblockPlus-add-blocking-in-service-workers.patch
AdblockPlus-connect-popup-blocker.patch
@@ -90,7 +90,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i
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
@@ -2980,9 +2980,9 @@
@@ -3046,9 +3046,9 @@
"expiry_milestone": 125
},
{
@@ -147,8 +147,8 @@ diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_lis
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
@@ -71,6 +71,11 @@ BASE_FEATURE(kUseGles2ForOopR,
);
@@ -65,6 +65,11 @@ BASE_FEATURE(kUseGles2ForOopR,
base::FEATURE_DISABLED_BY_DEFAULT);
#if BUILDFLAG(IS_ANDROID)
+// Use android AImageReader when playing videos with MediaPlayer.
@@ -217,7 +217,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
#endif
#if BUILDFLAG(ENABLE_VULKAN)
@@ -672,6 +673,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
@@ -662,6 +663,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
}
#endif // BUILDFLAG(IS_WIN)
@@ -1,729 +0,0 @@
From: uazo <uazo@users.noreply.github.com>
Date: Thu, 7 Sep 2023 07:25:25 +0000
Subject: AdblockPlus add blocking in service workers
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../adblock/adblock_content_browser_client.cc | 184 ++++++++++++------
.../adblock/adblock_content_browser_client.h | 27 ++-
.../browser/chrome_content_browser_client.cc | 6 +-
.../browser/chrome_content_browser_client.h | 6 +-
.../browser/adblock_url_loader_factory.cc | 10 +-
.../browser/adblock_url_loader_factory.h | 3 +
.../browser/frame_hierarchy_builder.cc | 3 +-
.../browser/resource_classification_runner.h | 8 +
.../resource_classification_runner_impl.cc | 30 ++-
.../resource_classification_runner_impl.h | 8 +
.../websockets/websocket_connector_impl.cc | 6 +-
.../public/browser/content_browser_client.cc | 4 +-
.../public/browser/content_browser_client.h | 4 +-
13 files changed, 216 insertions(+), 83 deletions(-)
diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/browser/adblock/adblock_content_browser_client.cc
--- a/chrome/browser/adblock/adblock_content_browser_client.cc
+++ b/chrome/browser/adblock/adblock_content_browser_client.cc
@@ -43,6 +43,7 @@
#include "content/public/browser/web_contents.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "services/network/public/mojom/websocket.mojom.h"
+#include "services/network/public/mojom/web_transport.mojom.h"
#include "services/service_manager/public/cpp/binder_registry.h"
#include "third_party/blink/public/common/loader/url_loader_throttle.h"
@@ -56,6 +57,29 @@
namespace {
+bool IsFilteringNeeded(Profile* profile, const GURL& embedder_url) {
+ DCHECK(profile);
+
+ if(embedder_url.is_empty()) {
+ // in android can be empty because it was created by
+ // RenderFrameHostImpl::CreateSubresourceLoaderFactoriesForInitialEmptyDocument
+ return true;
+ }
+
+ HostContentSettingsMap* settings_map = HostContentSettingsMapFactory::GetForProfile(profile);
+ if (settings_map && settings_map->GetContentSetting(embedder_url, GURL(), ContentSettingsType::ADS)
+ == CONTENT_SETTING_ALLOW) {
+ return false;
+ }
+ // Filtering may be needed if there's at least one enabled
+ // FilteringConfiguration.
+ bool ret = base::ranges::any_of(
+ adblock::SubscriptionServiceFactory::GetForBrowserContext(profile)
+ ->GetInstalledFilteringConfigurations(),
+ &adblock::FilteringConfiguration::IsEnabled);
+ return ret;
+}
+
bool IsFilteringNeeded(content::RenderFrameHost* frame) {
if (frame) {
auto* profile =
@@ -63,17 +87,7 @@ bool IsFilteringNeeded(content::RenderFrameHost* frame) {
if (profile) {
content::RenderFrameHost* embedder = frame->GetOutermostMainFrameOrEmbedder();
const auto& embedder_url = embedder->GetLastCommittedURL();
- HostContentSettingsMap* settings_map = HostContentSettingsMapFactory::GetForProfile(profile);
- if (settings_map && settings_map->GetContentSetting(embedder_url, GURL(), ContentSettingsType::ADS)
- == CONTENT_SETTING_ALLOW) {
- return false;
- }
- // Filtering may be needed if there's at least one enabled
- // FilteringConfiguration.
- return base::ranges::any_of(
- adblock::SubscriptionServiceFactory::GetForBrowserContext(profile)
- ->GetInstalledFilteringConfigurations(),
- &adblock::FilteringConfiguration::IsEnabled);
+ return IsFilteringNeeded(profile, embedder_url);
}
}
return false;
@@ -88,6 +102,8 @@ class AdblockContextData : public base::SupportsUserData::Data {
static void StartProxying(
Profile* profile,
+ content::BrowserContext* browser_context,
+ const url::Origin& request_initiator,
content::RenderFrameHost* frame,
int render_process_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
@@ -100,8 +116,6 @@ class AdblockContextData : public base::SupportsUserData::Data {
self = new AdblockContextData();
profile->SetUserData(kAdblockContextUserDataKey, base::WrapUnique(self));
}
- auto* browser_context =
- content::WebContents::FromRenderFrameHost(frame)->GetBrowserContext();
adblock::AdblockURLLoaderFactoryConfig config{
adblock::SubscriptionServiceFactory::GetForBrowserContext(
browser_context),
@@ -113,8 +127,9 @@ class AdblockContextData : public base::SupportsUserData::Data {
browser_context)};
auto proxy = std::make_unique<adblock::AdblockURLLoaderFactory>(
std::move(config),
+ request_initiator.GetURL(),
content::GlobalRenderFrameHostId(render_process_id,
- frame->GetRoutingID()),
+ frame ? frame->GetRoutingID() : MSG_ROUTING_NONE),
std::move(receiver), std::move(target_factory),
embedder_support::GetUserAgent(),
base::BindOnce(&AdblockContextData::RemoveProxy,
@@ -155,47 +170,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() {
#endif
bool AdblockContentBrowserClient::WillInterceptWebSocket(
- content::RenderFrameHost* frame) {
+ content::RenderFrameHost* frame,
+ content::RenderProcessHost* process,
+ const url::Origin& origin) {
if (IsFilteringNeeded(frame)) {
return true;
+ } else {
+ auto* browser_context = process->GetBrowserContext();
+ auto* profile = Profile::FromBrowserContext(browser_context);
+ if (IsFilteringNeeded(profile, origin.GetURL().GetAsReferrer())) {
+ return true;
+ }
}
- return ChromeContentBrowserClient::WillInterceptWebSocket(frame);
+ return ChromeContentBrowserClient::WillInterceptWebSocket(frame, process, origin);
}
void AdblockContentBrowserClient::CreateWebSocket(
+ content::RenderProcessHost* process,
content::RenderFrameHost* frame,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
handshake_client) {
- if (IsFilteringNeeded(frame)) {
- CreateWebSocketInternal(frame->GetGlobalId(), std::move(factory), url,
- site_for_cookies, user_agent,
- std::move(handshake_client));
- } else {
- DCHECK(ChromeContentBrowserClient::WillInterceptWebSocket(frame));
- ChromeContentBrowserClient::CreateWebSocket(frame, std::move(factory), url,
- site_for_cookies, user_agent,
- std::move(handshake_client));
- }
+ CreateWebSocketInternal(process,
+ frame ? frame->GetGlobalId() : content::GlobalRenderFrameHostId(),
+ std::move(factory), url, initiator_origin,
+ site_for_cookies, user_agent,
+ std::move(handshake_client));
}
void AdblockContentBrowserClient::CreateWebSocketInternal(
+ content::RenderProcessHost* process,
content::GlobalRenderFrameHostId render_frame_host_id,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
handshake_client) {
- auto* frame = content::RenderFrameHost::FromID(render_frame_host_id);
- if (!frame) {
- return;
- }
- auto* browser_context = frame->GetProcess()->GetBrowserContext();
+ auto* browser_context = process->GetBrowserContext();
auto* subscription_service =
adblock::SubscriptionServiceFactory::GetForBrowserContext(
browser_context);
@@ -203,33 +221,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal(
adblock::ResourceClassificationRunnerFactory::GetForBrowserContext(
browser_context);
classification_runner->CheckRequestFilterMatchForWebSocket(
- subscription_service->GetCurrentSnapshot(), url, render_frame_host_id,
+ subscription_service->GetCurrentSnapshot(), url,
+ std::move(initiator_origin.GetURL().GetAsReferrer()), render_frame_host_id,
base::BindOnce(
&AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted,
- weak_factory_.GetWeakPtr(), render_frame_host_id, std::move(factory),
- url, site_for_cookies, user_agent, std::move(handshake_client)));
+ weak_factory_.GetWeakPtr(), process, render_frame_host_id, std::move(factory),
+ url, initiator_origin, site_for_cookies, user_agent, std::move(handshake_client)));
}
void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted(
+ content::RenderProcessHost* process,
content::GlobalRenderFrameHostId render_frame_host_id,
ChromeContentBrowserClient::WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
handshake_client,
adblock::FilterMatchResult result) {
auto* frame = content::RenderFrameHost::FromID(render_frame_host_id);
- if (!frame) {
- return;
- }
const bool has_blocking_filter =
result == adblock::FilterMatchResult::kBlockRule;
if (!has_blocking_filter) {
VLOG(1) << "[eyeo] Web socket allowed for " << url;
- if (ChromeContentBrowserClient::WillInterceptWebSocket(frame)) {
+ if (ChromeContentBrowserClient::WillInterceptWebSocket(frame, process, initiator_origin)) {
ChromeContentBrowserClient::CreateWebSocket(
- frame, std::move(factory), url, site_for_cookies, user_agent,
+ process, frame, std::move(factory), url, initiator_origin, site_for_cookies, user_agent,
std::move(handshake_client));
return;
}
@@ -246,6 +264,72 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted(
VLOG(1) << "[eyeo] Web socket blocked for " << url;
}
+void AdblockContentBrowserClient::WillCreateWebTransport(
+ int process_id,
+ int frame_routing_id,
+ const GURL& url,
+ const url::Origin& initiator_origin,
+ mojo::PendingRemote<network::mojom::WebTransportHandshakeClient>
+ handshake_client,
+ WillCreateWebTransportCallback callback) {
+ auto* process = content::RenderProcessHost::FromID(process_id);
+ DCHECK(process);
+
+ auto* browser_context = process->GetBrowserContext();
+ auto* profile = Profile::FromBrowserContext(browser_context);
+ if (IsFilteringNeeded(profile, initiator_origin.GetURL().GetAsReferrer())) {
+ auto* subscription_service =
+ adblock::SubscriptionServiceFactory::GetForBrowserContext(
+ browser_context);
+ auto* classification_runner =
+ adblock::ResourceClassificationRunnerFactory::GetForBrowserContext(
+ browser_context);
+
+ classification_runner->CheckRequestFilterMatchForWebTransport(
+ subscription_service->GetCurrentSnapshot(), url,
+ std::move(initiator_origin.GetURL().GetAsReferrer()),
+ content::GlobalRenderFrameHostId(),
+ base::BindOnce(
+ &AdblockContentBrowserClient::OnWebTransportFilterCheckCompleted,
+ weak_factory_.GetWeakPtr(),
+ process_id, frame_routing_id, url,
+ std::move(initiator_origin), std::move(handshake_client),
+ std::move(callback)));
+ return;
+ }
+
+ ChromeContentBrowserClient::WillCreateWebTransport(
+ process_id, frame_routing_id,
+ url, std::move(initiator_origin),
+ std::move(handshake_client), std::move(callback));
+}
+
+void AdblockContentBrowserClient::OnWebTransportFilterCheckCompleted(
+ int process_id,
+ int frame_routing_id,
+ const GURL& url,
+ const url::Origin& initiator_origin,
+ mojo::PendingRemote<network::mojom::WebTransportHandshakeClient>
+ handshake_client,
+ WillCreateWebTransportCallback callback,
+ adblock::FilterMatchResult result) {
+ const bool has_blocking_filter =
+ result == adblock::FilterMatchResult::kBlockRule;
+ if (!has_blocking_filter) {
+ VLOG(1) << "[eyeo] Web transport allowed for " << url;
+ ChromeContentBrowserClient::WillCreateWebTransport(
+ process_id, frame_routing_id,
+ url, std::move(initiator_origin),
+ std::move(handshake_client), std::move(callback));
+ return;
+ }
+ VLOG(1) << "[eyeo] Web transport blocked for " << url;
+ std::move(callback).Run(std::move(handshake_client),
+ network::mojom::WebTransportError::New(
+ net::ERR_BLOCKED_BY_ADMINISTRATOR, quic::QUIC_INTERNAL_ERROR,
+ "Blocked", false));
+}
+
bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,
@@ -269,24 +353,12 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
navigation_id, ukm_source_id, factory_receiver, header_client,
bypass_redirect_checks, disable_secure_dns, factory_override,
navigation_response_task_runner);
- auto* profile = frame ? Profile::FromBrowserContext(
- frame->GetProcess()->GetBrowserContext())
- : nullptr;
-
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- if (!force_adblock_proxy_for_testing_ &&
- request_initiator.scheme() == extensions::kExtensionScheme) {
- VLOG(1) << "[eyeo] Do not use adblock proxy for extensions requests "
- "[extension id:"
- << request_initiator.host() << "].";
- return use_chrome_proxy;
- }
-#endif
+ auto* profile = Profile::FromBrowserContext(browser_context);
bool use_adblock_proxy =
- (type == URLLoaderFactoryType::kDocumentSubResource ||
- type == URLLoaderFactoryType::kNavigation) &&
- IsFilteringNeeded(frame);
+ type != URLLoaderFactoryType::kDownload &&
+ (frame ? IsFilteringNeeded(frame)
+ : IsFilteringNeeded(profile, request_initiator.GetURL().GetAsReferrer()));
bool use_test_loader = false;
#ifdef EYEO_INTERCEPT_DEBUG_URL
@@ -305,7 +377,7 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory_remote;
*factory_receiver = target_factory_remote.InitWithNewPipeAndPassReceiver();
AdblockContextData::StartProxying(
- profile, frame, render_process_id, std::move(proxied_receiver),
+ profile, browser_context, request_initiator, frame, render_process_id, std::move(proxied_receiver),
std::move(target_factory_remote), use_test_loader);
}
return use_adblock_proxy || use_chrome_proxy;
diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/browser/adblock/adblock_content_browser_client.h
--- a/chrome/browser/adblock/adblock_content_browser_client.h
+++ b/chrome/browser/adblock/adblock_content_browser_client.h
@@ -44,16 +44,27 @@ class AdblockContentBrowserClient : public ChromeContentBrowserClient {
static void ForceAdblockProxyForTesting();
#endif
- bool WillInterceptWebSocket(content::RenderFrameHost* frame) override;
+ bool WillInterceptWebSocket(content::RenderFrameHost* frame, content::RenderProcessHost* process, const url::Origin& origin) override;
void CreateWebSocket(
+ content::RenderProcessHost* process,
content::RenderFrameHost* frame,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
handshake_client) override;
+ void WillCreateWebTransport(
+ int process_id,
+ int frame_routing_id,
+ const GURL& url,
+ const url::Origin& initiator_origin,
+ mojo::PendingRemote<network::mojom::WebTransportHandshakeClient>
+ handshake_client,
+ WillCreateWebTransportCallback callback) override;
+
bool WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,
@@ -73,23 +84,35 @@ class AdblockContentBrowserClient : public ChromeContentBrowserClient {
private:
void CreateWebSocketInternal(
+ content::RenderProcessHost* process,
content::GlobalRenderFrameHostId render_frame_host_id,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
handshake_client);
void OnWebSocketFilterCheckCompleted(
+ content::RenderProcessHost* process,
content::GlobalRenderFrameHostId render_frame_host_id,
ChromeContentBrowserClient::WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const absl::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
handshake_client,
adblock::FilterMatchResult result);
-
+ void OnWebTransportFilterCheckCompleted(
+ int process_id,
+ int frame_routing_id,
+ const GURL& url,
+ const url::Origin& initiator_origin,
+ mojo::PendingRemote<network::mojom::WebTransportHandshakeClient>
+ handshake_client,
+ WillCreateWebTransportCallback callback,
+ adblock::FilterMatchResult result);
base::WeakPtrFactory<AdblockContentBrowserClient> weak_factory_{this};
#if BUILDFLAG(ENABLE_EXTENSIONS)
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -6132,7 +6132,9 @@ ChromeContentBrowserClient::
}
bool ChromeContentBrowserClient::WillInterceptWebSocket(
- content::RenderFrameHost* frame) {
+ content::RenderFrameHost* frame,
+ content::RenderProcessHost* process,
+ const url::Origin& origin) {
#if BUILDFLAG(ENABLE_EXTENSIONS)
if (!frame) {
return false;
@@ -6155,9 +6157,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
}
void ChromeContentBrowserClient::CreateWebSocket(
+ content::RenderProcessHost* process,
content::RenderFrameHost* frame,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -637,11 +637,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
int frame_tree_node_id,
const network::ResourceRequest& resource_request) override;
- bool WillInterceptWebSocket(content::RenderFrameHost* frame) override;
+ bool WillInterceptWebSocket(content::RenderFrameHost* frame,
+ content::RenderProcessHost* process,
+ const url::Origin& origin) override;
void CreateWebSocket(
+ content::RenderProcessHost* process,
content::RenderFrameHost* frame,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/components/adblock/content/browser/adblock_url_loader_factory.cc
--- a/components/adblock/content/browser/adblock_url_loader_factory.cc
+++ b/components/adblock/content/browser/adblock_url_loader_factory.cc
@@ -344,12 +344,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError(
void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch(
CheckFilterMatchCallback callback) {
- if (!factory_->CheckHostValid()) {
- PostFilterMatchCallbackToUI(std::move(callback),
- FilterMatchResult::kNoRule);
- return;
- }
-
auto subscription_service = factory_->config_.subscription_service;
if (is_document_request_) {
auto* host = content::RenderFrameHost::FromID(factory_->host_id_);
@@ -388,7 +382,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch(
} else {
factory_->config_.resource_classifier->CheckRequestFilterMatch(
subscription_service->GetCurrentSnapshot(), request_url_,
- adblock_resource_type_, factory_->host_id_,
+ factory_->request_initiator_, adblock_resource_type_, factory_->host_id_,
base::BindOnce(
&AdblockURLLoaderFactory::InProgressRequest::OnRequestUrlClassified,
weak_factory_.GetWeakPtr(),
@@ -677,12 +671,14 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult(
AdblockURLLoaderFactory::AdblockURLLoaderFactory(
AdblockURLLoaderFactoryConfig config,
+ GURL request_initiator,
content::GlobalRenderFrameHostId host_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory,
std::string user_agent_string,
DisconnectCallback on_disconnect)
: config_(std::move(config)),
+ request_initiator_(std::move(request_initiator)),
host_id_(host_id),
user_agent_string_(std::move(user_agent_string)),
on_disconnect_(std::move(on_disconnect)) {
diff --git a/components/adblock/content/browser/adblock_url_loader_factory.h b/components/adblock/content/browser/adblock_url_loader_factory.h
--- a/components/adblock/content/browser/adblock_url_loader_factory.h
+++ b/components/adblock/content/browser/adblock_url_loader_factory.h
@@ -25,6 +25,7 @@
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
+#include "url/gurl.h"
namespace adblock {
@@ -57,6 +58,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory {
AdblockURLLoaderFactory(
AdblockURLLoaderFactoryConfig config,
+ GURL request_initiator,
content::GlobalRenderFrameHostId host_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory> receiver,
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory,
@@ -86,6 +88,7 @@ class AdblockURLLoaderFactory : public network::mojom::URLLoaderFactory {
void MaybeDestroySelf();
AdblockURLLoaderFactoryConfig config_;
+ const GURL request_initiator_;
content::GlobalRenderFrameHostId host_id_;
mojo::ReceiverSet<network::mojom::URLLoaderFactory> proxy_receivers_;
std::set<std::unique_ptr<InProgressRequest>, base::UniquePtrComparator>
diff --git a/components/adblock/content/browser/frame_hierarchy_builder.cc b/components/adblock/content/browser/frame_hierarchy_builder.cc
--- a/components/adblock/content/browser/frame_hierarchy_builder.cc
+++ b/components/adblock/content/browser/frame_hierarchy_builder.cc
@@ -76,9 +76,8 @@ std::vector<GURL> FrameHierarchyBuilder::BuildFrameHierarchy(
content::RenderFrameHost* host) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
- DCHECK(host) << "RenderFrameHost is needed to build frame hierarchy";
-
std::vector<GURL> referrers_chain;
+ if (!host) return referrers_chain;
for (auto* iter = host; iter; iter = iter->GetParent()) {
auto last_commited_referrer = GetUrlAsReferrer(iter);
if (IsValidForFrameHierarchy(last_commited_referrer)) {
diff --git a/components/adblock/content/browser/resource_classification_runner.h b/components/adblock/content/browser/resource_classification_runner.h
--- a/components/adblock/content/browser/resource_classification_runner.h
+++ b/components/adblock/content/browser/resource_classification_runner.h
@@ -81,12 +81,20 @@ class ResourceClassificationRunner : public KeyedService {
virtual void CheckRequestFilterMatch(
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
+ const GURL& request_initiator,
ContentType adblock_resource_type,
content::GlobalRenderFrameHostId render_frame_host_id,
CheckFilterMatchCallback callback) = 0;
virtual void CheckRequestFilterMatchForWebSocket(
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
+ const GURL& request_initiator,
+ content::GlobalRenderFrameHostId render_frame_host_id,
+ CheckFilterMatchCallback callback) = 0;
+ virtual void CheckRequestFilterMatchForWebTransport(
+ SubscriptionService::Snapshot subscription_collections,
+ const GURL& request_url,
+ const GURL& request_initiator,
content::GlobalRenderFrameHostId render_frame_host_id,
CheckFilterMatchCallback callback) = 0;
// No callback, just notify observers
diff --git a/components/adblock/content/browser/resource_classification_runner_impl.cc b/components/adblock/content/browser/resource_classification_runner_impl.cc
--- a/components/adblock/content/browser/resource_classification_runner_impl.cc
+++ b/components/adblock/content/browser/resource_classification_runner_impl.cc
@@ -169,15 +169,28 @@ void ResourceClassificationRunnerImpl::CheckPopupFilterMatch(
void ResourceClassificationRunnerImpl::CheckRequestFilterMatchForWebSocket(
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
+ const GURL& request_initiator,
content::GlobalRenderFrameHostId render_frame_host_id,
CheckFilterMatchCallback callback) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
DCHECK(request_url.SchemeIsWSOrWSS());
- CheckRequestFilterMatch(std::move(subscription_collections), request_url,
+ CheckRequestFilterMatch(std::move(subscription_collections), request_url, request_initiator,
ContentType::Websocket, render_frame_host_id,
std::move(callback));
}
+void ResourceClassificationRunnerImpl::CheckRequestFilterMatchForWebTransport(
+ SubscriptionService::Snapshot subscription_collections,
+ const GURL& request_url,
+ const GURL& request_initiator,
+ content::GlobalRenderFrameHostId render_frame_host_id,
+ CheckFilterMatchCallback callback) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ CheckRequestFilterMatch(std::move(subscription_collections), request_url, request_initiator,
+ ContentType::Other, render_frame_host_id,
+ std::move(callback));
+}
+
void ResourceClassificationRunnerImpl::CheckDocumentAllowlisted(
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
@@ -212,6 +225,7 @@ void ResourceClassificationRunnerImpl::ProcessDocumentAllowlistedResponse(
void ResourceClassificationRunnerImpl::CheckRequestFilterMatch(
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
+ const GURL& request_initiator,
ContentType adblock_resource_type,
content::GlobalRenderFrameHostId frame_host_id,
CheckFilterMatchCallback callback) {
@@ -220,14 +234,10 @@ void ResourceClassificationRunnerImpl::CheckRequestFilterMatch(
DVLOG(1) << "[eyeo] CheckRequestFilterMatchImpl for " << request_url.spec();
auto* host = content::RenderFrameHost::FromID(frame_host_id);
- if (!host) {
- // Host has died, likely because this is a deferred execution. It does not
- // matter anymore whether the resource is blocked, the page is gone.
- std::move(callback).Run(FilterMatchResult::kNoRule);
- return;
- }
- const std::vector<GURL> frame_hierarchy_chain =
+ std::vector<GURL> frame_hierarchy_chain =
frame_hierarchy_builder_->BuildFrameHierarchy(host);
+ if (!host && frame_hierarchy_chain.size() == 0)
+ frame_hierarchy_chain.emplace_back(request_initiator.GetAsReferrer());
DVLOG(1) << "[eyeo] Got " << frame_hierarchy_chain.size()
<< " frame_hierarchy for " << request_url.spec();
@@ -275,7 +285,8 @@ ResourceClassificationRunnerImpl::CheckRequestFilterMatchInternal(
adblock_resource_type, sitekey);
if (classification_result.decision == ClassificationDecision::Allowed) {
- VLOG(1) << "[eyeo] Document allowed due to allowing filter " << request_url;
+ VLOG(1) << "[eyeo] Document allowed due to allowing filter " << request_url
+ << " " << classification_result.decisive_subscription.spec();
return CheckResourceFilterMatchResult{
FilterMatchResult::kAllowRule,
classification_result.decisive_subscription,
@@ -290,6 +301,7 @@ ResourceClassificationRunnerImpl::CheckRequestFilterMatchInternal(
classification_result.decisive_configuration_name};
}
+ VLOG(1) << "[eyeo] No Rule for " << request_url;
return CheckResourceFilterMatchResult{FilterMatchResult::kNoRule, {}, {}};
}
diff --git a/components/adblock/content/browser/resource_classification_runner_impl.h b/components/adblock/content/browser/resource_classification_runner_impl.h
--- a/components/adblock/content/browser/resource_classification_runner_impl.h
+++ b/components/adblock/content/browser/resource_classification_runner_impl.h
@@ -55,12 +55,14 @@ class ResourceClassificationRunnerImpl final
void CheckRequestFilterMatch(
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
+ const GURL& request_initiator,
ContentType adblock_resource_type,
content::GlobalRenderFrameHostId render_frame_host_id,
CheckFilterMatchCallback callback) final;
void CheckRequestFilterMatchForWebSocket(
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
+ const GURL& request_initiator,
content::GlobalRenderFrameHostId render_frame_host_id,
CheckFilterMatchCallback callback) final;
// No callback, just notify observers
@@ -68,6 +70,12 @@ class ResourceClassificationRunnerImpl final
SubscriptionService::Snapshot subscription_collections,
const GURL& request_url,
content::GlobalRenderFrameHostId render_frame_host_id) final;
+ void CheckRequestFilterMatchForWebTransport(
+ SubscriptionService::Snapshot subscription_collections,
+ const GURL& request_url,
+ const GURL& request_initiator,
+ content::GlobalRenderFrameHostId render_frame_host_id,
+ CheckFilterMatchCallback callback) final;
void CheckResponseFilterMatch(
SubscriptionService::Snapshot subscription_collections,
const GURL& response_url,
diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/browser/websockets/websocket_connector_impl.cc
--- a/content/browser/websockets/websocket_connector_impl.cc
+++ b/content/browser/websockets/websocket_connector_impl.cc
@@ -88,14 +88,14 @@ void WebSocketConnectorImpl::Connect(
const uint32_t options =
GetContentClient()->browser()->GetWebSocketOptions(frame);
- if (GetContentClient()->browser()->WillInterceptWebSocket(frame)) {
+ if (GetContentClient()->browser()->WillInterceptWebSocket(frame, process, origin_)) {
GetContentClient()->browser()->CreateWebSocket(
- frame,
+ process, frame,
base::BindOnce(ConnectCalledByContentBrowserClient, requested_protocols,
site_for_cookies, has_storage_access, isolation_info_,
process_id_, frame_id_, origin_, options,
std::move(throttling_profile_id)),
- url, site_for_cookies, user_agent, std::move(handshake_client));
+ url, origin_, site_for_cookies, user_agent, std::move(handshake_client));
return;
}
std::vector<network::mojom::HttpHeaderPtr> headers;
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -1009,7 +1009,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory(
return false;
}
-bool ContentBrowserClient::WillInterceptWebSocket(RenderFrameHost*) {
+bool ContentBrowserClient::WillInterceptWebSocket(RenderFrameHost*, RenderProcessHost*, const url::Origin& origin) {
return false;
}
@@ -1018,9 +1018,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
}
void ContentBrowserClient::CreateWebSocket(
+ RenderProcessHost* process,
RenderFrameHost* frame,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -1840,7 +1840,7 @@ class CONTENT_EXPORT ContentBrowserClient {
scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner);
// Returns true when the embedder wants to intercept a websocket connection.
- virtual bool WillInterceptWebSocket(RenderFrameHost* frame);
+ virtual bool WillInterceptWebSocket(RenderFrameHost* frame, RenderProcessHost* process, const url::Origin& origin);
// Returns the WebSocket creation options.
virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame);
@@ -1862,9 +1862,11 @@ class CONTENT_EXPORT ContentBrowserClient {
// Always called on the UI thread and only when the Network Service is
// enabled.
virtual void CreateWebSocket(
+ RenderProcessHost* process,
RenderFrameHost* frame,
WebSocketFactory factory,
const GURL& url,
+ const url::Origin& initiator_origin,
const net::SiteForCookies& site_for_cookies,
const std::optional<std::string>& user_agent,
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
--
@@ -1,169 +0,0 @@
From: uazo <uazo@users.noreply.github.com>
Date: Tue, 9 Jan 2024 13:37:05 +0000
Subject: AdblockPlus connect popup blocker
activates the pop-up blocking management present in adblockplus
but not active in upstream.
added "enable-stricter-popup-blocker" flag for the global
deactivation of all pop-ups (default disabled)
---
.../adblock/adblock_content_browser_client.cc | 52 +++++++++++++++++++
.../adblock/adblock_content_browser_client.h | 14 +++++
components/blocked_content/popup_blocker.cc | 9 +++-
components/blocked_content/popup_blocker.h | 3 ++
.../about_flags_cc/Stricter-popup-blocker.inc | 14 +++++
5 files changed, 91 insertions(+), 1 deletion(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc
diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/browser/adblock/adblock_content_browser_client.cc
--- a/chrome/browser/adblock/adblock_content_browser_client.cc
+++ b/chrome/browser/adblock/adblock_content_browser_client.cc
@@ -330,6 +330,58 @@ void AdblockContentBrowserClient::OnWebTransportFilterCheckCompleted(
"Blocked", false));
}
+bool AdblockContentBrowserClient::CanCreateWindow(
+ content::RenderFrameHost* opener,
+ const GURL& opener_url,
+ const GURL& opener_top_level_frame_url,
+ const url::Origin& source_origin,
+ content::mojom::WindowContainerType container_type,
+ const GURL& target_url,
+ const content::Referrer& referrer,
+ const std::string& frame_name,
+ WindowOpenDisposition disposition,
+ const blink::mojom::WindowFeatures& features,
+ bool user_gesture,
+ bool opener_suppressed,
+ bool* no_javascript_access) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ DCHECK(opener);
+
+ if (IsFilteringNeeded(opener)) {
+ content::WebContents* web_contents =
+ content::WebContents::FromRenderFrameHost(opener);
+ auto* subscription_service =
+ adblock::SubscriptionServiceFactory::GetForBrowserContext(
+ web_contents->GetBrowserContext());
+
+ GURL popup_url(target_url);
+ web_contents->GetPrimaryMainFrame()->GetProcess()->FilterURL(false,
+ &popup_url);
+ auto* classification_runner =
+ adblock::ResourceClassificationRunnerFactory::GetForBrowserContext(
+ web_contents->GetBrowserContext());
+ const auto popup_blocking_decision =
+ classification_runner->ShouldBlockPopup(
+ subscription_service->GetCurrentSnapshot(), popup_url, opener);
+ if (popup_blocking_decision == adblock::FilterMatchResult::kAllowRule) {
+ return true;
+ }
+ if (popup_blocking_decision == adblock::FilterMatchResult::kBlockRule) {
+ return false;
+ }
+ // Otherwise, if eyeo adblocking is disabled or there is no rule that
+ // explicitly allows or blocks a popup, fall back on Chromium's built-in
+ // popup blocker.
+ DCHECK(popup_blocking_decision == adblock::FilterMatchResult::kDisabled ||
+ popup_blocking_decision == adblock::FilterMatchResult::kNoRule);
+ }
+
+ return ChromeContentBrowserClient::CanCreateWindow(
+ opener, opener_url, opener_top_level_frame_url, source_origin,
+ container_type, target_url, referrer, frame_name, disposition, features,
+ user_gesture, opener_suppressed, no_javascript_access);
+}
+
bool AdblockContentBrowserClient::WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,
diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/browser/adblock/adblock_content_browser_client.h
--- a/chrome/browser/adblock/adblock_content_browser_client.h
+++ b/chrome/browser/adblock/adblock_content_browser_client.h
@@ -82,6 +82,20 @@ class AdblockContentBrowserClient : public ChromeContentBrowserClient {
scoped_refptr<base::SequencedTaskRunner> navigation_response_task_runner)
override;
+ bool CanCreateWindow(content::RenderFrameHost* opener,
+ const GURL& opener_url,
+ const GURL& opener_top_level_frame_url,
+ const url::Origin& source_origin,
+ content::mojom::WindowContainerType container_type,
+ const GURL& target_url,
+ const content::Referrer& referrer,
+ const std::string& frame_name,
+ WindowOpenDisposition disposition,
+ const blink::mojom::WindowFeatures& features,
+ bool user_gesture,
+ bool opener_suppressed,
+ bool* no_javascript_access) override;
+
private:
void CreateWebSocketInternal(
content::RenderProcessHost* process,
diff --git a/components/blocked_content/popup_blocker.cc b/components/blocked_content/popup_blocker.cc
--- a/components/blocked_content/popup_blocker.cc
+++ b/components/blocked_content/popup_blocker.cc
@@ -20,6 +20,11 @@
#include "third_party/blink/public/mojom/frame/frame.mojom-shared.h"
namespace blocked_content {
+
+CROMITE_FEATURE(kStrictPopupBlocker,
+ "StrictPopupBlocker",
+ base::FEATURE_DISABLED_BY_DEFAULT);
+
namespace {
content::Page& GetSourcePageForPopup(
@@ -91,7 +96,9 @@ PopupBlockType ShouldBlockPopup(content::WebContents* web_contents,
GetSourcePageForPopup(open_url_params, web_contents))) {
return PopupBlockType::kAbusive;
}
- return PopupBlockType::kNotBlocked;
+ return base::FeatureList::IsEnabled(kStrictPopupBlocker)
+ ? PopupBlockType::kAbusive
+ : PopupBlockType::kNotBlocked;
}
} // namespace
diff --git a/components/blocked_content/popup_blocker.h b/components/blocked_content/popup_blocker.h
--- a/components/blocked_content/popup_blocker.h
+++ b/components/blocked_content/popup_blocker.h
@@ -5,6 +5,7 @@
#ifndef COMPONENTS_BLOCKED_CONTENT_POPUP_BLOCKER_H_
#define COMPONENTS_BLOCKED_CONTENT_POPUP_BLOCKER_H_
+#include "base/feature_list.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "third_party/blink/public/mojom/window_features/window_features.mojom-forward.h"
#include "ui/base/window_open_disposition.h"
@@ -18,6 +19,8 @@ struct OpenURLParams;
} // namespace content
namespace blocked_content {
+BASE_DECLARE_FEATURE(kStrictPopupBlocker);
+
class PopupNavigationDelegate;
// Classifies what caused a popup to be blocked.
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc b/cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/about_flags_cc/Stricter-popup-blocker.inc
@@ -0,0 +1,14 @@
+#ifdef ABOUT_FLAG_INCLUDE_SECTION
+
+#include "components/blocked_content/popup_blocker.h"
+
+#endif
+
+#ifdef FLAG_SECTION
+
+ {"enable-stricter-popup-blocker",
+ "Enable Stricter popup blocker",
+ "Blocks all pop-ups, even those with user gestures.", kOsAll,
+ FEATURE_VALUE_TYPE(blocked_content::kStrictPopupBlocker)},
+
+#endif // ifdef FLAG_SECTION
--
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -227,6 +227,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
@@ -230,6 +230,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider;
import org.chromium.content_public.browser.SelectionPopupController;
import org.chromium.content_public.browser.WebContents;
import org.chromium.content_public.common.ContentSwitches;
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.printing.PrintManagerDelegateImpl;
import org.chromium.printing.PrintingController;
import org.chromium.printing.PrintingControllerImpl;
@@ -1105,6 +1106,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1064,6 +1065,8 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
super.onStartWithNative();
ChromeActivitySessionTracker.getInstance().onStartWithNative();
ChromeCachedFlags.getInstance().cacheNativeFlags();
@@ -59,16 +59,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE =
"AdaptiveButtonInTopToolbarTranslate";
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS =
@@ -522,6 +523,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(ANDROID_ELEGANT_TEXT_HEIGHT, false);
@@ -533,6 +534,8 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false);
public static final CachedFlag sAndroidTabGroupStableIds =
newCachedFlag(ANDROID_TAB_GROUP_STABLE_IDS, false);
+ public static final CachedFlag sAllowUserCertificates =
+ newCachedFlag(ALLOW_USER_CERTIFICATES, false);
public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false);
public static final CachedFlag sBackGestureActivityTabProvider =
newCachedFlag(BACK_GESTURE_ACTIVITY_TAB_PROVIDER, false);
@@ -656,6 +659,7 @@ public abstract class ChromeFeatureList {
@@ -679,6 +682,7 @@ public abstract class ChromeFeatureList {
public static final List<CachedFlag> sFlagsCachedFullBrowser =
List.of(
@@ -44,7 +44,7 @@ new file mode 100644
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -301,6 +301,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
@@ -300,6 +300,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
}
}
@@ -14,8 +14,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
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
@@ -7156,9 +7156,9 @@
"expiry_milestone": 123
@@ -7195,9 +7195,9 @@
"expiry_milestone": 125
},
{
- "name": "restrict-gamepad-access",
@@ -29,7 +29,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -3040,7 +3040,7 @@ const char kResetShortcutCustomizationsDescription[] =
@@ -3089,7 +3089,7 @@ const char kResetShortcutCustomizationsDescription[] =
const char kRestrictGamepadAccessName[] = "Restrict gamepad access";
const char kRestrictGamepadAccessDescription[] =
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -302,6 +302,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
@@ -308,6 +308,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
builtins_to_provide.push_back(
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
#endif
@@ -101,7 +101,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -237,6 +237,9 @@
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings_internal\pref_hash_seed.bin" type="BINDATA" />
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" />
<include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" />
</if>
+ <!-- Bromite Proxy Configuration UI -->
@@ -197,7 +197,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -190,6 +190,8 @@
@@ -191,6 +191,8 @@
#include "printing/buildflags/buildflags.h"
#include "rlz/buildflags/buildflags.h"
@@ -206,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
#include "chrome/browser/background/background_mode_manager.h"
#endif
@@ -1412,6 +1414,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
@@ -1447,6 +1449,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) {
component_updater::RegisterPrefs(registry);
domain_reliability::RegisterPrefs(registry);
embedder_support::OriginTrialPrefs::RegisterPrefs(registry);
@@ -661,7 +661,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -310,6 +310,8 @@ static_library("ui") {
@@ -301,6 +301,8 @@ static_library("ui") {
"webui/metrics_internals/metrics_internals_ui.h",
"webui/net_export_ui.cc",
"webui/net_export_ui.h",
@@ -673,7 +673,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -55,6 +55,7 @@
@@ -52,6 +52,7 @@
#include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h"
#include "chrome/browser/ui/webui/omnibox/omnibox_ui.h"
#include "chrome/browser/ui/webui/policy/policy_ui.h"
@@ -681,7 +681,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
#include "chrome/browser/ui/webui/predictors/predictors_ui.h"
#include "chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_ui.h"
#include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h"
@@ -494,6 +495,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
@@ -469,6 +470,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
return &NewWebUI<MetricsInternalsUI>;
if (url.host_piece() == chrome::kChromeUINetExportHost)
return &NewWebUI<NetExportUI>;
@@ -1136,7 +1136,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
const char kChromeUIChromeURLsHost[] = "chrome-urls";
const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/";
const char kChromeUIComponentsHost[] = "components";
@@ -455,6 +457,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
@@ -460,6 +462,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
kChromeUILockScreenNetworkHost,
kChromeUILockScreenStartReauthHost,
kChromeUIMobileSetupHost,
@@ -1144,7 +1144,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
kChromeUIMultiDeviceSetupHost,
kChromeUINetworkHost,
kChromeUINotificationTesterHost,
@@ -757,6 +760,7 @@ const char* const kChromeHostURLs[] = {
@@ -760,6 +763,7 @@ const char* const kChromeHostURLs[] = {
#if !BUILDFLAG(IS_ANDROID)
#if !BUILDFLAG(IS_CHROMEOS)
kChromeUIAppLauncherPageHost,
@@ -1155,7 +1155,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons
diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h
--- a/chrome/common/webui_url_constants.h
+++ b/chrome/common/webui_url_constants.h
@@ -135,6 +135,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
@@ -134,6 +134,8 @@ extern const char kChromeUINTPTilesInternalsHost[];
extern const char kChromeUINaClHost[];
extern const char kChromeUINetExportHost[];
extern const char kChromeUINetExportURL[];
@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../CustomTabIntentDataProvider.java | 5 +-
.../browser/download/DownloadUtils.java | 16 +-
.../history/HistoryContentManager.java | 7 +-
.../browser/history/HistoryManager.java | 28 ++-
.../browser/history/HistoryManager.java | 26 ++-
.../chrome/browser/history/HistoryPage.java | 15 ++
.../native_page/NativePageFactory.java | 4 +-
.../chrome/browser/ntp/RecentTabsManager.java | 28 ++-
@@ -85,7 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../add-an-always-incognito-mode.inc | 3 +
.../add-an-always-incognito-mode.inc | 1 +
net/base/file_stream_context.cc | 2 +-
66 files changed, 771 insertions(+), 103 deletions(-)
66 files changed, 770 insertions(+), 102 deletions(-)
create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java
@@ -98,7 +98,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -642,6 +642,7 @@ chrome_java_resources = [
@@ -644,6 +644,7 @@ chrome_java_resources = [
"java/res/xml/main_preferences.xml",
"java/res/xml/manage_sync_preferences.xml",
"java/res/xml/phone_as_a_security_key_accessory_filter.xml",
@@ -117,7 +117,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
"java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
"java/src/org/chromium/chrome/browser/ActivityUtils.java",
@@ -971,6 +972,7 @@ chrome_java_sources = [
@@ -979,6 +980,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java",
@@ -243,7 +243,7 @@ new file mode 100644
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
@@ -63,6 +63,10 @@ import org.chromium.base.task.TaskTraits;
@@ -66,6 +66,10 @@ import org.chromium.base.task.TaskTraits;
import org.chromium.build.annotations.UsedByReflection;
import org.chromium.cc.input.BrowserControlsState;
import org.chromium.chrome.R;
@@ -254,7 +254,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.IntentHandler.TabOpenType;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics;
@@ -662,9 +666,14 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -676,9 +680,14 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
mTabModelOrchestrator.onNativeLibraryReady(getTabContentManager());
// For saving non-incognito tab closures for Recent Tabs.
@@ -272,7 +272,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
// Defer initialization of this helper so it triggers after TabModelFilter
// observers.
UndoRefocusHelper.initialize(
@@ -2349,8 +2358,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2405,8 +2414,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
// We determine the model as soon as possible so every systems get initialized coherently.
boolean startIncognito =
@@ -287,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -94,6 +94,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.contextualsearch.ContextualSearchFieldTrial;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager;
import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager.ContextualSearchTabPromotionDelegate;
import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
@@ -295,7 +295,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
import org.chromium.chrome.browser.device.DeviceClassManager;
@@ -2036,6 +2037,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -1996,6 +1997,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
throw new IllegalStateException(
"Attempting to access TabCreator before initialization");
}
@@ -316,7 +316,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
import org.chromium.chrome.browser.bookmarks.BookmarkFeatures;
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils;
@@ -100,6 +101,10 @@ import java.lang.annotation.RetentionPolicy;
@@ -103,6 +104,10 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
@@ -327,7 +327,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
/**
* Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu
* items based on activity state.
@@ -599,6 +604,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -604,6 +609,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) {
@@ -341,7 +341,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
// We have to iterate all menu items since same menu item ID may be associated with more
// than one menu items.
boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU;
@@ -661,7 +673,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -667,7 +679,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
if (item.getItemId() == R.id.recent_tabs_menu_id) {
@@ -358,7 +358,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
}
if (item.getItemId() == R.id.menu_select_tabs) {
item.setVisible(isMenuSelectTabsVisible);
@@ -870,8 +890,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -876,8 +896,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
&& !isChromeScheme
&& !isFileScheme
&& !isContentScheme
@@ -460,7 +460,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
import org.chromium.chrome.browser.DefaultBrowserInfo;
import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl;
import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder;
@@ -203,6 +204,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
openInChromeItemVisible = false;
tryAddingReadAloud = false;
}
@@ -514,7 +514,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
/** A class containing some utility static methods. */
public class DownloadUtils {
private static final String TAG = "download";
@@ -285,7 +290,16 @@ public class DownloadUtils {
@@ -286,7 +291,16 @@ public class DownloadUtils {
// Offline pages isn't supported in Incognito. This should be checked before calling
// OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found
// for incognito profile.
@@ -535,7 +535,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java
@@ -244,7 +244,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -239,7 +239,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.generateFooterItems();
// Listen to changes in sign in state.
@@ -546,7 +546,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
// Create PrefChangeRegistrar to receive notifications on preference changes.
mPrefChangeRegistrar = new PrefChangeRegistrar();
@@ -287,7 +289,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
@@ -275,7 +277,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver
mHistoryAdapter.onDestroyed();
mLargeIconBridge.destroy();
mLargeIconBridge = null;
@@ -559,7 +559,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
@@ -35,6 +35,7 @@ import com.google.android.material.tabs.TabLayout.OnTabSelectedListener;
@@ -23,6 +23,7 @@ import com.google.android.material.tabs.TabLayout;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
@@ -567,9 +567,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
import org.chromium.base.supplier.ObservableSupplierImpl;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
@@ -75,6 +76,12 @@ import java.io.Serializable;
@@ -49,6 +50,12 @@ import org.chromium.ui.base.Clipboard;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
+import org.chromium.chrome.browser.profiles.Profile;
+import org.chromium.base.ContextUtils;
@@ -580,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
/** Combines and manages the different UI components of browsing history. */
public class HistoryManager
implements OnMenuItemClickListener,
@@ -164,7 +171,7 @@ public class HistoryManager
@@ -133,7 +140,7 @@ public class HistoryManager
recordUserAction("Show");
// If incognito placeholder is shown, we don't need to create History UI elements.
@@ -589,17 +589,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
mSelectableListLayout = null;
mRootView = getIncognitoHistoryPlaceholderView();
return;
@@ -673,7 +680,7 @@ public class HistoryManager
private void swapContentView() {
boolean toHistoryClusters;
- if (mIsIncognito) {
+ if (shouldShowIncognitoPlaceholder()) {
return;
} else if (isHistoryClustersUIShowing()) {
toHistoryClusters = false;
@@ -737,9 +744,22 @@ public class HistoryManager
&& mContentView == mHistoryClustersCoordinator.getActivityContentView();
@@ -339,9 +346,22 @@ public class HistoryManager
onBackPressStateChanged();
}
+ public boolean isIncognito() { return mIsIncognito; }
@@ -622,7 +613,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
// If Incognito placeholder is shown no need to call any destroy method.
return;
}
@@ -809,7 +829,7 @@ public class HistoryManager
@@ -397,7 +417,7 @@ public class HistoryManager
* @return True if manager handles this event, false if it decides to ignore.
*/
private boolean onBackPressed() {
@@ -630,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
+ if (shouldShowIncognitoPlaceholder() || mSelectableListLayout == null) {
// If Incognito placeholder is shown, the back press should handled by HistoryActivity.
return false;
} else if (isHistoryClustersUIShowing()) {
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java
@@ -639,10 +630,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.history_clusters.HistoryClustersConstants;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.tab.Tab;
@@ -17,6 +18,12 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -16,6 +17,12 @@ import org.chromium.chrome.browser.ui.native_page.BasicNativePage;
import org.chromium.chrome.browser.ui.native_page.NativePageHost;
import org.chromium.components.embedder_support.util.UrlConstants;
@@ -655,7 +646,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
/** Native page for managing browsing history. */
public class HistoryPage extends BasicNativePage {
private HistoryManager mHistoryManager;
@@ -42,6 +49,14 @@ public class HistoryPage extends BasicNativePage {
@@ -41,6 +48,14 @@ public class HistoryPage extends BasicNativePage {
String url) {
super(host);
@@ -673,15 +664,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
@@ -16,6 +16,7 @@ import org.chromium.base.jank_tracker.JankTracker;
import org.chromium.base.supplier.DestroyableObservableSupplier;
@@ -17,6 +17,7 @@ import org.chromium.base.supplier.DestroyableObservableSupplier;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
@@ -287,7 +288,8 @@ public class NativePageFactory {
@@ -297,7 +298,8 @@ public class NativePageFactory {
String url, NativePage candidatePage, Tab tab, boolean isIncognito) {
NativePage page;
@@ -720,7 +711,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM
mActiveTab = tab;
mTabModelSelector = tabModelSelector;
mShowHistoryManager = showHistoryManager;
@@ -258,6 +268,22 @@ public class RecentTabsManager
@@ -263,6 +273,22 @@ public class RecentTabsManager
*/
public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) {
if (mIsDestroyed) return;
@@ -911,7 +902,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -72,6 +72,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
@@ -75,6 +75,7 @@ import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
import org.chromium.chrome.browser.sync.SyncServiceFactory;
import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
@@ -919,7 +910,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
@@ -358,6 +359,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -362,6 +363,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((PrivacySandboxSettingsBaseFragment) fragment)
.setSnackbarManager(getSnackbarManager());
}
@@ -1044,7 +1035,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -135,6 +135,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController;
@@ -139,6 +139,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController;
import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFactory;
import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
@@ -1053,7 +1044,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.ui.base.IntentRequestTracker;
import org.chromium.ui.dragdrop.DragDropGlobalState;
import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -985,7 +987,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1011,7 +1013,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
() -> {
mTabCreatorManagerSupplier
.get()
@@ -1107,16 +1098,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
@@ -50,6 +50,8 @@ import org.chromium.components.embedder_support.util.UrlUtilities;
@@ -49,6 +49,8 @@ import org.chromium.chrome.features.start_surface.StartSurfaceUserData;
import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.content_public.browser.LoadUrlParams;
import org.chromium.url.GURL;
+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
+
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -671,6 +673,13 @@ public class TabPersistentStore {
@@ -670,6 +672,13 @@ public class TabPersistentStore {
}
}
}
@@ -1141,15 +1132,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController;
import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton;
@@ -603,7 +604,7 @@ public class ToolbarManager
@@ -615,7 +616,7 @@ public class ToolbarManager
TraceEvent.end("isOfflinePage");
return ret;
}
- });
+ }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
mControlContainer = controlContainer;
mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline);
assert mControlContainer != null;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappIntentDataProvider.java
@@ -1264,7 +1255,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
--- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
+++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -351,6 +351,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
@@ -357,6 +357,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const {
return ProviderStateServiceFactory::GetForProfile(profile_);
}
@@ -1738,7 +1729,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -248,6 +248,7 @@
@@ -249,6 +249,7 @@
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h"
@@ -1746,7 +1737,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
#include "chrome/browser/android/ntp/recent_tabs_page_prefs.h"
#include "chrome/browser/android/oom_intervention/oom_intervention_decider.h"
@@ -1813,6 +1814,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1856,6 +1857,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry);
variations::VariationsService::RegisterProfilePrefs(registry);
webapps::InstallPromptPrefs::RegisterProfilePrefs(registry);
@@ -1885,7 +1876,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1222,6 +1222,37 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1228,6 +1228,37 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
Clears history from all synced devices
</message>
@@ -1991,7 +1982,7 @@ new file mode 100644
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -3952,6 +3952,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
@@ -3957,6 +3957,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] =
"net.out_of_process_system_dns_resolution_enabled";
#endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX)
@@ -2007,7 +1998,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc
--- a/components/content_settings/core/browser/content_settings_pref_provider.cc
+++ b/components/content_settings/core/browser/content_settings_pref_provider.cc
@@ -97,10 +97,12 @@ void PrefProvider::RegisterProfilePrefs(
@@ -96,10 +96,12 @@ void PrefProvider::RegisterProfilePrefs(
PrefProvider::PrefProvider(PrefService* prefs,
bool off_the_record,
@@ -2020,20 +2011,20 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
store_last_modified_(store_last_modified),
clock_(base::DefaultClock::GetInstance()) {
TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider");
@@ -124,11 +126,13 @@ PrefProvider::PrefProvider(PrefService* prefs,
@@ -122,11 +124,13 @@ PrefProvider::PrefProvider(PrefService* prefs,
WebsiteSettingsRegistry* website_settings =
WebsiteSettingsRegistry::GetInstance();
for (const WebsiteSettingsInfo* info : *website_settings) {
+ bool save_site_settings = force_save_site_settings_ &&
+ info->incognito_behavior() == WebsiteSettingsInfo::INHERIT_IN_INCOGNITO;
content_settings_prefs_.insert(std::make_pair(
info->type(), std::make_unique<ContentSettingsPref>(
info->type(), prefs_, pref_change_registrar_.get(),
info->pref_name(), info->partitioned_pref_name(),
- off_the_record_, restore_session,
+ off_the_record_ && !save_site_settings, restore_session,
base::BindRepeating(&PrefProvider::Notify,
base::Unretained(this)))));
info->type(),
std::make_unique<ContentSettingsPref>(
info->type(), prefs_, &pref_change_registrar_, info->pref_name(),
- info->partitioned_pref_name(), off_the_record_, restore_session,
+ info->partitioned_pref_name(), off_the_record_ && !save_site_settings, restore_session,
base::BindRepeating(&PrefProvider::Notify,
base::Unretained(this)))));
}
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.h b/components/content_settings/core/browser/content_settings_pref_provider.h
--- a/components/content_settings/core/browser/content_settings_pref_provider.h
@@ -2105,7 +2096,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map.
diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc
--- a/components/omnibox/browser/autocomplete_provider_client.cc
+++ b/components/omnibox/browser/autocomplete_provider_client.cc
@@ -29,3 +29,7 @@ base::WeakPtr<AutocompleteProviderClient>
@@ -33,3 +33,7 @@ base::WeakPtr<AutocompleteProviderClient>
AutocompleteProviderClient::GetWeakPtr() {
return nullptr;
}
@@ -2127,7 +2118,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone
diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc
--- a/components/omnibox/browser/base_search_provider.cc
+++ b/components/omnibox/browser/base_search_provider.cc
@@ -349,7 +349,7 @@ bool BaseSearchProvider::CanSendZeroSuggestRequest(
@@ -350,7 +350,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL(
}
// Don't make a suggest request if in incognito mode.
@@ -2139,7 +2130,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -774,7 +774,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
@@ -775,7 +775,9 @@ bool SearchProvider::IsQuerySuitableForSuggest(bool* query_is_private) const {
// keyword input to a keyword suggest server, if any.)
const TemplateURL* default_url = providers_.GetDefaultProviderURL();
const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
@@ -299,7 +299,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
#include "third_party/blink/public/platform/web_media_player.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/public/web/web_local_frame_client.h"
@@ -332,6 +333,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
@@ -330,6 +331,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
}
bool AutoplayPolicy::IsGestureNeededForPlayback() const {
@@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
if (!IsLockedPendingUserGesture())
return false;
@@ -430,6 +433,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
@@ -428,6 +431,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
}
}
@@ -329,7 +329,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/third_party/blink/renderer/core/html/media/autoplay_policy.h
--- a/third_party/blink/renderer/core/html/media/autoplay_policy.h
+++ b/third_party/blink/renderer/core/html/media/autoplay_policy.h
@@ -137,6 +137,10 @@ class CORE_EXPORT AutoplayPolicy final
@@ -138,6 +138,10 @@ class CORE_EXPORT AutoplayPolicy final
// should use, if checking to see if an action is allowed.
bool IsLockedPendingUserGesture() const;
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../menu/bookmark_toolbar_menu_improved.xml | 14 +
.../browser/TabbedModeTabDelegateFactory.java | 5 +-
.../app/bookmarks/BookmarkActivity.java | 32 ++
.../browser/bookmarks/BookmarkBridge.java | 280 +++++++++++++++++
.../browser/bookmarks/BookmarkBridge.java | 285 +++++++++++++++++
.../browser/bookmarks/BookmarkDelegate.java | 10 +
.../bookmarks/BookmarkManagerCoordinator.java | 9 +
.../bookmarks/BookmarkManagerMediator.java | 23 ++
@@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../bookmarks/android/bookmark_bridge.h | 30 +-
.../browser/bookmarks/bookmark_html_writer.cc | 11 +
.../dialogs/DownloadLocationCustomView.java | 8 +-
.../DownloadLocationDialogCoordinator.java | 8 +-
.../DownloadLocationDialogCoordinator.java | 10 +-
.../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
chrome/browser/importer/profile_writer.cc | 10 +
@@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
ui/shell_dialogs/select_file_dialog_linux.cc | 4 +
ui/shell_dialogs/select_file_dialog_linux.h | 2 +
ui/shell_dialogs/select_file_dialog_win.cc | 5 +
43 files changed, 922 insertions(+), 29 deletions(-)
43 files changed, 928 insertions(+), 30 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc
@@ -120,15 +120,15 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java
@@ -12,6 +12,7 @@ import androidx.annotation.Nullable;
import org.chromium.base.jank_tracker.JankTracker;
@@ -13,6 +13,7 @@ import org.chromium.base.jank_tracker.JankTracker;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
+import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -51,7 +52,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
@@ -53,7 +54,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
* {@link ChromeTabbedActivity}.
*/
public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -137,7 +137,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
private final Supplier<ShareDelegate> mShareDelegateSupplier;
private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
@@ -79,7 +80,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -82,7 +83,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private NativePageFactory mNativePageFactory;
public TabbedModeTabDelegateFactory(
@@ -149,8 +149,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java
@@ -20,6 +20,11 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.profiles.Profile;
@@ -21,6 +21,11 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileProvider;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.embedder_support.util.UrlConstants;
+import org.chromium.ui.base.ActivityWindowAndroid;
@@ -161,7 +161,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
/**
* The activity that displays the bookmark UI on the phone. It keeps a {@link
@@ -32,6 +37,9 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -33,6 +38,9 @@ public class BookmarkActivity extends SnackbarActivity {
public static final int EDIT_BOOKMARK_REQUEST_CODE = 14;
public static final String INTENT_VISIT_BOOKMARK_ID = "BookmarkEditActivity.VisitBookmarkId";
@@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -62,8 +70,23 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -58,8 +66,23 @@ public class BookmarkActivity extends SnackbarActivity {
getOnBackPressedDispatcher(),
mBookmarkManagerCoordinator,
SecondaryActivity.BOOKMARK);
@@ -195,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
@Override
protected void onDestroy() {
super.onDestroy();
@@ -73,6 +96,7 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -69,6 +92,7 @@ public class BookmarkActivity extends SnackbarActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@@ -203,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
BookmarkId bookmarkId =
BookmarkId.getBookmarkIdFromString(
@@ -81,6 +105,14 @@ public class BookmarkActivity extends SnackbarActivity {
@@ -77,6 +101,14 @@ public class BookmarkActivity extends SnackbarActivity {
}
}
@@ -221,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java
@@ -33,6 +33,46 @@ import org.chromium.url.GURL;
@@ -33,6 +33,48 @@ import org.chromium.url.GURL;
import java.util.ArrayList;
import java.util.List;
@@ -252,10 +252,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+import org.chromium.chrome.browser.IntentHandler;
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
+import org.chromium.chrome.browser.download.DownloadLocationDialogType;
+import org.chromium.chrome.browser.download.settings.DownloadLocationHelperImpl;
+import org.chromium.chrome.browser.download.dialogs.DownloadLocationDialogController;
+import org.chromium.chrome.browser.download.dialogs.DownloadLocationDialogCoordinator;
+import org.chromium.chrome.browser.download.dialogs.DownloadLocationCustomView;
+import org.chromium.chrome.browser.download.DirectoryOption;
+import org.chromium.chrome.browser.profiles.ProfileManager;
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
+import org.chromium.ui.base.PageTransition;
@@ -268,7 +270,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Provides the communication channel for Android to fetch and manipulate the bookmark model stored
* in native.
@@ -483,6 +523,209 @@ class BookmarkBridge {
@@ -483,6 +525,212 @@ class BookmarkBridge {
.getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType());
}
@@ -422,7 +424,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ // Actually show the dialog.
+ mCustomView = (DownloadLocationCustomView) LayoutInflater.from(context).inflate(
+ R.layout.download_location_dialog, null);
+ mCustomView.initialize(DownloadLocationDialogType.DEFAULT, /*totalBytes*/ 0);
+ mCustomView.initialize(DownloadLocationDialogType.DEFAULT, /*totalBytes*/ 0,
+ (isChecked) -> {},
+ new DownloadLocationHelperImpl(mProfile));
+ mCustomView.setTitle(context.getString(R.string.export_bookmarks_alert_title));
+ mCustomView.setFileName(standardBoorkmarkName);
+ mCustomView.mDontShowAgain.setVisibility(View.GONE);
@@ -472,13 +476,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
+ };
+ dialog.initialize(controller);
+ dialog.showDialog(context, modalDialogManager, /*totalBytes*/ 0,
+ DownloadLocationDialogType.DEFAULT, /*suggestedPath*/ "", /*isIncognito*/ false);
+ DownloadLocationDialogType.DEFAULT, /*suggestedPath*/ "",
+ ProfileManager.getLastUsedRegularProfile());
+ }
+
/**
* Synchronously gets a list of bookmarks that match the specified search query.
*
@@ -1032,6 +1275,39 @@ class BookmarkBridge {
@@ -1036,6 +1284,39 @@ class BookmarkBridge {
depthList.add(depth);
}
@@ -518,7 +523,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
List<Pair<Integer, Integer>> pairList = new ArrayList<>();
for (int i = 0; i < left.length; i++) {
@@ -1090,6 +1366,10 @@ class BookmarkBridge {
@@ -1094,6 +1375,10 @@ class BookmarkBridge {
void getChildIds(
long nativeBookmarkBridge, long id, int type, List<BookmarkId> bookmarksList);
@@ -552,7 +557,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java
@@ -47,6 +47,8 @@ import org.chromium.components.image_fetcher.ImageFetcher;
@@ -48,6 +48,8 @@ import org.chromium.components.image_fetcher.ImageFetcher;
import org.chromium.components.image_fetcher.ImageFetcherConfig;
import org.chromium.components.image_fetcher.ImageFetcherFactory;
import org.chromium.ui.KeyboardVisibilityDelegate;
@@ -561,7 +566,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
@@ -317,6 +319,13 @@ public class BookmarkManagerCoordinator
@@ -326,6 +328,13 @@ public class BookmarkManagerCoordinator
// Public API implementation.
@@ -597,7 +602,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** Keeps track of whether drag is enabled / active for bookmark lists. */
private class BookmarkDragStateDelegate implements DragStateDelegate {
private BookmarkDelegate mBookmarkDelegate;
@@ -550,6 +555,14 @@ class BookmarkManagerMediator
@@ -554,6 +559,14 @@ class BookmarkManagerMediator
mNativePage = nativePage;
}
@@ -612,7 +617,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** See BookmarkManager(Coordinator)#updateForUrl */
void updateForUrl(String url) {
// Bookmark model is null if the manager has been destroyed.
@@ -726,6 +739,16 @@ class BookmarkManagerMediator
@@ -734,6 +747,16 @@ class BookmarkManagerMediator
}
}
@@ -718,7 +723,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java
@@ -129,6 +129,10 @@ class BookmarkToolbarMediator
@@ -132,6 +132,10 @@ class BookmarkToolbarMediator
mBookmarkDelegate = bookmarkDelegate;
mModel.set(
BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack);
@@ -772,15 +777,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java
@@ -16,6 +16,7 @@ import org.chromium.base.jank_tracker.JankTracker;
import org.chromium.base.supplier.DestroyableObservableSupplier;
@@ -17,6 +17,7 @@ import org.chromium.base.supplier.DestroyableObservableSupplier;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.OneshotSupplier;
import org.chromium.base.supplier.Supplier;
+import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.app.download.home.DownloadPage;
import org.chromium.chrome.browser.bookmarks.BookmarkPage;
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
@@ -52,7 +53,7 @@ import org.chromium.ui.util.ColorUtils;
@@ -54,7 +55,7 @@ import org.chromium.ui.util.ColorUtils;
* Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
*/
public class NativePageFactory {
@@ -789,7 +794,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController;
private final BrowserControlsManager mBrowserControlsManager;
private final Supplier<Tab> mCurrentTabSupplier;
@@ -71,7 +72,7 @@ public class NativePageFactory {
@@ -74,7 +75,7 @@ public class NativePageFactory {
private NativePageBuilder mNativePageBuilder;
public NativePageFactory(
@@ -798,7 +803,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
@NonNull BottomSheetController sheetController,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull Supplier<Tab> currentTabSupplier,
@@ -134,7 +135,7 @@ public class NativePageFactory {
@@ -140,7 +141,7 @@ public class NativePageFactory {
@VisibleForTesting
static class NativePageBuilder {
@@ -807,8 +812,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private final BottomSheetController mBottomSheetController;
private final Supplier<NewTabPageUma> mUma;
private final BrowserControlsManager mBrowserControlsManager;
@@ -151,7 +152,7 @@ public class NativePageFactory {
private final ObservableSupplier<Integer> mTabStripHeightSupplier;
@@ -158,7 +159,7 @@ public class NativePageFactory {
private final OneshotSupplier<ModuleRegistry> mModuleRegistrySupplier;
public NativePageBuilder(
- Activity activity,
@@ -816,7 +821,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
Supplier<NewTabPageUma> uma,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager,
@@ -218,7 +219,7 @@ public class NativePageFactory {
@@ -228,7 +229,7 @@ public class NativePageFactory {
mActivity.getComponentName(),
mSnackbarManagerSupplier.get(),
tab.getProfile(),
@@ -828,7 +833,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -197,6 +197,8 @@ static_library("browser") {
@@ -201,6 +201,8 @@ static_library("browser") {
"bluetooth/chrome_bluetooth_delegate_impl_client.h",
"bookmarks/bookmark_model_factory.cc",
"bookmarks/bookmark_model_factory.h",
@@ -837,7 +842,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"bookmarks/chrome_bookmark_client.cc",
"bookmarks/chrome_bookmark_client.h",
"bookmarks/managed_bookmark_service_factory.cc",
@@ -1923,6 +1925,13 @@ static_library("browser") {
@@ -1935,6 +1937,13 @@ static_library("browser") {
]
}
@@ -851,7 +856,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
configs += [
"//build/config/compiler:wexit_time_destructors",
"//build/config:precompiled_headers",
@@ -3630,8 +3639,6 @@ static_library("browser") {
@@ -3649,8 +3658,6 @@ static_library("browser") {
"badging/badge_manager_factory.h",
"banners/app_banner_manager_desktop.cc",
"banners/app_banner_manager_desktop.h",
@@ -863,7 +868,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
@@ -58,6 +58,28 @@
@@ -59,6 +59,28 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
@@ -892,7 +897,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
using base::android::AttachCurrentThread;
using base::android::ConvertUTF16ToJavaString;
using base::android::ConvertUTF8ToJavaString;
@@ -75,12 +97,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
@@ -76,12 +98,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
using content::BrowserThread;
using power_bookmarks::PowerBookmarkMeta;
@@ -989,7 +994,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
class BookmarkTitleComparer {
public:
explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
@@ -221,6 +327,10 @@ BookmarkBridge::~BookmarkBridge() {
@@ -232,6 +338,10 @@ BookmarkBridge::~BookmarkBridge() {
partner_bookmarks_shim_observation_.Reset();
bookmark_model_observation_.Reset();
profile_observation_.Reset();
@@ -1000,7 +1005,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
}
void BookmarkBridge::Destroy(JNIEnv*) {
@@ -638,6 +748,183 @@ jint BookmarkBridge::GetTotalBookmarkCount(
@@ -668,6 +778,183 @@ jint BookmarkBridge::GetTotalBookmarkCount(
return count;
}
@@ -1244,7 +1249,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
void GetAllFoldersWithDepths(
JNIEnv* env,
const base::android::JavaParamRef<jobject>& j_folders_obj,
@@ -340,12 +360,16 @@ class BookmarkBridge : public ProfileObserver,
@@ -356,12 +376,16 @@ class BookmarkBridge : public ProfileObserver,
void DestroyJavaObject();
raw_ptr<Profile> profile_; // weak
@@ -1261,9 +1266,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
// Information about the Partner bookmarks (must check for IsLoaded()).
// This is owned by profile.
@@ -371,6 +395,10 @@ class BookmarkBridge : public ProfileObserver,
ReadingListManager::Observer>
reading_list_manager_observations_{this};
@@ -389,6 +413,10 @@ class BookmarkBridge : public ProfileObserver,
bool suppress_observer_notifications_ = false;
+ const std::string FileSelectedImpl(const base::FilePath& path);
+ void FileSelectedImplOnUIThread(const base::FilePath& path,
@@ -1285,7 +1290,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/favicon/favicon_service_factory.h"
#include "chrome/browser/profiles/profile.h"
@@ -229,7 +232,15 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
@@ -234,7 +237,15 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
// Opens the file, returning true on success.
bool OpenFile() {
int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE;
@@ -1312,17 +1317,17 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
+ public CheckBox mDontShowAgain;
private @DownloadLocationDialogType int mDialogType;
private long mTotalBytes;
@@ -70,7 +70,7 @@ public class DownloadLocationCustomView extends ScrollView
private Callback<Boolean> mOnClickedCallback;
@@ -72,7 +72,7 @@ public class DownloadLocationCustomView extends ScrollView
mDontShowAgain = findViewById(R.id.show_again_checkbox);
}
- void initialize(@DownloadLocationDialogType int dialogType, long totalBytes) {
+ public void initialize(@DownloadLocationDialogType int dialogType, long totalBytes) {
// TODO(xingliu): Remove this function, currently used by smart suggestion.
mDialogType = dialogType;
mTotalBytes = totalBytes;
@@ -123,7 +123,7 @@ public class DownloadLocationCustomView extends ScrollView
- void initialize(
+ public void initialize(
@DownloadLocationDialogType int dialogType,
long totalBytes,
Callback<Boolean> onClickedCallback,
@@ -130,7 +130,7 @@ public class DownloadLocationCustomView extends ScrollView
* @return The text that the user inputted as the name of the file.
*/
@Nullable
@@ -1331,7 +1336,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
if (mFileName == null || mFileName.getText() == null) return null;
return mFileName.getText().toString();
}
@@ -132,7 +132,7 @@ public class DownloadLocationCustomView extends ScrollView
@@ -139,7 +139,7 @@ public class DownloadLocationCustomView extends ScrollView
* @return The file path based on what the user selected as the location of the file.
*/
@Nullable
@@ -1343,7 +1348,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java
@@ -35,12 +35,12 @@ import java.util.ArrayList;
@@ -37,18 +37,18 @@ import java.util.ArrayList;
*/
public class DownloadLocationDialogCoordinator implements ModalDialogProperties.Controller {
@NonNull private DownloadLocationDialogController mController;
@@ -1359,7 +1364,14 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
private long mTotalBytes;
private @DownloadLocationDialogType int mDialogType;
private String mSuggestedPath;
@@ -137,7 +137,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
private Context mContext;
private boolean mHasMultipleDownloadLocations;
- private Profile mProfile;
+ protected Profile mProfile;
private boolean mLocationDialogManaged;
/**
@@ -140,7 +140,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties.
* Called after retrieved the download directory options.
* @param dirs An list of available download directories.
*/
@@ -1382,7 +1394,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -493,6 +493,7 @@ public abstract class ChromeFeatureList {
@@ -502,6 +502,7 @@ public abstract class ChromeFeatureList {
public static final String USER_BYPASS_UI = "UserBypassUI";
public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR =
"VerticalAutomotiveBackButtonToolbar";
@@ -1445,7 +1457,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
/**
* Whether Chrome is set as the default browser.
@@ -911,6 +913,7 @@ public final class ChromePreferenceKeys {
@@ -894,6 +896,7 @@ public final class ChromePreferenceKeys {
AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED,
APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE,
APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO,
@@ -1484,7 +1496,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -407,6 +407,9 @@ static_library("common_lib") {
@@ -404,6 +404,9 @@ static_library("common_lib") {
sources += [
"media/chrome_media_drm_bridge_client.cc",
"media/chrome_media_drm_bridge_client.h",
@@ -1497,7 +1509,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
--- a/chrome/utility/BUILD.gn
+++ b/chrome/utility/BUILD.gn
@@ -85,8 +85,6 @@ static_library("utility") {
@@ -84,8 +84,6 @@ static_library("utility") {
if (!is_android) {
sources += [
@@ -1506,7 +1518,7 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
"importer/bookmarks_file_importer.cc",
"importer/bookmarks_file_importer.h",
"importer/external_process_importer_bridge.cc",
@@ -218,6 +216,11 @@ static_library("utility") {
@@ -220,6 +218,11 @@ static_library("utility") {
]
}
@@ -1731,7 +1743,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
return mimeTypes;
}
@@ -1032,6 +1040,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
@@ -1034,6 +1042,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
return countAcceptTypesFor(superType) == mFileTypes.size();
}
+58 -58
View File
@@ -120,7 +120,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/base/BUILD.gn b/base/BUILD.gn
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -207,6 +207,8 @@ buildflag_header("message_pump_buildflags") {
@@ -212,6 +212,8 @@ buildflag_header("message_pump_buildflags") {
# This does not include test code (test support and anything in the test
# directory) which should use source_set as is recommended for GN targets).
component("base") {
@@ -129,7 +129,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
sources = [
"allocator/allocator_check.cc",
"allocator/allocator_check.h",
@@ -1049,7 +1051,7 @@ component("base") {
@@ -1055,7 +1057,7 @@ component("base") {
"//build/config/compiler:wglobal_constructors",
]
@@ -161,16 +161,16 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
diff --git a/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java b/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java
--- a/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java
+++ b/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.java
@@ -124,7 +124,7 @@ public class CachedFlag extends Flag {
@@ -125,7 +125,7 @@ public class CachedFlag extends Flag {
.writeBoolean(getSharedPreferenceKey(), isEnabledInNative);
}
- String getSharedPreferenceKey() {
+ public String getSharedPreferenceKey() {
return CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName);
}
@@ -152,6 +152,12 @@ public class CachedFlag extends Flag {
// Create the key only once to avoid String concatenation every flag check.
if (mPreferenceKey == null) {
mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName);
@@ -157,6 +157,12 @@ public class CachedFlag extends Flag {
.removeKeysWithPrefix(CachedFlagsSharedPreferences.FLAGS_CACHED);
}
@@ -218,7 +218,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
namespace {
// Pointer to the FeatureList instance singleton that was set via
@@ -451,6 +476,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
@@ -464,6 +489,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
return g_feature_list_instance->IsFeatureEnabled(feature);
}
@@ -267,7 +267,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
// static
bool FeatureList::IsValidFeatureOrFieldTrialName(StringPiece name) {
return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos;
@@ -693,6 +760,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) {
@@ -710,6 +777,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) {
void FeatureList::FinalizeInitialization() {
DCHECK(!initialized_);
@@ -479,7 +479,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
@@ -72,6 +73,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
@@ -74,6 +75,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
@@ -487,7 +487,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory;
@@ -112,6 +114,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -114,6 +116,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback,
SnackbarManageable,
DisplayStyleObserver {
@@ -524,7 +524,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public static final String EXTRA_SHOW_FRAGMENT = "show_fragment";
@@ -364,6 +396,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -367,6 +399,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
((AccessibilitySettings) fragment)
.getDelegate()).setSnackbarManager(mSnackbarManager);
}
@@ -538,7 +538,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -372,6 +372,10 @@ using flags_ui::kOsLinux;
@@ -371,6 +371,10 @@ using flags_ui::kOsLinux;
using flags_ui::kOsMac;
using flags_ui::kOsWin;
@@ -549,9 +549,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
namespace about_flags {
namespace {
@@ -3776,6 +3780,10 @@ const FeatureEntry::FeatureVariation
{"experimental V2", kCompressionDictionaryTransportBackendVersionV2,
std::size(kCompressionDictionaryTransportBackendVersionV2), nullptr}};
@@ -3710,6 +3714,10 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] =
};
#endif // BUILDFLAG(IS_ANDROID)
+#define FEATURE_PARAM_SECTION
+#include "cromite_flags/chrome_browser_about_flags_cc.inc"
@@ -560,7 +560,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
// RECORDING USER METRICS FOR FLAGS:
// -----------------------------------------------------------------------------
// The first line of the entry is the internal name.
@@ -3802,6 +3810,9 @@ const FeatureEntry::FeatureVariation
@@ -3736,6 +3744,9 @@ const FeatureEntry::Choice kAccountBookmarksAndReadingListBehindOptInChoices[] =
const FeatureEntry kFeatureEntries[] = {
// Include generated flags for flag unexpiry; see //docs/flag_expiry.md and
// //tools/flags/generate_unexpire_flags.py.
@@ -573,8 +573,8 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc
--- a/chrome/browser/browser_features.cc
+++ b/chrome/browser/browser_features.cc
@@ -335,4 +335,5 @@ BASE_FEATURE(kOmniboxTriggerForNoStatePrefetch,
"OmniboxTriggerForNoStatePrefetch",
@@ -368,4 +368,5 @@ BASE_FEATURE(kNetworkAnnotationMonitoring,
"NetworkAnnotationMonitoring",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_browser_features_cc.inc"
@@ -621,8 +621,8 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -1013,5 +1013,6 @@ BASE_FEATURE(kWebApkBackupAndRestoreBackend,
"WebApkBackupAndRestoreBackend",
@@ -978,5 +978,6 @@ BASE_FEATURE(kWebApkIconUpdateThreshold,
"WebApkIconUpdateThreshold",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc"
@@ -631,7 +631,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h
--- a/chrome/browser/flags/android/chrome_feature_list.h
+++ b/chrome/browser/flags/android/chrome_feature_list.h
@@ -195,6 +195,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
@@ -188,6 +188,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
"auxiliary_search_max_donation_tab",
100);
@@ -653,16 +653,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
import java.util.List;
import java.util.Map;
@@ -668,7 +672,7 @@ public abstract class ChromeFeatureList {
@@ -691,7 +695,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sVerticalAutomotiveBackButtonToolbar =
newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, false);
newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true);
- public static final List<CachedFlag> sFlagsCachedFullBrowser =
+ public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
List.of(
sAllowUserCertificates,
sAndroidAppIntegration,
@@ -749,6 +753,13 @@ public abstract class ChromeFeatureList {
@@ -779,6 +783,13 @@ public abstract class ChromeFeatureList {
sUseLibunwindstackNativeUnwinderAndroid,
sVerticalAutomotiveBackButtonToolbar);
@@ -829,7 +829,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
--- a/chrome/browser/ui/ui_features.cc
+++ b/chrome/browser/ui/ui_features.cc
@@ -435,4 +435,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
@@ -450,4 +450,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
"StopLoadingAnimationForHiddenWindow",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -838,7 +838,7 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc
--- a/chrome/common/chrome_features.cc
+++ b/chrome/common/chrome_features.cc
@@ -1708,4 +1708,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
@@ -1735,4 +1735,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
@@ -916,7 +916,7 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc
--- a/components/content_settings/core/common/features.cc
+++ b/components/content_settings/core/common/features.cc
@@ -111,5 +111,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap,
@@ -112,5 +112,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap,
"IndexedHostContentSettingsMap",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -1091,7 +1091,7 @@ diff --git a/components/flags_ui/resources/app.html b/components/flags_ui/resour
diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resources/app.ts
--- a/components/flags_ui/resources/app.ts
+++ b/components/flags_ui/resources/app.ts
@@ -193,6 +193,7 @@ export class FlagsAppElement extends CustomElement {
@@ -194,6 +194,7 @@ export class FlagsAppElement extends CustomElement {
return getTemplate();
}
@@ -1099,7 +1099,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
private announceStatusDelayMs: number = 100;
private featuresResolver: PromiseResolver<void> = new PromiseResolver();
private flagSearch: FlagSearch = new FlagSearch(this);
@@ -204,6 +205,10 @@ export class FlagsAppElement extends CustomElement {
@@ -205,6 +206,10 @@ export class FlagsAppElement extends CustomElement {
// </if>
tabs: Tab[] = [
@@ -1110,7 +1110,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
{
tabEl: this.getRequiredElement('#tab-available'),
panelEl: this.getRequiredElement('#tab-content-available'),
@@ -217,6 +222,11 @@ export class FlagsAppElement extends CustomElement {
@@ -218,6 +223,11 @@ export class FlagsAppElement extends CustomElement {
];
connectedCallback() {
@@ -1122,7 +1122,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
// Get and display the data upon loading.
this.requestExperimentalFeaturesData();
// There is no restart button on iOS.
@@ -277,20 +287,29 @@ export class FlagsAppElement extends CustomElement {
@@ -278,20 +288,29 @@ export class FlagsAppElement extends CustomElement {
const defaultFeatures: Feature[] = [];
const nonDefaultFeatures: Feature[] = [];
@@ -1155,7 +1155,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
// </if>
this.showRestartToast(experimentalFeaturesData.needsRestart);
@@ -401,16 +420,23 @@ export class FlagsAppElement extends CustomElement {
@@ -402,16 +421,23 @@ export class FlagsAppElement extends CustomElement {
}
private renderExperiments(
@@ -1180,7 +1180,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource
if (select) {
experiment.addEventListener('select-change', e => {
e.preventDefault();
@@ -434,9 +460,14 @@ export class FlagsAppElement extends CustomElement {
@@ -435,9 +461,14 @@ export class FlagsAppElement extends CustomElement {
this.showRestartToast(true);
});
}
@@ -1230,7 +1230,7 @@ diff --git a/components/flags_ui/resources/experiment.html b/components/flags_ui
diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/resources/experiment.ts
--- a/components/flags_ui/resources/experiment.ts
+++ b/components/flags_ui/resources/experiment.ts
@@ -60,11 +60,16 @@ function resetHighlights(element: HTMLElement) {
@@ -61,11 +61,16 @@ function resetHighlights(element: HTMLElement) {
export class FlagsExperimentElement extends CustomElement {
private feature_: Feature|null = null;
@@ -1247,7 +1247,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r
set data(feature: Feature) {
this.feature_ = feature;
@@ -76,12 +81,18 @@ export class FlagsExperimentElement extends CustomElement {
@@ -77,12 +82,18 @@ export class FlagsExperimentElement extends CustomElement {
'experiment-default', feature.is_default);
experimentDefault.classList.toggle(
'experiment-switched', !feature.is_default);
@@ -1266,7 +1266,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r
const description = this.getRequiredElement('.description');
description.textContent = feature.description;
@@ -124,6 +135,7 @@ export class FlagsExperimentElement extends CustomElement {
@@ -125,6 +136,7 @@ export class FlagsExperimentElement extends CustomElement {
const permalink = this.getRequiredElement<HTMLAnchorElement>('.permalink');
permalink.href = `#${feature.internal_name}`;
permalink.textContent = `#${feature.internal_name}`;
@@ -1274,7 +1274,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r
const smallScreenCheck = window.matchMedia('(max-width: 480px)');
// Toggling of experiment description overflow content on smaller screens.
@@ -152,6 +164,10 @@ export class FlagsExperimentElement extends CustomElement {
@@ -153,6 +165,10 @@ export class FlagsExperimentElement extends CustomElement {
const optionEl = document.createElement('option');
optionEl.selected = option.selected;
optionEl.textContent = option.description;
@@ -1323,8 +1323,8 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
--- a/components/permissions/features.cc
+++ b/components/permissions/features.cc
@@ -142,6 +142,7 @@ BASE_FEATURE(kShowRelatedWebsiteSetsPermissionGrants,
"ShowRelatedWebsiteSetsPermissionGrants",
@@ -139,6 +139,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
"CpssQuietChipTextUpdate",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/components_permissions_features_cc.inc"
@@ -1346,7 +1346,7 @@ diff --git a/components/version_ui/version_handler_helper.cc b/components/versio
diff --git a/content/common/features.cc b/content/common/features.cc
--- a/content/common/features.cc
+++ b/content/common/features.cc
@@ -581,4 +581,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
@@ -596,4 +596,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
// Please keep features in alphabetical order.
@@ -1355,7 +1355,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -1418,4 +1418,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
@@ -1389,4 +1389,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
VideoCaptureServiceConfiguration::kEnabledForBrowserProcess;
}
@@ -1364,7 +1364,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -341,6 +341,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
@@ -332,6 +332,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer);
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess();
CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess();
@@ -1662,7 +1662,7 @@ new file mode 100755
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
@@ -1821,5 +1821,5 @@ uint32_t GetPassthroughAudioFormats() {
@@ -1860,5 +1860,5 @@ uint32_t GetPassthroughAudioFormats() {
return 0;
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
}
@@ -1672,7 +1672,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc
diff --git a/media/base/media_switches.h b/media/base/media_switches.h
--- a/media/base/media_switches.h
+++ b/media/base/media_switches.h
@@ -530,5 +530,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
@@ -547,5 +547,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
} // namespace media
@@ -1682,8 +1682,8 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -521,4 +521,5 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired,
"TreatHTTPExpiresHeaderValueZeroAsExpired",
@@ -535,4 +535,5 @@ BASE_FEATURE(kTruncateBodyToContentLength,
"TruncateBodyToContentLength",
base::FEATURE_ENABLED_BY_DEFAULT);
+#include "cromite_flags/net_base_features_cc.inc"
@@ -1691,9 +1691,9 @@ diff --git a/net/base/features.cc b/net/base/features.cc
diff --git a/net/base/features.h b/net/base/features.h
--- a/net/base/features.h
+++ b/net/base/features.h
@@ -512,6 +512,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kUseNewAlpsCodepointQUIC);
// while on stable channels.
NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired);
@@ -523,6 +523,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpired);
// Enables truncating the response body to the content length.
NET_EXPORT BASE_DECLARE_FEATURE(kTruncateBodyToContentLength);
+#include "cromite_flags/net_base_features_h.inc"
} // namespace net::features
@@ -1702,7 +1702,7 @@ diff --git a/net/base/features.h b/net/base/features.h
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
--- a/services/network/public/cpp/features.cc
+++ b/services/network/public/cpp/features.cc
@@ -477,4 +477,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial{
@@ -467,4 +467,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial{
/*name=*/"SkipTpcdMitigationsForAdsTopLevelTrial",
/*default_value=*/false};
@@ -1711,7 +1711,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
--- a/services/network/public/cpp/features.h
+++ b/services/network/public/cpp/features.h
@@ -196,6 +196,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTrial;
@@ -187,6 +187,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTrial;
COMPONENT_EXPORT(NETWORK_CPP)
extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial;
@@ -1722,9 +1722,9 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -2404,5 +2404,6 @@ BASE_FEATURE(kTreatHTTPExpiresHeaderValueZeroAsExpiredInBlink,
"TreatHTTPExpiresHeaderValueZeroAsExpiredInBlink",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -2546,5 +2546,6 @@ BASE_FEATURE(kSimplifyLoadingTransparentPlaceholderImage,
"SimplifyLoadingTransparentPlaceholderImage",
base::FEATURE_DISABLED_BY_DEFAULT);
+#include "cromite_flags/third_party_blink_common_features_cc.inc"
} // namespace features
@@ -1732,9 +1732,9 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
@@ -1541,6 +1541,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
// Don't require FCP for the page to turn interactive. Useful for testing.
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInteractiveDetectorIgnoreFcp);
@@ -1638,6 +1638,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInteractiveDetectorIgnoreFcp);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
kSimplifyLoadingTransparentPlaceholderImage);
+#include "cromite_flags/third_party_blink_common_features_h.inc"
} // namespace features
@@ -98,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java
@@ -849,6 +849,7 @@ public class CustomTabsConnection {
@@ -850,6 +850,7 @@ public class CustomTabsConnection {
PostTask.postTask(
TaskTraits.UI_DEFAULT,
() -> {
@@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java
@@ -85,7 +85,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
@@ -87,7 +87,11 @@ public final class TabAssociatedApp extends TabWebContentsUserData implements Im
public static boolean isOpenedFromExternalApp(Tab tab) {
TabAssociatedApp app = get(tab);
if (app == null) return false;
@@ -203,7 +203,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -5071,6 +5071,20 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -5152,6 +5152,20 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_NEAR_OOM_INTERVENTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can resume what it was doing.">
Resume
</message>
+11 -11
View File
@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -163,6 +163,9 @@ found in the LICENSE file.
@@ -166,6 +166,9 @@ found in the LICENSE file.
<item android:id="@+id/managed_by_menu_id"
android:title="@string/managed_browser"
android:icon="@drawable/ic_business" />
@@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
</group>
<!-- Items shown only in the tab switcher -->
@@ -189,6 +192,9 @@ found in the LICENSE file.
@@ -192,6 +195,9 @@ found in the LICENSE file.
<item android:id="@id/preferences_id"
android:title="@string/menu_settings"
android:icon="@drawable/settings_cog" />
@@ -59,16 +59,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
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
@@ -258,6 +258,8 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -267,6 +267,8 @@ import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.BooleanSupplier;
import java.util.function.DoubleConsumer;
+import org.chromium.chrome.browser.ApplicationLifetime;
+
/**
* This is the main activity for ChromeMobile when not running in document mode. All the tabs
* are accessible via a chrome specific tab switching UI.
@@ -2909,6 +2911,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
* This is the main activity for ChromeMobile when not running in document mode. All the tabs are
* accessible via a chrome specific tab switching UI.
@@ -2925,6 +2927,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
} else if (id == R.id.close_tab) {
getCurrentTabModel().closeTab(currentTab, true, false, true);
RecordUserAction.record("MobileTabClosed");
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -61,6 +61,7 @@ import org.chromium.chrome.R;
@@ -62,6 +62,7 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.ActivityUtils;
import org.chromium.chrome.browser.AppHooks;
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.ChromeActivitySessionTracker;
import org.chromium.chrome.browser.ChromeApplicationImpl;
import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
@@ -2616,6 +2617,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2576,6 +2577,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return true;
}
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3676,6 +3676,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3745,6 +3745,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
Dark theme
</message>
@@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -20,6 +20,7 @@
@@ -22,6 +22,7 @@
#include "base/check_op.h"
#include "base/containers/contains.h"
@@ -58,7 +58,7 @@ diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omn
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc
--- a/components/omnibox/browser/search_provider.cc
+++ b/components/omnibox/browser/search_provider.cc
@@ -12,6 +12,7 @@
@@ -14,6 +14,7 @@
#include "base/base64.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
@@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/
#include "base/functional/callback.h"
#include "base/i18n/break_iterator.h"
#include "base/i18n/case_conversion.h"
@@ -643,6 +644,9 @@ void SearchProvider::Run(bool query_is_private) {
@@ -644,6 +645,9 @@ void SearchProvider::Run(bool query_is_private) {
}
void SearchProvider::DoHistoryQuery(bool minimal_changes) {
@@ -92,7 +92,7 @@ new file mode 100644
diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
--- a/net/socket/client_socket_pool_manager.cc
+++ b/net/socket/client_socket_pool_manager.cc
@@ -21,6 +21,10 @@
@@ -22,6 +22,10 @@
#include "net/socket/client_socket_handle.h"
#include "net/socket/client_socket_pool.h"
#include "net/socket/connect_job.h"
@@ -101,8 +101,8 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
+#include "base/command_line.h"
+#include "base/strings/string_number_conversions.h"
#include "net/ssl/ssl_config.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "url/gurl.h"
#include "url/scheme_host_port.h"
@@ -168,6 +172,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
int ClientSocketPoolManager::max_sockets_per_group(
HttpNetworkSession::SocketPoolType pool_type) {
@@ -45,7 +45,7 @@ new file mode 100644
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -1028,6 +1028,7 @@ component("net") {
@@ -1030,6 +1030,7 @@ component("net") {
"//build:chromeos_buildflags",
"//components/miracle_parameter/common",
"//net/http:transport_security_state_generated_files",
@@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2669,6 +2669,10 @@
@@ -635,6 +635,10 @@
status: {"Android": "stable"},
base_feature: "none",
},
@@ -113,6 +113,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+ status: "stable",
+ },
{
name: "OriginIsolationHeader",
status: "stable",
name: "CompositionForegroundMarkers",
status: {
--
@@ -1,4 +1,4 @@
From: Your Name <you@example.com>
From: uazo <uazo@users.noreply.github.com>
Date: Thu, 20 Oct 2022 09:34:48 +0000
Subject: Add kill switch for unsupported clangd flags
@@ -7,31 +7,40 @@ Allows build with clangd by suppressing unsupported parameters
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
build/config/compiler/BUILD.gn | 7 ++++++-
build_overrides/build.gni | 3 +++
2 files changed, 9 insertions(+), 1 deletion(-)
build/config/compiler/BUILD.gn | 10 +++++++++-
build_overrides/build.gni | 3 +++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -1884,7 +1884,12 @@ config("default_warnings") {
@@ -1889,13 +1889,21 @@ config("default_warnings") {
# TODO(https://crbug.com/1490607): Fix and re-enable.
"-Wno-thread-safety-reference-return",
]
-
if (!is_nacl) {
cflags_cc += [
# TODO(https://crbug.com/1513724): Fix and re-enable.
"-Wno-c++11-narrowing-const-reference",
]
}
+ if (skip_clangd_unsupported_options) {
+ cflags -= [
+ "-Wno-deprecated-builtins",
+ "-Wno-thread-safety-reference-return",
+ ]
+ cflags_cc -= [
+ "-Wno-c++11-narrowing-const-reference",
+ ]
+ }
if (!is_nacl) {
cflags_cc += [
# TODO(https://crbug.com/1513724): Fix and re-enable.
}
# Some builders, such as Cronet, use a different version of Clang than
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
@@ -58,6 +58,9 @@ declare_args() {
@@ -62,6 +62,9 @@ declare_args() {
# to lack of toolchain support.
gtest_enable_absl_printers = !is_nacl
@@ -240,15 +240,15 @@ diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b
diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
--- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
+++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc
@@ -270,7 +270,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
@@ -267,7 +267,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) {
delegate_->Accept();
return;
case PermissionDialogButton::kAcceptOnce:
RecordDecision(permissions::PermissionAction::GRANTED_ONCE);
- delegate_->AcceptThisTime();
+ delegate_->AcceptThisTime(content_settings::LifetimeMode::OnlyThisTime);
return;
case PermissionDialogButton::kDeny:
RecordDecision(permissions::PermissionAction::DENIED);
delegate_->Deny();
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/PermissionInfo.java
@@ -263,7 +263,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -570,6 +570,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -559,6 +559,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
}
}
@@ -275,7 +275,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
private void setUpClearDataPreference() {
ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA);
long usage = mSite.getTotalUsage();
@@ -1081,6 +1086,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1070,6 +1075,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (contentType == mHighlightedPermission) {
switchPreference.setBackgroundColor(mHighlightColor);
}
@@ -301,7 +301,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -676,6 +676,11 @@
@@ -673,6 +673,11 @@
<message name="IDS_PAGE_INFO_URL_TRUNCATED" desc="Accessibility announcement when the URL in PageInfo switches from full to truncated display">
URL truncated
</message>
@@ -496,7 +496,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -1174,6 +1174,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1163,6 +1163,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
permission_info.source = info.source;
permission_info.is_one_time = (info.metadata.session_model() ==
content_settings::SessionModel::OneTime);
@@ -515,7 +515,7 @@ diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h
+ bool is_user_session = false;
// Only set for settings that can have multiple permissions for different
// embedded origins.
absl::optional<url::Origin> requesting_origin;
std::optional<url::Origin> requesting_origin;
diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
--- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
+++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogDelegate.java
@@ -575,7 +575,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per
/** This class creates the model for the permission dialog. */
class PermissionDialogModelFactory {
public static PropertyModel getModel(
@@ -59,6 +71,74 @@ class PermissionDialogModelFactory {
@@ -60,6 +72,74 @@ class PermissionDialogModelFactory {
ModalDialogProperties.NEGATIVE_BUTTON_TEXT,
delegate.getNegativeButtonText());
}
@@ -1094,7 +1094,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio
PermissionRequest::~PermissionRequest() {
DCHECK(delete_callback_.is_null());
}
@@ -363,19 +371,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
@@ -357,19 +365,37 @@ bool PermissionRequest::ShouldUseTwoOriginPrompt() const {
permissions::features::kPermissionStorageAccessAPI);
}
@@ -1204,7 +1204,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
request->RequestFinished();
return;
@@ -578,7 +578,8 @@ void PermissionRequestManager::Accept() {
@@ -593,7 +593,8 @@ void PermissionRequestManager::Accept() {
(*requests_iter)->request_type(),
PermissionAction::GRANTED);
PermissionGrantedIncludingDuplicates(*requests_iter,
@@ -1213,8 +1213,8 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
+ content_settings::LifetimeMode::Always);
#if !BUILDFLAG(IS_ANDROID)
absl::optional<ContentSettingsType> content_settings_type =
@@ -596,7 +597,7 @@ void PermissionRequestManager::Accept() {
std::optional<ContentSettingsType> content_settings_type =
@@ -611,7 +612,7 @@ void PermissionRequestManager::Accept() {
CurrentRequestsDecided(PermissionAction::GRANTED);
}
@@ -1223,7 +1223,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_)
return;
DCHECK(view_);
@@ -608,7 +609,8 @@ void PermissionRequestManager::AcceptThisTime() {
@@ -623,7 +624,8 @@ void PermissionRequestManager::AcceptThisTime() {
(*requests_iter)->request_type(),
PermissionAction::GRANTED_ONCE);
PermissionGrantedIncludingDuplicates(*requests_iter,
@@ -1233,7 +1233,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
NotifyRequestDecided(PermissionAction::GRANTED_ONCE);
@@ -616,6 +618,15 @@ void PermissionRequestManager::AcceptThisTime() {
@@ -631,6 +633,15 @@ void PermissionRequestManager::AcceptThisTime() {
}
void PermissionRequestManager::Deny() {
@@ -1249,7 +1249,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
if (ignore_callbacks_from_prompt_)
return;
DCHECK(view_);
@@ -639,7 +650,7 @@ void PermissionRequestManager::Deny() {
@@ -654,7 +665,7 @@ void PermissionRequestManager::Deny() {
StorePermissionActionForUMA((*requests_iter)->requesting_origin(),
(*requests_iter)->request_type(),
PermissionAction::DENIED);
@@ -1258,7 +1258,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
}
NotifyRequestDecided(PermissionAction::DENIED);
@@ -1180,32 +1191,32 @@ PermissionRequestManager::VisitDuplicateRequests(
@@ -1213,32 +1224,32 @@ PermissionRequestManager::VisitDuplicateRequests(
void PermissionRequestManager::PermissionGrantedIncludingDuplicates(
PermissionRequest* request,
@@ -1301,8 +1301,8 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
request);
}
@@ -1457,7 +1468,7 @@ void PermissionRequestManager::LogWarningToConsole(const char* message) {
void PermissionRequestManager::DoAutoResponseForTesting() {
@@ -1495,7 +1506,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() {
}
switch (auto_response_for_test_) {
case ACCEPT_ONCE:
- AcceptThisTime();
@@ -1313,7 +1313,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p
diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h
--- a/components/permissions/permission_request_manager.h
+++ b/components/permissions/permission_request_manager.h
@@ -161,8 +161,10 @@ class PermissionRequestManager
@@ -162,8 +162,10 @@ class PermissionRequestManager
GURL GetRequestingOrigin() const override;
GURL GetEmbeddingOrigin() const override;
void Accept() override;
@@ -1325,7 +1325,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe
void Dismiss() override;
void Ignore() override;
void FinalizeCurrentRequests() override;
@@ -367,9 +369,12 @@ class PermissionRequestManager
@@ -368,9 +370,12 @@ class PermissionRequestManager
// Calls PermissionGranted on a request and all its duplicates.
void PermissionGrantedIncludingDuplicates(PermissionRequest* request,
@@ -9,23 +9,24 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++
.../bookmarks/android/bookmark_bridge.cc | 44 ++++++++++++
.../bookmarks/android/bookmark_bridge.h | 8 +++
.../browser/bookmarks/bookmark_html_writer.cc | 8 ++-
.../browser/bookmarks/bookmark_html_writer.cc | 11 ++-
.../dialogs/DownloadLocationCustomView.java | 4 +-
.../strings/android_chrome_strings.grd | 3 +
components/bookmark_bar_strings.grdp | 6 ++
.../bookmarks/browser/bookmark_codec.cc | 22 ++++--
.../bookmarks/browser/bookmark_codec.cc | 20 +++++-
components/bookmarks/browser/bookmark_codec.h | 7 +-
.../browser/bookmark_load_details.cc | 2 +
.../bookmarks/browser/bookmark_load_details.h | 3 +
.../browser/bookmark_load_details.cc | 8 ++-
.../bookmarks/browser/bookmark_load_details.h | 2 +
.../bookmarks/browser/bookmark_model.cc | 3 +-
components/bookmarks/browser/bookmark_model.h | 7 ++
components/bookmarks/browser/bookmark_node.cc | 11 +++
components/bookmarks/browser/bookmark_node.h | 3 +
.../bookmarks/browser/bookmark_storage.cc | 2 +
.../bookmarks/browser/bookmark_uuids.cc | 3 +
components/bookmarks/browser/bookmark_uuids.h | 1 +
components/bookmarks/browser/model_loader.cc | 3 +-
components/bookmarks/browser/model_loader.cc | 8 ++-
.../bookmark_specifics_conversions.cc | 1 +
21 files changed, 227 insertions(+), 10 deletions(-)
22 files changed, 236 insertions(+), 14 deletions(-)
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
@@ -41,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
<item android:id="@+id/recent_tabs_menu_id"
android:title="@string/menu_recent_tabs"
android:icon="@drawable/devices_black_24dp" />
@@ -183,6 +187,9 @@ found in the LICENSE file.
@@ -186,6 +190,9 @@ found in the LICENSE file.
<item android:id="@+id/close_all_incognito_tabs_menu_id"
android:title="@string/menu_close_all_incognito_tabs"
android:icon="@drawable/btn_close_white" />
@@ -54,7 +55,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -86,6 +86,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
@@ -89,6 +89,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker;
import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
import org.chromium.chrome.browser.browserservices.intents.WebappConstants;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
@@ -62,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.chrome.browser.compositor.layouts.Layout;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
@@ -2934,6 +2935,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2950,6 +2951,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
getTabModelSelectorSupplier().get(),
() -> getTabModelSelector().closeAllTabs());
RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -71,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
// Close only incognito tabs
CloseAllTabsDialog.show(
@@ -3005,6 +3008,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -3021,6 +3024,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
}
@@ -120,7 +121,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkItem;
import org.chromium.components.bookmarks.BookmarkType;
@@ -80,6 +86,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
@@ -82,6 +88,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
class BookmarkBridge {
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
@@ -129,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
private long mNativeBookmarkBridge;
private boolean mIsDestroyed;
private boolean mIsDoingExtensiveChanges;
@@ -400,6 +408,16 @@ class BookmarkBridge {
@@ -402,6 +410,16 @@ class BookmarkBridge {
return mMobileFolderId;
}
@@ -146,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/** Returns Id representing the special "other" folder from bookmark model. */
public BookmarkId getOtherFolderId() {
ThreadUtils.assertOnUiThread();
@@ -1084,6 +1102,50 @@ class BookmarkBridge {
@@ -1092,6 +1110,50 @@ class BookmarkBridge {
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
}
@@ -197,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
/**
* Helper method to mark an item as read.
*
@@ -1325,6 +1387,9 @@ class BookmarkBridge {
@@ -1334,6 +1396,9 @@ class BookmarkBridge {
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url);
@@ -207,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
void getTopLevelFolderIds(
@@ -1344,6 +1409,8 @@ class BookmarkBridge {
@@ -1353,6 +1418,8 @@ class BookmarkBridge {
BookmarkId getRootFolderId(long nativeBookmarkBridge);
@@ -219,7 +220,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc
--- a/chrome/browser/bookmarks/android/bookmark_bridge.cc
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc
@@ -356,6 +356,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
@@ -367,6 +367,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
base::BindOnce(&HandleImageUrlResponse, callback));
}
@@ -253,7 +254,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
base::android::ScopedJavaLocalRef<jobject>
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(
JNIEnv* env,
@@ -464,6 +491,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
@@ -482,6 +509,7 @@ void BookmarkBridge::GetAllFoldersWithDepths(
// Vector to temporarily contain all child bookmarks at same level for sorting
std::vector<const BookmarkNode*> bookmarks = {
bookmark_model_->mobile_node(),
@@ -261,7 +262,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
bookmark_model_->bookmark_bar_node(),
bookmark_model_->other_node(),
};
@@ -521,6 +549,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
@@ -539,6 +567,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
top_level_folders.push_back(root_child.get());
}
@@ -273,7 +274,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
if (account_reading_list_manager_ &&
account_reading_list_manager_->GetRoot()) {
top_level_folders.push_back(account_reading_list_manager_->GetRoot());
@@ -1147,6 +1180,17 @@ void BookmarkBridge::GetBookmarksOfType(
@@ -1176,6 +1209,17 @@ void BookmarkBridge::GetBookmarksOfType(
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
}
@@ -319,7 +320,17 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc
--- a/chrome/browser/bookmarks/bookmark_html_writer.cc
+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
@@ -190,15 +190,19 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
@@ -168,7 +168,8 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
BookmarkCodec codec;
bookmarks_ =
codec.Encode(model->bookmark_bar_node(), model->other_node(),
- model->mobile_node(), /*sync_metadata_str=*/std::string());
+ model->mobile_node(), model->tabs_collection_node(),
+ /*sync_metadata_str=*/std::string());
}
Writer(const Writer&) = delete;
@@ -195,15 +196,19 @@ class Writer : public base::RefCountedThreadSafe<Writer> {
roots->FindDict(BookmarkCodec::kOtherBookmarkFolderNameKey);
base::Value::Dict* mobile_folder_value =
roots->FindDict(BookmarkCodec::kMobileBookmarkFolderNameKey);
@@ -340,7 +351,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
NotifyOnFinish(BookmarksExportObserver::Result::kCouldNotWriteNodes);
return;
}
@@ -465,6 +469,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
@@ -467,6 +472,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() {
BookmarkModelFactory::GetForBrowserContext(profile_)->other_node());
ExtractUrls(
BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node());
@@ -352,7 +363,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b
diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
--- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
+++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java
@@ -77,7 +77,7 @@ public class DownloadLocationCustomView extends ScrollView
@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView
mDirectoryAdapter.update();
}
@@ -361,7 +372,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
mTitle.setText(title);
}
@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView
@@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView
mSubtitleView.setText(subtitle);
}
@@ -373,7 +384,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3806,6 +3806,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3875,6 +3875,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_MENU_SELECT_TABS" desc="Menu item for bulk editing tabs. [CHAR_LIMIT=27]">
Select tabs
</message>
@@ -409,7 +420,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc
--- a/components/bookmarks/browser/bookmark_codec.cc
+++ b/components/bookmarks/browser/bookmark_codec.cc
@@ -36,6 +36,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar";
@@ -35,6 +35,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar";
const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other";
// The value is left as 'synced' for historical reasons.
const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced";
@@ -417,41 +428,32 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
const char BookmarkCodec::kVersionKey[] = "version";
const char BookmarkCodec::kChecksumKey[] = "checksum";
const char BookmarkCodec::kIdKey[] = "id";
@@ -72,7 +73,8 @@ BookmarkCodec::~BookmarkCodec() = default;
base::Value::Dict BookmarkCodec::Encode(BookmarkModel* model,
std::string sync_metadata_str) {
return Encode(model->bookmark_bar_node(), model->other_node(),
- model->mobile_node(), model->root_node()->GetMetaInfoMap(),
+ model->mobile_node(), model->tabs_collection_node(),
+ model->root_node()->GetMetaInfoMap(),
std::move(sync_metadata_str));
}
@@ -80,6 +82,7 @@ base::Value::Dict BookmarkCodec::Encode(
@@ -72,6 +73,7 @@ base::Value::Dict BookmarkCodec::Encode(
const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node,
+ const BookmarkNode* tabs_folder_node,
const BookmarkNode::MetaInfoMap* model_meta_info_map,
std::string sync_metadata_str) {
ids_reassigned_ = false;
@@ -100,6 +103,7 @@ base::Value::Dict BookmarkCodec::Encode(
uuids_reassigned_ = false;
@@ -91,6 +93,8 @@ base::Value::Dict BookmarkCodec::Encode(
roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node));
roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node));
roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node));
+ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
if (model_meta_info_map)
roots.Set(kMetaInfo, EncodeMetaInfo(*model_meta_info_map));
+ if (tabs_folder_node)
+ roots.Set(kTabsBookmarkFolderNameKey, EncodeNode(tabs_folder_node));
@@ -117,6 +121,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
FinalizeChecksum();
// We are going to store the computed checksum. So set stored checksum to be
@@ -107,6 +111,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
+ BookmarkNode* tabs_folder_node,
int64_t* max_id,
std::string* sync_metadata_str) {
ids_.clear();
@@ -124,7 +129,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
const int64_t max_already_assigned_id =
@@ -117,7 +122,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
base::Uuid::ParseLowercase(kBookmarkBarNodeUuid),
base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid),
base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid),
@@ -461,7 +463,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
ids_reassigned_ = false;
uuids_reassigned_ = false;
ids_valid_ = true;
@@ -132,12 +138,13 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
@@ -125,13 +131,14 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value,
stored_checksum_.clear();
InitializeChecksum();
bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node,
@@ -470,12 +472,13 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
FinalizeChecksum();
// If either the checksums differ or some IDs were missing/not unique,
// reassign IDs.
if (!ids_valid_ || computed_checksum() != stored_checksum())
if (!ids_valid_ || computed_checksum_ != stored_checksum_) {
maximum_id_ = max_already_assigned_id;
- ReassignIDs(bb_node, other_folder_node, mobile_folder_node);
+ ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node);
}
*max_id = maximum_id_ + 1;
return success;
}
@@ -189,6 +196,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
@@ -483,7 +486,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
+ BookmarkNode* tabs_folder_node,
const base::Value::Dict& value,
std::string* sync_metadata_str) {
absl::optional<int> version = value.FindInt(kVersionKey);
std::optional<int> version = value.FindInt(kVersionKey);
@@ -213,6 +221,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
roots->FindDict(kOtherBookmarkFolderNameKey);
const base::Value::Dict* mobile_folder_value =
@@ -500,16 +503,16 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
+ if (tabs_folder_value)
+ DecodeNode(*tabs_folder_value, nullptr, tabs_folder_node);
if (!DecodeMetaInfo(*roots, &model_meta_info_map_))
return false;
@@ -461,11 +473,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
if (sync_metadata_str) {
const std::string* sync_metadata_str_base64 =
@@ -459,11 +471,13 @@ void BookmarkCodec::DecodeMetaInfoHelper(
void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
- BookmarkNode* mobile_node) {
+ BookmarkNode* mobile_node,
+ BookmarkNode* tabs_folder_node) {
maximum_id_ = 0;
ids_.clear();
ReassignIDsHelper(bb_node);
ReassignIDsHelper(other_node);
ReassignIDsHelper(mobile_node);
@@ -520,15 +523,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h
--- a/components/bookmarks/browser/bookmark_codec.h
+++ b/components/bookmarks/browser/bookmark_codec.h
@@ -46,6 +46,7 @@ class BookmarkCodec {
@@ -39,6 +39,7 @@ class BookmarkCodec {
const BookmarkNode* bookmark_bar_node,
const BookmarkNode* other_folder_node,
const BookmarkNode* mobile_folder_node,
+ const BookmarkNode* tabs_folder_node,
const BookmarkNode::MetaInfoMap* model_meta_info_map,
std::string sync_metadata_str);
@@ -58,6 +59,7 @@ class BookmarkCodec {
// Decodes the previously encoded value to the specified nodes as well as
@@ -57,6 +58,7 @@ class BookmarkCodec {
BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@@ -536,15 +539,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
int64_t* max_node_id,
std::string* sync_metadata_str);
@@ -103,6 +105,7 @@ class BookmarkCodec {
// Allows the BookmarkClient to read and a write a string blob from the JSON
// file. That string captures the bookmarks sync metadata.
static const char kSyncMetadata[];
@@ -82,6 +84,7 @@ class BookmarkCodec {
static const char kBookmarkBarFolderNameKey[];
static const char kOtherBookmarkFolderNameKey[];
static const char kMobileBookmarkFolderNameKey[];
+ static const char kTabsBookmarkFolderNameKey[];
static const char kDateLastUsed[];
// Possible values for kTypeKey.
@@ -121,6 +124,7 @@ class BookmarkCodec {
static const char kVersionKey[];
static const char kChecksumKey[];
static const char kIdKey[];
@@ -114,6 +117,7 @@ class BookmarkCodec {
bool DecodeHelper(BookmarkNode* bb_node,
BookmarkNode* other_folder_node,
BookmarkNode* mobile_folder_node,
@@ -552,7 +555,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
const base::Value::Dict& value,
std::string* sync_metadata_str);
@@ -132,7 +136,8 @@ class BookmarkCodec {
@@ -124,7 +128,8 @@ class BookmarkCodec {
// Reassigns bookmark IDs for all nodes.
void ReassignIDs(BookmarkNode* bb_node,
BookmarkNode* other_node,
@@ -565,39 +568,58 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark
diff --git a/components/bookmarks/browser/bookmark_load_details.cc b/components/bookmarks/browser/bookmark_load_details.cc
--- a/components/bookmarks/browser/bookmark_load_details.cc
+++ b/components/bookmarks/browser/bookmark_load_details.cc
@@ -31,6 +31,8 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
root_node_->Add(BookmarkPermanentNode::CreateOtherBookmarks(max_id_++)));
mobile_folder_node_ = static_cast<BookmarkPermanentNode*>(
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(max_id_++)));
+ tabs_collection_folder_node_ = static_cast<BookmarkPermanentNode*>(
+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(max_id_++)));
}
@@ -15,7 +15,7 @@ namespace {
BookmarkLoadDetails::~BookmarkLoadDetails() = default;
// Number of top-level permanent folders excluding the managed node and account
// bookmarks.
-constexpr size_t kNumDefaultTopLevelPermanentFolders = 3u;
+constexpr size_t kNumDefaultTopLevelPermanentFolders = 4u;
} // namespace
@@ -40,6 +40,8 @@ BookmarkLoadDetails::BookmarkLoadDetails()
root_node_->Add(BookmarkPermanentNode::CreateOtherBookmarks(/*id=*/0)));
mobile_folder_node_ = static_cast<BookmarkPermanentNode*>(
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(/*id=*/0)));
+ tabs_collection_folder_node_ = static_cast<BookmarkPermanentNode*>(
+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(/*id=*/0)));
CHECK_EQ(kNumDefaultTopLevelPermanentFolders, root_node_->children().size());
}
@@ -105,8 +107,8 @@ void BookmarkLoadDetails::AddManagedNode(
void BookmarkLoadDetails::CreateIndices() {
local_or_syncable_uuid_index_.insert(root_node_.get());
- static_assert(kNumDefaultTopLevelPermanentFolders == 3u,
- "The code below assumes three permanent nodes");
+ static_assert(kNumDefaultTopLevelPermanentFolders == 4u,
+ "The code below assumes 4 permanent nodes");
for (const auto& child : root_node_->children()) {
if (child.get() == account_bb_node_ ||
child.get() == account_other_folder_node_ ||
diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/bookmarks/browser/bookmark_load_details.h
--- a/components/bookmarks/browser/bookmark_load_details.h
+++ b/components/bookmarks/browser/bookmark_load_details.h
@@ -47,6 +47,7 @@ class BookmarkLoadDetails {
@@ -39,6 +39,7 @@ class BookmarkLoadDetails {
BookmarkPermanentNode* bb_node() { return bb_node_; }
BookmarkPermanentNode* mobile_folder_node() { return mobile_folder_node_; }
BookmarkPermanentNode* other_folder_node() { return other_folder_node_; }
+ BookmarkPermanentNode* tabs_collection_folder_node() { return tabs_collection_folder_node_; }
std::unique_ptr<TitledUrlIndex> owned_titled_url_index() {
return std::move(titled_url_index_);
@@ -112,6 +113,8 @@ class BookmarkLoadDetails {
nullptr;
raw_ptr<BookmarkPermanentNode, DanglingUntriaged> mobile_folder_node_ =
nullptr;
+ raw_ptr<BookmarkPermanentNode, DanglingUntriaged> tabs_collection_folder_node_ =
+ nullptr;
LoadManagedNodeCallback load_managed_node_callback_;
std::unique_ptr<TitledUrlIndex> titled_url_index_;
UuidIndex uuid_index_;
// Account permanent nodes (null unless `AddAccountPermanentNodes()` is
// called).
@@ -138,6 +139,7 @@ class BookmarkLoadDetails {
raw_ptr<BookmarkPermanentNode> bb_node_;
raw_ptr<BookmarkPermanentNode> other_folder_node_;
raw_ptr<BookmarkPermanentNode> mobile_folder_node_;
+ raw_ptr<BookmarkPermanentNode> tabs_collection_folder_node_;
raw_ptr<BookmarkPermanentNode> account_bb_node_;
raw_ptr<BookmarkPermanentNode> account_other_folder_node_;
raw_ptr<BookmarkPermanentNode> account_mobile_folder_node_;
diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc
--- a/components/bookmarks/browser/bookmark_model.cc
+++ b/components/bookmarks/browser/bookmark_model.cc
@@ -838,7 +838,7 @@ bool BookmarkModel::HasBookmarks() const {
@@ -846,7 +846,7 @@ bool BookmarkModel::HasBookmarks() const {
bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return bookmark_bar_node_->children().empty() &&
@@ -606,18 +628,18 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
}
bool BookmarkModel::IsBookmarked(const GURL& url) const {
@@ -1149,6 +1149,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
@@ -1191,6 +1191,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr<BookmarkLoadDetails> details) {
bookmark_bar_node_ = details->bb_node();
other_node_ = details->other_folder_node();
mobile_node_ = details->mobile_folder_node();
+ tabs_collection_node_ = details->tabs_collection_folder_node();
// TODO(crbug.com/1520418): Load nodes for account storage as well and load
// UUIDs onto `uuid_index_`.
account_bookmark_bar_node_ = details->account_bb_node();
account_other_node_ = details->account_other_folder_node();
diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h
--- a/components/bookmarks/browser/bookmark_model.h
+++ b/components/bookmarks/browser/bookmark_model.h
@@ -160,6 +160,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
@@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
// bookmarks in the account storage).
const BookmarkNode* account_mobile_node() const;
@@ -630,7 +652,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
bool is_root_node(const BookmarkNode* node) const {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
return node == root_;
@@ -585,6 +591,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
@@ -619,6 +625,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
raw_ptr<BookmarkPermanentNode> account_bookmark_bar_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_other_node_ = nullptr;
raw_ptr<BookmarkPermanentNode> account_mobile_node_ = nullptr;
@@ -677,15 +699,34 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
MOBILE
};
@@ -247,6 +248,8 @@ class BookmarkPermanentNode : public BookmarkNode {
@@ -231,6 +232,8 @@ class BookmarkPermanentNode : public BookmarkNode {
int64_t id);
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
int64_t id);
+ static std::unique_ptr<BookmarkPermanentNode> CreateTabsCollectionBookmarks(
+ int64_t id);
// Constructor is private to disallow the construction of permanent nodes
// other than the well-known ones, see factory methods.
// Returns whether the permanent node of type `type` should be visible even
// when it is empty (i.e. no children).
diff --git a/components/bookmarks/browser/bookmark_storage.cc b/components/bookmarks/browser/bookmark_storage.cc
--- a/components/bookmarks/browser/bookmark_storage.cc
+++ b/components/bookmarks/browser/bookmark_storage.cc
@@ -45,6 +45,7 @@ base::Value::Dict EncodeModelToDict(
case BookmarkStorage::kSelectLocalOrSyncableNodes:
return codec.Encode(
model->bookmark_bar_node(), model->other_node(), model->mobile_node(),
+ model->tabs_collection_node(),
model->client()->EncodeLocalOrSyncableBookmarkSyncMetadata());
case BookmarkStorage::kSelectAccountNodes:
if (!model->account_bookmark_bar_node()) {
@@ -59,6 +60,7 @@ base::Value::Dict EncodeModelToDict(
return codec.Encode(model->account_bookmark_bar_node(),
model->account_other_node(),
model->account_mobile_node(),
+ nullptr,
model->client()->EncodeAccountBookmarkSyncMetadata());
}
diff --git a/components/bookmarks/browser/bookmark_uuids.cc b/components/bookmarks/browser/bookmark_uuids.cc
--- a/components/bookmarks/browser/bookmark_uuids.cc
+++ b/components/bookmarks/browser/bookmark_uuids.cc
@@ -713,16 +754,35 @@ diff --git a/components/bookmarks/browser/bookmark_uuids.h b/components/bookmark
diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks/browser/model_loader.cc
--- a/components/bookmarks/browser/model_loader.cc
+++ b/components/bookmarks/browser/model_loader.cc
@@ -45,7 +45,8 @@ void LoadBookmarks(const base::FilePath& path,
std::string sync_metadata_str;
BookmarkCodec codec;
codec.Decode(*root_dict, details->bb_node(), details->other_folder_node(),
- details->mobile_folder_node(), &max_node_id,
+ details->mobile_folder_node(),
+ details->tabs_collection_folder_node(), &max_node_id,
&sync_metadata_str);
details->set_sync_metadata_str(std::move(sync_metadata_str));
details->set_max_id(std::max(max_node_id, details->max_id()));
@@ -71,6 +71,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
BookmarkPermanentNode::CreateOtherBookmarks(0);
std::unique_ptr<BookmarkPermanentNode> account_mobile_folder_node =
BookmarkPermanentNode::CreateMobileBookmarks(0);
+ std::unique_ptr<BookmarkPermanentNode> tabs_collection_folder_node =
+ BookmarkPermanentNode::CreateTabsCollectionBookmarks(0);
std::optional<base::Value::Dict> root_dict =
LoadFileToDict(account_file_path);
@@ -78,7 +80,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
if (root_dict.has_value() &&
codec.Decode(*root_dict, /*already_assigned_ids=*/{},
account_bb_node.get(), account_other_folder_node.get(),
- account_mobile_folder_node.get(), &max_node_id,
+ account_mobile_folder_node.get(),
+ tabs_collection_folder_node.get(), &max_node_id,
&sync_metadata_str)) {
ids_assigned_to_account_nodes = codec.release_assigned_ids();
@@ -110,7 +113,8 @@ std::unique_ptr<BookmarkLoadDetails> LoadBookmarks(
if (root_dict.has_value() &&
codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes),
details->bb_node(), details->other_folder_node(),
- details->mobile_folder_node(), &max_node_id,
+ details->mobile_folder_node(),
+ details->tabs_collection_folder_node(), &max_node_id,
&sync_metadata_str)) {
details->set_local_or_syncable_sync_metadata_str(
std::move(sync_metadata_str));
diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc
--- a/components/sync_bookmarks/bookmark_specifics_conversions.cc
+++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
@@ -59,6 +59,9 @@ found in the LICENSE file.
@@ -62,6 +62,9 @@ found in the LICENSE file.
<item android:id="@+id/add_to_homescreen_id"
android:title="@string/menu_add_to_homescreen"
android:orderInCategory="2" />
@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
@@ -2960,6 +2960,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -2976,6 +2976,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
}
RecordUserAction.record("MobileMenuDownloadManager");
@@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -2763,6 +2763,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -2729,6 +2729,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
return doOpenWebApk(currentTab);
}
@@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
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
@@ -580,6 +580,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -585,6 +585,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
isChromeScheme, isFileScheme, isContentScheme, isIncognito, url));
updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isChromeScheme);
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
updateAutoDarkMenuItem(menu, currentTab, isChromeScheme);
@@ -1189,6 +1190,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
@@ -1236,6 +1237,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
}
}
@@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App
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
@@ -276,6 +276,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
@@ -295,6 +295,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
updateRequestDesktopSiteMenuItem(
menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java
@@ -323,9 +323,12 @@ class TabGridViewBinder {
@@ -327,9 +327,12 @@ class TabGridViewBinder {
// Adjust bitmap to thumbnail.
TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
} else if (isMostRecentRequest) {
@@ -32,7 +32,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
}
};
if (sThumbnailFetcherForTesting != null) {
@@ -364,6 +367,7 @@ class TabGridViewBinder {
@@ -368,6 +371,7 @@ class TabGridViewBinder {
ViewLookupCachingFrameLayout rootView,
PropertyModel model,
TabListFaviconProvider.TabFavicon favicon) {
@@ -53,15 +53,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
/** Property for lazily fetching favicons when required by an item in a UI. */
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
FAVICON_FETCHER = new WritableObjectPropertyKey<>();
@@ -157,6 +160,7 @@ public class TabProperties {
@@ -160,6 +163,7 @@ public class TabProperties {
CARD_TYPE,
CONTENT_DESCRIPTION_STRING,
CLOSE_BUTTON_DESCRIPTION_STRING,
+ FAVICON,
SHOPPING_PERSISTED_TAB_DATA_FETCHER,
SHOULD_SHOW_PRICE_DROP_TOOLTIP
};
@@ -168,6 +172,7 @@ public class TabProperties {
SHOULD_SHOW_PRICE_DROP_TOOLTIP,
QUICK_DELETE_ANIMATION_STATUS
@@ -172,6 +176,7 @@ public class TabProperties {
TAB_CLOSED_LISTENER,
FAVICON_FETCHED,
FAVICON_FETCHER,
@@ -87,7 +87,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/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
@@ -145,6 +145,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.printing.TabPrinter;
@@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.readaloud.ReadAloudController;
import org.chromium.chrome.browser.selection.SelectionPopupBackPressHandler;
@@ -743,7 +744,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
@@ -704,7 +705,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
new TabContentManager(
this,
mBrowserControlsManagerSupplier.get(),
@@ -212,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -5290,6 +5290,14 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -5371,6 +5371,14 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
Your <ph name="FQDN">%1$s<ex>www.amazon.com</ex></ph> timer ran out. It'll start again tomorrow.
</message>
@@ -52,7 +52,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java
@@ -975,7 +975,9 @@ public final class ReturnToChromeUtil {
@@ -979,7 +979,9 @@ public final class ReturnToChromeUtil {
public static boolean isScrollableMvtEnabled(Context context) {
boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled();
@@ -66,15 +66,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
@@ -1634,7 +1635,9 @@ public class RootUiCoordinator
import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -1595,7 +1596,9 @@ public class RootUiCoordinator
if (!mSupportsFindInPageSupplier.getAsBoolean()) return;
int stubId = R.id.find_toolbar_stub;
@@ -99,7 +99,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -294,6 +294,7 @@ public final class ChromePreferenceKeys {
@@ -270,6 +270,7 @@ public final class ChromePreferenceKeys {
AccessibilityConstants.FONT_USER_SET_FORCE_ENABLE_ZOOM;
public static final String HISTORY_SHOW_HISTORY_INFO = "history_home_show_info";
@@ -146,7 +146,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
@@ -760,7 +760,7 @@ public class LocationBarCoordinator
@@ -771,7 +771,7 @@ public class LocationBarCoordinator
}
private boolean isTabletWindow() {
@@ -158,7 +158,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1558,6 +1558,13 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1564,6 +1564,13 @@ Your Google account may have other forms of browsing history like searches and a
Manage third-party cookies and tracking protections
</message>
@@ -184,7 +184,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
disallowed_extension_deps_ = [
# Components should largely not depend on //extensions. Since // extensions
# is not a component target and is linked with //chrome, depending on most
@@ -829,7 +829,7 @@ test("components_unittests") {
@@ -831,7 +831,7 @@ test("components_unittests") {
# On other platforms, no components should depend on Chrome.
# Since //chrome depends on //extensions, we also only assert_no_deps on
# extensions targets for non-lacros builds.
@@ -193,7 +193,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
assert_no_deps = [ "//chrome/*" ]
assert_no_deps += disallowed_extension_deps_
}
@@ -1120,7 +1120,7 @@ if (use_blink) {
@@ -1113,7 +1113,7 @@ if (use_blink) {
# dependency. On other platforms, no components should depend on Chrome.
# Since //chrome depends on //extensions, we also only assert_no_deps on
# extensions targets for non-lacros builds.
@@ -28,7 +28,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
@@ -40,6 +40,7 @@ import org.chromium.base.BuildInfo;
@@ -41,6 +41,7 @@ import org.chromium.base.BuildInfo;
import org.chromium.base.Callback;
import org.chromium.base.CallbackController;
import org.chromium.base.CommandLine;
@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
import org.chromium.base.IntentUtils;
import org.chromium.base.Log;
import org.chromium.base.MemoryPressureListener;
@@ -1582,8 +1583,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -1614,8 +1615,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
boolean hadCipherData =
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
@@ -105,7 +105,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -4724,6 +4724,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -4805,6 +4805,12 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<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>
@@ -39,7 +39,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import java.util.ArrayList;
import java.util.List;
@@ -634,11 +636,16 @@ public class TabGridDialogMediator
@@ -636,11 +638,16 @@ public class TabGridDialogMediator
assert relatedTabs.size() > 0;
@@ -68,7 +68,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
import org.chromium.chrome.browser.layouts.LayoutType;
@@ -371,10 +372,15 @@ public class TabGroupUiMediator implements BackPressHandler {
@@ -375,10 +376,15 @@ public class TabGroupUiMediator implements BackPressHandler {
assert relatedTabs.size() > 0;
parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
@@ -201,7 +201,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
@@ -307,6 +307,7 @@ public final class ChromePreferenceKeys {
@@ -283,6 +283,7 @@ public final class ChromePreferenceKeys {
public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP";
public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled";
@@ -223,7 +223,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1331,6 +1331,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1337,6 +1337,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_TAB_PERIOD_HOUR" desc="The option to delete browsing data from the last hour.">
Last hour
</message>
@@ -236,7 +236,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -70,6 +70,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -73,6 +73,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
GetHomeButtonAndHomePageIsNewTabPageFlags());
registry->RegisterBooleanPref(prefs::kShowHomeButton, false,
GetHomeButtonAndHomePageIsNewTabPageFlags());
@@ -248,7 +248,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -1304,6 +1304,10 @@ inline constexpr char kUsedPolicyCertificates[] =
@@ -1285,6 +1285,10 @@ inline constexpr char kUsedPolicyCertificates[] =
// visible on the toolbar.
inline constexpr char kShowHomeButton[] = "browser.show_home_button";
+14 -7
View File
@@ -9,9 +9,9 @@ Add DuckDuckGo Lite
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../search_engines/prepopulated_engines.json | 31 +++++++++++++++++++
.../search_engines/search_engine_type.h | 2 ++
.../search_engines/search_engine_type.h | 5 +++
.../template_url_prepopulate_data.cc | 3 ++
3 files changed, 36 insertions(+)
3 files changed, 39 insertions(+)
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
--- a/components/search_engines/prepopulated_engines.json
@@ -33,7 +33,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
"ecosia": {
"name": "Ecosia",
"keyword": "ecosia.org",
@@ -172,6 +182,27 @@
@@ -171,6 +181,27 @@
"id": 111
},
@@ -64,15 +64,22 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se
diff --git a/components/search_engines/search_engine_type.h b/components/search_engines/search_engine_type.h
--- a/components/search_engines/search_engine_type.h
+++ b/components/search_engines/search_engine_type.h
@@ -89,6 +89,8 @@ enum SearchEngineType {
SEARCH_ENGINE_BRAVE = 70,
@@ -90,10 +90,15 @@ enum SearchEngineType {
SEARCH_ENGINE_KARMA = 71,
SEARCH_ENGINE_YOU = 72,
+ SEARCH_ENGINE_GOOGLE_EN = 73,
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 74,
SEARCH_ENGINE_STARTER_PACK_ASK_GOOGLE = 73,
+ SEARCH_ENGINE_GOOGLE_EN = 74,
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 75,
SEARCH_ENGINE_MAX // Bounding value needed for UMA histogram macro.
};
+static_assert(SEARCH_ENGINE_DUCKDUCKGOLIGHT == (SEARCH_ENGINE_MAX - 1),
+ "Please check this patch");
+
// Enum to record the type of search engine a user used in keyword mode. This
// should be kept aligned with the `OmniboxBuiltinEngineType` enum in enums.xml.
// Entries should not be renumbered and numeric values should never be reused.
diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc
--- a/components/search_engines/template_url_prepopulate_data.cc
+++ b/components/search_engines/template_url_prepopulate_data.cc
@@ -35,7 +35,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -305,6 +305,7 @@ chrome_java_sources = [
@@ -307,6 +307,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAdvanced.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentBasic.java",
"java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java",
@@ -46,15 +46,15 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
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
@@ -164,6 +164,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
@@ -169,6 +169,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider;
import org.chromium.chrome.browser.quick_delete.QuickDeleteController;
import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl;
import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate;
+import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler;
import org.chromium.chrome.browser.read_later.ReadingListUtils;
import org.chromium.chrome.browser.reengagement.ReengagementNotificationController;
@@ -1582,7 +1583,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
import org.chromium.chrome.browser.search_engines.SearchEngineChoiceNotification;
@@ -1614,7 +1615,11 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
Intent intent = getIntent();
boolean hadCipherData =
@@ -70,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java
@@ -433,6 +433,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -435,6 +435,10 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
/** Returns whether is a basic or advanced Clear Browsing Data tab. */
protected abstract @ClearBrowsingDataTab int getClearBrowsingDataTabType();
@@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
/**
* Decides whether a given dialog option should be selected when the dialog is initialized.
*
@@ -512,6 +516,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -514,6 +518,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
* options.
*/
private void onClearButtonClicked() {
@@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
if (shouldShowImportantSitesDialog()) {
showImportantDialogThenClear();
return;
@@ -544,6 +549,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
@@ -546,6 +551,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat
Button clearButton = (Button) getView().findViewById(R.id.clear_button);
boolean isEnabled = !getSelectedOptions().isEmpty();
clearButton.setEnabled(isEnabled);
@@ -179,16 +179,16 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java
@@ -27,7 +27,7 @@ import org.chromium.chrome.browser.settings.SettingsActivity;
@@ -29,7 +29,7 @@ import org.chromium.chrome.browser.settings.SettingsActivity;
* Fragment with a {@link TabLayout} containing a basic and an advanced version of the CBD dialog.
*/
public class ClearBrowsingDataTabsFragment extends Fragment {
public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDependentSetting {
- public static final int CBD_TAB_COUNT = 2;
+ public static final int CBD_TAB_COUNT = 3;
private Profile mProfile;
private ClearBrowsingDataFetcher mFetcher;
@@ -90,6 +90,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
@@ -93,6 +93,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDe
return getActivity().getString(R.string.clear_browsing_data_basic_tab_title);
case 1:
return getActivity().getString(R.string.prefs_section_advanced);
@@ -197,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
default:
throw new RuntimeException("invalid position: " + position);
}
@@ -127,6 +129,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment {
@@ -136,6 +138,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment implements ProfileDe
case 1:
fragment = new ClearBrowsingDataFragmentAdvanced();
break;
@@ -210,7 +210,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -2247,6 +2247,16 @@
@@ -2244,6 +2244,16 @@
<message name="IDS_SETTINGS_CLEAR_BROWSING_DATA" desc="Text for clear browsing data button in Privacy options">
Clear browsing data
</message>
@@ -230,14 +230,14 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
--- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc
+++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc
@@ -326,7 +326,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
const JavaParamRef<jobject>& obj,
@@ -331,7 +331,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(
const JavaParamRef<jobject>& jprofile,
jint tab_index) {
DCHECK_GE(tab_index, 0);
- DCHECK_LT(tab_index, 2);
+ DCHECK_LT(tab_index, 3);
GetPrefService()->SetInteger(browsing_data::prefs::kLastClearBrowsingDataTab,
tab_index);
GetPrefService(jprofile)->SetInteger(
browsing_data::prefs::kLastClearBrowsingDataTab, tab_index);
}
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc
@@ -281,8 +281,8 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
--- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
+++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -434,6 +434,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
delete_end_, CreateTaskCompletionClosure(TracingDataType::kHistory),
@@ -436,6 +436,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
CreateTaskCompletionClosure(TracingDataType::kHistory),
&history_task_tracker_);
}
+ }
@@ -291,7 +291,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
if (ClipboardRecentContent::GetInstance())
ClipboardRecentContent::GetInstance()->SuppressClipboardContent();
@@ -484,7 +487,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -486,7 +489,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_CONTENTS |
prerender::NoStatePrefetchManager::CLEAR_PRERENDER_HISTORY);
}
@@ -301,7 +301,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
// The saved Autofill profiles and credit cards can include the origin from
// which these profiles and credit cards were learned. These are a form of
// history, so clear them as well.
@@ -505,7 +510,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -507,7 +512,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
if (data_manager)
data_manager->Refresh();
}
@@ -311,7 +311,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
base::ThreadPool::PostTaskAndReply(
FROM_HERE, {base::TaskPriority::USER_VISIBLE, base::MayBlock()},
base::BindOnce(
@@ -580,9 +587,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
@@ -582,9 +589,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
}
device_event_log::Clear(delete_begin_, delete_end_);
@@ -328,7 +328,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -502,6 +502,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -513,6 +513,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
settings_api::PrefType::kNumber;
@@ -386,7 +386,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1496,6 +1496,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
@@ -1488,6 +1488,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
}
}
@@ -406,7 +406,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
void ProfileManager::DoFinalInitForServices(Profile* profile,
bool go_off_the_record) {
if (!do_final_services_init_ ||
@@ -2171,7 +2184,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
@@ -2155,7 +2168,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) {
Profile* original_profile = profile->GetOriginalProfile();
// Do nothing if the closed window is not the last window of the same profile.
for (Browser* browser_iter : *BrowserList::GetInstance()) {
@@ -430,7 +430,7 @@ diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.html
@@ -306,6 +306,50 @@
@@ -305,6 +305,50 @@
disabled="[[clearingInProgress_]]" no-set-pref>
</settings-checkbox>
</div>
@@ -484,7 +484,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
--- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
+++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts
@@ -297,6 +297,7 @@ export class SettingsClearBrowsingDataDialogElement extends
@@ -302,6 +302,7 @@ export class SettingsClearBrowsingDataDialogElement extends
value: () =>
[loadTimeData.getString('basicPageTitle'),
loadTimeData.getString('advancedPageTitle'),
@@ -492,7 +492,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
],
},
@@ -417,6 +418,7 @@ export class SettingsClearBrowsingDataDialogElement extends
@@ -425,6 +426,7 @@ export class SettingsClearBrowsingDataDialogElement extends
}
this.clearButtonDisabled_ =
this.getSelectedDataTypes_(tab as HTMLElement).length === 0;
@@ -503,7 +503,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1426,6 +1426,9 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1432,6 +1432,9 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_CLEAR_BROWSING_DATA_BASIC_TAB_TITLE" desc="The title of the tab showing the basic clear browsing data options.">
Basic
</message>
@@ -516,7 +516,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -1661,6 +1661,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
@@ -1674,6 +1674,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
@@ -686,7 +686,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -1553,6 +1553,7 @@ void StoragePartitionImpl::Initialize(
@@ -1488,6 +1488,7 @@ void StoragePartitionImpl::Initialize(
.AppendASCII("Code Cache");
}
DCHECK_GE(settings.size_in_bytes(), 0);
@@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -266,6 +266,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -273,6 +273,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
mTab.loadUrl(loadUrlParams);
}
@@ -158,7 +158,7 @@ diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/con
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -288,6 +288,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kTabGroupParityAndroid,
&kTabletTabSwitcherLongPressMenu,
&kTabletToolbarIncognitoStatus,
@@ -169,8 +169,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -338,6 +338,8 @@ public abstract class ChromeFeatureList {
public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid";
@@ -342,6 +342,8 @@ public abstract class ChromeFeatureList {
public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe";
public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM =
"MoveTopToolbarToBottom";
+ public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS =
@@ -178,7 +178,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET =
"NotificationPermissionBottomSheet";
@@ -606,6 +608,8 @@ public abstract class ChromeFeatureList {
@@ -619,6 +621,8 @@ public abstract class ChromeFeatureList {
newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
public static final CachedFlag sMoveTopToolbarToBottom =
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
@@ -187,7 +187,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sOmniboxModernizeVisualUpdate =
newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
public static final CachedFlag sOptimizationGuidePushNotifications =
@@ -741,6 +745,7 @@ public abstract class ChromeFeatureList {
@@ -771,6 +775,7 @@ public abstract class ChromeFeatureList {
sTabWindowManagerReportIndicesMismatch,
sToolbarUseHardwareBitmapDraw,
sUseChimeAndroidSdk,
@@ -198,7 +198,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -1632,6 +1632,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -1638,6 +1638,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_MOVE_TOOLBAR_BOTTOM_SUMMARY" desc="Summary of the preference that allows the user to move toolbar on bottom.">
Move toolbar to bottom
</message>
@@ -211,7 +211,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Safety check -->
<message name="IDS_PREFS_SAFETY_CHECK" desc="Title of the Safety check element in settings, allowing the user to check multiple areas of browser safety. [CHAR_LIMIT=32]">
@@ -2701,6 +2707,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -2779,6 +2785,9 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_CONTEXTMENU_OPEN_IN_NEW_CHROME_TAB" desc="Context sensitive menu item to open the selected link in a new Chrome tab from Chrome Custom Tab. [CHAR_LIMIT=30]">
Open in new Chrome tab
</message>
@@ -371,7 +371,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
event.SetDefaultHandled();
LocalDOMWindow* window = GetDocument().domWindow();
@@ -659,13 +680,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
@@ -656,13 +677,12 @@ void HTMLAnchorElement::HandleClick(Event& event) {
return;
}
@@ -389,7 +389,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
// We distinguish single/double click with some modifiers.
// See the comment of `EventHandler.delayed_navigation_task_handle_`.
auto task_handle = PostDelayedCancellableTask(
@@ -675,7 +695,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
@@ -672,7 +692,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
std::move(task_handle));
} else {
@@ -433,7 +433,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_
diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc
--- a/third_party/blink/renderer/core/html/html_image_element.cc
+++ b/third_party/blink/renderer/core/html/html_image_element.cc
@@ -36,6 +36,7 @@
@@ -37,6 +37,7 @@
#include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h"
#include "third_party/blink/renderer/core/dom/node_traversal.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
@@ -441,7 +441,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
#include "third_party/blink/renderer/core/frame/attribution_src_loader.h"
#include "third_party/blink/renderer/core/frame/deprecation/deprecation.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
@@ -64,6 +65,7 @@
@@ -65,6 +66,7 @@
#include "third_party/blink/renderer/core/media_type_names.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
@@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
#include "third_party/blink/renderer/core/paint/timing/paint_timing.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
@@ -802,6 +804,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
@@ -803,6 +805,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
}
}
@@ -486,7 +486,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p
diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc
--- a/third_party/blink/renderer/core/page/context_menu_controller.cc
+++ b/third_party/blink/renderer/core/page/context_menu_controller.cc
@@ -234,14 +234,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
@@ -225,14 +225,16 @@ void ContextMenuController::DocumentDetached(Document* document) {
}
}
@@ -506,7 +506,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
mouse_event->SetDefaultHandled();
}
@@ -459,7 +461,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
@@ -450,7 +452,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch(
bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
const PhysicalOffset& point,
WebMenuSourceType source_type,
@@ -516,7 +516,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
// Displaying the context menu in this function is a big hack as we don't
// have context, i.e. whether this is being invoked via a script or in
// response to user input (Mouse event WM_RBUTTONDOWN,
@@ -482,6 +485,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
@@ -473,6 +476,15 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
if (!result.InnerNodeOrImageMapImage())
return false;
@@ -532,7 +532,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t
// Clear any previously set cached results if we are resetting the hit test
// result.
image_selection_cached_result_ = nullptr;
@@ -840,11 +852,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
@@ -831,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
SetAutofillData(result.InnerNode(), data);
SetPasswordManagerData(result.InnerElement(), data);
+3 -3
View File
@@ -68,7 +68,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc
--- a/components/feature_engagement/internal/tracker_impl.cc
+++ b/components/feature_engagement/internal/tracker_impl.cc
@@ -22,6 +22,7 @@
@@ -23,6 +23,7 @@
#include "base/task/single_thread_task_runner.h"
#include "base/time/clock.h"
#include "build/build_config.h"
@@ -76,7 +76,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components
#include "components/feature_engagement/internal/availability_model_impl.h"
#include "components/feature_engagement/internal/blocked_iph_features.h"
#include "components/feature_engagement/internal/chrome_variations_configuration.h"
@@ -207,6 +208,8 @@ TrackerImpl::TrackerImpl(
@@ -211,6 +212,8 @@ TrackerImpl::TrackerImpl(
TrackerImpl::~TrackerImpl() = default;
void TrackerImpl::NotifyEvent(const std::string& event) {
@@ -96,7 +96,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co
#include "components/feature_engagement/public/configuration.h"
#include "components/feature_engagement/public/event_constants.h"
#include "components/feature_engagement/public/feature_constants.h"
@@ -66,6 +67,12 @@ absl::optional<FeatureConfig> GetClientSideFeatureConfig(
@@ -111,6 +112,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
}
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -83,6 +83,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
@@ -86,6 +86,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment;
import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
import org.chromium.components.browser_ui.settings.PaddedItemDecorationWithDivider;
import org.chromium.components.browser_ui.settings.SettingsLauncher;
@@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment;
import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat;
@@ -453,8 +454,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -457,8 +458,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
finish();
return true;
} else if (item.getItemId() == R.id.menu_id_general_help) {
+13 -13
View File
@@ -84,7 +84,7 @@ Enabled by default
diff --git a/DEPS b/DEPS
--- a/DEPS
+++ b/DEPS
@@ -487,6 +487,10 @@ vars = {
@@ -489,6 +489,10 @@ vars = {
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling feed
# and whatever else without interference from each other.
@@ -95,7 +95,7 @@ diff --git a/DEPS b/DEPS
'highway_revision': '8f20644eca693cfb74aa795b0006b6779c370e7a',
# Three lines of non-changing comments so that
# the commit queue can handle CLs rolling ffmpeg
@@ -1105,6 +1109,9 @@ deps = {
@@ -1107,6 +1111,9 @@ deps = {
'src/third_party/dawn':
Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'),
@@ -375,7 +375,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc
diff --git a/third_party/.gitignore b/third_party/.gitignore
--- a/third_party/.gitignore
+++ b/third_party/.gitignore
@@ -91,6 +91,7 @@
@@ -90,6 +90,7 @@
/libgifcodec
/libjingle/source
/libupnp
@@ -467,7 +467,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa
diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
--- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl
+++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl
@@ -4258,6 +4258,7 @@ domain Emulation
@@ -4294,6 +4294,7 @@ domain Emulation
experimental type DisabledImageType extends string
enum
avif
@@ -608,7 +608,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
@@ -2277,6 +2277,10 @@ source_set("blink_platform_unittests_sources") {
@@ -2280,6 +2280,10 @@ source_set("blink_platform_unittests_sources") {
sources += [ "text/locale_icu_test.cc" ]
}
@@ -619,7 +619,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
sources += [ "testing/run_all_tests.cc" ]
configs += [
@@ -2320,6 +2324,7 @@ source_set("blink_platform_unittests_sources") {
@@ -2323,6 +2327,7 @@ source_set("blink_platform_unittests_sources") {
"//third_party/blink/renderer/platform/scheduler:unit_tests",
"//third_party/blink/renderer/platform/wtf",
"//third_party/libavif:libavif",
@@ -677,7 +677,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third_party/blink/renderer/platform/image-decoders/BUILD.gn
--- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn
+++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn
@@ -70,6 +70,15 @@ component("image_decoders") {
@@ -72,6 +72,15 @@ component("image_decoders") {
"//third_party/libyuv",
]
@@ -2211,18 +2211,18 @@ new file mode 100644
diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/blink/tools/commit_stats/git-dirs.txt
--- a/third_party/blink/tools/commit_stats/git-dirs.txt
+++ b/third_party/blink/tools/commit_stats/git-dirs.txt
@@ -75,6 +75,7 @@
@@ -34,6 +34,7 @@
./third_party/angle/third_party/rapidjson/src,ANGLE
./third_party/angle/third_party/VK-GL-CTS/src,ANGLE
./third_party/angle/third_party/glmark2/src,ANGLE
./third_party/openh264/src,OpenH264
./third_party/googletest/src,GoogleTest
+./third_party/libjxl/src,libjxl
./third_party/highway/src,highway
./third_party/wuffs/src,wuffs
./third_party/catapult,catapult
./third_party/libwebm/source,libwebm
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -4569,6 +4569,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai
@@ -4559,6 +4559,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai
# Started failing after rolling new version of check-layout-th.js
css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ]
@@ -2653,7 +2653,7 @@ new file mode 100644
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -23861,6 +23861,7 @@ from previous Chrome versions.
@@ -21104,6 +21104,7 @@ from previous Chrome versions.
<int value="188610022" label="NewMessageListView:enabled"/>
<int value="189728101" label="FasterLocationReload:disabled"/>
<int value="189777537" label="DisableInitialMostVisitedFadeIn:enabled"/>
+4 -4
View File
@@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
@@ -310,6 +310,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
@@ -311,6 +311,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
}
}
@@ -232,7 +232,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() {
base::AutoLock locker(WebGLContextLimitLock());
DCHECK(webgl_context_limits_initialized_);
@@ -583,25 +590,6 @@ static String ExtractWebGLContextCreationError(
@@ -584,25 +591,6 @@ static String ExtractWebGLContextCreationError(
const Platform::GraphicsInfo& info) {
StringBuilder builder;
builder.Append("Could not create a WebGL context");
@@ -258,7 +258,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(),
builder);
builder.Append('.');
@@ -661,6 +649,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
@@ -662,6 +650,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
const CanvasContextCreationAttributesCore& attributes,
Platform::ContextType context_type,
Platform::GraphicsInfo* graphics_info) {
@@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba
diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
--- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
+++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h
@@ -1959,6 +1959,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
@@ -1960,6 +1960,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
DOMArrayBufferView* pixels,
int64_t offset);
+3 -3
View File
@@ -187,15 +187,15 @@ new file mode 100644
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
--- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
+++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -37,6 +37,7 @@
#include "third_party/blink/public/common/peerconnection/webrtc_ip_handling_policy.h"
@@ -41,6 +41,7 @@
#include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/public/platform/task_type.h"
+#include "third_party/blink/public/platform/web_content_settings_client.h"
#include "third_party/blink/public/platform/web_url.h"
#include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h"
#include "third_party/blink/public/web/web_document.h"
@@ -807,6 +808,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
@@ -847,6 +848,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
// origin.
WebRTCIPHandlingPolicy policy =
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
--- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
+++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc
@@ -367,6 +367,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
@@ -368,6 +368,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
return;
}
@@ -41,7 +41,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -1326,6 +1326,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
@@ -1400,6 +1400,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) {
}
}
@@ -49,7 +49,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow
std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
std::vector<GURL> urls;
frame_host->ForEachRenderFrameHostWithAction(
@@ -1339,6 +1340,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
@@ -1413,6 +1414,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
});
return urls;
}
@@ -201,7 +201,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -13726,12 +13726,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
@@ -13787,12 +13787,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
base::Value::Dict body;
if (!reason.empty())
body.Set("reason", reason);
@@ -254,7 +254,7 @@ new file mode 100644
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
@@ -215,6 +215,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
@@ -229,6 +229,7 @@ extern const base::FeatureParam<base::TimeDelta> kTimeoutTcpConnectAttemptMax(
base::Seconds(30));
#if BUILDFLAG(ENABLE_REPORTING)
@@ -282,9 +282,9 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -464,10 +464,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
const absl::optional<base::UnguessableToken>& reporting_source,
const std::optional<base::UnguessableToken>& reporting_source,
const net::NetworkAnonymizationKey& network_anonymization_key,
const absl::optional<std::string>& user_agent,
const std::optional<std::string>& user_agent,
- base::Value::Dict body) override;
+ base::Value::Dict body);
void QueueSignedExchangeReport(
@@ -297,7 +297,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn
--- a/services/network/public/mojom/BUILD.gn
+++ b/services/network/public/mojom/BUILD.gn
@@ -1439,7 +1439,6 @@ mojom("mojom") {
@@ -1443,7 +1443,6 @@ mojom("mojom") {
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
if (enable_reporting) {
@@ -308,7 +308,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -1223,6 +1223,7 @@ interface NetworkContext {
@@ -1206,6 +1206,7 @@ interface NetworkContext {
// provided |network_isolation_key|.
//
// Spec: https://w3c.github.io/reporting/#concept-reports
@@ -316,7 +316,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
QueueReport(string type,
string group,
url.mojom.Url url,
@@ -1236,6 +1237,7 @@ interface NetworkContext {
@@ -1219,6 +1220,7 @@ interface NetworkContext {
// Note that this queued report will never be delivered if no reporting
// endpoint matching is registered for with the provided
// |network_isolation_key|.
@@ -327,15 +327,15 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
--- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
+++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc
@@ -28,6 +28,7 @@
#include <memory>
@@ -29,6 +29,7 @@
#include <optional>
#include <utility>
+#include "net/net_buildflags.h"
#include "base/containers/contains.h"
#include "base/debug/dump_without_crashing.h"
#include "services/network/public/cpp/web_sandbox_flags.h"
@@ -1166,6 +1167,7 @@ void ContentSecurityPolicy::ReportViolation(
#include "base/ranges/algorithm.h"
@@ -1167,6 +1168,7 @@ void ContentSecurityPolicy::ReportViolation(
return;
}
@@ -343,7 +343,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
PostViolationReport(violation_data, context_frame, report_endpoints,
use_reporting_api);
@@ -1173,6 +1175,7 @@ void ContentSecurityPolicy::ReportViolation(
@@ -1174,6 +1176,7 @@ void ContentSecurityPolicy::ReportViolation(
// `context_frame` (i.e. we're not processing 'frame-ancestors').
if (delegate_ && !context_frame)
delegate_->DispatchViolationEvent(*violation_data, element);
@@ -362,7 +362,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
#include "services/network/public/cpp/features.h"
#include "services/network/public/mojom/content_security_policy.mojom-blink.h"
#include "services/network/public/mojom/source_location.mojom-blink.h"
@@ -2601,9 +2602,11 @@ void LocalFrame::MainFrameInteractive() {
@@ -2619,9 +2620,11 @@ void LocalFrame::MainFrameInteractive() {
v8_local_compile_hints_producer_->GenerateData();
}
@@ -372,20 +372,20 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
}
+#endif
device::mojom::blink::DevicePostureProvider*
LocalFrame::GetDevicePostureProvider() {
mojom::blink::DevicePostureProvider* LocalFrame::GetDevicePostureProvider() {
return mojo_handler_->DevicePostureProvider();
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
@@ -38,6 +38,7 @@
@@ -36,6 +36,7 @@
#include "base/time/time.h"
#include "base/unguessable_token.h"
#include "build/build_config.h"
+#include "net/net_buildflags.h"
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "net/net_buildflags.h"
#include "services/device/public/mojom/device_posture_provider.mojom-blink-forward.h"
#include "services/metrics/public/cpp/ukm_source_id.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
@@ -655,8 +656,9 @@ class CORE_EXPORT LocalFrame final
@@ -657,8 +658,9 @@ class CORE_EXPORT LocalFrame final
void FinishedScrollSequence();
SmoothScrollSequencer* GetSmoothScrollSequencer() const;
@@ -393,7 +393,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
+#if BUILDFLAG(ENABLE_REPORTING)
mojom::blink::ReportingServiceProxy* GetReportingService();
+#endif
device::mojom::blink::DevicePostureProvider* GetDevicePostureProvider();
mojom::blink::DevicePostureProvider* GetDevicePostureProvider();
// Returns the frame host ptr. The interface returned is backed by an
diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc
@@ -4,27 +4,27 @@ Subject: Allow building without supervised users
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 1 -
chrome/android/chrome_java_sources.gni | 1 -
.../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +----
chrome/browser/BUILD.gn | 6 ------
.../extensions/api/settings_private/prefs_util.cc | 2 ++
chrome/browser/profiles/profile_impl.cc | 4 ++++
chrome/browser/profiles/profile_manager.cc | 4 ++++
chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++
.../browser/ui/webui/management/management_ui_handler.cc | 2 ++
components/supervised_user/buildflags.gni | 6 +-----
.../core/browser/supervised_user_preferences.cc | 2 +-
components/supervised_user/core/common/features.cc | 1 +
components/supervised_user/core/common/pref_names.h | 4 ++++
.../core/common/supervised_user_constants.cc | 2 ++
.../supervised_user/core/common/supervised_user_utils.cc | 9 ++++++---
15 files changed, 30 insertions(+), 21 deletions(-)
chrome/android/BUILD.gn | 1 -
chrome/android/chrome_java_sources.gni | 1 -
.../chrome/browser/feed/FeedSurfaceCoordinator.java | 5 +----
chrome/browser/BUILD.gn | 6 ------
.../browser/extensions/api/settings_private/prefs_util.cc | 2 ++
chrome/browser/profiles/profile_impl.cc | 4 ++++
chrome/browser/profiles/profile_manager.cc | 4 ++++
chrome/browser/ui/webui/managed_ui_handler.cc | 2 ++
chrome/browser/ui/webui/management/management_ui_handler.cc | 2 ++
components/supervised_user/buildflags.gni | 6 +-----
.../core/browser/supervised_user_preferences.cc | 2 +-
.../supervised_user/core/browser/supervised_user_utils.cc | 4 ++++
components/supervised_user/core/common/features.cc | 1 +
components/supervised_user/core/common/pref_names.h | 4 ++++
.../core/common/supervised_user_constants.cc | 2 ++
15 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -3691,7 +3691,6 @@ generate_jni("chrome_jni_headers") {
@@ -3697,7 +3697,6 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java",
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSites.java",
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java",
@@ -35,7 +35,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1075,7 +1075,6 @@ chrome_java_sources = [
@@ -1085,7 +1085,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/suggestions/tile/TileGroupDelegateImpl.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/TopSitesTileView.java",
@@ -68,7 +68,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3147,8 +3147,6 @@ static_library("browser") {
@@ -3165,8 +3165,6 @@ static_library("browser") {
"feed/android/refresh_task_scheduler_impl.cc",
"feed/android/refresh_task_scheduler_impl.h",
"feed/android/web_feed_bridge.cc",
@@ -77,7 +77,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"file_select_helper_contacts_android.cc",
"file_select_helper_contacts_android.h",
"first_run/android/first_run_prefs.cc",
@@ -3354,10 +3352,6 @@ static_library("browser") {
@@ -3371,10 +3369,6 @@ static_library("browser") {
"ssl/chrome_security_state_model_delegate.h",
"ssl/known_interception_disclosure_infobar.cc",
"ssl/known_interception_disclosure_infobar.h",
@@ -91,7 +91,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
@@ -999,9 +999,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
@@ -1024,9 +1024,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
settings_api::PrefType::kBoolean;
#endif
@@ -106,7 +106,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -683,10 +683,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
@@ -689,10 +689,12 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) {
prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_);
pref_change_registrar_.Init(prefs);
@@ -119,7 +119,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
// Changes in the profile avatar.
pref_change_registrar_.Add(
@@ -1614,11 +1616,13 @@ GURL ProfileImpl::GetHomePage() {
@@ -1627,11 +1629,13 @@ GURL ProfileImpl::GetHomePage() {
}
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
@@ -136,7 +136,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
--- a/chrome/browser/profiles/profile_manager.cc
+++ b/chrome/browser/profiles/profile_manager.cc
@@ -1223,6 +1223,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1215,6 +1215,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
}
@@ -144,7 +144,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
bool force_supervised_user_id =
#if BUILDFLAG(IS_CHROMEOS_ASH)
@@ -1244,6 +1245,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
@@ -1236,6 +1237,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
supervised_user_id);
}
@@ -152,7 +152,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
#if !BUILDFLAG(IS_ANDROID)
if (profile->IsNewProfile()) {
profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false);
@@ -2051,8 +2053,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
@@ -2035,8 +2037,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
init_params.icon_index =
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
@@ -220,10 +220,29 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences
}
bool IsSafeSitesEnabled(const PrefService& pref_service) {
diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc
--- a/components/supervised_user/core/browser/supervised_user_utils.cc
+++ b/components/supervised_user/core/browser/supervised_user_utils.cc
@@ -81,11 +81,15 @@ GURL NormalizeUrl(const GURL& url) {
}
bool AreWebFilterPrefsDefault(const PrefService& pref_service) {
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
return pref_service
.FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior)
->IsDefaultValue() ||
pref_service.FindPreference(prefs::kSupervisedUserSafeSites)
->IsDefaultValue();
+#else
+ return true;
+#endif
}
bool EmitLogRecordHistograms(
diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc
--- a/components/supervised_user/core/common/features.cc
+++ b/components/supervised_user/core/common/features.cc
@@ -174,4 +174,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
@@ -163,4 +163,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites);
}
@@ -243,7 +262,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su
namespace prefs {
// A bool pref that keeps whether the child status for this profile was already
@@ -124,4 +126,6 @@ inline constexpr char kFirstTimeInterstitialBannerState[] =
@@ -132,4 +134,6 @@ inline constexpr char kFirstTimeInterstitialBannerState[] =
} // namespace prefs
@@ -253,7 +272,7 @@ diff --git a/components/supervised_user/core/common/pref_names.h b/components/su
diff --git a/components/supervised_user/core/common/supervised_user_constants.cc b/components/supervised_user/core/common/supervised_user_constants.cc
--- a/components/supervised_user/core/common/supervised_user_constants.cc
+++ b/components/supervised_user/core/common/supervised_user_constants.cc
@@ -68,6 +68,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index";
@@ -70,6 +70,7 @@ const char kChromeOSAvatarIndex[] = "chromeos-avatar-index";
const char kChromeOSPasswordData[] = "chromeos-password-data";
@@ -261,7 +280,7 @@ diff --git a/components/supervised_user/core/common/supervised_user_constants.cc
const char* const kCustodianInfoPrefs[] = {
prefs::kSupervisedUserCustodianName,
prefs::kSupervisedUserCustodianEmail,
@@ -80,6 +81,7 @@ const char* const kCustodianInfoPrefs[] = {
@@ -82,6 +83,7 @@ const char* const kCustodianInfoPrefs[] = {
prefs::kSupervisedUserSecondCustodianProfileURL,
prefs::kSupervisedUserSecondCustodianProfileImageURL,
};
@@ -269,25 +288,4 @@ diff --git a/components/supervised_user/core/common/supervised_user_constants.cc
const base::FilePath::CharType kSupervisedUserSettingsFilename[] =
FILE_PATH_LITERAL("Managed Mode Settings");
diff --git a/components/supervised_user/core/common/supervised_user_utils.cc b/components/supervised_user/core/common/supervised_user_utils.cc
--- a/components/supervised_user/core/common/supervised_user_utils.cc
+++ b/components/supervised_user/core/common/supervised_user_utils.cc
@@ -52,11 +52,14 @@ GURL NormalizeUrl(const GURL& url) {
}
bool AreWebFilterPrefsDefault(const PrefService& pref_service) {
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
return pref_service
.FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior)
- ->IsDefaultValue() ||
- pref_service.FindPreference(prefs::kSupervisedUserSafeSites)
- ->IsDefaultValue();
+ kChildAccountSUID &&
+ IsChildAccountSupervisionEnabled();
+#else
+ return false;
+#endif
}
absl::optional<LogSegment> SupervisionStatusForUser(
--
@@ -25,7 +25,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
@@ -212,6 +214,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -219,6 +221,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
Referrer referrer,
boolean navigateToTab,
@Nullable AdditionalNavigationParams additionalNavigationParams) {
@@ -33,7 +33,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
RecordUserAction.record("MobileNewTabOpened");
RecordUserAction.record("LinkOpenedInNewTab");
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
@@ -228,6 +231,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@@ -235,6 +238,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
@Override
public void onOpenInNewTabInGroup(GURL url, Referrer referrer) {
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/third_party/blink/renderer/modules/battery/battery_manager.cc
--- a/third_party/blink/renderer/modules/battery/battery_manager.cc
+++ b/third_party/blink/renderer/modules/battery/battery_manager.cc
@@ -78,46 +78,28 @@ ScriptPromise BatteryManager::StartRequest(ScriptState* script_state) {
@@ -80,46 +80,28 @@ ScriptPromiseTyped<BatteryManager> BatteryManager::StartRequest(
}
bool BatteryManager::charging() {
@@ -61,7 +61,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h
--- a/third_party/blink/renderer/core/loader/base_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
@@ -85,6 +85,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
@@ -86,6 +86,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext {
virtual SubresourceFilter* GetSubresourceFilter() const = 0;
virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0;
@@ -102,7 +102,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.h
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -176,6 +176,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
@@ -177,6 +177,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext,
bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override;
std::unique_ptr<WebSocketHandshakeThrottle> CreateWebSocketHandshakeThrottle()
override;
@@ -277,22 +277,22 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.cc b
+ return false;
+}
+
void WebSocketCommon::CloseInternal(int code,
void WebSocketCommon::CloseInternal(std::optional<uint16_t> code,
const String& reason,
WebSocketChannel* channel,
diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.h b/third_party/blink/renderer/modules/websockets/websocket_common.h
--- a/third_party/blink/renderer/modules/websockets/websocket_common.h
+++ b/third_party/blink/renderer/modules/websockets/websocket_common.h
@@ -7,6 +7,8 @@
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WEBSOCKETS_WEBSOCKET_COMMON_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBSOCKETS_WEBSOCKET_COMMON_H_
@@ -11,6 +11,8 @@
#include <optional>
+#include "services/network/public/mojom/ip_address_space.mojom.h"
+#include "third_party/blink/renderer/platform/network/network_utils.h"
#include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/weborigin/kurl.h"
#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
@@ -54,6 +56,8 @@ class MODULES_EXPORT WebSocketCommon {
@@ -58,6 +60,8 @@ class MODULES_EXPORT WebSocketCommon {
void SetState(State state) { state_ = state; }
const KURL& Url() const { return url_; }
@@ -108,7 +108,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -841,6 +841,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
@@ -849,6 +849,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl()
RegisterPseudoScheme(url::kJavaScriptScheme);
RegisterPseudoScheme(kViewSourceScheme);
RegisterPseudoScheme(kGoogleChromeScheme);
@@ -119,7 +119,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -990,6 +990,8 @@ component("net") {
@@ -997,6 +997,8 @@ component("net") {
"url_request/url_request_http_job.cc",
"url_request/url_request_http_job.h",
"url_request/url_request_interceptor.cc",
@@ -228,15 +228,15 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc
--- a/net/url_request/url_request_context_builder.cc
+++ b/net/url_request/url_request_context_builder.cc
@@ -47,6 +47,7 @@
@@ -48,6 +48,7 @@
#include "net/socket/network_binding_client_socket_factory.h"
#include "net/ssl/ssl_config_service_defaults.h"
#include "net/url_request/static_http_user_agent_settings.h"
+#include "net/url_request/trk_protocol_handler.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_job_factory.h"
#include "net/url_request/url_request_throttler_manager.h"
@@ -565,6 +566,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
#include "url/url_constants.h"
@@ -559,6 +560,8 @@ std::unique_ptr<URLRequestContext> URLRequestContextBuilder::Build() {
job_factory->SetProtocolHandler(scheme_handler.first,
std::move(scheme_handler.second));
}
+50 -51
View File
@@ -25,18 +25,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
chrome/browser/endpoint_fetcher/BUILD.gn | 32 +++
chrome/browser/endpoint_fetcher/DEPS | 3 +
chrome/browser/endpoint_fetcher/OWNERS | 1 +
.../endpoint_fetcher_android.cc | 183 ++++++++++++
.../endpoint_fetcher_android.cc | 184 ++++++++++++
.../endpoint_fetcher/EndpointFetcher.java | 165 +++++++++++
.../EndpointHeaderResponse.java | 31 ++
.../endpoint_fetcher/EndpointResponse.java | 30 ++
.../flags/android/chrome_feature_list.cc | 1 +
.../browser/flags/ChromeFeatureList.java | 1 +
.../strings/android_chrome_strings.grd | 23 +-
.../endpoint_fetcher/endpoint_fetcher.cc | 103 ++++++-
.../endpoint_fetcher/endpoint_fetcher.cc | 101 ++++++-
.../endpoint_fetcher/endpoint_fetcher.h | 23 +-
.../Bromite-auto-updater.inc | 3 +
.../Bromite-auto-updater.inc | 1 +
28 files changed, 1269 insertions(+), 52 deletions(-)
28 files changed, 1268 insertions(+), 52 deletions(-)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateController.java
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/InlineUpdateControllerFactory.java
@@ -65,7 +65,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -1910,6 +1910,9 @@ if (enable_java_templates && is_android) {
@@ -1905,6 +1905,9 @@ if (enable_java_templates && is_android) {
sources = [ "//build/android/java/templates/BuildConfig.template" ]
defines = []
@@ -78,7 +78,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -875,6 +875,9 @@ chrome_java_sources = [
@@ -883,6 +883,9 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
"java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
@@ -1113,7 +1113,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3094,6 +3094,7 @@ static_library("browser") {
@@ -3112,6 +3112,7 @@ static_library("browser") {
"download/android/service/download_task_scheduler.h",
"download/android/string_utils.cc",
"download/download_crx_util_android.cc",
@@ -1121,8 +1121,8 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
"enterprise/reporting/browser_report_generator_android.cc",
"enterprise/reporting/browser_report_generator_android.h",
"enterprise/reporting/profile_report_generator_android.cc",
@@ -3431,6 +3432,7 @@ static_library("browser") {
"//chrome/browser/consent_auditor/android:jni_headers",
@@ -3451,6 +3452,7 @@ static_library("browser") {
"//chrome/browser/content_extraction/android:jni_headers",
"//chrome/browser/device_reauth/android:jni_headers",
"//chrome/browser/download/internal/android",
+ "//chrome/browser/endpoint_fetcher:jni_headers",
@@ -1184,7 +1184,7 @@ diff --git a/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc b/chrom
new file mode 100644
--- /dev/null
+++ b/chrome/browser/endpoint_fetcher/endpoint_fetcher_android.cc
@@ -0,0 +1,183 @@
@@ -0,0 +1,184 @@
+// Copyright 2019 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -1264,7 +1264,7 @@ new file mode 100644
+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ base::android::ConvertJavaStringToUTF8(env, jhttps_method),
+ base::android::ConvertJavaStringToUTF8(env, jcontent_type), scopes,
+ jtimeout, base::android::ConvertJavaStringToUTF8(env, jpost_data),
+ base::Milliseconds(jtimeout), base::android::ConvertJavaStringToUTF8(env, jpost_data),
+ net::NetworkTrafficAnnotationTag::FromJavaAnnotation(
+ jannotation_hash_code),
+ IdentityManagerFactory::GetForProfile(
@@ -1300,7 +1300,8 @@ new file mode 100644
+ ->GetURLLoaderFactoryForBrowserProcess(),
+ GURL(base::android::ConvertJavaStringToUTF8(env, jurl)),
+ base::android::ConvertJavaStringToUTF8(env, jhttps_method),
+ base::android::ConvertJavaStringToUTF8(env, jcontent_type), jtimeout,
+ base::android::ConvertJavaStringToUTF8(env, jcontent_type),
+ base::Milliseconds(jtimeout),
+ base::android::ConvertJavaStringToUTF8(env, jpost_data), headers,
+ net::NetworkTrafficAnnotationTag::FromJavaAnnotation(
+ jannotation_hash_code),
@@ -1612,7 +1613,7 @@ new file mode 100644
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
@@ -234,6 +234,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
@@ -235,6 +235,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kPreconnectOnTabCreation,
&kPriceChangeModule,
&kPwaRestoreUi,
@@ -1623,7 +1624,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -314,6 +314,7 @@ public abstract class ChromeFeatureList {
@@ -315,6 +315,7 @@ public abstract class ChromeFeatureList {
"IncognitoReauthenticationForAndroid";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INSTANT_START = "InstantStart";
@@ -1634,7 +1635,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2038,6 +2038,12 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2050,6 +2050,12 @@ Your Google account may have other forms of browsing history like searches and a
<message name="IDS_DEPRECATION_WARNING" desc="Warning about Chrome updates no longer being supported">
Chrome updates are no longer supported for this version of Android
</message>
@@ -1647,7 +1648,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
<!-- Account management UI strings. -->
<message name="IDS_ACCOUNT_MANAGEMENT_TITLE" desc="Header title for the account management screen. [CHAR_LIMIT=32]">
@@ -3663,7 +3669,10 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3732,7 +3738,10 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<!-- Main menu items -->
<message name="IDS_MENU_UPDATE" desc="Menu item for updating chrome. [CHAR_LIMIT=24]">
@@ -1659,7 +1660,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
</message>
<message name="IDS_MENU_UPDATE_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that a newer version of Chrome is available. [CHAR_LIMIT=30]">
Newer version is available
@@ -3674,6 +3683,18 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
@@ -3743,6 +3752,18 @@ To change this setting, <ph name="BEGIN_LINK">BEGIN_LINK</ph>clear the Chrome da
<message name="IDS_MENU_UPDATE_UNSUPPORTED_SUMMARY_DEFAULT" desc="Summary string for update menu item explaining that the Android version on the device is unsupported. [CHAR_LIMIT=30]">
Android version is unsupported
</message>
@@ -1681,7 +1682,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoint_fetcher/endpoint_fetcher.cc
--- a/components/endpoint_fetcher/endpoint_fetcher.cc
+++ b/components/endpoint_fetcher/endpoint_fetcher.cc
@@ -18,6 +18,11 @@
@@ -19,6 +19,11 @@
#include "services/network/public/cpp/simple_url_loader.h"
#include "services/network/public/mojom/url_response_head.mojom.h"
@@ -1693,46 +1694,46 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
namespace {
const char kContentTypeKey[] = "Content-Type";
const char kDeveloperKey[] = "X-Developer-Key";
@@ -64,6 +69,7 @@ EndpointFetcher::EndpointFetcher(
@@ -65,6 +70,7 @@ EndpointFetcher::EndpointFetcher(
http_method_(http_method),
content_type_(content_type),
timeout_ms_(timeout_ms),
timeout_(timeout),
+ intercept_redirect_(false),
post_data_(post_data),
headers_(headers),
annotation_tag_(annotation_tag),
@@ -82,6 +88,7 @@ EndpointFetcher::EndpointFetcher(
@@ -83,6 +89,7 @@ EndpointFetcher::EndpointFetcher(
http_method_("GET"),
content_type_(std::string()),
timeout_ms_(0),
timeout_(base::Milliseconds(0)),
+ intercept_redirect_(false),
post_data_(std::string()),
annotation_tag_(annotation_tag),
url_loader_factory_(url_loader_factory),
@@ -107,6 +114,7 @@ EndpointFetcher::EndpointFetcher(
@@ -108,6 +115,7 @@ EndpointFetcher::EndpointFetcher(
http_method_(http_method),
content_type_(content_type),
timeout_ms_(timeout_ms),
timeout_(timeout),
+ intercept_redirect_(false),
post_data_(post_data),
annotation_tag_(annotation_tag),
url_loader_factory_(url_loader_factory),
@@ -134,6 +142,7 @@ EndpointFetcher::EndpointFetcher(
@@ -135,6 +143,7 @@ EndpointFetcher::EndpointFetcher(
http_method_(http_method),
content_type_(content_type),
timeout_ms_(timeout_ms),
timeout_(timeout),
+ intercept_redirect_(false),
post_data_(post_data),
headers_(headers),
cors_exempt_headers_(cors_exempt_headers),
@@ -146,11 +155,29 @@ EndpointFetcher::EndpointFetcher(
@@ -147,11 +156,29 @@ EndpointFetcher::EndpointFetcher(
EndpointFetcher::EndpointFetcher(
const net::NetworkTrafficAnnotationTag& annotation_tag)
: timeout_ms_(kDefaultTimeOutMs),
: timeout_(kDefaultTimeOut),
+ intercept_redirect_(false),
annotation_tag_(annotation_tag),
identity_manager_(nullptr),
consent_level_(absl::nullopt),
consent_level_(std::nullopt),
sanitize_response_(true) {}
+// constructor used by Bromite
@@ -1745,7 +1746,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
+ const net::NetworkTrafficAnnotationTag& annotation_tag)
+ : url_(url),
+ http_method_(http_method),
+ timeout_ms_(timeout_ms),
+ timeout_(base::Milliseconds(timeout_ms)),
+ intercept_redirect_(intercept_redirect),
+ annotation_tag_(annotation_tag),
+ url_loader_factory_(url_loader_factory),
@@ -1755,7 +1756,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
EndpointFetcher::~EndpointFetcher() = default;
void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) {
@@ -209,6 +236,8 @@ void EndpointFetcher::PerformRequest(
@@ -210,6 +237,8 @@ void EndpointFetcher::PerformRequest(
resource_request->method = http_method_;
resource_request->url = url_;
resource_request->credentials_mode = network::mojom::CredentialsMode::kOmit;
@@ -1764,7 +1765,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
if (base::EqualsCaseInsensitiveASCII(http_method_, "POST")) {
resource_request->headers.SetHeader(kContentTypeKey, content_type_);
}
@@ -239,25 +268,52 @@ void EndpointFetcher::PerformRequest(
@@ -240,25 +269,50 @@ void EndpointFetcher::PerformRequest(
default:
break;
}
@@ -1778,13 +1779,12 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
// callback
simple_url_loader_ = network::SimpleURLLoader::Create(
std::move(resource_request), annotation_tag_);
+ simple_url_loader_->SetTimeoutDuration(base::Milliseconds(timeout_ms_));
+ simple_url_loader_->SetTimeoutDuration(timeout_);
+ simple_url_loader_->SetAllowHttpErrorResults(true);
+
+ if (!response_) {
+ //RFC: what is this for?
+ if (!response_)
+ response_ = std::make_unique<EndpointResponse>();
+ }
+
+ if (intercept_redirect_ == true) {
+ // use a callback to capture landing page URL
+ simple_url_loader_->SetOnRedirectCallback(base::BindRepeating(
@@ -1796,10 +1796,9 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
}
simple_url_loader_->SetRetryOptions(kNumRetries,
network::SimpleURLLoader::RETRY_ON_5XX);
- simple_url_loader_->SetTimeoutDuration(base::Milliseconds(timeout_ms_));
- simple_url_loader_->SetTimeoutDuration(timeout_);
- simple_url_loader_->SetAllowHttpErrorResults(true);
- network::SimpleURLLoader::BodyAsStringCallbackDeprecated
+
+ LOG(INFO) << "performing " << http_method_ << " request to " << url_;
+ if (base::EqualsCaseInsensitiveASCII(http_method_, "HEAD")) {
+ endpoint_fetcher_callback_ = std::move(endpoint_fetcher_callback);
@@ -1823,7 +1822,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
}
void EndpointFetcher::OnResponseFetched(
@@ -338,3 +394,38 @@ void EndpointFetcher::OnSanitizationResult(
@@ -339,3 +393,38 @@ void EndpointFetcher::OnSanitizationResult(
std::string EndpointFetcher::GetUrlForTesting() {
return url_.spec();
}
@@ -1834,7 +1833,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
+ const network::mojom::URLResponseHead& response_head,
+ std::vector<std::string>* removed_headers) {
+ url_ = redirect_info.new_url;
+ if (response_->redirect_url.empty()) {
+ if (response_ && response_->redirect_url.empty()) {
+ response_->redirect_url = url_.spec();
+ response_->response = std::to_string(redirect_info.status_code);
+ } else {
@@ -1859,31 +1858,31 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
+ }
+
+ std::string net_error = net::ErrorToString(simple_url_loader_->NetError());
+ response_->response = net_error;
+ response_->response = net_error;
+ std::move(endpoint_fetcher_callback_).Run(std::move(response_));
+}
diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoint_fetcher/endpoint_fetcher.h
--- a/components/endpoint_fetcher/endpoint_fetcher.h
+++ b/components/endpoint_fetcher/endpoint_fetcher.h
@@ -17,6 +17,8 @@
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "services/data_decoder/public/cpp/json_sanitizer.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
@@ -21,6 +21,8 @@
namespace base {
class TimeDelta;
} // namespace base
+#include "services/network/public/cpp/resource_request.h"
+#include "services/network/public/mojom/url_response_head.mojom.h"
namespace network {
struct ResourceRequest;
@@ -39,6 +41,8 @@ enum class FetchErrorType {
@@ -43,6 +45,8 @@ enum class FetchErrorType {
struct EndpointResponse {
std::string response;
+ long last_modified;
+ std::string redirect_url;
int http_status_code{-1};
absl::optional<FetchErrorType> error_type;
std::optional<FetchErrorType> error_type;
};
@@ -92,6 +96,14 @@ class EndpointFetcher {
@@ -96,6 +100,14 @@ class EndpointFetcher {
const GURL& url,
const net::NetworkTrafficAnnotationTag& annotation_tag);
@@ -1898,7 +1897,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
// Used for tests. Can be used if caller constructs their own
// url_loader_factory and identity_manager.
EndpointFetcher(
@@ -147,6 +159,11 @@ class EndpointFetcher {
@@ -151,6 +163,11 @@ class EndpointFetcher {
void OnSanitizationResult(std::unique_ptr<EndpointResponse> response,
EndpointFetcherCallback endpoint_fetcher_callback,
data_decoder::JsonSanitizer::Result result);
@@ -1910,7 +1909,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
enum AuthType { CHROME_API_KEY, OAUTH, NO_AUTH };
AuthType auth_type_;
@@ -154,10 +171,11 @@ class EndpointFetcher {
@@ -158,10 +175,11 @@ class EndpointFetcher {
// Members set in constructor to be passed to network::ResourceRequest or
// network::SimpleURLLoader.
const std::string oauth_consumer_name_;
@@ -1918,12 +1917,12 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
+ GURL url_;
const std::string http_method_;
const std::string content_type_;
int64_t timeout_ms_;
base::TimeDelta timeout_;
+ const bool intercept_redirect_;
const std::string post_data_;
const std::vector<std::string> headers_;
const std::vector<std::string> cors_exempt_headers_;
@@ -181,6 +199,9 @@ class EndpointFetcher {
@@ -185,6 +203,9 @@ class EndpointFetcher {
access_token_fetcher_;
std::unique_ptr<network::SimpleURLLoader> simple_url_loader_;
+1 -1
View File
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -26,7 +26,7 @@ declare_args() {
@@ -25,7 +25,7 @@ declare_args() {
# WebView providers which declare one of a handful of package names. See
# https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/build-instructions.md#Changing-package-name
# for details.
@@ -68,7 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -302,6 +302,7 @@ if (current_toolchain == default_toolchain) {
@@ -303,6 +303,7 @@ if (current_toolchain == default_toolchain) {
"//chrome/android/modules/cablev2_authenticator/public:java",
"//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java",
@@ -79,7 +79,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
@@ -429,6 +429,7 @@ chrome_java_resources = [
@@ -430,6 +430,7 @@ chrome_java_resources = [
"java/res/layout/account_chooser_dialog_title.xml",
"java/res/layout/account_divider_preference.xml",
"java/res/layout/account_management_account_row.xml",
@@ -87,7 +87,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/auto_sign_in_first_run_dialog.xml",
"java/res/layout/autofill_billing_address_dropdown.xml",
"java/res/layout/autofill_card_name_and_number.xml",
@@ -631,6 +632,7 @@ chrome_java_resources = [
@@ -633,6 +634,7 @@ chrome_java_resources = [
"java/res/xml/about_chrome_preferences.xml",
"java/res/xml/account_management_preferences.xml",
"java/res/xml/ad_services_config.xml",
@@ -98,7 +98,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -964,6 +964,8 @@ chrome_java_sources = [
@@ -972,6 +972,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
"java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
"java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
@@ -182,7 +182,7 @@ new file mode 100644
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
--- a/chrome/android/java/res/values/styles.xml
+++ b/chrome/android/java/res/values/styles.xml
@@ -232,6 +232,24 @@ found in the LICENSE file.
@@ -245,6 +245,24 @@ found in the LICENSE file.
</item>
</style>
@@ -440,7 +440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -15005,6 +15005,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
@@ -15030,6 +15030,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again.
</message>
@@ -460,7 +460,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_startup_task_utils.cc
--- a/chrome/browser/after_startup_task_utils.cc
+++ b/chrome/browser/after_startup_task_utils.cc
@@ -28,6 +28,8 @@
@@ -29,6 +29,8 @@
#include "chromeos/startup/browser_params_proxy.h"
#endif // BUILDFLAG(IS_CHROMEOS_LACROS)
@@ -469,10 +469,10 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s
using content::BrowserThread;
namespace {
@@ -123,6 +125,8 @@ void SetBrowserStartupIsComplete() {
ScheduleTask(base::WrapUnique(queued_task));
g_after_startup_tasks.Get().clear();
g_after_startup_tasks.Get().shrink_to_fit();
@@ -132,6 +134,8 @@ void SetBrowserStartupIsComplete() {
}
GetAfterStartupTasks().clear();
GetAfterStartupTasks().shrink_to_fit();
+ // initialize AdBlock engine scheduled updates
+ g_browser_process->adblock_updater()->Start();
}
@@ -511,7 +511,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -1147,6 +1147,27 @@ BrowserProcessImpl::component_updater() {
@@ -1168,6 +1168,27 @@ BrowserProcessImpl::component_updater() {
return component_updater_.get();
}
@@ -561,7 +561,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -445,6 +445,9 @@ StartupProfileInfo CreateInitialProfile(
@@ -446,6 +446,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile.";
@@ -680,7 +680,7 @@ new file mode 100755
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -638,6 +638,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
@@ -640,6 +640,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
StubResolverConfigReader::RegisterPrefs(registry);
@@ -738,7 +738,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -2657,6 +2657,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
@@ -2653,6 +2653,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
inline constexpr char kAudioCaptureAllowedUrls[] =
"hardware.audio_capture_allowed_urls";
@@ -753,7 +753,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp
--- a/components/browser_ui/strings/android/site_settings.grdp
+++ b/components/browser_ui/strings/android/site_settings.grdp
@@ -362,6 +362,9 @@
@@ -359,6 +359,9 @@
<message name="IDS_INTRUSIVE_ADS_INFORMATION" desc="The extra information at the top of the Site Details page when the site tends to show intrusive ads">
This site shows intrusive or misleading ads
</message>
+49 -44
View File
@@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/resources/extensions/toolbar.ts | 20 +++++++
.../resources/webstore_app/manifest.json | 7 +--
.../ui/webui/extensions/extensions_ui.cc | 8 +++
.../chrome_update_query_params_delegate.cc | 8 +--
.../chrome_update_query_params_delegate.cc | 13 ++---
.../extensions/api/developer_private.idl | 2 +
.../update_client/update_query_params.cc | 7 ++-
.../about_flags_cc/Webstore-protection.inc | 19 +++++++
@@ -43,7 +43,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
extensions/common/extension_features.cc | 15 ++++++
extensions/common/extension_features.h | 4 ++
.../definitions/developer_private.d.ts | 4 +-
30 files changed, 252 insertions(+), 93 deletions(-)
30 files changed, 252 insertions(+), 98 deletions(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.grdp
@@ -65,7 +65,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc
@@ -126,6 +126,12 @@
@@ -127,6 +127,12 @@
#include "url/gurl.h"
#include "url/origin.h"
@@ -78,7 +78,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
#include "components/supervised_user/core/browser/supervised_user_preferences.h"
#endif // BUILDFLAG(ENABLE_SUPERVISED_USERS)
@@ -521,9 +527,32 @@ std::unique_ptr<developer::ProfileInfo> DeveloperPrivateAPI::CreateProfileInfo(
@@ -476,9 +482,32 @@ std::unique_ptr<developer::ProfileInfo> DeveloperPrivateAPI::CreateProfileInfo(
info->can_load_unpacked =
ExtensionManagementFactory::GetForBrowserContext(profile)
->HasAllowlistedExtension();
@@ -111,7 +111,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
template <>
void BrowserContextKeyedAPIFactory<
DeveloperPrivateAPI>::DeclareFactoryDependencies() {
@@ -952,6 +981,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
@@ -908,6 +937,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
ExtensionUpdater::CheckParams params;
params.fetch_priority = DownloadFetchPriority::kForeground;
params.install_immediately = true;
@@ -119,7 +119,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
params.callback =
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
updater->CheckNow(std::move(params));
@@ -1092,7 +1122,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
@@ -1048,7 +1078,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
const developer::ProfileConfigurationUpdate& update = params->update;
@@ -128,7 +128,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
Profile* profile = Profile::FromBrowserContext(browser_context());
CHECK(profile);
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
@@ -1104,6 +1134,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
@@ -1060,6 +1090,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
util::SetDeveloperModeForProfile(profile, *update.in_developer_mode);
}
@@ -219,7 +219,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
diff --git a/chrome/browser/extensions/cws_info_service.cc b/chrome/browser/extensions/cws_info_service.cc
--- a/chrome/browser/extensions/cws_info_service.cc
+++ b/chrome/browser/extensions/cws_info_service.cc
@@ -156,6 +156,7 @@ namespace extensions {
@@ -160,6 +160,7 @@ namespace extensions {
BASE_FEATURE(kCWSInfoService,
"CWSInfoService",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -441,7 +441,7 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
@@ -624,7 +624,7 @@ void WebstoreInstaller::StartDownload(const std::string& extension_id,
@@ -624,7 +624,7 @@ void WebstoreInstaller::StartDownload(
download_url_, render_process_host_id, render_frame_host->GetRoutingID(),
traffic_annotation));
params->set_file_path(file);
@@ -631,7 +631,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
{"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED},
{"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE},
{"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK},
@@ -417,6 +421,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
@@ -420,6 +424,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
source->AddString("hostPermissionsLearnMoreLink",
chrome_extension_constants::kRuntimeHostPermissionsHelpURL);
source->AddBoolean(kInDevModeKey, in_dev_mode);
@@ -645,14 +645,19 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc b/chrome/browser/update_client/chrome_update_query_params_delegate.cc
--- a/chrome/browser/update_client/chrome_update_query_params_delegate.cc
+++ b/chrome/browser/update_client/chrome_update_query_params_delegate.cc
@@ -30,10 +30,10 @@ ChromeUpdateQueryParamsDelegate::GetInstance() {
@@ -35,15 +35,10 @@ ChromeUpdateQueryParamsDelegate::GetInstance() {
}
std::string ChromeUpdateQueryParamsDelegate::GetExtraParams() {
- return base::StrCat({"&prodchannel=",
- chrome::GetChannelName(chrome::WithExtendedStable(true)),
- "&prodversion=", version_info::GetVersionNumber(),
- "&lang=", GetLang()});
- std::string channel_name;
-#if BUILDFLAG(ENABLE_EXTENSIONS)
- channel_name = extensions::GetChannelForExtensionUpdates();
-#else
- channel_name = chrome::GetChannelName(chrome::WithExtendedStable(true));
-#endif
-
- return base::StrCat({"&prodchannel=", channel_name, "&prodversion=",
- version_info::GetVersionNumber(), "&lang=", GetLang()});
+ return base::StrCat({
+ "&prodversion=",
+ version_info::GetMajorVersionNumber().c_str(),
@@ -746,9 +751,9 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
#include "extensions/common/extension.h"
+#include "extensions/common/extension_features.h"
#include "extensions/common/extension_icon_set.h"
#include "extensions/common/extension_id.h"
#include "extensions/common/extension_urls.h"
#include "extensions/common/manifest.h"
@@ -89,6 +93,27 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) {
@@ -90,6 +94,27 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) {
return warnings_list;
}
@@ -776,7 +781,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
std::vector<management::LaunchType> GetAvailableLaunchTypes(
const Extension& extension,
const ManagementAPIDelegate* delegate) {
@@ -262,6 +287,8 @@ void AddExtensionInfo(const Extension* source_extension,
@@ -263,6 +288,8 @@ void AddExtensionInfo(const Extension* source_extension,
const ExtensionSet& extensions,
ExtensionInfoList* extension_list,
content::BrowserContext* context) {
@@ -785,7 +790,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
for (ExtensionSet::const_iterator iter = extensions.begin();
iter != extensions.end(); ++iter) {
const Extension& extension = **iter;
@@ -307,10 +334,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
@@ -308,10 +335,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
std::optional<management::Get::Params> params =
management::Get::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
@@ -797,7 +802,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!target_extension)
return RespondNow(Error(keys::kNoExtensionError, params->id));
@@ -330,8 +356,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
@@ -331,8 +357,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension =
@@ -807,7 +812,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension)
return RespondNow(Error(keys::kNoExtensionError, params->id));
@@ -397,8 +422,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
@@ -398,8 +423,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
return RespondNow(Error(keys::kNotAllowedInKioskError));
const Extension* extension =
@@ -817,7 +822,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension)
return RespondNow(Error(keys::kNoExtensionError, params->id));
if (!extension->is_app())
@@ -433,7 +457,7 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
@@ -434,7 +458,7 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
->GetDelegate();
const Extension* target_extension =
@@ -826,7 +831,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) {
return RespondNow(Error(keys::kNoExtensionError, extension_id_));
}
@@ -628,8 +652,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
@@ -629,8 +653,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
->GetDelegate();
target_extension_id_ = target_extension_id;
const Extension* target_extension =
@@ -836,7 +841,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
ExtensionRegistry::EVERYTHING);
if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) {
return RespondNow(Error(keys::kNoExtensionError, target_extension_id_));
@@ -693,8 +716,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() {
@@ -694,8 +717,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() {
// The extension can be uninstalled in another window while the UI was
// showing. Do nothing in that case.
const Extension* target_extension =
@@ -846,7 +851,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
ExtensionRegistry::EVERYTHING);
std::string error;
bool success = false;
@@ -775,8 +797,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() {
@@ -776,8 +798,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() {
management::CreateAppShortcut::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension =
@@ -856,7 +861,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
if (!extension) {
return RespondNow(Error(
ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id)));
@@ -826,8 +847,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
@@ -827,8 +848,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() {
management::SetLaunchType::Params::Create(args());
EXTENSION_FUNCTION_VALIDATE(params);
const Extension* extension =
@@ -869,7 +874,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/browser/updater/extension_downloader.cc
--- a/extensions/browser/updater/extension_downloader.cc
+++ b/extensions/browser/updater/extension_downloader.cc
@@ -493,8 +493,8 @@ void ExtensionDownloader::CreateManifestLoader() {
@@ -494,8 +494,8 @@ void ExtensionDownloader::CreateManifestLoader() {
std::vector<std::string_view> id_vector(extension_ids.begin(),
extension_ids.end());
std::string id_list = base::JoinString(id_vector, ",");
@@ -880,7 +885,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< (active_request->foreground_check()
? kUpdateInteractivityForeground
: kUpdateInteractivityBackground);
@@ -519,7 +519,7 @@ void ExtensionDownloader::CreateManifestLoader() {
@@ -520,7 +520,7 @@ void ExtensionDownloader::CreateManifestLoader() {
destination: WEBSITE
}
policy {
@@ -889,7 +894,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
cookies_store: "user"
setting:
"This feature cannot be disabled. It is only enabled when the user "
@@ -536,6 +536,7 @@ void ExtensionDownloader::CreateManifestLoader() {
@@ -537,6 +537,7 @@ void ExtensionDownloader::CreateManifestLoader() {
auto resource_request = std::make_unique<network::ResourceRequest>();
resource_request->url = active_request->full_url(),
resource_request->load_flags = net::LOAD_DISABLE_CACHE;
@@ -897,7 +902,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
if (active_request->fetch_priority() == DownloadFetchPriority::kForeground) {
resource_request->priority = net::MEDIUM;
@@ -544,10 +545,6 @@ void ExtensionDownloader::CreateManifestLoader() {
@@ -545,10 +546,6 @@ void ExtensionDownloader::CreateManifestLoader() {
// Send traffic-management headers to the webstore, and omit credentials.
// https://bugs.chromium.org/p/chromium/issues/detail?id=647516
if (extension_urls::IsWebstoreUpdateUrl(active_request->full_url())) {
@@ -908,7 +913,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
resource_request->headers.SetHeader(kUpdateAppIdHeader, id_list);
resource_request->headers.SetHeader(
kUpdateUpdaterHeader,
@@ -832,20 +829,6 @@ void ExtensionDownloader::HandleManifestResults(
@@ -833,20 +830,6 @@ void ExtensionDownloader::HandleManifestResults(
update.second->info);
}
@@ -929,7 +934,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
ExtensionIdSet extension_ids_with_errors;
for (const auto& failure : failures)
extension_ids_with_errors.insert(failure.first.id);
@@ -867,7 +850,7 @@ ExtensionDownloader::GetUpdateAvailability(
@@ -868,7 +851,7 @@ ExtensionDownloader::GetUpdateAvailability(
// extensions that have already existed in the system.
if (!delegate_->GetExtensionExistingVersion(extension_id,
&extension_version)) {
@@ -938,7 +943,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
return UpdateAvailability::kBadUpdateSpecification;
}
VLOG(2) << extension_id << " is at '" << extension_version << "'";
@@ -878,11 +861,11 @@ ExtensionDownloader::GetUpdateAvailability(
@@ -879,11 +862,11 @@ ExtensionDownloader::GetUpdateAvailability(
const std::string& update_version_str = update->version;
if (VLOG_IS_ON(2)) {
if (update_version_str.empty())
@@ -952,7 +957,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< " latest version is '" << update_version_str << "'";
}
@@ -892,21 +875,21 @@ ExtensionDownloader::GetUpdateAvailability(
@@ -893,21 +876,21 @@ ExtensionDownloader::GetUpdateAvailability(
// we don't want it.
if (update_version_str.empty()) {
// If update manifest doesn't have version number => no update.
@@ -977,7 +982,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< update_version_str << "'";
bool can_rollback =
update_version.CompareTo(existing_version) < 0 &&
@@ -933,7 +916,9 @@ ExtensionDownloader::GetUpdateAvailability(
@@ -934,7 +917,9 @@ ExtensionDownloader::GetUpdateAvailability(
}
// Stop checking as soon as an update for |extension_id| is found.
@@ -988,7 +993,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
*update_result_out = const_cast<UpdateManifestResult*>(update);
return UpdateAvailability::kAvailable;
}
@@ -1178,7 +1163,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
@@ -1179,7 +1164,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
int load_flags = net::LOAD_DISABLE_CACHE;
bool is_secure = fetch->url.SchemeIsCryptographic();
extension_loader_resource_request_->load_flags = load_flags;
@@ -997,7 +1002,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
extension_loader_resource_request_->credentials_mode =
network::mojom::CredentialsMode::kOmit;
} else {
@@ -1186,7 +1171,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
@@ -1187,7 +1172,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
net::SiteForCookies::FromUrl(fetch->url);
}
@@ -1006,7 +1011,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
is_secure) {
if (access_token_.empty()) {
// We should try OAuth2, but we have no token cached. This
@@ -1211,7 +1196,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
@@ -1212,7 +1197,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
base::StringPrintf("Bearer %s", access_token_.c_str()));
}
@@ -1015,7 +1020,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
StartExtensionLoader();
}
@@ -1233,7 +1218,7 @@ void ExtensionDownloader::StartExtensionLoader() {
@@ -1234,7 +1219,7 @@ void ExtensionDownloader::StartExtensionLoader() {
destination: WEBSITE
}
policy {
@@ -1024,7 +1029,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
cookies_store: "user"
setting:
"This feature cannot be disabled. It is only enabled when the user "
@@ -1304,6 +1289,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
@@ -1305,6 +1290,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
RETRY_HISTOGRAM("CrxFetchSuccess",
extensions_queue_.active_request_failure_count(),
url);
@@ -1032,7 +1037,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
std::unique_ptr<ExtensionFetch> fetch_data =
std::move(extensions_queue_.reset_active_request().fetch);
delegate_->OnExtensionDownloadStageChanged(
@@ -1324,7 +1310,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
@@ -1325,7 +1311,7 @@ void ExtensionDownloader::OnExtensionLoadComplete(base::FilePath crx_path) {
} else {
const std::set<int> request_ids = active_request.GetRequestIds();
const ExtensionDownloaderDelegate::PingResult& ping = ping_results_[id];
@@ -1041,7 +1046,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
<< "' response code:" << response_code;
if (ShouldRetryRequest(extension_loader_.get()) &&
extensions_queue_.active_request_failure_count() < kMaxRetries) {
@@ -1418,6 +1404,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList(
@@ -1419,6 +1405,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList(
bool ExtensionDownloader::IterateFetchCredentialsAfterFailure(
ExtensionFetch* fetch,
int response_code) {
@@ -1063,7 +1068,7 @@ diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/brow
diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/browser/updater/manifest_fetch_data.cc
--- a/extensions/browser/updater/manifest_fetch_data.cc
+++ b/extensions/browser/updater/manifest_fetch_data.cc
@@ -106,7 +106,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url,
@@ -107,7 +107,7 @@ ManifestFetchData::ManifestFetchData(const GURL& update_url,
: base_url_(update_url),
full_url_(update_url),
brand_code_(brand_code),
@@ -1072,7 +1077,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow
fetch_priority_(fetch_priority) {
UpdateFullUrl(base_query_params);
request_ids_.insert(request_id);
@@ -160,18 +160,12 @@ bool ManifestFetchData::AddExtension(const std::string& id,
@@ -161,18 +161,12 @@ bool ManifestFetchData::AddExtension(const std::string& id,
// Compute the string we'd append onto the full_url_, and see if it fits.
std::vector<std::string> parts;
parts.push_back("id=" + id);
@@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc
--- a/services/network/cors/preflight_controller.cc
+++ b/services/network/cors/preflight_controller.cc
@@ -789,6 +789,10 @@ void PreflightController::ClearCorsPreflightCache(
@@ -811,6 +811,10 @@ void PreflightController::ClearCorsPreflightCache(
cache_.ClearCache(std::move(url_filter));
}
@@ -55,9 +55,9 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co
diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h
--- a/services/network/cors/preflight_controller.h
+++ b/services/network/cors/preflight_controller.h
@@ -141,6 +141,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final {
mojo::PendingRemote<mojom::URLLoaderNetworkServiceObserver>
url_loader_network_service_observer);
@@ -157,6 +157,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final {
url_loader_network_service_observer,
const PreflightMode& preflight_mode);
+ void ClearCache();
+
+6 -6
View File
@@ -30,12 +30,12 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
@@ -187,9 +187,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList(
bool parse_result = base::StringToInt(major_version, &major_version_number);
DCHECK(parse_result);
absl::optional<std::string> brand;
std::optional<std::string> brand;
-#if !BUILDFLAG(CHROMIUM_BRANDING)
- brand = version_info::GetProductName();
-#endif
+ brand = "Google Chrome";
absl::optional<std::string> maybe_brand_override =
std::optional<std::string> maybe_brand_override =
base::GetFieldTrialParamValueByFeature(features::kGreaseUACH,
"brand_override");
diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
@@ -89,7 +89,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc
--- a/content/browser/loader/navigation_url_loader_impl.cc
+++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -1070,6 +1070,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
@@ -1091,6 +1091,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
return;
}
@@ -129,12 +129,12 @@ diff --git a/services/network/public/cpp/client_hints.cc b/services/network/publ
+++ b/services/network/public/cpp/client_hints.cc
@@ -120,6 +120,7 @@ const DecodeMap& GetDecodeMap() {
absl::optional<std::vector<network::mojom::WebClientHintsType>>
std::optional<std::vector<network::mojom::WebClientHintsType>>
ParseClientHintsHeader(const std::string& header) {
+ if ((true)) return absl::nullopt;
// Accept-CH is an sh-list of tokens; see:
// https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1
absl::optional<net::structured_headers::List> maybe_list =
std::optional<net::structured_headers::List> maybe_list =
diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party/blink/common/client_hints/client_hints.cc
--- a/third_party/blink/common/client_hints/client_hints.cc
+++ b/third_party/blink/common/client_hints/client_hints.cc
@@ -235,7 +235,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -536,6 +536,10 @@
@@ -499,6 +499,10 @@
name: "ByobFetch",
status: "stable",
},
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
@@ -641,6 +641,7 @@ template("chrome_common_apk_or_module_tmpl") {
@@ -642,6 +642,7 @@ template("chrome_common_apk_or_module_tmpl") {
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
library_always_compress += [ "libchrome_crashpad_handler.so" ]
@@ -32,6 +32,7 @@ Require: bromite-build-utils.patch
.../views/page_info/page_info_view_factory.h | 3 +
.../page_info/permission_toggle_row_view.cc | 163 ++++++-
.../page_info/permission_toggle_row_view.h | 18 +-
.../privacy_sandbox_internals_handler.cc | 2 +-
.../settings_localized_strings_provider.cc | 54 +++
.../ui/webui/settings/site_settings_helper.cc | 34 +-
.../browser_ui/settings/android/BUILD.gn | 1 +
@@ -84,7 +85,7 @@ Require: bromite-build-utils.patch
.../platform/web_content_settings_client.h | 5 +
.../execution_context/execution_context.cc | 16 +
.../execution_context/execution_context.h | 5 +
73 files changed, 1832 insertions(+), 85 deletions(-)
74 files changed, 1833 insertions(+), 86 deletions(-)
create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java
@@ -151,7 +152,7 @@ diff --git a/chrome/browser/installable/installed_webapp_bridge.cc b/chrome/brow
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -1390,4 +1390,5 @@
@@ -1369,4 +1369,5 @@
</settings-subpage>
</template>
</template>
@@ -160,7 +161,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/
diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts
@@ -47,6 +47,7 @@ import {SiteSettingsPrefsBrowserProxy, SiteSettingsPrefsBrowserProxyImpl} from '
@@ -51,6 +51,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_
import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_availability_mixin.js';
import {getTemplate} from './privacy_page.html.js';
@@ -168,7 +169,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
interface BlockAutoplayStatus {
enabled: boolean;
@@ -70,8 +71,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
@@ -74,8 +75,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase {
return 'settings-privacy-page';
}
@@ -255,15 +256,15 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
@@ -7,6 +7,7 @@ import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
@@ -8,6 +8,7 @@ import {loadTimeData} from 'chrome://resources/js/load_time_data.js';
import {pageVisibility} from './page_visibility.js';
import {Route, Router, SettingsRoutes} from './router.js';
import type {SettingsRoutes} from './router.js';
import {Route, Router} from './router.js';
+import {setupContentSettingsRoutes} from './site_settings_page/site_settings_page_util.js'
/**
* Add all of the child routes that originate from the privacy route,
@@ -140,6 +141,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
@@ -141,6 +142,7 @@ function addPrivacyChildRoutes(r: Partial<SettingsRoutes>) {
r.SITE_SETTINGS_STORAGE_ACCESS =
r.SITE_SETTINGS.createChild('storageAccess');
}
@@ -295,7 +296,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
diff --git a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
--- a/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
+++ b/chrome/browser/resources/settings/site_settings/settings_category_default_radio_group.ts
@@ -29,6 +29,7 @@ import {ContentSettingProvider, DefaultContentSetting} from './site_settings_pre
@@ -30,6 +30,7 @@ import {ContentSettingProvider} from './site_settings_prefs_browser_proxy.js';
export enum SiteContentRadioSetting {
DISABLED = 0,
ENABLED = 1,
@@ -303,7 +304,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
}
export interface SettingsCategoryDefaultRadioGroupElement {
@@ -76,6 +77,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -77,6 +78,10 @@ export class SettingsCategoryDefaultRadioGroupElement extends
blockOptionSubLabel: String,
blockOptionIcon: String,
@@ -314,7 +315,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
siteContentRadioSettingEnum_: {
type: Object,
value: SiteContentRadioSetting,
@@ -111,6 +116,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -112,6 +117,9 @@ export class SettingsCategoryDefaultRadioGroupElement extends
blockOptionLabel: string;
blockOptionSubLabel: string;
blockOptionIcon: string;
@@ -324,7 +325,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
private pref_: chrome.settingsPrivate.PrefObject<number>;
override ready() {
@@ -121,6 +129,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends
@@ -122,6 +130,13 @@ export class SettingsCategoryDefaultRadioGroupElement extends
(category: ContentSettingsTypes) => this.onCategoryChanged_(category));
}
@@ -369,7 +370,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -289,4 +289,5 @@
@@ -282,4 +282,5 @@
label="$i18n{siteSettingsAutoPictureInPicture}">
</site-details-permission>
</template>
@@ -378,7 +379,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b
diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts
--- a/chrome/browser/resources/settings/site_settings/site_details.ts
+++ b/chrome/browser/resources/settings/site_settings/site_details.ts
@@ -60,8 +60,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase {
@@ -62,8 +62,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase {
return 'site-details';
}
@@ -537,15 +538,15 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis
diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts b/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts
--- a/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts
+++ b/chrome/browser/resources/settings/site_settings/site_settings_mixin.ts
@@ -11,6 +11,7 @@ import {dedupingMixin, PolymerElement} from 'chrome://resources/polymer/v3_0/pol
import {ContentSetting,ContentSettingsTypes, SiteSettingSource} from './constants.js';
import {RawSiteException,SiteException,SiteSettingsPrefsBrowserProxy,SiteSettingsPrefsBrowserProxyImpl} from './site_settings_prefs_browser_proxy.js';
@@ -14,6 +14,7 @@ import type {ContentSettingsTypes} from './constants.js';
import {ContentSetting, SiteSettingSource} from './constants.js';
import type {RawSiteException,SiteException,SiteSettingsPrefsBrowserProxy} from './site_settings_prefs_browser_proxy.js';
import {SiteSettingsPrefsBrowserProxyImpl} from './site_settings_prefs_browser_proxy.js';
+import {loadTimeData} from '../i18n_setup.js';
// clang-format on
type Constructor<T> = new (...args: any[]) => T;
@@ -91,6 +92,21 @@ export const SiteSettingsMixin = dedupingMixin(
@@ -94,6 +95,21 @@ export const SiteSettingsMixin = dedupingMixin(
return setting !== ContentSetting.BLOCK;
}
@@ -567,7 +568,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin
/**
* Converts a string origin/pattern to a URL.
* @param originOrPattern The origin/pattern to convert to URL.
@@ -171,6 +187,8 @@ export interface SiteSettingsMixinInterface {
@@ -174,6 +190,8 @@ export interface SiteSettingsMixinInterface {
browserProxy: SiteSettingsPrefsBrowserProxy;
category: ContentSettingsTypes;
computeIsSettingEnabled(setting: string): boolean;
@@ -579,7 +580,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
--- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
+++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts
@@ -45,7 +45,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
@@ -47,7 +47,7 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
}
// The following list is ordered alphabetically by |id|. The order in which
// these appear in the UI is determined elsewhere in this file.
@@ -588,7 +589,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
{
route: routes.SITE_SETTINGS_ADS,
id: Id.ADS,
@@ -389,10 +389,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
@@ -391,10 +391,36 @@ function getCategoryItemMap(): Map<ContentSettingsTypes, CategoryListItem> {
disabledLabel: 'trackingProtectionLinkRowSubLabel',
});
}
@@ -625,7 +626,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]):
CategoryListItem[] {
const map = getCategoryItemMap();
@@ -484,7 +510,7 @@ export class SettingsSiteSettingsPageElement extends
@@ -486,7 +512,7 @@ export class SettingsSiteSettingsPageElement extends
Id.IMAGES,
Id.POPUPS,
]),
@@ -692,7 +693,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
/**
* Determine localization string for i18n for a given content settings type.
* Sorted alphabetically by |ContentSettingsType|.
@@ -93,6 +141,13 @@ export function getLocalizationStringForContentType(
@@ -92,6 +140,13 @@ export function getLocalizationStringForContentType(
case ContentSettingsTypes.SITE_DATA:
return null;
default:
@@ -709,8 +710,8 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -2068,6 +2068,7 @@ static_library("ui") {
"//components/commerce/core/mojom:mojo_bindings",
@@ -2043,6 +2043,7 @@ static_library("ui") {
"//components/commerce/core:shopping_service",
"//components/commerce/core/webui",
"//components/endpoint_fetcher:endpoint_fetcher",
+ "//components/content_settings/core/browser:browser",
@@ -830,8 +831,8 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom
// For guard content settings and Automatic Picture-in-Picture, ASK is treated
// as an "on" state.
const bool show_blocked_badge =
@@ -508,6 +516,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
icon = &vector_icons::kPictureInPictureIcon;
@@ -509,6 +517,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon(
icon = &kFullscreenIcon;
break;
default:
+ bool found = false;
@@ -1129,6 +1130,18 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch
raw_ptr<ChromePageInfoUiDelegate, DanglingUntriaged> delegate_ = nullptr;
raw_ptr<PageInfoNavigationHandler, DanglingUntriaged> navigation_handler_ =
nullptr;
diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc
--- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc
+++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_handler.cc
@@ -41,7 +41,7 @@ void PrivacySandboxInternalsHandler::ReadPref(const std::string& pref_name,
void PrivacySandboxInternalsHandler::ReadContentSettings(
const ContentSettingsType type,
ReadContentSettingsCallback callback) {
- if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES) {
+ if (!IsKnownEnumValue(type) || type == ContentSettingsType::NUM_TYPES_BROMITE) {
mojo::ReportBadMessage(
"ReadContentSettings received invalid ContentSettingsType");
return;
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
@@ -1150,7 +1163,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
#include "components/password_manager/core/browser/leak_detection_dialog_utils.h"
#include "components/password_manager/core/browser/manage_passwords_referrer.h"
#include "components/password_manager/core/common/password_manager_features.h"
@@ -3738,6 +3742,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
@@ -3789,6 +3793,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
policy_indicator::AddLocalizedStrings(html_source);
AddSecurityKeysStrings(html_source);
@@ -1219,7 +1232,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_pattern.h"
#include "components/content_settings/core/common/content_settings_utils.h"
@@ -215,7 +217,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
@@ -219,7 +221,7 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = {
static_assert(std::size(kContentSettingsTypeGroupNames) ==
// ContentSettingsType starts at -1, so add 1 here.
@@ -1228,7 +1241,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
"kContentSettingsTypeGroupNames should have "
"CONTENT_SETTINGS_NUM_TYPES elements");
@@ -468,6 +470,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
@@ -471,6 +473,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) {
return true;
}
}
@@ -1242,7 +1255,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
return false;
}
@@ -481,11 +490,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) {
@@ -484,11 +493,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(base::StringPiece name) {
return entry.type;
}
}
@@ -1268,7 +1281,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
for (const auto& entry : kContentSettingsTypeGroupNames) {
if (type == entry.type) {
// Content setting types that aren't represented in the settings UI
@@ -500,7 +522,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) {
@@ -503,7 +525,6 @@ base::StringPiece ContentSettingsTypeToGroupName(ContentSettingsType type) {
return entry.name ? entry.name : base::StringPiece();
}
}
@@ -1276,8 +1289,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b
NOTREACHED() << static_cast<int32_t>(type)
<< " is not a recognized content settings type.";
return base::StringPiece();
@@ -585,6 +606,13 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() {
base_types->push_back(ContentSettingsType::WEB_PRINTING);
@@ -587,6 +608,13 @@ const std::vector<ContentSettingsType>& GetVisiblePermissionCategories() {
base_types->push_back(ContentSettingsType::SPEAKER_SELECTION);
}
+ content_settings::WebsiteSettingsRegistry* website_settings =
@@ -2134,7 +2147,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
int icon,
int title,
@ContentSettingValues @Nullable Integer defaultEnabledValue,
@@ -437,6 +437,8 @@ public class ContentSettingsResources {
@@ -427,6 +427,8 @@ public class ContentSettingsResources {
R.string.website_settings_category_vr_blocked,
R.string.website_settings_category_vr_a11y);
}
@@ -2143,7 +2156,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert false; // NOTREACHED
return null;
}
@@ -600,6 +602,14 @@ public class ContentSettingsResources {
@@ -590,6 +592,14 @@ public class ContentSettingsResources {
return getResourceItem(contentType, null).getDefaultDisabledValue();
}
@@ -2158,7 +2171,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/**
* Returns the string resource id for a given ContentSetting to show with a permission category.
*
@@ -762,6 +772,8 @@ public class ContentSettingsResources {
@@ -752,6 +762,8 @@ public class ContentSettingsResources {
* Blocked states, in that order.
*/
public static int[] getTriStateSettingDescriptionIDs(int contentType) {
@@ -2241,7 +2254,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
assert resource > 0;
return getString(resource);
}
@@ -921,6 +942,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -919,6 +940,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
default:
break;
}
@@ -2250,7 +2263,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (allowSpecifyingExceptions) {
getPreferenceScreen()
.addPreference(
@@ -1109,8 +1132,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1107,8 +1130,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
private boolean isBlocked() {
switch (mGlobalToggleLayout) {
case GlobalToggleLayout.TRI_STATE_TOGGLE:
@@ -2267,7 +2280,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK);
case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE:
TriStateCookieSettingsPreference triStateCookieToggle =
@@ -1175,7 +1206,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1173,7 +1204,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
} else if (mCategory.getType() == SiteSettingsCategory.Type.STORAGE_ACCESS) {
infoText.setSummary(getStorageAccessSummary());
} else {
@@ -2280,7 +2293,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Hide the anti-abuse text preferences, as needed.
@@ -1199,6 +1234,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1197,6 +1232,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
screen.removePreference(antiAbuseThingsToConsiderHeader);
screen.removePreference(antiAbuseThingsToConsiderSectionOne);
}
@@ -2288,7 +2301,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
if (permissionBlockedByOs) {
maybeShowOsWarning(screen);
@@ -1350,7 +1386,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1348,7 +1384,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
getSiteSettingsDelegate().getBrowserContextHandle(), contentType);
int[] descriptionIds =
ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType);
@@ -2297,7 +2310,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) {
@@ -1461,6 +1497,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@@ -1459,6 +1495,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment
@ContentSettingValues
Integer value = site.getContentSetting(browserContextHandle, contentSettingsType);
@@ -2315,7 +2328,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java
@@ -48,6 +48,7 @@ import java.util.Collection;
@@ -46,6 +46,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -2323,7 +2336,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/** Shows the permissions and other settings for a particular website. */
public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -168,7 +169,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -164,7 +165,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
case ContentSettingsType.CLIPBOARD_READ_WRITE:
return "clipboard_permission_list";
default:
@@ -2332,7 +2345,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
}
@@ -545,8 +546,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -534,8 +535,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setupContentSettingsPreferences() {
mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder();
@@ -2356,7 +2369,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
preference.setKey(getPreferenceKey(type));
if (type == ContentSettingsType.ADS) {
@@ -1071,20 +1085,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1060,20 +1074,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSettingValues @Nullable Integer value,
boolean isEmbargoed,
boolean isOneTime) {
@@ -2395,7 +2408,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
if (isSessionPermission(contentType)) {
switchPreference.setSummary(switchPreference.getSummary() + " " +
@@ -1261,7 +1287,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1250,7 +1276,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
if (mPreferenceMap == null) {
mPreferenceMap = new HashMap<>();
for (@ContentSettingsType.EnumType int type = 0;
@@ -2404,7 +2417,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
type++) {
String key = getPreferenceKey(type);
if (key != null) {
@@ -1299,14 +1325,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1288,14 +1314,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
permission =
(Boolean) newValue ? ContentSettingValues.ALLOW : ContentSettingValues.BLOCK;
} else {
@@ -2427,7 +2440,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
preference.setIcon(getContentSettingsIcon(type, permission));
if (mWebsiteSettingsObserver != null) {
@@ -1335,7 +1367,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@@ -1324,7 +1356,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
// for its logic. This class should maintain its own data model, and only update the screen
// after a change is made.
for (@ContentSettingsType.EnumType int type = 0;
@@ -2646,16 +2659,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java
@@ -114,7 +114,7 @@ public class WebsitePermissionsFetcher {
}
return null;
@@ -108,7 +108,7 @@ public class WebsitePermissionsFetcher {
case ContentSettingsType.USB_GUARD:
return WebsitePermissionsType.CHOSEN_OBJECT_INFO;
default:
- return null;
+ return BromiteCustomContentSettingImpl.getPermissionsType(contentSettingsType);
}
}
@@ -226,7 +226,7 @@ public class WebsitePermissionsFetcher {
@@ -220,7 +220,7 @@ public class WebsitePermissionsFetcher {
addFetcherForStorage(queue);
queue.add(new CookiesInfoFetcher());
for (@ContentSettingsType.EnumType int type = 0;
@@ -2794,8 +2807,8 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
namespace content_settings {
@@ -711,6 +712,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::PLATFORM_CHROMEOS,
@@ -730,6 +731,7 @@ void ContentSettingsRegistry::Init() {
WebsiteSettingsRegistry::ALL_PLATFORMS,
ContentSettingsInfo::INHERIT_IF_LESS_PERMISSIVE,
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
+#include "components/content_settings/core/browser/bromite_content_settings.inc"
@@ -2805,7 +2818,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc
--- a/components/content_settings/core/browser/content_settings_uma_util.cc
+++ b/components/content_settings/core/browser/content_settings_uma_util.cc
@@ -184,8 +184,9 @@ void RecordContentSettingsHistogram(const std::string& name,
@@ -187,8 +187,9 @@ void RecordContentSettingsHistogram(const std::string& name,
}
int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) {
@@ -2930,7 +2943,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry.
diff --git a/components/content_settings/core/common/BUILD.gn b/components/content_settings/core/common/BUILD.gn
--- a/components/content_settings/core/common/BUILD.gn
+++ b/components/content_settings/core/common/BUILD.gn
@@ -56,6 +56,13 @@ static_library("common") {
@@ -57,6 +57,13 @@ static_library("common") {
"//net",
"//url",
]
@@ -2999,9 +3012,9 @@ diff --git a/components/content_settings/core/common/content_settings.cc b/compo
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
@@ -74,10 +74,20 @@ typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
typedef std::map<std::string, ContentSettingsForOneType>
HostIndexedContentSettings;
@@ -71,10 +71,20 @@ std::ostream& operator<<(std::ostream& os,
typedef std::vector<ContentSettingPatternSource> ContentSettingsForOneType;
+struct ContentSettingRuleSource {
+ int type;
@@ -3023,8 +3036,8 @@ diff --git a/components/content_settings/core/common/content_settings.h b/compon
diff --git a/components/content_settings/core/common/content_settings.mojom b/components/content_settings/core/common/content_settings.mojom
--- a/components/content_settings/core/common/content_settings.mojom
+++ b/components/content_settings/core/common/content_settings.mojom
@@ -76,6 +76,11 @@ struct RuleMetaData {
mojo_base.mojom.TimeDelta lifetime;
@@ -78,6 +78,11 @@ struct RuleMetaData {
TpcdMetadataRuleSource tpcd_metadata_rule_source;
};
+struct ContentSettingRuleSource {
@@ -3035,7 +3048,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
// This mirrors the C++ type in content_settings.h.
struct ContentSettingPatternSource {
ContentSettingsPattern primary_pattern;
@@ -89,6 +94,7 @@ struct ContentSettingPatternSource {
@@ -91,6 +96,7 @@ struct ContentSettingPatternSource {
// This mirrors the C++ type in content_settings.h.
// TODO(https://crbug.com/1485360): This should be removed.
struct RendererContentSettingRules {
@@ -3046,7 +3059,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc
--- a/components/content_settings/core/common/content_settings_mojom_traits.cc
+++ b/components/content_settings/core/common/content_settings_mojom_traits.cc
@@ -154,12 +154,22 @@ bool StructTraits<content_settings::mojom::ContentSettingPatternSourceDataView,
@@ -155,12 +155,22 @@ bool StructTraits<content_settings::mojom::ContentSettingPatternSourceDataView,
data.ReadMetadata(&out->metadata) && data.ReadSource(&out->source);
}
@@ -3073,7 +3086,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai
diff --git a/components/content_settings/core/common/content_settings_mojom_traits.h b/components/content_settings/core/common/content_settings_mojom_traits.h
--- a/components/content_settings/core/common/content_settings_mojom_traits.h
+++ b/components/content_settings/core/common/content_settings_mojom_traits.h
@@ -169,10 +169,34 @@ struct StructTraits<
@@ -174,10 +174,34 @@ struct StructTraits<
ContentSettingPatternSource* out);
};
@@ -3123,16 +3136,15 @@ diff --git a/components/content_settings/core/common/content_settings_param_trai
diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom
--- a/components/content_settings/core/common/content_settings_types.mojom
+++ b/components/content_settings/core/common/content_settings_types.mojom
@@ -387,6 +387,8 @@ enum ContentSettingsType {
// Content settings for access to printers for the Web Printing API.
WEB_PRINTING,
@@ -399,5 +399,7 @@ enum ContentSettingsType {
SPEAKER_SELECTION,
- NUM_TYPES,
+ NUM_TYPES_CHROMIUM,
+#include "components/content_settings/core/common/bromite_content_settings.inc"
+ NUM_TYPES_BROMITE,
};
diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc
--- a/components/content_settings/renderer/content_settings_agent_impl.cc
+++ b/components/content_settings/renderer/content_settings_agent_impl.cc
@@ -3248,7 +3260,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp
std::map<ContentSettingsType, ContentSetting>
user_specified_settings_to_display;
std::map<ContentSettingsType, bool>
@@ -211,6 +221,14 @@ absl::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
@@ -211,6 +221,14 @@ std::optional<ContentSetting> PageInfoControllerAndroid::GetSettingToDisplay(
return permission.setting;
}
@@ -3267,14 +3279,14 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
--- a/components/page_info/page_info.cc
+++ b/components/page_info/page_info.cc
@@ -24,6 +24,7 @@
#include "build/chromeos_buildflags.h"
#include "components/browsing_data/content/browsing_data_helper.h"
#include "components/browsing_data/core/features.h"
#include "components/content_settings/browser/page_specific_content_settings.h"
+#include "components/content_settings/core/browser/website_settings_registry.h"
#include "components/content_settings/browser/ui/cookie_controls_controller.h"
#include "components/content_settings/core/browser/content_settings_registry.h"
#include "components/content_settings/core/browser/content_settings_uma_util.h"
@@ -1236,6 +1237,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
@@ -1225,6 +1226,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info,
// applies to permissions listed in |kPermissionType|.
bool PageInfo::ShouldShowPermission(
const PageInfo::PermissionInfo& info) const {
@@ -3289,7 +3301,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.
// Note |ContentSettingsType::ADS| will show up regardless of its default
// value when it has been activated on the current origin.
if (info.type == ContentSettingsType::ADS) {
@@ -1362,7 +1371,19 @@ void PageInfo::PresentSitePermissions() {
@@ -1331,7 +1340,19 @@ void PageInfo::PresentSitePermissions() {
HostContentSettingsMap* content_settings = GetContentSettings();
DCHECK(web_contents_);
@@ -3321,7 +3333,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
#include "components/page_info/core/features.h"
#include "components/page_info/page_info.h"
#include "components/page_info/page_info_ui_delegate.h"
@@ -624,6 +625,12 @@ PageInfoUI::~PageInfoUI() = default;
@@ -615,6 +616,12 @@ PageInfoUI::~PageInfoUI() = default;
// static
std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -3334,7 +3346,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id);
@@ -635,6 +642,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
@@ -626,6 +633,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) {
// static
std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence(
ContentSettingsType type) {
@@ -3347,7 +3359,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in
for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) {
if (info.type == type)
return l10n_util::GetStringUTF16(info.string_id_mid_sentence);
@@ -1069,6 +1082,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
@@ -1060,6 +1073,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) {
if (info.type == type)
return true;
}
+7 -7
View File
@@ -53,7 +53,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/build/BUILD.gn b/build/BUILD.gn
--- a/build/BUILD.gn
+++ b/build/BUILD.gn
@@ -51,6 +51,14 @@ buildflag_header("branding_buildflags") {
@@ -55,6 +55,14 @@ buildflag_header("branding_buildflags") {
}
}
@@ -13147,7 +13147,7 @@ e)fqMZZ`3a)Ds&5H<cfp<0000<MNUMnLSTYHt&Yn8
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -2037,6 +2037,7 @@ static_library("browser") {
@@ -2050,6 +2050,7 @@ static_library("browser") {
"//build:chromeos_buildflags",
"//build/config/chromebox_for_meetings:buildflags",
"//build/config/compiler:compiler_buildflags",
@@ -13209,7 +13209,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -2112,7 +2112,7 @@ Your Google account may have other forms of browsing history like searches and a
@@ -2124,7 +2124,7 @@ Your Google account may have other forms of browsing history like searches and a
About Chrome
</message>
<message name="IDS_LEGAL_INFORMATION_SUMMARY" desc="Summary for legal information" meaning="Android">
@@ -13221,7 +13221,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
--- a/chrome/common/url_constants.h
+++ b/chrome/common/url_constants.h
@@ -114,7 +114,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
@@ -126,7 +126,7 @@ inline constexpr char kChromeHelpViaMenuURL[] =
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
inline constexpr char kChromeHelpViaWebUIURL[] =
@@ -13230,7 +13230,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
#if BUILDFLAG(IS_CHROMEOS_ASH)
inline constexpr char kChromeOsHelpViaWebUIURL[] =
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
@@ -177,7 +177,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
@@ -189,7 +189,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] =
"chrome-untrusted://new-tab-page/";
// The URL for the Chromium project used in the About dialog.
@@ -13242,7 +13242,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd
--- a/components/browser_ui/strings/android/browser_ui_strings.grd
+++ b/components/browser_ui/strings/android/browser_ui_strings.grd
@@ -997,7 +997,7 @@
@@ -994,7 +994,7 @@
<!-- Accessibility preferences -->
<message name="IDS_PREFS_ACCESSIBILITY" desc="Title of Accessibility settings, which allows the user to change webpage font sizes. [CHAR_LIMIT=32]">
@@ -18202,7 +18202,7 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc
--- a/ui/base/ui_base_features.cc
+++ b/ui/base/ui_base_features.cc
@@ -625,4 +625,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings,
@@ -643,4 +643,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_WIN)
+18 -3
View File
@@ -7,6 +7,7 @@ Opens tabs in foreground, Move web search to the top of items,
Web search in tab group and Enable smart text selection
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../browser/ChromeActionModeHandler.java | 4 +-
.../chrome/browser/ChromeTabbedActivity.java | 15 +-
.../compositor/layouts/LayoutManagerImpl.java | 8 ++
.../chrome/browser/ui/RootUiCoordinator.java | 8 +-
@@ -14,13 +15,27 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../res/xml/accessibility_preferences.xml | 24 ++++
.../selection/SelectActionMenuHelper.java | 131 ++++++++++++------
.../selection/SmartSelectionClient.java | 4 +
7 files changed, 177 insertions(+), 47 deletions(-)
8 files changed, 178 insertions(+), 50 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
@@ -148,9 +148,7 @@ public class ChromeActionModeHandler {
| ActionModeCallbackHelper.MENU_ITEM_SHARE;
// Disable options that expose additional Chrome functionality prior to the FRE being
// completed (i.e. creation of a new tab).
- if (FirstRunStatus.getFirstRunFlowComplete()) {
- allowedActionModes |= ActionModeCallbackHelper.MENU_ITEM_WEB_SEARCH;
- }
+ allowedActionModes |= ActionModeCallbackHelper.MENU_ITEM_WEB_SEARCH;
mHelper.setAllowedMenuItems(allowedActionModes);
mHelper.onCreateActionMode(mode, menu);
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
@@ -723,10 +723,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@@ -737,10 +737,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
@TabLaunchType int type,
@TabCreationState int creationState,
boolean markedForSelection) {
@@ -78,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.base.TraceEvent;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.supplier.ObservableSupplier;
@@ -805,11 +806,16 @@ public class RootUiCoordinator
@@ -814,11 +815,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -3187,8 +3187,8 @@
@@ -3110,8 +3110,8 @@
status: "stable",
},
{
@@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
@@ -286,8 +286,17 @@ class LocationBarMediator
@@ -289,8 +289,17 @@ class LocationBarMediator
if (mNativeInitialized) RecordUserAction.record("FocusLocation");
// Don't clear Omnibox if the user just pasted text to NTP Omnibox.
if (mShouldClearOmniboxOnFocus) {
@@ -66,7 +66,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
private boolean mPendingScroll;
// Captures the current intended text scroll type.
@@ -299,6 +301,27 @@ public abstract class UrlBar extends AutocompleteEditText {
@@ -294,6 +296,27 @@ public abstract class UrlBar extends AutocompleteEditText {
mPendingScroll = false;
}
fixupTextDirection();
@@ -42,7 +42,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
--- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java
@@ -1044,6 +1044,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
@@ -1112,6 +1112,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
structure.setChildCount(0);
return;
}
@@ -4,18 +4,53 @@ Subject: Disable Android AppRestrictions
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/browser/enterprise/util/BUILD.gn | 1 +
.../enterprise/util/EnterpriseInfoImpl.java | 5 +++
chrome/browser/flags/BUILD.gn | 1 +
.../cromite/sEnableAndroidAppRestriction.java | 39 +++++++++++++++++++
.../policy/AppRestrictionsProvider.java | 8 ++++
.../policy/AppRestrictionsProvider.java | 12 ++++++
.../DisableAndroidAppRestriction.inc | 13 +++++++
.../disable-android-app-restriction.inc | 3 ++
.../disable-android-app-restriction.inc | 1 +
6 files changed, 65 insertions(+)
8 files changed, 75 insertions(+)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc
diff --git a/chrome/browser/enterprise/util/BUILD.gn b/chrome/browser/enterprise/util/BUILD.gn
--- a/chrome/browser/enterprise/util/BUILD.gn
+++ b/chrome/browser/enterprise/util/BUILD.gn
@@ -20,6 +20,7 @@ android_library("java") {
"//build/android:build_java",
"//chrome/browser/flags:java",
"//chrome/browser/profiles/android:java",
+ "//components/policy/android:policy_java",
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/jni_zero:jni_zero_java",
]
diff --git a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
--- a/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
+++ b/chrome/browser/enterprise/util/android/java/src/org/chromium/chrome/browser/enterprise/util/EnterpriseInfoImpl.java
@@ -23,6 +23,7 @@ import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.task.AsyncTask;
import org.chromium.base.task.TaskTraits;
import org.chromium.chrome.browser.flags.ChromeSwitches;
+import org.chromium.components.policy.AppRestrictionsProvider;
import java.util.LinkedList;
import java.util.Queue;
@@ -76,6 +77,10 @@ public class EnterpriseInfoImpl extends EnterpriseInfo {
new AsyncTask<OwnedState>() {
// TODO: Unit test this function. https://crbug.com/1099262
private OwnedState calculateIsRunningOnManagedProfile(Context context) {
+ if (!AppRestrictionsProvider.isEnabled()) {
+ return new OwnedState(/*hasDeviceOwnerApp*/false,
+ /*hasProfileOwnerApp*/false);
+ }
boolean hasProfileOwnerApp = false;
boolean hasDeviceOwnerApp = false;
PackageManager packageManager = context.getPackageManager();
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -74,7 +109,7 @@ new file mode 100644
diff --git a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
--- a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
+++ b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
@@ -17,6 +17,11 @@ import org.chromium.base.Log;
@@ -17,6 +17,15 @@ import org.chromium.base.Log;
*/
public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
private static final String TAG = "AppResProvider";
@@ -82,11 +117,15 @@ diff --git a/components/policy/android/java/src/org/chromium/components/policy/A
+
+ public static void setEnabled(boolean value) {
+ mEnabled = value;
+ }
+
+ public static boolean isEnabled() {
+ return mEnabled;
+ }
/**
* Get the app restriction information from provided user manager, and record some timing
@@ -28,6 +33,9 @@ public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
@@ -28,6 +37,9 @@ public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
*/
public static Bundle getApplicationRestrictionsFromUserManager(
UserManager userManager, String packageName) {
@@ -7,14 +7,14 @@ This feature is detrimental to privacy, see also:
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../common/chrome_features_cc/Disable-AsyncDNS-by-default.inc | 1 +
.../net/base/features_cc/Disable-AsyncDNS-by-default.inc | 1 +
1 file changed, 1 insertion(+)
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-AsyncDNS-by-default.inc
create mode 100644 cromite_flags/net/base/features_cc/Disable-AsyncDNS-by-default.inc
diff --git a/cromite_flags/chrome/common/chrome_features_cc/Disable-AsyncDNS-by-default.inc b/cromite_flags/chrome/common/chrome_features_cc/Disable-AsyncDNS-by-default.inc
diff --git a/cromite_flags/net/base/features_cc/Disable-AsyncDNS-by-default.inc b/cromite_flags/net/base/features_cc/Disable-AsyncDNS-by-default.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/common/chrome_features_cc/Disable-AsyncDNS-by-default.inc
+++ b/cromite_flags/net/base/features_cc/Disable-AsyncDNS-by-default.inc
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_DISABLED(kAsyncDns);
--
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc
--- a/chrome/browser/component_updater/registration.cc
+++ b/chrome/browser/component_updater/registration.cc
@@ -100,6 +100,7 @@
@@ -99,6 +99,7 @@
namespace component_updater {
void RegisterComponentsForUpdate() {
@@ -23,10 +23,10 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
diff --git a/components/component_updater/component_installer.cc b/components/component_updater/component_installer.cc
--- a/components/component_updater/component_installer.cc
+++ b/components/component_updater/component_installer.cc
@@ -97,6 +97,7 @@ void ComponentInstaller::Register(ComponentUpdateService* cus,
void ComponentInstaller::Register(RegisterCallback register_callback,
base::OnceClosure callback,
const base::Version& registered_version) {
@@ -99,6 +99,7 @@ void ComponentInstaller::Register(
base::OnceClosure callback,
const base::Version& registered_version,
const base::Version& max_previous_product_version) {
+ if ((true)) return;
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -34,7 +34,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co
diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc
--- a/components/component_updater/component_updater_service.cc
+++ b/components/component_updater/component_updater_service.cc
@@ -530,7 +530,7 @@ std::unique_ptr<ComponentUpdateService> ComponentUpdateServiceFactory(
@@ -539,7 +539,7 @@ std::unique_ptr<ComponentUpdateService> ComponentUpdateServiceFactory(
// Register prefs required by the component update service.
void RegisterComponentUpdateServicePrefs(PrefRegistrySimple* registry) {
// The component updates are enabled by default, if the preference is not set.
+15 -4
View File
@@ -5,17 +5,28 @@ Subject: Disable Compose feature
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
components/compose/core/browser/compose_features.cc | 3 +++
1 file changed, 3 insertions(+)
components/compose/features.gni | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc
--- a/components/compose/core/browser/compose_features.cc
+++ b/components/compose/core/browser/compose_features.cc
@@ -48,4 +48,7 @@ BASE_FEATURE(kEnableComposeSavedStateNotification,
BASE_FEATURE(kComposeUiParams,
"ComposeUiParams",
@@ -56,4 +56,7 @@ BASE_FEATURE(kComposeTextOutputAnimation,
BASE_FEATURE(kComposeTextSelection,
"ComposeTextSelection",
base::FEATURE_DISABLED_BY_DEFAULT);
+
+SET_CROMITE_FEATURE_DISABLED(kEnableCompose);
+SET_CROMITE_FEATURE_DISABLED(kComposeEligible);
} // namespace compose::features
diff --git a/components/compose/features.gni b/components/compose/features.gni
--- a/components/compose/features.gni
+++ b/components/compose/features.gni
@@ -4,5 +4,5 @@
declare_args() {
# Whether Compose is enabled in the build.
- enable_compose = is_mac || is_win || is_linux
+ enable_compose = false
}
--
@@ -10,14 +10,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -705,16 +705,18 @@
@@ -651,16 +651,18 @@
}
},
{
- name: "CompressionDictionaryTransport",
+ name: "CompressionDictionaryTransport", // need to be disabled
base_feature: "none",
origin_trial_feature_name: "CompressionDictionaryTransport",
origin_trial_feature_name: "CompressionDictionaryTransportV2",
origin_trial_allows_third_party: true,
public: true,
+ status: "experimental",
@@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -3240,6 +3240,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
@@ -3239,6 +3239,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
@@ -59,7 +59,7 @@ diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrom
diff --git a/components/history/core/browser/history_backend.cc b/components/history/core/browser/history_backend.cc
--- a/components/history/core/browser/history_backend.cc
+++ b/components/history/core/browser/history_backend.cc
@@ -655,18 +655,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id,
@@ -656,18 +656,7 @@ void HistoryBackend::SetBrowsingTopicsAllowed(ContextID context_id,
if (!visit_id)
return;
@@ -94,7 +94,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san
diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc
--- a/components/privacy_sandbox/privacy_sandbox_features.cc
+++ b/components/privacy_sandbox/privacy_sandbox_features.cc
@@ -164,4 +164,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking,
@@ -167,4 +167,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif // BUILDFLAG(IS_ANDROID)
@@ -127,7 +127,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr
diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
--- a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
+++ b/components/privacy_sandbox/privacy_sandbox_settings_impl.cc
@@ -121,7 +121,7 @@ std::set<browsing_topics::Topic> GetTopicsSetFromString(
@@ -123,7 +123,7 @@ std::set<browsing_topics::Topic> GetTopicsSetFromString(
// static
bool PrivacySandboxSettingsImpl::IsAllowed(Status status) {
@@ -136,7 +136,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
}
// static
@@ -230,7 +230,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() {
@@ -232,7 +232,8 @@ PrivacySandboxSettingsImpl::GetFinchPrioritizedTopics() {
return finch_prioritized_topics_;
}
@@ -146,7 +146,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
Status status = GetM1TopicAllowedStatus();
JoinHistogram(kIsTopicsAllowedHistogram, status);
return IsAllowed(status);
@@ -262,7 +263,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext(
@@ -264,7 +265,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext(
return IsAllowed(status);
}
@@ -156,7 +156,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
const auto& blocked_topics =
pref_service_->GetList(prefs::kPrivacySandboxBlockedTopics);
@@ -464,6 +466,7 @@ bool PrivacySandboxSettingsImpl::
@@ -466,6 +468,7 @@ bool PrivacySandboxSettingsImpl::
void PrivacySandboxSettingsImpl::SetFledgeJoiningAllowed(
const std::string& top_frame_etld_plus1,
bool allowed) {
@@ -164,7 +164,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
ScopedDictPrefUpdate scoped_pref_update(
pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked);
@@ -534,7 +537,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings(
@@ -536,7 +539,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings(
}
bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed(
@@ -174,7 +174,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
ScopedDictPrefUpdate scoped_pref_update(
pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked);
auto& pref_data = scoped_pref_update.Get();
@@ -742,7 +746,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting(
@@ -782,7 +786,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting(
delegate_ = std::move(delegate);
}
@@ -186,7 +186,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince,
base::Time::Now());
@@ -755,6 +762,7 @@ PrivacySandboxSettingsImpl::Status
@@ -795,6 +802,7 @@ PrivacySandboxSettingsImpl::Status
PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
const url::Origin& top_frame_origin,
const GURL& url) const {
@@ -194,7 +194,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
// Relying on |host_content_settings_map_| instead of |cookie_settings_|
// allows to query whether the site associated with the |url| is allowed to
// access Site data (aka ContentSettingsType::COOKIES) without considering any
@@ -769,6 +777,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
@@ -809,6 +817,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
PrivacySandboxSettingsImpl::Status
PrivacySandboxSettingsImpl::GetPrivacySandboxAllowedStatus(
bool should_ignore_restriction /*=false*/) const {
@@ -211,7 +211,7 @@ new file mode 100644
diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc
--- a/third_party/blink/common/features.cc
+++ b/third_party/blink/common/features.cc
@@ -2329,6 +2329,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() {
@@ -2462,6 +2462,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() {
}
bool IsAllowURNsInIframeEnabled() {
+1 -1
View File
@@ -18,7 +18,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1600,7 +1600,7 @@
@@ -1570,7 +1570,7 @@
{
name: "FedCm",
public: true,
+9 -9
View File
@@ -21,8 +21,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
-import org.chromium.chrome.browser.gsa.GSAState;
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteControllerProvider;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.renderer_host.ChromeNavigationUIData;
@@ -243,8 +242,6 @@ public class IntentHandler {
import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -244,8 +243,6 @@ public class IntentHandler {
private static int sReferrerId;
private static String sPendingIncognitoUrl;
@@ -31,7 +31,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
private static final String PACKAGE_GMAIL = "com.google.android.gm";
private static final String PACKAGE_PLUS = "com.google.android.apps.plus";
private static final String PACKAGE_HANGOUTS = "com.google.android.talk";
@@ -460,8 +457,6 @@ public class IntentHandler {
@@ -461,8 +458,6 @@ public class IntentHandler {
return ExternalAppId.LINE;
} else if (packageName.equals(PACKAGE_WHATSAPP)) {
return ExternalAppId.WHATSAPP;
@@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils
diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java
--- a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java
+++ b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java
@@ -32,8 +32,6 @@ import java.util.regex.Pattern;
@@ -31,8 +31,6 @@ import java.util.regex.Pattern;
/** A class responsible for representing the current state of Chrome's integration with GSA. */
public class GSAState {
@@ -94,7 +94,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
/** Used to observe state changes in the class. */
public interface Observer {
/** Called when the GSA account name is set. */
@@ -71,7 +69,7 @@ public class GSAState {
@@ -70,7 +68,7 @@ public class GSAState {
private final ObserverList<Observer> mObserverList = new ObserverList<>();
/** Caches the result of a computation on whether GSA is available. */
@@ -103,7 +103,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
/**
* The Google account email address being used by GSA according to the latest update we have
@@ -153,7 +151,7 @@ public class GSAState {
@@ -152,7 +150,7 @@ public class GSAState {
/** Returns whether the GSA package is installed on device. */
public boolean isGsaInstalled() {
@@ -112,7 +112,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
}
/**
@@ -176,6 +174,7 @@ public class GSAState {
@@ -175,6 +173,7 @@ public class GSAState {
*/
public boolean isAgsaVersionBelowMinimum(
String installedVersionName, String minimumVersionName) {
@@ -120,7 +120,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) {
return true;
}
@@ -207,7 +206,7 @@ public class GSAState {
@@ -206,7 +205,7 @@ public class GSAState {
* @return Whether the given intent can be handled by Agsa.
*/
public boolean canAgsaHandleIntent(@NonNull Intent intent) {
@@ -129,7 +129,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat
ComponentName activity =
intent.resolveActivity(ContextUtils.getApplicationContext().getPackageManager());
@@ -221,7 +220,7 @@ public class GSAState {
@@ -220,7 +219,7 @@ public class GSAState {
* @return The version name of the Agsa package or null if it can't be found.
*/
public @Nullable String getAgsaVersionName() {
@@ -43,7 +43,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2160,9 +2160,9 @@
@@ -2114,9 +2114,9 @@
status: {"Android": "test", "default": "stable"},
},
{
@@ -0,0 +1,22 @@
From: uazo <uazo@users.noreply.github.com>
Date: Wed, 20 Mar 2024 16:26:23 +0000
Subject: Disable Paint Preview by default
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../chrome/browser/paint_preview/StartupPaintPreviewHelper.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/paint_preview/StartupPaintPreviewHelper.java
@@ -112,7 +112,7 @@ public class StartupPaintPreviewHelper {
* feature is not enabled this is effectively a no-op.
*/
public static void setShouldShowOnRestore(boolean shouldShowOnRestore) {
- sShouldShowOnRestore = shouldShowOnRestore;
+ sShouldShowOnRestore = false;
}
/** Attempts to display the Paint Preview representation for the given Tab. */
--
+5 -5
View File
@@ -13,7 +13,7 @@ Real-box is search box in ntp
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -2027,7 +2027,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -2072,7 +2072,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry->RegisterBooleanPref(
prefs::kLensRegionSearchEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
@@ -25,7 +25,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
--- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html
@@ -403,11 +403,6 @@
@@ -504,11 +504,6 @@
hidden$="[[!logoEnabled_]]">
</ntp-logo>
<div id="realboxContainer">
@@ -40,7 +40,7 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res
diff --git a/chrome/browser/ui/webui/realbox/realbox_handler.cc b/chrome/browser/ui/webui/realbox/realbox_handler.cc
--- a/chrome/browser/ui/webui/realbox/realbox_handler.cc
+++ b/chrome/browser/ui/webui/realbox/realbox_handler.cc
@@ -670,7 +670,7 @@ void RealboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source,
@@ -672,7 +672,7 @@ void RealboxHandler::SetupWebUIDataSource(content::WebUIDataSource* source,
source->AddBoolean(
"realboxLensSearch",
@@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/webui/realbox/realbox_handler.cc b/chrome/browser
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
--- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc
@@ -165,7 +165,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly,
@@ -171,7 +171,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly,
base::FEATURE_ENABLED_BY_DEFAULT);
// If enabled, logo will be shown.
@@ -61,7 +61,7 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.
// If enabled, logo will fill up less vertical space.
BASE_FEATURE(kNtpReducedLogoSpace,
@@ -242,8 +242,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
@@ -248,8 +248,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
// If enabled, OneGoogleBar will be shown.
BASE_FEATURE(kNtpOneGoogleBar,
@@ -75,7 +75,7 @@ diff --git a/components/embedder_support/content_settings_utils.cc b/components/
return content::AllowServiceWorkerResult::FromPolicy(!allow_javascript,
!allow_cookies);
@@ -142,17 +124,16 @@ bool AllowSharedWorker(
@@ -143,17 +125,16 @@ bool AllowSharedWorker(
worker_url, site_for_cookies, top_frame_origin,
cookie_settings->SettingOverridesForStorage(), &cookie_settings_metadata);
@@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -621,7 +621,7 @@ public abstract class ChromeFeatureList {
@@ -634,7 +634,7 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sSmallerTabStripTitleLimit =
newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, false);
public static final CachedFlag sStartSurfaceAndroid =
+6 -6
View File
@@ -91,14 +91,14 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
--- a/net/quic/quic_session_pool.cc
+++ b/net/quic/quic_session_pool.cc
@@ -69,6 +69,7 @@
#include "net/third_party/quiche/src/quiche/quic/core/quic_utils.h"
#include "net/third_party/quiche/src/quiche/quic/platform/api/quic_flags.h"
#include "net/traffic_annotation/network_traffic_annotation.h"
#include "third_party/boringssl/src/include/openssl/aead.h"
+#include "third_party/boringssl/src/include/openssl/ssl.h"
#include "url/gurl.h"
#include "url/scheme_host_port.h"
#include "url/url_constants.h"
@@ -196,6 +197,38 @@ std::set<std::string> HostsFromOrigins(std::set<HostPortPair> origins) {
@@ -156,6 +157,38 @@ std::set<std::string> HostsFromOrigins(std::set<HostPortPair> origins) {
} // namespace
@@ -134,10 +134,10 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc
+ }
+};
+
// Refcounted class that owns quic::QuicCryptoClientConfig and tracks how many
// consumers are using it currently. When the last reference is freed, the
// QuicCryptoClientConfigHandle informs the owning QuicSessionPool, moves it
@@ -2409,7 +2442,7 @@ QuicSessionPool::CreateCryptoConfigHandle(
QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {}
QuicSessionRequest::~QuicSessionRequest() {
@@ -1716,7 +1749,7 @@ QuicSessionPool::CreateCryptoConfigHandle(
cert_verifier_, transport_security_state_, sct_auditing_delegate_,
HostsFromOrigins(params_.origins_to_force_quic_on),
actual_network_anonymization_key),
+16 -3
View File
@@ -4,14 +4,27 @@ Subject: Disable WebGPU
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
content/child/runtime_features.cc | 2 ++
gpu/config/gpu_finch_features.cc | 2 +-
third_party/blink/renderer/modules/webgpu/gpu.cc | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
3 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -586,6 +586,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
WebRuntimeFeatures::EnableV8IdleTasks(true);
}
+ WebRuntimeFeatures::EnableFeatureFromString("WebGpu", false);
+
WebRuntimeFeatures::EnableBackForwardCache(
content::IsBackForwardCacheEnabled());
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
@@ -295,7 +295,7 @@ BASE_FEATURE(kForceGpuMainThreadToNormalPriorityDrDc,
@@ -266,7 +266,7 @@ BASE_FEATURE(kEnableDrDc,
// enabled by default on supported platforms.
#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \
BUILDFLAG(IS_ANDROID)
@@ -23,7 +36,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc
--- a/third_party/blink/renderer/modules/webgpu/gpu.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu.cc
@@ -368,6 +368,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state,
@@ -376,6 +376,7 @@ ScriptPromise GPU::requestAdapter(ScriptState* script_state,
"WebGPU is experimental on this platform. See "
"https://github.com/gpuweb/gpuweb/wiki/"
"Implementation-Status#implementation-status"));
+53 -29
View File
@@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../preloading_model_keyed_service.cc | 1 +
.../preloading_model_keyed_service_factory.cc | 4 +--
.../chrome_hints_manager.cc | 1 +
.../model_validator_keyed_service.cc | 4 ++-
.../model_validator_keyed_service.cc | 7 +++++-
.../optimization_guide_keyed_service.cc | 1 -
.../predictors/loading_predictor_config.cc | 4 +--
.../browser/predictors/predictors_features.cc | 11 ++------
@@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../Disable-all-predictors-code.inc | 2 ++
.../document_speculation_rules.cc | 1 +
.../platform/runtime_enabled_features.json5 | 2 +-
27 files changed, 80 insertions(+), 38 deletions(-)
27 files changed, 83 insertions(+), 38 deletions(-)
create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc
create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
create mode 100644 cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc
@@ -41,7 +41,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -845,8 +845,6 @@ static_library("browser") {
@@ -851,8 +851,6 @@ static_library("browser") {
"navigation_predictor/navigation_predictor_keyed_service_factory.h",
"navigation_predictor/navigation_predictor_metrics_document_data.cc",
"navigation_predictor/navigation_predictor_metrics_document_data.h",
@@ -87,7 +87,15 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/
diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc b/chrome/browser/optimization_guide/model_validator_keyed_service.cc
--- a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
+++ b/chrome/browser/optimization_guide/model_validator_keyed_service.cc
@@ -34,13 +34,13 @@ namespace optimization_guide {
@@ -8,6 +8,7 @@
#include "base/files/file_util.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/task_traits.h"
+#include "base/task/thread_pool.h"
#include "build/build_config.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/identity_manager_factory.h"
@@ -55,13 +56,13 @@ namespace optimization_guide {
ModelValidatorKeyedService::ModelValidatorKeyedService(Profile* profile)
: profile_(profile) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -102,7 +110,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
if (switches::ShouldValidateModel()) {
// Create the validator object which will get destroyed when the model
// load is complete.
@@ -93,6 +93,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged(
@@ -122,6 +123,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged(
void ModelValidatorKeyedService::StartModelExecutionValidation() {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -110,18 +118,34 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc
auto* opt_guide_service =
OptimizationGuideKeyedServiceFactory::GetForProfile(profile_);
if (!opt_guide_service) {
@@ -110,6 +111,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() {
@@ -139,6 +141,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() {
proto::ModelExecutionFeature::MODEL_EXECUTION_FEATURE_TEST, request,
base::BindOnce(&ModelValidatorKeyedService::OnModelExecuteResponse,
weak_ptr_factory_.GetWeakPtr()));
+#endif
}
void ModelValidatorKeyedService::OnModelExecuteResponse(
void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation(
@@ -156,6 +159,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation(
void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation(
std::unique_ptr<optimization_guide::proto::ComposeRequest> request) {
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
auto* opt_guide_service =
OptimizationGuideKeyedServiceFactory::GetForProfile(profile_);
@@ -168,6 +172,7 @@ void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation(
*request, base::RepeatingCallback(base::BindRepeating(
&ModelValidatorKeyedService::OnDeviceModelExecuteResponse,
weak_ptr_factory_.GetWeakPtr())));
+#endif
}
void ModelValidatorKeyedService::OnDeviceModelExecuteResponse(
diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
--- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc
@@ -560,7 +560,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
@@ -528,7 +528,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel(
void OptimizationGuideKeyedService::RegisterOptimizationTypes(
const std::vector<optimization_guide::proto::OptimizationType>&
optimization_types) {
@@ -180,7 +204,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -410,7 +410,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
@@ -414,7 +414,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
}
MixedContentSettingsTabHelper::CreateForWebContents(web_contents);
NavigationMetricsRecorder::CreateForWebContents(web_contents);
@@ -201,7 +225,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br
#include "components/omnibox/browser/omnibox_field_trial.h"
#include "components/search_engines/template_url.h"
#include "content/public/browser/web_ui.h"
@@ -500,6 +502,7 @@ void OmniboxPageHandler::StartOmniboxQuery(const std::string& input_string,
@@ -498,6 +500,7 @@ void OmniboxPageHandler::StartOmniboxQuery(const std::string& input_string,
}
void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) {
@@ -209,7 +233,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br
if (auto* service = GetMlService()) {
auto version = service->GetModelVersion();
if (version == -1) {
@@ -512,10 +515,14 @@ void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) {
@@ -510,10 +513,14 @@ void OmniboxPageHandler::GetMlModelVersion(GetMlModelVersionCallback callback) {
} else {
std::move(callback).Run(-1);
}
@@ -224,7 +248,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br
if (auto* service = GetMlService()) {
AutocompleteMatch::ScoringSignals signals =
mojo::ConvertTo<AutocompleteMatch::ScoringSignals>(mojom_signals);
@@ -525,6 +532,9 @@ void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals,
@@ -523,6 +530,9 @@ void OmniboxPageHandler::StartMl(mojom::SignalsPtr mojom_signals,
} else {
std::move(callback).Run(-1);
}
@@ -234,7 +258,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br
}
std::unique_ptr<AutocompleteController> OmniboxPageHandler::CreateController(
@@ -549,8 +559,12 @@ OmniboxPageHandler::GetAutocompleteControllerType(
@@ -547,8 +557,12 @@ OmniboxPageHandler::GetAutocompleteControllerType(
}
AutocompleteScoringModelService* OmniboxPageHandler::GetMlService() {
@@ -250,7 +274,7 @@ diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/br
diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc
--- a/components/autofill/core/browser/autofill_optimization_guide.cc
+++ b/components/autofill/core/browser/autofill_optimization_guide.cc
@@ -137,6 +137,7 @@ void AutofillOptimizationGuide::OnDidParseForm(
@@ -163,6 +163,7 @@ void AutofillOptimizationGuide::OnDidParseForm(
// If we do not have any optimization types to register, do not do anything.
if (!optimization_types.empty()) {
// Register all optimization types that we need based on `form_structure`.
@@ -258,7 +282,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c
decider_->RegisterOptimizationTypes(
std::vector<optimization_guide::proto::OptimizationType>(
std::move(optimization_types).extract()));
@@ -148,7 +149,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions(
@@ -214,7 +215,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions(
AutofillField* field) const {
// If the field's storable type is `IBAN_VALUE`, check whether IBAN
// suggestions should be blocked based on `url`.
@@ -267,7 +291,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c
optimization_guide::OptimizationGuideDecision decision =
decider_->CanApplyOptimization(
url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED,
@@ -174,7 +175,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion(
@@ -240,7 +241,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion(
const CreditCard* card) const {
if (auto optimization_type =
GetVcnMerchantOptOutOptimizationTypeForCard(*card);
@@ -291,10 +315,10 @@ diff --git a/components/autofill/core/browser/metrics/shadow_prediction_metrics.
diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc
--- a/components/omnibox/browser/autocomplete_controller.cc
+++ b/components/omnibox/browser/autocomplete_controller.cc
@@ -44,7 +44,9 @@
#include "components/omnibox/browser/autocomplete_input.h"
@@ -47,7 +47,9 @@
#include "components/omnibox/browser/autocomplete_match_type.h"
#include "components/omnibox/browser/autocomplete_provider.h"
#include "components/omnibox/browser/autocomplete_provider_client.h"
+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
#include "components/omnibox/browser/autocomplete_scoring_model_service.h"
+#endif
@@ -315,7 +339,7 @@ diff --git a/components/optimization_guide/core/hints_fetcher.cc b/components/op
diff --git a/components/optimization_guide/core/hints_manager.cc b/components/optimization_guide/core/hints_manager.cc
--- a/components/optimization_guide/core/hints_manager.cc
+++ b/components/optimization_guide/core/hints_manager.cc
@@ -388,6 +388,7 @@ void HintsManager::Shutdown() {
@@ -390,6 +390,7 @@ void HintsManager::Shutdown() {
OptimizationGuideDecision
HintsManager::GetOptimizationGuideDecisionFromOptimizationTypeDecision(
OptimizationTypeDecision optimization_type_decision) {
@@ -323,7 +347,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op
switch (optimization_type_decision) {
case OptimizationTypeDecision::kAllowedByOptimizationFilter:
case OptimizationTypeDecision::kAllowedByHint:
@@ -1108,6 +1109,7 @@ void HintsManager::CanApplyOptimizationOnDemand(
@@ -1110,6 +1111,7 @@ void HintsManager::CanApplyOptimizationOnDemand(
OnDemandOptimizationGuideDecisionRepeatingCallback callback,
proto::RequestContextMetadata* request_context_metadata) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -331,7 +355,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op
InsertionOrderedSet<GURL> urls_to_fetch;
InsertionOrderedSet<std::string> hosts_to_fetch;
@@ -1414,6 +1416,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization(
@@ -1416,6 +1418,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization(
bool skip_cache,
OptimizationMetadata* optimization_metadata) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -363,7 +387,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
// Returns whether |locale| is a supported locale for |feature|.
//
@@ -587,8 +579,7 @@ size_t MaxURLKeyedHintCacheSize() {
@@ -575,8 +567,7 @@ size_t MaxURLKeyedHintCacheSize() {
}
bool ShouldPersistHintsToDisk() {
@@ -372,8 +396,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
+ return false;
}
bool ShouldEnablePersonalizedMetadata(proto::RequestContext request_context) {
@@ -1101,5 +1092,19 @@ bool GetOnDeviceModelRetractRepeats() {
RequestContextSet GetAllowedContextsForPersonalizedMetadata() {
@@ -1080,5 +1071,19 @@ bool GetOnDeviceModelRetractRepeats() {
return kOnDeviceModelRetractRepeats.Get();
}
@@ -469,7 +493,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish
diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc
--- a/components/search/ntp_features.cc
+++ b/components/search/ntp_features.cc
@@ -511,4 +511,7 @@ std::vector<std::string> GetModulesOrder() {
@@ -544,4 +544,7 @@ std::vector<std::string> GetModulesOrder() {
base::SplitResult::SPLIT_WANT_NONEMPTY);
}
@@ -517,7 +541,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
--- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
+++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
@@ -584,6 +584,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() {
@@ -599,6 +599,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() {
return;
}
@@ -528,9 +552,9 @@ diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculat
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -3027,7 +3027,7 @@
{
// https://crbug.com/1126305
@@ -2961,7 +2961,7 @@
//
// It also has some feature params defined throughout the codebase.
name: "Prerender2",
- status: "stable",
+ status: "test",
@@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
@@ -1210,6 +1210,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@@ -1243,6 +1243,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
}
private boolean maybeShowPromo(Profile profile) {
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
@@ -135,7 +135,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
@@ -138,7 +138,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled,
false);
@@ -51,7 +51,7 @@ diff --git a/chrome/browser/ui/views/user_education/browser_feature_promo_contro
diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
--- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
+++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java
@@ -73,6 +73,7 @@ public class UserEducationHelper {
@@ -74,6 +74,7 @@ public class UserEducationHelper {
}
private void showIPH(Tracker tracker, IPHCommand iphCommand) {
@@ -62,7 +62,7 @@ diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/
diff --git a/components/user_education/common/feature_promo_controller.cc b/components/user_education/common/feature_promo_controller.cc
--- a/components/user_education/common/feature_promo_controller.cc
+++ b/components/user_education/common/feature_promo_controller.cc
@@ -446,6 +446,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon(
@@ -589,6 +589,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon(
const FeaturePromoSpecification** spec_out,
std::unique_ptr<FeaturePromoLifecycle>* lifecycle_out,
ui::TrackedElement** anchor_element_out) const {
@@ -11,7 +11,8 @@ being sent and being saved to disk, although it is currently in uncalled code.
Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
.../browser/aw_content_browser_client.cc | 1 +
.../browser/aw_content_browser_client.cc | 3 +
.../chromium/android_webview/AwSettings.java | 4 +-
chrome/android/java/AndroidManifest.xml | 4 -
components/attribution_reporting/features.cc | 2 +
.../origin_trials/features.cc | 2 +
@@ -25,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../attribution_storage_sql.cc | 8 +-
content/browser/storage_partition_impl.cc | 9 -
content/public/android/BUILD.gn | 2 -
.../browser/AttributionOsLevelManager.java | 297 +-----------------
.../browser/AttributionOsLevelManager.java | 312 +-----------------
.../public/browser/content_browser_client.cc | 7 +-
.../public/browser/navigation_controller.cc | 1 -
.../Disable-conversion-measurement-api.inc | 1 +
@@ -36,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../network/public/cpp/attribution_utils.cc | 2 +
third_party/blink/renderer/core/page/page.cc | 2 +-
ui/events/android/motion_event_android.cc | 6 +-
25 files changed, 65 insertions(+), 324 deletions(-)
26 files changed, 72 insertions(+), 338 deletions(-)
create mode 100644 cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc
@@ -45,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
--- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc
@@ -1157,6 +1157,7 @@ network::mojom::AttributionSupport
@@ -1163,6 +1163,7 @@ network::mojom::AttributionSupport
AwContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state,
content::WebContents* web_contents) {
@@ -53,6 +54,36 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv
AwSettings* aw_settings = AwSettings::FromWebContents(web_contents);
if (aw_settings && aw_settings->GetAttributionBehavior() ==
AwSettings::AttributionBehavior::DISABLED) {
@@ -1187,6 +1188,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
+ if ((true))
+ return false;
// Check if attribution reporting has been disabled.
// This method should not be called at all if the configured behavior is
// DISABLED.
diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
--- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java
@@ -162,7 +162,7 @@ public class AwSettings {
private boolean mSpatialNavigationEnabled; // Default depends on device features.
private boolean mEnableSupportedHardwareAcceleratedFeatures;
private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW;
- private int mAttributionBehavior = AttributionBehavior.APP_SOURCE_AND_WEB_TRIGGER;
+ private int mAttributionBehavior = AttributionBehavior.DISABLED;
private boolean mCSSHexAlphaColorEnabled;
private boolean mScrollTopLeftInteropEnabled;
private boolean mWillSuppressErrorPage;
@@ -1689,7 +1689,7 @@ public class AwSettings {
public void setAttributionBehavior(@AttributionBehavior int behavior) {
synchronized (mAwSettingsLock) {
if (mAttributionBehavior != behavior) {
- mAttributionBehavior = behavior;
+ mAttributionBehavior = AttributionBehavior.DISABLED;
mEventHandler.updateWebkitPreferencesLocked();
}
}
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
@@ -64,7 +95,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/>
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_CONNECT"/>
<!--
@@ -1157,9 +1156,6 @@ by a child template that "extends" this file.
@@ -1165,9 +1164,6 @@ by a child template that "extends" this file.
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|mcc|mnc|screenLayout|smallestScreenSize" >
</activity>
@@ -77,7 +108,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
diff --git a/components/attribution_reporting/features.cc b/components/attribution_reporting/features.cc
--- a/components/attribution_reporting/features.cc
+++ b/components/attribution_reporting/features.cc
@@ -21,4 +21,6 @@ BASE_FEATURE(kAttributionReportingTriggerContextId,
@@ -17,4 +17,6 @@ BASE_FEATURE(kAttributionReportingTriggerContextId,
"AttributionReportingTriggerContextId",
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -149,7 +180,7 @@ diff --git a/content/browser/aggregation_service/aggregation_service_features.cc
diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
--- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
+++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc
@@ -827,6 +827,7 @@ void AttributionDataHostManagerImpl::ParseHeader(
@@ -924,6 +924,7 @@ void AttributionDataHostManagerImpl::ParseHeader(
HeaderPendingDecode pending_decode,
Registrar registrar) {
DCHECK(it != registrations_.end());
@@ -171,7 +202,7 @@ diff --git a/content/browser/attribution_reporting/attribution_host.cc b/content
diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.cc b/content/browser/attribution_reporting/attribution_os_level_manager.cc
--- a/content/browser/attribution_reporting/attribution_os_level_manager.cc
+++ b/content/browser/attribution_reporting/attribution_os_level_manager.cc
@@ -46,6 +46,7 @@ std::optional<ApiState> g_state GUARDED_BY_CONTEXT(GetSequenceChecker());
@@ -47,6 +47,7 @@ std::optional<ApiState> g_state GUARDED_BY_CONTEXT(GetSequenceChecker());
// static
bool AttributionOsLevelManager::ShouldUseOsWebSource(
GlobalRenderFrameHostId render_frame_id) {
@@ -179,7 +210,7 @@ diff --git a/content/browser/attribution_reporting/attribution_os_level_manager.
return GetContentClient()
->browser()
->ShouldUseOsWebSourceAttributionReporting(
@@ -74,7 +75,7 @@ bool AttributionOsLevelManager::ShouldInitializeApiState() {
@@ -75,7 +76,7 @@ bool AttributionOsLevelManager::ShouldInitializeApiState() {
// static
ApiState AttributionOsLevelManager::GetApiState() {
DCHECK_CALLED_ON_VALID_SEQUENCE(GetSequenceChecker());
@@ -234,13 +265,13 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/
+ : path_to_database_(user_data_directory.empty() || g_run_in_memory
+ ? base::FilePath()
+ : DatabasePath(user_data_directory)),
db_(sql::DatabaseOptions{.exclusive_locking = true,
.page_size = 4096,
.cache_size = 32}),
db_(sql::DatabaseOptions{.page_size = 4096, .cache_size = 32}),
delegate_(std::move(delegate)),
rate_limit_table_(delegate_.get()) {
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -1508,15 +1508,6 @@ void StoragePartitionImpl::Initialize(
@@ -1443,15 +1443,6 @@ void StoragePartitionImpl::Initialize(
bucket_manager_ = std::make_unique<BucketManager>(this);
@@ -259,24 +290,25 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
--- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn
@@ -180,8 +180,6 @@ android_library("content_full_java") {
@@ -181,8 +181,6 @@ android_library("content_full_java") {
"//third_party/androidx:androidx_appcompat_appcompat_resources_java",
"//third_party/androidx:androidx_collection_collection_java",
"//third_party/androidx:androidx_core_core_java",
- "//third_party/androidx:androidx_privacysandbox_ads_ads_adservices_java",
- "//third_party/androidx:androidx_privacysandbox_ads_ads_adservices_java_java",
"//third_party/androidx/local_modifications/window:window_util_java",
"//third_party/blink/public:blink_headers_java",
"//third_party/blink/public/common:common_java",
"//third_party/blink/public/mojom:android_mojo_bindings_java",
diff --git a/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java b/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java
--- a/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java
+++ b/content/public/android/java/src/org/chromium/content/browser/AttributionOsLevelManager.java
@@ -12,17 +12,6 @@ import android.os.Process;
import android.view.MotionEvent;
@@ -13,18 +13,6 @@ import android.view.MotionEvent;
import androidx.annotation.IntDef;
import androidx.annotation.OptIn;
-import androidx.privacysandbox.ads.adservices.java.measurement.MeasurementManagerFutures;
-import androidx.privacysandbox.ads.adservices.measurement.DeletionRequest;
-import androidx.privacysandbox.ads.adservices.measurement.SourceRegistrationRequest;
-import androidx.privacysandbox.ads.adservices.measurement.WebSourceParams;
-import androidx.privacysandbox.ads.adservices.measurement.WebSourceRegistrationRequest;
-import androidx.privacysandbox.ads.adservices.measurement.WebTriggerParams;
@@ -289,16 +321,18 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
import org.jni_zero.CalledByNative;
import org.jni_zero.JNINamespace;
@@ -52,6 +41,8 @@ import java.util.concurrent.TimeoutException;
@@ -54,6 +42,10 @@ import java.util.concurrent.TimeoutException;
*/
@JNINamespace("content")
public class AttributionOsLevelManager {
+ private class MeasurementManagerFutures {}
+ private class WebTriggerParams {}
+ private class WebSourceParams {}
+
private static final String TAG = "AttributionManager";
// TODO: replace with constant in android.Manifest.permission once it becomes available in U.
private static final String PERMISSION_ACCESS_ADSERVICES_ATTRIBUTION =
@@ -116,63 +107,11 @@ public class AttributionOsLevelManager {
@@ -118,63 +110,11 @@ public class AttributionOsLevelManager {
}
private static boolean supportsAttribution() {
@@ -363,7 +397,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
}
@CalledByNative
@@ -181,22 +120,7 @@ public class AttributionOsLevelManager {
@@ -183,22 +123,7 @@ public class AttributionOsLevelManager {
}
private MeasurementManagerFutures getManager() {
@@ -387,7 +421,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
}
private void onRegistrationCompleted(
@@ -210,28 +134,6 @@ public class AttributionOsLevelManager {
@@ -212,28 +137,6 @@ public class AttributionOsLevelManager {
}
}
@@ -413,10 +447,18 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
- ContextUtils.getApplicationContext().getMainExecutor());
- }
-
@CalledByNative
private static List<WebSourceParams> createWebSourceParamsList(int size) {
if (!supportsAttribution()) {
@@ -248,7 +151,6 @@ public class AttributionOsLevelManager {
if (!supportsAttribution()) {
return;
}
- list.add(new WebSourceParams(Uri.parse(registrationUrl.getSpec()), isDebugKeyAllowed));
}
/**
* Registers a web attribution source with native, see `registerWebSourceAsync()`:
* https://developer.android.com/reference/androidx/privacysandbox/ads/adservices/java/measurement/MeasurementManagerFutures.
@@ -250,25 +152,6 @@ public class AttributionOsLevelManager {
@@ -265,32 +167,12 @@ public class AttributionOsLevelManager {
OperationResult.ERROR_VERSION_UNSUPPORTED);
return;
}
@@ -429,10 +471,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
- ListenableFuture<?> future =
- mm.registerWebSourceAsync(
- new WebSourceRegistrationRequest(
- Arrays.asList(
- new WebSourceParams(
- Uri.parse(registrationUrl.getSpec()),
- isDebugKeyAllowed)),
- sources,
- Uri.parse(topLevelOrigin.getSpec()),
- /* inputEvent= */ event,
- /* appDestination= */ null,
@@ -442,7 +481,17 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
}
/**
@@ -284,15 +167,6 @@ public class AttributionOsLevelManager {
* Registers an attribution source with native, see `registerSourceAsync()`:
* https://developer.android.com/reference/androidx/privacysandbox/ads/adservices/java/measurement/MeasurementManagerFutures.
*/
- @OptIn(
- markerClass =
- androidx.privacysandbox.ads.adservices.common.ExperimentalFeatures
- .RegisterSourceOptIn.class)
@CalledByNative
private void registerAttributionSource(
int requestId, GURL[] registrationUrls, MotionEvent event) {
@@ -301,37 +183,16 @@ public class AttributionOsLevelManager {
OperationResult.ERROR_VERSION_UNSUPPORTED);
return;
}
@@ -452,13 +501,36 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
- requestId, OperationType.REGISTER_SOURCE, OperationResult.ERROR_INTERNAL);
- return;
- }
-
- ArrayList<Uri> registrationUris = new ArrayList<Uri>(registrationUrls.length);
- for (GURL registrationUrl : registrationUrls) {
- registrationUris.add(Uri.parse(registrationUrl.getSpec()));
- }
- ListenableFuture<?> future =
- mm.registerSourceAsync(Uri.parse(registrationUrl.getSpec()), event);
- mm.registerSourceAsync(new SourceRegistrationRequest(registrationUris, event));
- addRegistrationFutureCallback(requestId, OperationType.REGISTER_SOURCE, future);
}
@CalledByNative
private static List<WebTriggerParams> createWebTriggerParamsList(int size) {
- if (!supportsAttribution()) {
- return null;
- }
- return new ArrayList<WebTriggerParams>(size);
+ return null;
}
@CalledByNative
private static void addWebTriggerParams(
List<WebTriggerParams> list, GURL registrationUrl, boolean isDebugKeyAllowed) {
- if (!supportsAttribution()) {
- return;
- }
- list.add(new WebTriggerParams(Uri.parse(registrationUrl.getSpec()), isDebugKeyAllowed));
}
/**
@@ -309,22 +183,6 @@ public class AttributionOsLevelManager {
@@ -348,18 +209,6 @@ public class AttributionOsLevelManager {
OperationResult.ERROR_VERSION_UNSUPPORTED);
return;
}
@@ -472,16 +544,12 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
- ListenableFuture<?> future =
- mm.registerWebTriggerAsync(
- new WebTriggerRegistrationRequest(
- Arrays.asList(
- new WebTriggerParams(
- Uri.parse(registrationUrl.getSpec()),
- isDebugKeyAllowed)),
- Uri.parse(topLevelOrigin.getSpec())));
- triggers, Uri.parse(topLevelOrigin.getSpec())));
- addRegistrationFutureCallback(requestId, OperationType.REGISTER_WEB_TRIGGER, future);
}
/**
@@ -340,15 +198,6 @@ public class AttributionOsLevelManager {
@@ -375,15 +224,6 @@ public class AttributionOsLevelManager {
OperationResult.ERROR_VERSION_UNSUPPORTED);
return;
}
@@ -497,7 +565,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
}
private void onDataDeletionCompleted(int requestId) {
@@ -383,96 +232,7 @@ public class AttributionOsLevelManager {
@@ -418,96 +258,7 @@ public class AttributionOsLevelManager {
onDataDeletionCompleted(requestId);
return;
}
@@ -595,7 +663,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
}
private static void onMeasurementStateReturned(int status, @OperationResult int result) {
@@ -488,6 +248,10 @@ public class AttributionOsLevelManager {
@@ -523,6 +274,10 @@ public class AttributionOsLevelManager {
private static void getMeasurementApiStatus() {
ThreadUtils.assertOnBackgroundThread();
@@ -606,7 +674,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
if (sManagerForTesting != null) {
AttributionOsLevelManagerJni.get().onMeasurementStateReturned(1);
return;
@@ -507,49 +271,6 @@ public class AttributionOsLevelManager {
@@ -542,49 +297,6 @@ public class AttributionOsLevelManager {
onMeasurementStateReturned(/* status= */ 0, OperationResult.ERROR_PERMISSION_UNGRANTED);
return;
}
@@ -659,7 +727,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
@@ -539,6 +539,7 @@ void ContentBrowserClient::OnAuctionComplete(
@@ -543,6 +543,7 @@ void ContentBrowserClient::OnAuctionComplete(
network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport(
AttributionReportingOsApiState state,
content::WebContents* web_contents) {
@@ -667,7 +735,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
switch (state) {
case AttributionReportingOsApiState::kDisabled:
return network::mojom::AttributionSupport::kWeb;
@@ -555,17 +556,17 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed(
@@ -559,17 +560,17 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
@@ -764,7 +832,7 @@ diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network
diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc
--- a/third_party/blink/renderer/core/page/page.cc
+++ b/third_party/blink/renderer/core/page/page.cc
@@ -1336,7 +1336,7 @@ void Page::UpdateBrowsingContextGroup(
@@ -1352,7 +1352,7 @@ void Page::UpdateBrowsingContextGroup(
void Page::SetAttributionSupport(
network::mojom::AttributionSupport attribution_support) {
+16 -8
View File
@@ -3,22 +3,30 @@ Date: Sat, 9 Apr 2022 21:43:35 +0200
Subject: Disable crash reporting
---
chrome/browser/chrome_content_browser_client.cc | 1 +
.../common/content_features_cc/Disable-crash-reporting.inc | 1 +
2 files changed, 2 insertions(+)
chrome/browser/chrome_content_browser_client.cc | 9 ---------
.../content_features_cc/Disable-crash-reporting.inc | 1 +
2 files changed, 1 insertion(+), 9 deletions(-)
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-crash-reporting.inc
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -2509,6 +2509,7 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
@@ -2509,15 +2509,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
base::NumberToString(pid));
}
#endif
+ enable_crash_reporter = false;
if (enable_crash_reporter) {
std::string switch_value;
std::unique_ptr<metrics::ClientInfo> client_info =
- std::string switch_value;
- std::unique_ptr<metrics::ClientInfo> client_info =
- GoogleUpdateSettings::LoadMetricsClientInfo();
- if (client_info) {
- switch_value = client_info->client_id;
- }
- switch_value.push_back(',');
- switch_value.append(chrome::GetChannelName(chrome::WithExtendedStable(true)));
- command_line->AppendSwitchASCII(switches::kEnableCrashReporter, switch_value);
#endif
if (logging::DialogsAreSuppressed())
diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-crash-reporting.inc b/cromite_flags/content/public/common/content_features_cc/Disable-crash-reporting.inc
new file mode 100644
--- /dev/null
@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -1797,10 +1797,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1840,10 +1840,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
supervised_user::RegisterProfilePrefs(registry);
#endif
@@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/common/aw_features.cc b/android_webview/common/aw_features.cc
--- a/android_webview/common/aw_features.cc
+++ b/android_webview/common/aw_features.cc
@@ -101,8 +101,8 @@ BASE_FEATURE(kWebViewJavaJsBridgeMojo,
@@ -113,8 +113,8 @@ BASE_FEATURE(kWebViewJavaJsBridgeMojo,
// Field trial feature for controlling support of Origin Trials on WebView.
BASE_FEATURE(kWebViewOriginTrials,
@@ -131,7 +131,7 @@ diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/b
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc
--- a/chrome/browser/net/system_network_context_manager.cc
+++ b/chrome/browser/net/system_network_context_manager.cc
@@ -840,7 +840,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams(
@@ -856,7 +856,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams(
void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams(
network::mojom::NetworkContextParams* network_context_params) {
@@ -142,7 +142,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc
--- a/components/ukm/ukm_recorder_impl.cc
+++ b/components/ukm/ukm_recorder_impl.cc
@@ -163,6 +163,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map,
@@ -164,6 +164,9 @@ bool HasUnknownMetrics(const builders::DecodeMap& decode_map,
UkmRecorderImpl::UkmRecorderImpl()
: sampling_seed_(static_cast<uint32_t>(base::RandUint64())) {
@@ -262,7 +262,7 @@ diff --git a/components/variations/net/variations_http_headers.cc b/components/v
diff --git a/components/variations/service/variations_field_trial_creator_base.cc b/components/variations/service/variations_field_trial_creator_base.cc
--- a/components/variations/service/variations_field_trial_creator_base.cc
+++ b/components/variations/service/variations_field_trial_creator_base.cc
@@ -119,6 +119,7 @@ Study::CpuArchitecture GetCurrentCpuArchitecture() {
@@ -125,6 +125,7 @@ Study::CpuArchitecture GetCurrentCpuArchitecture() {
}
#if BUILDFLAG(FIELDTRIAL_TESTING_ENABLED)
@@ -270,8 +270,8 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c
// Determines whether the field trial testing config defined in
// testing/variations/fieldtrial_testing_config.json should be applied. If the
// "disable_fieldtrial_testing_config" GN flag is set to true, then the testing
@@ -318,11 +319,6 @@ bool VariationsFieldTrialCreatorBase::SetUpFieldTrials(
safe_seed_manager);
@@ -330,11 +331,6 @@ bool VariationsFieldTrialCreatorBase::SetUpFieldTrials(
safe_seed_manager, synthetic_trial_registry);
}
- platform_field_trials->SetUpClientSideFieldTrials(
@@ -282,15 +282,15 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c
base::FeatureList::SetInstance(std::move(feature_list));
// For testing Variations Safe Mode, maybe crash here.
@@ -603,6 +599,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
const EntropyProviders& entropy_providers,
@@ -629,6 +625,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
base::FeatureList* feature_list,
SafeSeedManagerBase* safe_seed_manager) {
SafeSeedManagerBase* safe_seed_manager,
SyntheticTrialRegistry* synthetic_trial_registry) {
+ if ((true)) return false;
// This histogram name uses "VariationsFieldTrialCreator" rather than
// "VariationsFieldTrialCreatorBase" for consistency with historical data
TRACE_EVENT0("startup", "VariationsFieldTrialCreator::CreateTrialsFromSeed");
@@ -704,6 +701,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
@@ -744,6 +741,7 @@ bool VariationsFieldTrialCreatorBase::CreateTrialsFromSeed(
void VariationsFieldTrialCreatorBase::LoadSeedFromJsonFile(
const base::FilePath& json_seed_path) {
@@ -301,7 +301,7 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc
--- a/components/variations/service/variations_service.cc
+++ b/components/variations/service/variations_service.cc
@@ -223,17 +223,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
@@ -224,17 +224,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers,
// Variations seed fetching is only enabled in official Chrome builds, if a URL
// is specified on the command line, and for testing.
bool IsFetchingEnabled() {
@@ -321,7 +321,7 @@ diff --git a/components/variations/service/variations_service.cc b/components/va
}
// Returns the already downloaded first run seed, and clear the seed from the
@@ -607,7 +598,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
@@ -612,7 +603,7 @@ bool VariationsService::DoFetchFromURL(const GURL& url, bool is_http_retry) {
// debugger or if the machine was suspended) and OnURLFetchComplete() hasn't
// had a chance to run yet from the previous request. In this case, don't
// start a new request and just let the previous one finish.
+1 -1
View File
@@ -55,7 +55,7 @@ diff --git a/third_party/blink/renderer/modules/idle/idle_detector.idl b/third_p
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -2105,6 +2105,11 @@
@@ -2054,6 +2054,11 @@
name: "HTMLUnsafeMethods",
status: "experimental",
},
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
--- a/chrome/browser/media/router/media_router_feature.cc
+++ b/chrome/browser/media/router/media_router_feature.cc
@@ -110,6 +110,7 @@ void ClearMediaRouterStoredPrefsForTesting() {
@@ -106,6 +106,7 @@ void ClearMediaRouterStoredPrefsForTesting() {
}
bool MediaRouterEnabled(content::BrowserContext* context) {
@@ -23,7 +23,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
#if !BUILDFLAG(IS_ANDROID)
if (!base::FeatureList::IsEnabled(kMediaRouter))
return false;
@@ -151,7 +152,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
@@ -147,7 +148,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterStringPref(prefs::kMediaRouterReceiverIdHashToken, "",
PrefRegistry::PUBLIC);
registry->RegisterBooleanPref(
@@ -32,7 +32,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
registry->RegisterBooleanPref(
media_router::prefs::kMediaRouterShowCastSessionsStartedByOtherDevices,
true);
@@ -222,4 +223,7 @@ std::optional<base::TimeDelta> GetCastMirroringPlayoutDelay() {
@@ -218,4 +219,7 @@ std::optional<base::TimeDelta> GetCastMirroringPlayoutDelay() {
#endif // !BUILDFLAG(IS_ANDROID)
@@ -43,7 +43,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
@@ -419,7 +419,7 @@ void ProfileImpl::RegisterProfilePrefs(
@@ -425,7 +425,7 @@ void ProfileImpl::RegisterProfilePrefs(
#endif
registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
@@ -55,7 +55,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -589,6 +589,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
@@ -586,6 +586,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs(
WebRuntimeFeatures::EnableBackForwardCache(
content::IsBackForwardCacheEnabled());
@@ -79,7 +79,7 @@ diff --git a/third_party/blink/renderer/modules/remoteplayback/remote_playback.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -3163,14 +3163,10 @@
@@ -3086,14 +3086,10 @@
base_feature: "none",
},
{
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoint_fetcher/endpoint_fetcher.cc
--- a/components/endpoint_fetcher/endpoint_fetcher.cc
+++ b/components/endpoint_fetcher/endpoint_fetcher.cc
@@ -368,7 +368,7 @@ void EndpointFetcher::OnResponseFetched(
@@ -367,7 +367,7 @@ void EndpointFetcher::OnResponseFetched(
}
} else {
std::string net_error = net::ErrorToString(net_error_code);
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
--- a/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
+++ b/chrome/browser/ui/toolbar/chrome_location_bar_model_delegate.cc
@@ -289,5 +289,5 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() {
@@ -266,5 +266,5 @@ TemplateURLService* ChromeLocationBarModelDelegate::GetTemplateURLService() {
// static
void ChromeLocationBarModelDelegate::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -2129,9 +2129,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
@@ -2147,9 +2147,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() {
}
PluginData* LocalFrame::GetPluginData() const {
@@ -4,16 +4,16 @@ Subject: Disable prefers-reduced-transparency media query
This feature can be used for fingerprinting as it exposes a user preference
---
third_party/blink/renderer/core/css/media_query_exp.cc | 3 ++-
.../blink/renderer/core/css/parser/media_query_parser.cc | 4 ++--
.../renderer/core/preferences/preference_manager.idl | 2 +-
.../renderer/platform/runtime_enabled_features.json5 | 8 ++++++--
4 files changed, 11 insertions(+), 6 deletions(-)
third_party/blink/renderer/core/css/media_query_exp.cc | 3 ++-
.../blink/renderer/core/css/parser/media_query_parser.cc | 4 ++--
.../blink/renderer/core/preferences/preference_manager.idl | 2 +-
.../blink/renderer/platform/runtime_enabled_features.json5 | 6 +++++-
4 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/third_party/blink/renderer/core/css/media_query_exp.cc b/third_party/blink/renderer/core/css/media_query_exp.cc
--- a/third_party/blink/renderer/core/css/media_query_exp.cc
+++ b/third_party/blink/renderer/core/css/media_query_exp.cc
@@ -112,7 +112,8 @@ static inline bool FeatureWithValidIdent(const String& media_feature,
@@ -114,7 +114,8 @@ static inline bool FeatureWithValidIdent(const String& media_feature,
ident == CSSValueID::kLess || ident == CSSValueID::kCustom;
}
@@ -51,21 +51,17 @@ diff --git a/third_party/blink/renderer/core/preferences/preference_manager.idl
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -3013,10 +3013,14 @@
@@ -2945,7 +2945,11 @@
settable_from_internals: true,
},
{
- name: "PrefersReducedData",
- status: "experimental",
+ name: "PrefersReducedData", // must be
+ status: "experimental", // disabled
base_feature: "none",
},
+ },
+ {
+ name: "PrefersReducedTransparency",
+ status: "experimental",
+ },
status: "experimental",
},
// This feature is deprecated and we are evangelizing affected sites.
// See https://crbug.com/346236 for current status.
{
--
@@ -4,15 +4,15 @@ Subject: Disable privacy issues in password manager
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/android/java/AndroidManifest.xml | 9 --------
.../generated_password_leak_detection_pref.cc | 3 +--
.../affiliation/affiliation_backend.cc | 1 +
.../affiliation/affiliation_service_impl.cc | 4 ++++
.../core/browser/affiliation/facet_manager.cc | 23 +++----------------
.../browser/features/password_features.cc | 4 ++++
.../leak_detection_check_factory_impl.cc | 5 ++++
.../leak_detection_check_impl.cc | 4 +---
8 files changed, 19 insertions(+), 34 deletions(-)
chrome/android/java/AndroidManifest.xml | 9 ---------
.../generated_password_leak_detection_pref.cc | 3 +--
.../affiliations/core/browser/affiliation_backend.cc | 1 +
.../core/browser/affiliation_service_impl.cc | 4 ++++
components/affiliations/core/browser/facet_manager.cc | 4 ++++
.../core/browser/features/password_features.cc | 4 ++++
.../leak_detection/leak_detection_check_factory_impl.cc | 5 +++++
.../browser/leak_detection/leak_detection_check_impl.cc | 4 +---
8 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
@@ -46,9 +46,9 @@ diff --git a/chrome/browser/password_manager/generated_password_leak_detection_p
}
// Returns whether the effective value of the Safe Browsing preferences for
diff --git a/components/password_manager/core/browser/affiliation/affiliation_backend.cc b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
--- a/components/password_manager/core/browser/affiliation/affiliation_backend.cc
+++ b/components/password_manager/core/browser/affiliation/affiliation_backend.cc
diff --git a/components/affiliations/core/browser/affiliation_backend.cc b/components/affiliations/core/browser/affiliation_backend.cc
--- a/components/affiliations/core/browser/affiliation_backend.cc
+++ b/components/affiliations/core/browser/affiliation_backend.cc
@@ -397,6 +397,7 @@ void AffiliationBackend::OnMalformedResponse(
}
@@ -57,9 +57,9 @@ diff --git a/components/password_manager/core/browser/affiliation/affiliation_ba
DCHECK(!fetcher_);
std::vector<FacetURI> requested_facet_uris;
for (const auto& facet_manager_pair : facet_managers_) {
diff --git a/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc b/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc
--- a/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc
+++ b/components/password_manager/core/browser/affiliation/affiliation_service_impl.cc
diff --git a/components/affiliations/core/browser/affiliation_service_impl.cc b/components/affiliations/core/browser/affiliation_service_impl.cc
--- a/components/affiliations/core/browser/affiliation_service_impl.cc
+++ b/components/affiliations/core/browser/affiliation_service_impl.cc
@@ -127,6 +127,10 @@ void AffiliationServiceImpl::Shutdown() {
void AffiliationServiceImpl::PrefetchChangePasswordURLs(
const std::vector<GURL>& urls,
@@ -71,50 +71,24 @@ diff --git a/components/password_manager/core/browser/affiliation/affiliation_se
std::vector<FacetURI> facets;
std::vector<url::SchemeHostPort> tuple_origins;
for (const auto& url : urls) {
diff --git a/components/password_manager/core/browser/affiliation/facet_manager.cc b/components/password_manager/core/browser/affiliation/facet_manager.cc
--- a/components/password_manager/core/browser/affiliation/facet_manager.cc
+++ b/components/password_manager/core/browser/affiliation/facet_manager.cc
@@ -117,25 +117,7 @@ void FacetManager::GetAffiliationsAndBranding(
diff --git a/components/affiliations/core/browser/facet_manager.cc b/components/affiliations/core/browser/facet_manager.cc
--- a/components/affiliations/core/browser/facet_manager.cc
+++ b/components/affiliations/core/browser/facet_manager.cc
@@ -117,6 +117,10 @@ void FacetManager::GetAffiliationsAndBranding(
RequestInfo request_info;
request_info.callback = std::move(callback);
request_info.callback_task_runner = callback_task_runner;
- if (IsCachedDataFresh()) {
- AffiliatedFacetsWithUpdateTime affiliation;
- if (!backend_->ReadAffiliationsAndBrandingFromDatabase(facet_uri_,
- &affiliation)) {
- ServeRequestWithFailure(std::move(request_info));
- return;
- }
- DCHECK_EQ(affiliation.last_update_time, last_update_time_) << facet_uri_;
- ServeRequestWithSuccess(std::move(request_info), affiliation.facets);
- } else if (cache_miss_strategy == StrategyOnCacheMiss::FETCH_OVER_NETWORK) {
- pending_requests_.push_back(std::move(request_info));
- backend_->SignalNeedNetworkRequest();
- } else if (cache_miss_strategy ==
- StrategyOnCacheMiss::TRY_ONCE_OVER_NETWORK) {
- pending_one_time_requests_.push_back(std::move(request_info));
- backend_->SignalNeedNetworkRequest();
- } else {
- ServeRequestWithFailure(std::move(request_info));
- }
+ ServeRequestWithFailure(std::move(request_info));
}
void FacetManager::Prefetch(const base::Time& keep_fresh_until) {
@@ -254,7 +236,8 @@ void FacetManager::ServeRequestWithSuccess(
const AffiliatedFacets& affiliation) {
request_info.callback_task_runner->PostTask(
FROM_HERE,
- base::BindOnce(std::move(request_info.callback), affiliation, true));
+ base::BindOnce(std::move(request_info.callback),
+ AffiliatedFacets(), false));
}
// static
+ if ((true)) {
+ ServeRequestWithFailure(std::move(request_info));
+ return;
+ }
if (IsCachedDataFresh()) {
AffiliatedFacetsWithUpdateTime affiliation;
if (!backend_->ReadAffiliationsAndBrandingFromDatabase(facet_uri_,
diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc
--- a/components/password_manager/core/browser/features/password_features.cc
+++ b/components/password_manager/core/browser/features/password_features.cc
@@ -181,4 +181,8 @@ BASE_FEATURE(kUseGMSCoreForBrandingInfo,
@@ -176,4 +176,8 @@ BASE_FEATURE(kUseGMSCoreForBrandingInfo,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
@@ -39,7 +39,7 @@ diff --git a/net/http/http_stream_factory_job_controller.cc b/net/http/http_stre
continue;
}
@@ -1303,8 +1299,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
@@ -1305,8 +1301,7 @@ HttpStreamFactory::JobController::GetAlternativeServiceInfoInternal(
GURL destination = CreateAltSvcUrl(
original_url, alternative_service_info.host_port_pair());
+18 -16
View File
@@ -4,19 +4,19 @@ Subject: Disable safety check
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/android/BUILD.gn | 5 -----
chrome/android/chrome_java_sources.gni | 1 -
chrome/android/java/res/xml/main_preferences.xml | 5 -----
.../chrome/browser/settings/SettingsActivity.java | 13 -------------
.../browser/settings/SettingsLauncherImpl.java | 5 +----
chrome/browser/BUILD.gn | 1 -
.../omnibox/suggestions/action/OmniboxPedal.java | 3 ---
7 files changed, 1 insertion(+), 32 deletions(-)
chrome/android/BUILD.gn | 5 -----
chrome/android/chrome_java_sources.gni | 1 -
chrome/android/java/res/xml/main_preferences.xml | 5 -----
.../chrome/browser/settings/SettingsActivity.java | 15 ---------------
.../browser/settings/SettingsLauncherImpl.java | 5 +----
chrome/browser/BUILD.gn | 1 -
.../omnibox/suggestions/action/OmniboxPedal.java | 3 ---
7 files changed, 1 insertion(+), 34 deletions(-)
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -400,7 +400,6 @@ if (current_toolchain == default_toolchain) {
@@ -401,7 +401,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/recent_tabs:helper_java",
"//chrome/browser/recent_tabs:java",
"//chrome/browser/safe_browsing/android:java",
@@ -24,7 +24,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_resumption:java",
@@ -1034,8 +1033,6 @@ if (current_toolchain == default_toolchain) {
@@ -1039,8 +1038,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/recent_tabs:java",
"//chrome/browser/recent_tabs:junit",
"//chrome/browser/recent_tabs/internal:junit",
@@ -33,7 +33,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//chrome/browser/screenshot_monitor:java",
"//chrome/browser/search_engines/android:java",
"//chrome/browser/search_engines/android:junit",
@@ -1655,8 +1652,6 @@ if (current_toolchain == default_toolchain) {
@@ -1661,8 +1658,6 @@ if (current_toolchain == default_toolchain) {
"//chrome/browser/quick_delete:javatests",
"//chrome/browser/safe_browsing/android:java",
"//chrome/browser/safe_browsing/android:javatests",
@@ -45,7 +45,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1001,7 +1001,6 @@ chrome_java_sources = [
@@ -1009,7 +1009,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
"java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java",
@@ -71,17 +71,18 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
@@ -64,9 +64,6 @@ import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsBaseFra
import org.chromium.chrome.browser.profiles.Profile;
@@ -66,10 +66,6 @@ import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragmentBase;
-import org.chromium.chrome.browser.safety_check.SafetyCheckBridge;
-import org.chromium.chrome.browser.safety_check.SafetyCheckCoordinator;
-import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
-import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl;
import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
@@ -531,16 +528,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
@@ -535,17 +531,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
baseSiteSettingsFragment.setCustomTabIntentHelper(
LaunchIntentDispatcher::createCustomTabActivityIntent);
}
@@ -89,6 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
- SafetyCheckCoordinator.create(
- (SafetyCheckSettingsFragment) fragment,
- new SafetyCheckUpdatesDelegateImpl(),
- new SafetyCheckBridge(mProfile),
- mSettingsLauncher,
- SyncConsentActivityLauncherImpl.get(),
- getModalDialogManagerSupplier(),
@@ -123,7 +125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -3461,7 +3461,6 @@ static_library("browser") {
@@ -3482,7 +3482,6 @@ static_library("browser") {
"//chrome/browser/reading_list/android",
"//chrome/browser/recent_tabs:jni_headers",
"//chrome/browser/safe_browsing/android:safe_browsing_enums",
@@ -55,7 +55,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
@@ -219,6 +219,7 @@ public abstract class ChromeFeatureList {
@@ -220,6 +220,7 @@ public abstract class ChromeFeatureList {
public static final String CCT_MINIMIZED_ENABLED_BY_DEFAULT = "CCTMinimizedEnabledByDefault";
public static final String CCT_INTENT_FEATURE_OVERRIDES = "CCTIntentFeatureOverrides";
public static final String CCT_PAGE_INSIGHTS_HUB = "CCTPageInsightsHub";
@@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -1622,7 +1622,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient(
@@ -1625,7 +1625,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient(
std::unique_ptr<media::SpeechRecognitionClient>
ChromeContentRendererClient::CreateSpeechRecognitionClient(
content::RenderFrame* render_frame) {
@@ -34,7 +34,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
@@ -312,6 +312,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
@@ -306,6 +306,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() {
#endif
{wf::EnableTouchDragAndContextMenu,
raw_ref(features::kTouchDragAndContextMenu)},
@@ -74,7 +74,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -4487,9 +4487,14 @@ void Document::SetURL(const KURL& url) {
@@ -4624,9 +4624,14 @@ void Document::SetURL(const KURL& url) {
TRACE_EVENT1("navigation", "Document::SetURL", "url",
new_url.GetString().Utf8());
@@ -92,7 +92,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -3753,10 +3753,9 @@
@@ -3687,10 +3687,9 @@
},
{
name: "TextFragmentIdentifiers",
@@ -76,7 +76,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl.
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
@@ -8681,7 +8681,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() {
@@ -8686,7 +8686,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() {
void NavigationRequest::ForceEnableOriginTrials(
const std::vector<std::string>& trials) {
DCHECK(!HasCommitted());
@@ -106,7 +106,7 @@ diff --git a/content/browser/renderer_host/origin_trial_state_host_impl.cc b/con
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -485,10 +485,6 @@ void FillNavigationParamsRequest(
@@ -538,10 +538,6 @@ void FillNavigationParamsRequest(
common_params.initiator_origin.value();
}
@@ -117,7 +117,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
navigation_params->was_discarded = commit_params.was_discarded;
navigation_params->document_ukm_source_id =
commit_params.document_ukm_source_id;
@@ -516,12 +512,6 @@ void FillNavigationParamsRequest(
@@ -569,12 +565,6 @@ void FillNavigationParamsRequest(
navigation_params->had_transient_user_activation =
common_params.has_user_gesture;
@@ -130,7 +130,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
if (!commit_params.early_hints_preloaded_resources.empty()) {
navigation_params->early_hints_preloaded_resources = WebVector<WebURL>();
for (const auto& resource : commit_params.early_hints_preloaded_resources) {
@@ -583,11 +573,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
@@ -636,11 +626,6 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
info->url_request.GetURLRequestExtraData().get());
DCHECK(url_request_extra_data);
@@ -142,7 +142,7 @@ diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_fra
blink::NavigationDownloadPolicy download_policy;
download_policy.ApplyDownloadFramePolicy(
info->is_opener_navigation, info->url_request.HasUserGesture(),
@@ -610,7 +595,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
@@ -663,7 +648,7 @@ blink::mojom::CommonNavigationParamsPtr MakeCommonNavigationParams(
info->url_request.HasUserGesture(),
info->url_request.HasTextFragmentToken(),
info->should_check_main_world_content_security_policy,
@@ -227,7 +227,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return result;
}
@@ -2939,10 +2926,6 @@ void DocumentLoader::CreateParserPostCommit() {
@@ -2936,10 +2923,6 @@ void DocumentLoader::CreateParserPostCommit() {
mojom::blink::OriginTrialFeature::kTouchEventFeatureDetection);
}
+8 -8
View File
@@ -24,9 +24,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
@@ -62,7 +62,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity
static final String SHOW_SEARCH_ENGINE_PAGE = "ShowSearchEnginePage";
@@ -63,7 +63,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity
static final String SHOW_SYNC_CONSENT_PAGE = "ShowSyncConsent";
static final String SHOW_HISTORY_SYNC_PAGE = "ShowHistorySync";
- public static final boolean DEFAULT_METRICS_AND_CRASH_REPORTING = true;
+ public static final boolean DEFAULT_METRICS_AND_CRASH_REPORTING = false;
@@ -91,7 +91,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -1060,7 +1060,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -1081,7 +1081,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) {
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled,
@@ -103,7 +103,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -84,7 +84,6 @@
@@ -83,7 +83,6 @@
#include "chrome/browser/hid/chrome_hid_delegate.h"
#include "chrome/browser/interstitials/enterprise_util.h"
#include "chrome/browser/lifetime/browser_shutdown.h"
@@ -111,7 +111,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "chrome/browser/media/audio_service_util.h"
#include "chrome/browser/media/prefs/capture_device_ranking.h"
#include "chrome/browser/media/router/media_router_feature.h"
@@ -4880,16 +4879,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -4908,16 +4907,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
content::NavigationHandle* handle) {
std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
@@ -128,7 +128,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
MaybeAddThrottle(
SupervisedUserNavigationThrottle::MaybeCreateThrottleFor(handle),
@@ -4990,10 +4979,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
@@ -5018,10 +5007,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation(
throttle_manager->MaybeAppendNavigationThrottles(handle, &throttles);
}
@@ -142,7 +142,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
--- a/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_services_manager_client.cc
@@ -90,6 +90,10 @@ BASE_FEATURE(kPostFREFixMetricsReportingFeature,
@@ -92,6 +92,10 @@ BASE_FEATURE(kPostFREFixMetricsReportingFeature,
// Name of the variations param that defines the sampling rate.
const char kRateParamName[] = "sampling_rate_per_mille";
@@ -222,7 +222,7 @@ diff --git a/components/ntp_tiles/most_visited_sites.cc b/components/ntp_tiles/m
diff --git a/services/metrics/public/cpp/ukm_recorder.cc b/services/metrics/public/cpp/ukm_recorder.cc
--- a/services/metrics/public/cpp/ukm_recorder.cc
+++ b/services/metrics/public/cpp/ukm_recorder.cc
@@ -122,4 +122,5 @@ void UkmRecorder::RemoveObserver(Observer* observer) {
@@ -138,4 +138,5 @@ void UkmRecorder::RemoveObserver(Observer* observer) {
observers_.RemoveObserver(observer);
}
@@ -9,7 +9,7 @@ Subject: Disallow Android App Scheme as referrer
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -542,11 +542,6 @@ void ChromeContentRendererClient::RenderThreadStarted() {
@@ -547,11 +547,6 @@ void ChromeContentRendererClient::RenderThreadStarted() {
// TODO(nyquist): Add test to ensure this happens when the flag is set.
WebSecurityPolicy::RegisterURLSchemeAsDisplayIsolated(dom_distiller_scheme);
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1435,8 +1435,6 @@ static_library("ui") {
@@ -1416,8 +1416,6 @@ static_library("ui") {
"singleton_tabs.h",
"startup/automation_infobar_delegate.cc",
"startup/automation_infobar_delegate.h",

Some files were not shown because too many files have changed in this diff Show More