Compare commits
173
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ac973e33e3 | ||
|
|
b8df90d728 | ||
|
|
0068783e64 | ||
|
|
d93475c418 | ||
|
|
e6be41912c | ||
|
|
231c7911e7 | ||
|
|
798b247bd7 | ||
|
|
96057162da | ||
|
|
81414bf266 | ||
|
|
ffc5de1ec7 | ||
|
|
6cd2f7afee | ||
|
|
372e4b43d0 | ||
|
|
6c99513344 | ||
|
|
68cd9afc6c | ||
|
|
9eb67807ec | ||
|
|
fdc60b34ba | ||
|
|
f0c8b7b98c | ||
|
|
e16f7a5a77 | ||
|
|
d3765627a1 | ||
|
|
89c6812817 | ||
|
|
73f0df3c90 | ||
|
|
6989c57e63 | ||
|
|
7ff2d1ed14 | ||
|
|
351c24b3dc | ||
|
|
f5d7de125b | ||
|
|
f708a519b1 | ||
|
|
16818b1d05 | ||
|
|
69c048fcbc | ||
|
|
aa3c3ad076 | ||
|
|
7bb7d7a856 | ||
|
|
3276e0f1ec | ||
|
|
b49ba700a7 | ||
|
|
a4aad222af | ||
|
|
4d82c0beec | ||
|
|
563e6f9a2d | ||
|
|
f8cc243015 | ||
|
|
41e6364c29 | ||
|
|
7c751aedb2 | ||
|
|
5951e48f47 | ||
|
|
8923ff2278 | ||
|
|
a8503d9689 | ||
|
|
f0c183a124 | ||
|
|
2d54179bf9 | ||
|
|
b937cb60ec | ||
|
|
948232d7fc | ||
|
|
9ceadc8787 | ||
|
|
98b696850a | ||
|
|
6c0676eeb8 | ||
|
|
cd81f3a4c7 | ||
|
|
443396cd8f | ||
|
|
477e0b596a | ||
|
|
685ae28e96 | ||
|
|
97e13fb5c0 | ||
|
|
bbea4e614b | ||
|
|
66b68c0008 | ||
|
|
67d7c47488 | ||
|
|
91f6cb6fbd | ||
|
|
a598f0d3ff | ||
|
|
37371ede06 | ||
|
|
d24b215d27 | ||
|
|
7d160b893f | ||
|
|
fe0c1cba97 | ||
|
|
ab02385ba8 | ||
|
|
8e19cfd2e0 | ||
|
|
322478cc9c | ||
|
|
a252cb7bc9 | ||
|
|
8df670e568 | ||
|
|
6511f3ec2e | ||
|
|
e071e7efbc | ||
|
|
9405d5e482 | ||
|
|
a1d941a0b6 | ||
|
|
534ab1be85 | ||
|
|
b228ed72c2 | ||
|
|
8c6ecb46a7 | ||
|
|
6348da2dc7 | ||
|
|
dbacbb5d25 | ||
|
|
d62bb78c21 | ||
|
|
1cc6c158f9 | ||
|
|
f0682a0a9d | ||
|
|
bc584f8fcb | ||
|
|
1cce2f1434 | ||
|
|
30bcef4e01 | ||
|
|
9acda3aed3 | ||
|
|
e84f1330b4 | ||
|
|
6144adc652 | ||
|
|
2fcd346d93 | ||
|
|
aeb7dce1db | ||
|
|
5bc8c21500 | ||
|
|
fac696b3a4 | ||
|
|
8fc87b2af8 | ||
|
|
a99aff1188 | ||
|
|
f978f09587 | ||
|
|
4abd03221f | ||
|
|
0520926856 | ||
|
|
7c79ae4952 | ||
|
|
8998e3de4c | ||
|
|
19099fbee4 | ||
|
|
6b446dcd3d | ||
|
|
a35804c2ca | ||
|
|
7b790f2856 | ||
|
|
15c609d676 | ||
|
|
136f8e6b75 | ||
|
|
b80b51ccd3 | ||
|
|
4da02214e2 | ||
|
|
4ca804577e | ||
|
|
66210f9ff6 | ||
|
|
a269481b57 | ||
|
|
b3258066f2 | ||
|
|
a42b1e7fc6 | ||
|
|
dd4a5ee253 | ||
|
|
d8e9716de3 | ||
|
|
55b2ed5d13 | ||
|
|
6ee953a844 | ||
|
|
69ef85908e | ||
|
|
8c58bf81a3 | ||
|
|
ad20a84ec4 | ||
|
|
dc9e3cfb2c | ||
|
|
89afe5e5ad | ||
|
|
95a360e396 | ||
|
|
5a93f72bda | ||
|
|
f9a6b8febc | ||
|
|
26d88dcdf5 | ||
|
|
a3a3710fb9 | ||
|
|
176624189c | ||
|
|
37d1c12747 | ||
|
|
2a4e8bc8d0 | ||
|
|
ac235cb95c | ||
|
|
a93df08853 | ||
|
|
a608bc0a78 | ||
|
|
4959bf64ec | ||
|
|
2b1f1faa7c | ||
|
|
c3f33c02a7 | ||
|
|
0543a8a30b | ||
|
|
30e471d6d5 | ||
|
|
706aa53fff | ||
|
|
0b445ac869 | ||
|
|
b65b503086 | ||
|
|
74cf1d1c0e | ||
|
|
3d9aa9e924 | ||
|
|
151a5479cd | ||
|
|
c39e3f2300 | ||
|
|
e0bd1dcad3 | ||
|
|
f617340fcf | ||
|
|
6fc978d285 | ||
|
|
3c1546189b | ||
|
|
4d606bb7f3 | ||
|
|
0913a726df | ||
|
|
ecf04a94ca | ||
|
|
f661e4f1b6 | ||
|
|
284a9227c7 | ||
|
|
7fbd09f3fd | ||
|
|
274d6792a7 | ||
|
|
172d20dc88 | ||
|
|
27de00b037 | ||
|
|
6d7f0454eb | ||
|
|
889b9973db | ||
|
|
a072e3f213 | ||
|
|
a2939070ae | ||
|
|
d7764cf6bb | ||
|
|
09813e1323 | ||
|
|
bbd3e1ae70 | ||
|
|
bba935392b | ||
|
|
a566fa9d36 | ||
|
|
0fceae6fcb | ||
|
|
de49992843 | ||
|
|
638d7a12bd | ||
|
|
3fcd3ed94a | ||
|
|
807f3a771d | ||
|
|
79e176dd6e | ||
|
|
94d2bececa | ||
|
|
07ed430d73 | ||
|
|
a68bb3a3ab | ||
|
|
81d5846fdc |
@@ -0,0 +1,5 @@
|
||||
[*.{yaml,sh,gn_args}]
|
||||
tab_width = 2
|
||||
indent_size = 2
|
||||
end_of_line = crlf
|
||||
indent_style = space
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -158,7 +158,7 @@ jobs:
|
||||
runs-on: ${{ github.event.inputs.type }}
|
||||
needs: check_images
|
||||
if: success()
|
||||
timeout-minutes: 1200
|
||||
timeout-minutes: 1440
|
||||
|
||||
container:
|
||||
image: uazo/cromite-build:build
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
@@ -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,237 +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
|
||||
|
||||
#### Derived from Bromite
|
||||
* customizable adblock filters via user-provided URL (see https://www.bromite.org/custom-filters) (deprecated, replaced by adblock plus)
|
||||
* automatically updated adblock filters
|
||||
* remove click-tracking and AMP from search results
|
||||
* DNS-over-HTTPS support with any valid IETF DoH endpoint
|
||||
* always-incognito mode
|
||||
* disable all field trials permanently
|
||||
* disable smart search by default, allow web search from incognito mode
|
||||
* always-visible cookies, javascript and ads site settings from address bar popup
|
||||
* remove Play integration binary blobs
|
||||
* ~use [CFI](https://en.wikipedia.org/wiki/Control-flow_integrity) on all architectures except x86 and Windows~ dropped from v117 see https://github.com/uazo/cromite/discussions/292
|
||||
* enable trivial auto var init
|
||||
* disable media router and remoting by default
|
||||
* disable dynamic module loading
|
||||
* show warnings for TLSv1.0/TLSv1.1 pages
|
||||
* enable site-per-process isolation for all devices with memory > 1GB
|
||||
* [proxy configuration page](https://github.com/bromite/bromite/wiki/ProxyConfiguration) with PAC and custom proxy lists support
|
||||
* settings to disable custom intents and clear session on exit
|
||||
* flags to toggle anti-fingerprinting mitigations for canvas, audio, client rects, webGL and sensor APIs (see full list below for all the new flags)
|
||||
* use frozen User-Agent to conceal real model and browser version
|
||||
* privacy enhancement patches from [Iridium](https://iridiumbrowser.de/), [Inox patchset](https://github.com/gcarq/inox-patchset), [Brave](https://brave.com/) and [ungoogled-chromium](https://github.com/Eloston/ungoogled-chromium) projects
|
||||
* security enhancement patches from [GrapheneOS](https://github.com/GrapheneOS) project
|
||||
* reduced referer granularity
|
||||
* block gateway attacks via websockets (partial fix, see [this upstream issue](https://bugs.chromium.org/p/chromium/issues/detail?id=590714))
|
||||
* use 64-bit ABI for webview processes
|
||||
* make all favicon requests on-demand ([supercookie](https://supercookie.me/) mitigation)
|
||||
* enable all network isolation features (`PartitionConnectionsByNetworkIsolationKey`, `PartitionHttpServerPropertiesByNetworkIsolationKey`, `SplitHostCacheByNetworkIsolationKey`, `AppendFrameOriginToNetworkIsolationKey`, `SplitCacheByNetworkIsolationKey`, `UseRegistrableDomainInNetworkIsolationKey`, `PartitionSSLSessionsByNetworkIsolationKey`, `PartitionExpectCTStateByNetworkIsolationKey`, `PartitionDomainReliabilityByNetworkIsolationKey`)
|
||||
* ignore enterprise policies that disallow secure DNS
|
||||
* ask permission to play protected media
|
||||
* disable the DIAL repeating discovery
|
||||
* disable RTCGetCurrentBrowsingContextMedia by default
|
||||
* disable FLoC and privacy sandbox by default
|
||||
* disable feeds
|
||||
* disable reporting of certificate errors
|
||||
* use pre-defined phone model for client hints and Javascript
|
||||
* allow forcing external links to open in incognito
|
||||
* disable AGSA by default
|
||||
* flag to enable Certificate Transparency
|
||||
* allow adding search engines from incognito mode
|
||||
* disable predictors
|
||||
* disable supervised users
|
||||
* disable safety check
|
||||
* disable capability to block `view-source:` URLs
|
||||
* disable `SegmentationPlatformFeature`, `OptimizationHints`, client hint headers
|
||||
* disable `AsyncDNS` by default
|
||||
* customize history expiration threshold
|
||||
* disable idle detection
|
||||
* HTTPS-only mode enabled by default
|
||||
* disable TLS resumption by default
|
||||
* strict site isolation and strict origin isolation
|
||||
* partition blobs by top frame URL
|
||||
|
||||
#### Cromite-specific features
|
||||
|
||||
* Built-in Adblock Plus [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Eyeo-Adblock-Remove-Privacy-Issues.patch) (issue [84](https://github.com/uazo/bromite-buildtools/issues/84))
|
||||
* policy browser patch for the use of enterprise policy [patch](https://github.com/uazo/bromite/blob/master/build/patches/00add-browser-policy.patch) (issue [191](https://github.com/uazo/bromite-buildtools/issues/191))
|
||||
- deactivate safe browsing and extended reporting
|
||||
- disabled scroll-to-text-fragment
|
||||
- disabled contextual search
|
||||
- disabled media router
|
||||
- disabled url keyed anonymized data collection
|
||||
- disabled translate
|
||||
- disabled network prediction
|
||||
- disabled sign-in
|
||||
- disabled google search side panel
|
||||
- disabled automatic https upgrades
|
||||
* internal firewall to block all unauthorised calls made from the browser [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Internal-firewall.patch) (issue [147](https://github.com/uazo/bromite-buildtools/issues/147))
|
||||
* show warnings on downloads over HTTP [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Show-warnings-on-downloads-over-HTTP.patch)
|
||||
* lock profile cookie database [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Lock-Profile-Cookie-Database.patch)
|
||||
* remove support for device memory and cpu recovery [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-support-for-device-memory-and-cpu-recovery.patch)
|
||||
* disable speechSynthesis getVoices API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-speechSynthesis-getVoices-API.patch)
|
||||
* viewport Protection patch [patch](https://github.com/uazo/bromite/blob/master/build/patches/Viewport-Protection-flag.patch)
|
||||
* deprecate Data URL in SVGUseElement [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Deprecate-Data-URL-in-SVGUseElement.patch)
|
||||
* disallow Android App Scheme as referrer [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disallow-Android-App-Scheme-as-referrer.patch)
|
||||
* disable Compression Dictionary Transport [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-Compression-Dictionary-Transport.patch)
|
||||
* disable PrivateStateTokens API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-PrivateStateTokens-API.patch)
|
||||
* disable GSA by default [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-GSA-by-default.patch)
|
||||
* disable GetInstalledRelatedApps API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-GetInstalledRelatedApps-API.patch)
|
||||
* disable FirstPartySets and StorageAccessAPI [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-FirstPartySets-and-StorageAccessAPI.patch)
|
||||
* disable WebGPU [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-WebGPU.patch)
|
||||
* disable GamePad API [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Add-a-flag-to-disable-GamePad-API.patch)
|
||||
* remove external https connection from chrome://discards [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-https-connection-from-chrome-discards.patch)
|
||||
* links the use of screen.isExtended to WINDOW_MANAGEMENT permission granted by user [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Multi-Screen-Window-Placement-API-fix.patch)
|
||||
* clear CORS Preflight Cache on clearing data [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Clear-CORS-Preflight-Cache-on-clearing-data.patch)
|
||||
* remove auth header upon cross origin redirect [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-auth-header-upon-cross-origin-redirect.patch)
|
||||
* disable SHA1 Server Signature [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-SHA1-Server-Signature.patch)
|
||||
* remove detection of captive portals [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Remove-detection-of-captive-portals.patch)
|
||||
* disable devtools remote and custom protocols [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-devtools-remote-and-custom-protocols.patch)
|
||||
* enable Document Open Inheritance Removal [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Enable-Document-Open-Inheritance-Removal.patch)
|
||||
* warning message for unsupported hardware aes [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Warning-message-for-unsupported-hardware-aes.patch)
|
||||
* partition HSTS cache by NAK [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Partition-HSTS-cache-by-NAK.patch)
|
||||
* disable password leak detector [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-privacy-issues-in-password-manager.patch)
|
||||
* keyboard protection flag [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Keyboard-protection-flag.patch)
|
||||
* disable csp reports [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-csp-reports.patch)
|
||||
* add setting to clear data on exit [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Add-setting-to-clear-data-on-exit.patch)
|
||||
* disable visited pseudo class [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-visited-pseudo-class.patch)
|
||||
* disable BackForwardCache [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-BackForwardCache.patch)
|
||||
* disable FedCm [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Disable-FedCm.patch)
|
||||
* partitioning all cookies by top frame domain [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Partitioning-all-cookies-by-top-frame-domain.patch)
|
||||
* fingerprint mitigation for AudioBuffer and AnalyserNode [patch](https://github.com/uazo/bromite/blob/master/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch)
|
||||
|
||||
##### from [116.0.5845.111](https://github.com/uazo/cromite/issues/205#issuecomment-1690216310)
|
||||
* Disable PartnerCustomizations [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Disable-PartnerCustomizations.patch) [#202](https://github.com/uazo/cromite/issues/202)
|
||||
* Add option to disable snapshots [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Add-option-to-disable-snapshots.patch) [#201](https://github.com/uazo/cromite/issues/201)
|
||||
* Enable Android Dynamic Performance Framework on renderer [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Enable-Android-Dynamic-Performance-Framework.patch)
|
||||
|
||||
##### from [117.0.5938.63](https://github.com/uazo/cromite/issues/293)
|
||||
* Added support for blocking in service workers in AdblockPlus #254 [patch](https://github.com/uazo/cromite/blob/master/build/patches/00AdblockPlus-add-blocking-in-service-workers.patch)
|
||||
* Drop CFI support (see https://github.com/uazo/cromite/discussions/292)
|
||||
* Enabled Improved Bookmarks UI by default [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Enable-ImprovedBookmarks-by-default.patch)
|
||||
* Removed Google private API from accounts.google.com [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Remove-GoogleAccountsPrivateApiHost.patch)
|
||||
|
||||
##### from [117.0.5938.140](https://github.com/uazo/cromite/issues/349#issuecomment-1740388786)
|
||||
* Partition MediaDeviceId by default [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Partition-MediaDeviceId-by-default.patch)
|
||||
|
||||
##### from [118.0.5993.118](https://github.com/uazo/cromite/issues/458#issuecomment-1780511486)
|
||||
* Add support for jpeg xl [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Add-support-to-jxl.patch) https://github.com/uazo/cromite/issues/351
|
||||
* Disable prefers-reduced-transparency media query [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Disable-prefers-reduced-transparency-media-query.patch) https://github.com/uazo/cromite/issues/437
|
||||
* Show full urls for bookmark [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Show-full-urls-for-bookmark.patch) https://github.com/uazo/cromite/issues/434
|
||||
|
||||
##### from [119.0.6045.106](https://github.com/uazo/cromite/issues/484#issuecomment-1788744844)
|
||||
* Always clear js and wasm code cache at startup
|
||||
* Block Intents While Locked [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Block-Intents-While-Locked.patch)
|
||||
* Keep Manta Service Disabled [patch](https://github.com/uazo/cromite/blob/master/build/patches/00Keep-Manta-Service-Disabled.patch)
|
||||
* (Only windows) Hide the presence of the webcam if the user has not given permission #480
|
||||
|
||||
##### from [119.0.6045.124](https://github.com/uazo/cromite/issues/484#issuecomment-17887448441)
|
||||
* Disable Service and Shared workers on 3P iframe by default [patch](https://github.com/uazo/cromite/commit/8f293b2c9927f1185bbf95e11a280898fe9baa9a)
|
||||
|
||||
#### Windows Cromite-specific features
|
||||
|
||||
* enable Network Service Sandbox by default
|
||||
* disable sharing hub
|
||||
* disable search for image
|
||||
* simpler logging to file
|
||||
* disable TabHoverCard images
|
||||
* enable File System Access blocklist
|
||||
* enable HighEfficiencyMode by default
|
||||
* disable annotates on downloads
|
||||
* enabled pdf plugin by default
|
||||
|
||||
## Features not related to privacy
|
||||
|
||||
#### Derived da Bromite
|
||||
* browser automatic updates, enabled by default
|
||||
* native Android autofill support
|
||||
* import/export bookmarks
|
||||
* bookmark all tabs from tabs regroup menu
|
||||
* allow playing videos in background tabs and disable pause on switching tabs
|
||||
* all codecs included (proprietary, open H.264 etc.)
|
||||
* [AV1 codec support](https://github.com/bromite/bromite/wiki/AV1-support)
|
||||
* [dav1d](https://code.videolan.org/videolan/dav1d) decoder enabled by default
|
||||
* built with official speed optimizations
|
||||
* increase number of autocomplete matches from 5 to 10
|
||||
* allow changing default download storage location
|
||||
* do not ignore save prompt for users without SD cards
|
||||
* disable articles and increase number of icons on new tab page
|
||||
* adding an URL as bookmark will clear its blocked status for the NTP tiles
|
||||
* history support in incognito mode
|
||||
* view source of pages
|
||||
* sticky desktop mode setting
|
||||
* mobile/desktop user agent customization
|
||||
* accessibility preference to force tablet UI
|
||||
* use Alt+D to focus address bar
|
||||
* allow sharing to Bromite
|
||||
* UI for crash information collection
|
||||
* allow OpenSearch search engine detection in incognito
|
||||
* allow OpenSearch search engine detection with paths
|
||||
* keyboard dictionary hints in address bar
|
||||
* always allow `view-source:` URLs
|
||||
* allow moving navigation bar to bottom
|
||||
* add option to use home page as NTP
|
||||
|
||||
#### Cromite-specific features
|
||||
|
||||
* add setting in android to invert tap and long tap [patch](https://github.com/uazo/bromite/blob/master/build/patches/00Add-setting-to-invert-tap-and-long-tap.patch)
|
||||
|
||||
(TODO) You can inspect all functionality/privacy changes by reading the [patches](https://github.com/bromite/bromite/tree/master/build/patches) and/or the [CHANGELOG](./CHANGELOG.md).
|
||||
|
||||
### Flags
|
||||
|
||||
Flags which have been retired from upstream Chromium but are still available in Bromite.
|
||||
|
||||
* `#pull-to-refresh`
|
||||
* `#enable-search-ready-omnibox`
|
||||
* `#darken-websites-checkbox-in-themes-setting`
|
||||
* `#simplified-ntp`, enabled by default
|
||||
* `#enable-text-fragment-anchor`, disabled by default
|
||||
* `#num-raster-threads`
|
||||
* `#enable-image-reader`, enabled by default
|
||||
* `#enable-tab-groups` and `#enable-tab-groups-ui-improvements`
|
||||
* `#offline-indicator-v2`
|
||||
* `#enable-jxl`
|
||||
|
||||
New flags:
|
||||
|
||||
* `#fingerprinting-canvas-image-data-noise`, `#fingerprinting-client-rects-noise` and `#fingerprinting-canvas-measuretext-noise`, enabled by default
|
||||
* `#incognito-screenshot`, disabled by default
|
||||
* `#max-connections-per-host`
|
||||
* `#resume-background-video`
|
||||
* `#ipv6-probing`
|
||||
* `#enable-device-motion` and `#enable-device-orientation`
|
||||
* `#show-legacy-tls-warnings`
|
||||
* `#save-data-header`, disabled by default
|
||||
* `#export-bookmarks-use-saf`, disabled by default
|
||||
* `#allow-user-certificates`, disabled by default
|
||||
* `#cleartext-permitted`, enabled by default, can be used to disable all cleartext-HTTP traffic
|
||||
* `#omnibox-autocomplete-filtering`, can be used to restrict omnibox autocomplete results
|
||||
* `#disable-external-intent-requests`, can be used to disable opening any external app for any URL
|
||||
* `#enable-userscripts-log`, see https://github.com/bromite/bromite/wiki/UserScripts#flags
|
||||
* `#certificate-transparency-enabled`, enabled by default; see https://chromium.googlesource.com/chromium/src/+/master/net/docs/certificate-transparency.md
|
||||
* `#move-top-toolbar-to-bottom`, disabled by default
|
||||
* `#site-engagement`, enabled by default, can be used to disable the automatically-generated icons for most visited sites on the NTP
|
||||
|
||||
### Site settings
|
||||
|
||||
* webGL, disabled by default
|
||||
* images, enabled by default
|
||||
* Javascript JIT, disabled by default
|
||||
* timezone customization override
|
||||
* autoplay, disabled by default
|
||||
* webRTC, disabled by default
|
||||
* viewport protection, enabled by default
|
||||
|
||||
# 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).
|
||||
@@ -289,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
|
||||
@@ -301,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:
|
||||
@@ -310,42 +85,20 @@ icacls . /grant "*S-1-15-2-2:(OI)(CI)(RX)"
|
||||
```
|
||||
see https://github.com/uazo/bromite-buildtools/issues/51
|
||||
|
||||
## (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:
|
||||
### Enable AppContainer for renderer process in windows
|
||||
you can activate the 'RendererAppContainer' flag from the command line with
|
||||
```
|
||||
$ sha256sum --check brm_68.0.3440.54.sha256.txt
|
||||
arm64_SystemWebView.apk: OK
|
||||
arm64_ChromePublic.apk: OK
|
||||
arm64_ChromeModernPublic.apk: OK
|
||||
--enable-features=RendererAppContainer
|
||||
```
|
||||
|
||||
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
|
||||
@@ -359,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
@@ -1 +1 @@
|
||||
120.0.6099.230
|
||||
123.0.6312.105
|
||||
+48
-10
@@ -8,33 +8,24 @@ debuggable_apks=false
|
||||
dfmify_dev_ui=false
|
||||
disable_android_lint=true
|
||||
disable_fieldtrial_testing_config=true
|
||||
disable_tab_ui_dfm=true
|
||||
enable_av1_decoder=true
|
||||
enable_dav1d_decoder=true
|
||||
enable_gvr_services=false
|
||||
enable_hangout_services_extension=false
|
||||
enable_iterator_debugging=false
|
||||
enable_mdns=false
|
||||
enable_mse_mpeg2ts_stream_parser=true
|
||||
enable_nacl=false
|
||||
enable_platform_dolby_vision=true
|
||||
enable_platform_hevc=true
|
||||
enable_remoting=false
|
||||
enable_reporting=false
|
||||
enable_vr=false
|
||||
exclude_unwind_tables=false
|
||||
ffmpeg_branding="Chrome"
|
||||
icu_use_data_file=true
|
||||
is_component_build=false
|
||||
is_debug=false
|
||||
is_official_build=true
|
||||
proprietary_codecs=true
|
||||
rtc_build_examples=false
|
||||
symbol_level=1
|
||||
treat_warnings_as_errors=true
|
||||
use_debug_fission=true
|
||||
use_errorprone_java_compiler=false
|
||||
use_gnome_keyring=false
|
||||
use_official_google_api_keys=false
|
||||
use_rtti=false
|
||||
use_sysroot=false
|
||||
@@ -46,6 +37,42 @@ 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
|
||||
|
||||
# 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+
|
||||
use_relr_relocations=false
|
||||
@@ -61,8 +88,13 @@ enable_jxl_decoder = true
|
||||
# see https://github.com/uazo/cromite/issues/697
|
||||
use_minikin_hyphenation = false
|
||||
|
||||
# disable automatic update of sync-related cookies
|
||||
# initial commit: https://source.chromium.org/chromium/chromium/src/+/fd9a841f7a63b9f5510f6b713d9c833d259c63ad
|
||||
enable_bound_session_credentials = false
|
||||
|
||||
declare_args() {
|
||||
_is_debug_build = ""
|
||||
build_webview = false
|
||||
}
|
||||
|
||||
not_needed(["_target_build", "_is_debug_build"])
|
||||
@@ -76,7 +108,8 @@ if (target_os == "android") {
|
||||
#enable_kythe_annotations = true
|
||||
|
||||
chrome_public_manifest_package = "org.cromite.cromite"
|
||||
system_webview_package_name="org.cromite.webview"
|
||||
system_webview_package_name="org.cromite.webview" #"com.android.webview"
|
||||
system_webview_shell_package_name="org.cromite.webview_shell"
|
||||
|
||||
if (getenv("USE_KEYSTORE") != "") {
|
||||
android_keystore_path = "/home/lg/working_dir/cromite.keystore"
|
||||
@@ -98,6 +131,11 @@ if (target_os == "android") {
|
||||
} else {
|
||||
generate_linker_map = true
|
||||
}
|
||||
|
||||
if (build_webview) {
|
||||
# only 64bit
|
||||
skip_secondary_abi_for_cq = true
|
||||
}
|
||||
}
|
||||
|
||||
if (target_os == "win") {
|
||||
|
||||
+102
-96
@@ -150,7 +150,7 @@ Add-flag-for-save-data-header.patch
|
||||
Disable-UA-full-version.patch
|
||||
Dictionary-suggestions-for-the-Omnibox.patch
|
||||
Disable-AsyncDNS-by-default.patch
|
||||
00Restore-LastTabStandingTracker.patch
|
||||
Restore-LastTabStandingTracker.patch
|
||||
Add-lifetime-options-for-permissions.patch
|
||||
Disable-crash-reporting.patch
|
||||
Samsung-Note-9-SDK27-crazylinker-workaround.patch
|
||||
@@ -174,63 +174,60 @@ Partition-blobs-by-top-frame-URL.patch
|
||||
Override-Navigator-Language.patch
|
||||
Disable-add-to-home-screen-prompt.patch
|
||||
Remove-HTTP-referrals-in-cross-origin-navigation.patch
|
||||
Enable-ECH-by-default.patch
|
||||
Disable-StartSurface-feature.patch
|
||||
Enable-PermuteTLSExtensions-by-default.patch
|
||||
Enable-third-party-storage-partitioning.patch
|
||||
Restore-adaptive-button-in-top-toolbar-customization.patch
|
||||
Add-kill-switch-for-unsupported-clangd-flags.patch
|
||||
|
||||
00WIN-enable-pdf-plugin.patch
|
||||
00WIN-disable-annotate-downloads.patch
|
||||
00WIN-enable-HighEfficiencyMode-by-default.patch
|
||||
00WIN-enable-file-system-access-blocklist.patch
|
||||
00WIN-Disable-TabHoverCard-images.patch
|
||||
00WIN-Fix-log-to-file.patch
|
||||
00WIN-Disable-updater.patch
|
||||
00WIN-Disable-first-run.patch
|
||||
00WIN-Add-some-prefs-to-secure-preferences.patch
|
||||
00WIN-Disable-search-for-image.patch
|
||||
WIN-enable-pdf-plugin.patch
|
||||
WIN-disable-annotate-downloads.patch
|
||||
WIN-enable-HighEfficiencyMode-by-default.patch
|
||||
WIN-enable-file-system-access-blocklist.patch
|
||||
WIN-Disable-TabHoverCard-images.patch
|
||||
WIN-Fix-log-to-file.patch
|
||||
WIN-Disable-updater.patch
|
||||
WIN-Disable-first-run.patch
|
||||
WIN-Add-some-prefs-to-secure-preferences.patch
|
||||
WIN-Disable-search-for-image.patch
|
||||
|
||||
AudioBuffer-AnalyserNode-fp-mitigations.patch
|
||||
00Disable-Component-Updates.patch
|
||||
00add-browser-policy.patch
|
||||
00Always-open-browser-controls-in-new-tab.patch
|
||||
00Partitioning-all-cookies-by-top-frame-domain.patch
|
||||
00Disable-FedCm.patch
|
||||
00Disable-BackForwardCache.patch
|
||||
00Evict-the-entire-FrameTree-like-desktop.patch
|
||||
00Disable-visited-pseudo-class.patch
|
||||
00Add-setting-to-clear-data-on-exit.patch
|
||||
00WIN-Disable-sharing-hub.patch
|
||||
Disable-Component-Updates.patch
|
||||
add-browser-policy.patch
|
||||
Always-open-browser-controls-in-new-tab.patch
|
||||
Partitioning-all-cookies-by-top-frame-domain.patch
|
||||
Disable-FedCm.patch
|
||||
Disable-BackForwardCache.patch
|
||||
Evict-the-entire-FrameTree-like-desktop.patch
|
||||
Disable-visited-pseudo-class.patch
|
||||
Add-setting-to-clear-data-on-exit.patch
|
||||
WIN-Disable-sharing-hub.patch
|
||||
Improve-the-browser-sandbox.patch
|
||||
00Disable-csp-reports.patch
|
||||
00Fonts-fingerprinting-mitigation.patch
|
||||
00Keyboard-protection-flag.patch
|
||||
00Disable-privacy-issues-in-password-manager.patch
|
||||
00Partition-HSTS-cache-by-NAK.patch
|
||||
00Warning-message-for-unsupported-hardware-aes.patch
|
||||
00Enable-Document-Open-Inheritance-Removal.patch
|
||||
00Add-setting-to-invert-tap-and-long-tap.patch
|
||||
00Remove-ChromiumNetworkAdapter.patch
|
||||
00Internal-firewall.patch
|
||||
00Disable-devtools-remote-and-custom-protocols.patch
|
||||
00Remove-detection-of-captive-portals.patch
|
||||
00Disable-SHA1-Server-Signature.patch
|
||||
00Remove-auth-header-upon-cross-origin-redirect.patch
|
||||
00Clear-CORS-Preflight-Cache-on-clearing-data.patch
|
||||
00Multi-Screen-Window-Placement-API-fix.patch
|
||||
00Remove-https-connection-from-chrome-discards.patch
|
||||
00Add-a-flag-to-disable-GamePad-API.patch
|
||||
00Disable-WebGPU.patch
|
||||
00Disable-FirstPartySets-and-StorageAccessAPI.patch
|
||||
00Disable-GetInstalledRelatedApps-API.patch
|
||||
00Disable-GSA-by-default.patch
|
||||
00Disable-PrivateStateTokens-API.patch
|
||||
00Disallowing-MIDI-permission-by-default.patch
|
||||
00Disable-Compression-Dictionary-Transport.patch
|
||||
00Disallow-Android-App-Scheme-as-referrer.patch
|
||||
00Deprecate-Data-URL-in-SVGUseElement.patch
|
||||
Disable-csp-reports.patch
|
||||
Fonts-fingerprinting-mitigation.patch
|
||||
Keyboard-protection-flag.patch
|
||||
Disable-privacy-issues-in-password-manager.patch
|
||||
Partition-HSTS-cache-by-NAK.patch
|
||||
Warning-message-for-unsupported-hardware-aes.patch
|
||||
Enable-Document-Open-Inheritance-Removal.patch
|
||||
Add-setting-to-invert-tap-and-long-tap.patch
|
||||
Remove-ChromiumNetworkAdapter.patch
|
||||
Internal-firewall.patch
|
||||
Disable-devtools-remote-and-custom-protocols.patch
|
||||
Remove-detection-of-captive-portals.patch
|
||||
Remove-auth-header-upon-cross-origin-redirect.patch
|
||||
Clear-CORS-Preflight-Cache-on-clearing-data.patch
|
||||
Multi-Screen-Window-Placement-API-fix.patch
|
||||
Add-a-flag-to-disable-GamePad-API.patch
|
||||
Disable-WebGPU.patch
|
||||
Disable-FirstPartySets-and-StorageAccessAPI.patch
|
||||
Disable-GetInstalledRelatedApps-API.patch
|
||||
Disable-GSA-by-default.patch
|
||||
Disable-PrivateStateTokens-API.patch
|
||||
Disallowing-MIDI-permission-by-default.patch
|
||||
Disable-Compression-Dictionary-Transport.patch
|
||||
Disallow-Android-App-Scheme-as-referrer.patch
|
||||
Deprecate-Data-URL-in-SVGUseElement.patch
|
||||
Content-settings-infrastructure.patch
|
||||
Add-autoplay-site-setting.patch
|
||||
Site-setting-for-images.patch
|
||||
@@ -240,56 +237,65 @@ Add-webRTC-site-settings.patch
|
||||
Show-site-settings-for-cookies-javascript-and-ads.patch
|
||||
Viewport-Protection-flag.patch
|
||||
Timezone-customization.patch
|
||||
00Disable-speechSynthesis-getVoices-API.patch
|
||||
00Remove-support-for-device-memory-and-cpu-recovery.patch
|
||||
00Log-dangling-attributes-in-some-html-elements.patch
|
||||
00Keep-Side-Panel-Companion-disabled.patch
|
||||
00Lock-Profile-Cookie-Database.patch
|
||||
00Show-warnings-on-downloads-over-HTTP.patch
|
||||
00Compress-libchrome-to-free-up-some-space.patch
|
||||
00Cromite-Branding.patch
|
||||
00Disable-Feeback-Collector.patch
|
||||
00Disable-remote-altsvc-for-h3-connections.patch
|
||||
00do-not-block-build-incompatible-profiles.patch
|
||||
00Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch
|
||||
00allow-the-download-of-clang-for-windows-crossbuild.patch
|
||||
00Add-option-to-disable-snapshots.patch
|
||||
00Enable-Android-Dynamic-Performance-Framework.patch
|
||||
00Remove-GoogleAccountsPrivateApiHost.patch
|
||||
00Fix-crash-on-customize-profile-ui.patch
|
||||
00Enable-ImprovedBookmarks-by-default.patch
|
||||
00Partition-MediaDeviceId-by-default.patch
|
||||
00Keep-disabled-FetchLaterAPI.patch
|
||||
00Disable-ranker-url-fetcher.patch
|
||||
00Show-full-urls-for-bookmark.patch
|
||||
00Disable-prefers-reduced-transparency-media-query.patch
|
||||
00libjxl-0-8-2.patch
|
||||
00Add-support-to-jxl.patch
|
||||
00Block-Intents-While-Locked.patch
|
||||
00Keep-Manta-Service-Disabled.patch
|
||||
00Disable-Service-and-Shared-workers-on-3P-iframe.patch
|
||||
00Disable-Real-Box.patch
|
||||
00Always-allow-inspect-fallback.patch
|
||||
00Add-cromite-flags-support.patch
|
||||
00Add-PartialLowEndModeOnMidRangeDevices-flag.patch
|
||||
00Use-list-mode-for-tab-switcher.patch
|
||||
00Chrome-web-store-protection.patch
|
||||
00Enable-search-engine-settings-desktop-ui.patch
|
||||
00Disable-Android-AppRestrictions.patch
|
||||
00Customize-selection-popup.patch
|
||||
00Enables-deactivation-of-the-js-debugger-statement.patch
|
||||
00Enable-gwp-asan-on-Android.patch
|
||||
Change-popup-site-setting.patch
|
||||
Disable-speechSynthesis-getVoices-API.patch
|
||||
Remove-support-for-device-memory-and-cpu-recovery.patch
|
||||
Log-dangling-attributes-in-some-html-elements.patch
|
||||
Keep-Side-Panel-Companion-disabled.patch
|
||||
Lock-Profile-Cookie-Database.patch
|
||||
Show-warnings-on-downloads-over-HTTP.patch
|
||||
Compress-libchrome-to-free-up-some-space.patch
|
||||
Cromite-Branding.patch
|
||||
Disable-Feeback-Collector.patch
|
||||
Disable-remote-altsvc-for-h3-connections.patch
|
||||
do-not-block-build-incompatible-profiles.patch
|
||||
Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch
|
||||
allow-the-download-of-clang-for-windows-crossbuild.patch
|
||||
Add-option-to-disable-snapshots.patch
|
||||
Enable-Android-Dynamic-Performance-Framework.patch
|
||||
Remove-GoogleAccountsPrivateApiHost.patch
|
||||
Fix-crash-on-customize-profile-ui.patch
|
||||
Enable-ImprovedBookmarks-by-default.patch
|
||||
Partition-MediaDeviceId-by-default.patch
|
||||
Keep-disabled-FetchLaterAPI.patch
|
||||
Disable-ranker-url-fetcher.patch
|
||||
Show-full-urls-for-bookmark.patch
|
||||
Disable-prefers-reduced-transparency-media-query.patch
|
||||
libjxl-0-8-2.patch
|
||||
Add-support-to-jxl.patch
|
||||
Block-Intents-While-Locked.patch
|
||||
Keep-Manta-Service-Disabled.patch
|
||||
Disable-Service-and-Shared-workers-on-3P-iframe.patch
|
||||
Disable-Real-Box.patch
|
||||
Always-allow-inspect-fallback.patch
|
||||
Add-cromite-flags-support.patch
|
||||
Add-PartialLowEndModeOnMidRangeDevices-flag.patch
|
||||
Use-list-mode-for-tab-switcher.patch
|
||||
Chrome-web-store-protection.patch
|
||||
Enable-search-engine-settings-desktop-ui.patch
|
||||
Disable-Android-AppRestrictions.patch
|
||||
Customize-selection-popup.patch
|
||||
Enables-deactivation-of-the-js-debugger-statement.patch
|
||||
Enable-gwp-asan-on-Android.patch
|
||||
Disable-Read-Aloud-by-default.patch
|
||||
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
|
||||
TEMP-Add-a-log-to-track-strange-behavior.patch
|
||||
Temp-guard-FileSystemAccessPersistentPermissions.patch
|
||||
Fix-chromium-build-bugs.patch
|
||||
|
||||
00Temp-PerformanceNavigationTiming-privacy-fix.patch
|
||||
00Temp-disable-predictive-back-gesture.patch
|
||||
00TEMP-Add-a-log-to-track-strange-behavior.patch
|
||||
00Temp-guard-FileSystemAccessPersistentPermissions.patch
|
||||
00Fix-chromium-build-bugs.patch
|
||||
eyeo-beta-118.0.5993.48-base.patch
|
||||
eyeo-beta-118.0.5993.48-chrome_integration.patch
|
||||
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
|
||||
00Eyeo-Adblock-Remove-Privacy-Issues.patch
|
||||
00AdblockPlus-add-blocking-in-service-workers.patch
|
||||
00AdblockPlus-connect-popup-blocker.patch
|
||||
Eyeo-Adblock-Remove-Privacy-Issues.patch
|
||||
|
||||
@@ -1,732 +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
|
||||
@@ -6328,7 +6328,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;
|
||||
@@ -6349,9 +6351,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 absl::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
|
||||
@@ -630,11 +630,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 absl::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
|
||||
@@ -342,12 +342,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_);
|
||||
@@ -386,7 +380,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(),
|
||||
@@ -675,12 +669,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,14 +81,22 @@ 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);
|
||||
// No callback, just notify observers
|
||||
virtual void CheckDocumentAllowlisted(
|
||||
SubscriptionService::Snapshot subscription_collection,
|
||||
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
|
||||
@@ -1016,7 +1016,7 @@ bool ContentBrowserClient::WillCreateURLLoaderFactory(
|
||||
return false;
|
||||
}
|
||||
|
||||
-bool ContentBrowserClient::WillInterceptWebSocket(RenderFrameHost*) {
|
||||
+bool ContentBrowserClient::WillInterceptWebSocket(RenderFrameHost*, RenderProcessHost*, const url::Origin& origin) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1025,9 +1025,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 absl::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
|
||||
@@ -1842,7 +1842,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);
|
||||
@@ -1864,9 +1864,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 absl::optional<std::string>& user_agent,
|
||||
mojo::PendingRemote<network::mojom::WebSocketHandshakeClient>
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,170 +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(
|
||||
@@ -88,7 +93,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
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,51 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 2 May 2023 15:26:46 +0000
|
||||
Subject: Disable FirstPartySets and StorageAccessAPI
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
components/privacy_sandbox/privacy_sandbox_prefs.cc | 2 +-
|
||||
components/privacy_sandbox/tracking_protection_prefs.cc | 4 ++--
|
||||
.../Disable-FirstPartySets-and-StorageAccessAPI.inc | 1 +
|
||||
3 files changed, 4 insertions(+), 3 deletions(-)
|
||||
create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-FirstPartySets-and-StorageAccessAPI.inc
|
||||
|
||||
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
@@ -55,7 +55,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, true,
|
||||
+ prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxTopicsConsentGiven,
|
||||
diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc
|
||||
--- a/components/privacy_sandbox/tracking_protection_prefs.cc
|
||||
+++ b/components/privacy_sandbox/tracking_protection_prefs.cc
|
||||
@@ -58,13 +58,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
|
||||
// Tracking Protection Settings Prefs
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kBlockAll3pcToggleEnabled, false,
|
||||
+ prefs::kBlockAll3pcToggleEnabled, false, // with true enables FPS
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kTrackingProtectionLevel,
|
||||
static_cast<int>(TrackingProtectionLevel::kStandard),
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
- registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false);
|
||||
+ registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); // with true enables FPS
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kEnableDoNotTrack, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-FirstPartySets-and-StorageAccessAPI.inc b/cromite_flags/content/public/common/content_features_cc/Disable-FirstPartySets-and-StorageAccessAPI.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/content/public/common/content_features_cc/Disable-FirstPartySets-and-StorageAccessAPI.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kFirstPartySets);
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,61 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Sun, 5 Nov 2023 17:59:54 +0000
|
||||
Subject: Disable Real Box
|
||||
|
||||
Real-box is search box in ntp
|
||||
---
|
||||
chrome/browser/resources/new_tab_page/app.html | 5 -----
|
||||
components/search/ntp_features.cc | 10 +++++-----
|
||||
2 files changed, 5 insertions(+), 10 deletions(-)
|
||||
|
||||
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 @@
|
||||
hidden$="[[!logoEnabled_]]">
|
||||
</ntp-logo>
|
||||
<div id="realboxContainer">
|
||||
- <ntp-realbox id="realbox" is-dark="[[theme_.isDark]]"
|
||||
- single-colored-icons="[[theme_.themeRealboxIcons]]"
|
||||
- on-open-lens-search="onOpenLensSearch_"
|
||||
- on-open-voice-search="onOpenVoiceSearch_" shown$="[[realboxShown_]]">
|
||||
- </ntp-realbox>
|
||||
<template is="dom-if" if="[[showLensUploadDialog_]]" restamp>
|
||||
<ntp-lens-upload-dialog id="lensUploadDialog"
|
||||
on-close-lens-search="onCloseLensSearch_">
|
||||
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
|
||||
@@ -135,7 +135,7 @@ BASE_FEATURE(kNtpHandleMostVisitedNavigationExplicitly,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
// If enabled, logo will be shown.
|
||||
-BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kNtpLogo, "NtpLogo", base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
// If enabled, logo will fill up less vertical space.
|
||||
BASE_FEATURE(kNtpReducedLogoSpace,
|
||||
@@ -212,8 +212,8 @@ BASE_FEATURE(kNtpMostVisitedReflowOnOverflow,
|
||||
|
||||
// If enabled, OneGoogleBar will be shown.
|
||||
BASE_FEATURE(kNtpOneGoogleBar,
|
||||
- "NtpOneGoogleBar",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "NtpOneGoogleBar", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default
|
||||
|
||||
// If enabled, Google Photos module will be shown.
|
||||
BASE_FEATURE(kNtpPhotosModule,
|
||||
@@ -248,8 +248,8 @@ BASE_FEATURE(kNtpFeedModule,
|
||||
|
||||
// If enabled, Google Lens image search will be shown in the NTP Realbox.
|
||||
BASE_FEATURE(kNtpRealboxLensSearch,
|
||||
- "NtpRealboxLensSearch",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "NtpRealboxLensSearch", // disabled
|
||||
+ base::FEATURE_DISABLED_BY_DEFAULT); // by default
|
||||
|
||||
// If enabled, Google Lens image search will call Lens v3 direct upload
|
||||
// endpoint instead of uploading to Scotty.
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,18 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 18 Apr 2023 14:17:19 +0000
|
||||
Subject: Disable SHA1 Server Signature
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../net/base/features_cc/Disable-SHA1-Server-Signature.inc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
create mode 100644 cromite_flags/net/base/features_cc/Disable-SHA1-Server-Signature.inc
|
||||
|
||||
diff --git a/cromite_flags/net/base/features_cc/Disable-SHA1-Server-Signature.inc b/cromite_flags/net/base/features_cc/Disable-SHA1-Server-Signature.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/net/base/features_cc/Disable-SHA1-Server-Signature.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kSHA1ServerSignature);
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,25 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Fri, 20 Oct 2023 14:53:41 +0000
|
||||
Subject: Disable prefers-reduced-transparency media query
|
||||
|
||||
This feature can be used for fingerprinting as it exposes a user preference
|
||||
---
|
||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
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
|
||||
@@ -3075,8 +3075,8 @@
|
||||
base_feature: "none",
|
||||
},
|
||||
{
|
||||
- name: "PrefersReducedTransparency",
|
||||
- status: "stable",
|
||||
+ name: "PrefersReducedTransparency", // disabled by default
|
||||
+ status: "experimental", // see https://bugs.chromium.org/p/chromium/issues/detail?id=1424879
|
||||
},
|
||||
// This feature is deprecated and we are evangelizing affected sites.
|
||||
// See https://crbug.com/346236 for current status.
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,23 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Sat, 3 Jun 2023 13:11:22 +0000
|
||||
Subject: Disallowing MIDI permission by default
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
components/permissions/features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/permissions/features.cc b/components/permissions/features.cc
|
||||
--- a/components/permissions/features.cc
|
||||
+++ b/components/permissions/features.cc
|
||||
@@ -157,7 +157,7 @@ BASE_FEATURE(kShowRelatedWebsiteSetsPermissionGrants,
|
||||
// Enables disallowing MIDI permission by default.
|
||||
BASE_FEATURE(kBlockMidiByDefault,
|
||||
"BlockMidiByDefault",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
} // namespace features
|
||||
namespace feature_params {
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,31 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 14 Feb 2023 16:23:08 +0000
|
||||
Subject: Evict the entire FrameTree like desktop
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
components/viz/common/features.cc | 2 +-
|
||||
.../features_cc/Evict-the-entire-FrameTree-like-desktop.inc | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
create mode 100644 cromite_flags/content/common/features_cc/Evict-the-entire-FrameTree-like-desktop.inc
|
||||
|
||||
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc
|
||||
--- a/components/viz/common/features.cc
|
||||
+++ b/components/viz/common/features.cc
|
||||
@@ -248,7 +248,7 @@ BASE_FEATURE(kRendererAllocatesImages,
|
||||
// evicts itself. This differs from Destkop platforms which evict the entire
|
||||
// FrameTree along with the topmost viz::Surface. When this feature is enabled,
|
||||
// Android will begin also evicting the entire FrameTree.
|
||||
-BASE_FEATURE(kEvictSubtree, "EvictSubtree", base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kEvictSubtree, "EvictSubtree", base::FEATURE_ENABLED_BY_DEFAULT); // enabled by default
|
||||
|
||||
// If enabled, CompositorFrameSinkClient::OnBeginFrame is also treated as the
|
||||
// DidReceiveCompositorFrameAck. Both in providing the Ack for the previous
|
||||
diff --git a/cromite_flags/content/common/features_cc/Evict-the-entire-FrameTree-like-desktop.inc b/cromite_flags/content/common/features_cc/Evict-the-entire-FrameTree-like-desktop.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/content/common/features_cc/Evict-the-entire-FrameTree-like-desktop.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kInnerFrameCompositorSurfaceEviction);
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,22 +0,0 @@
|
||||
From: Your Name <you@example.com>
|
||||
Date: Tue, 31 Oct 2023 16:20:12 +0000
|
||||
Subject: Keep Manta Service Disabled
|
||||
|
||||
---
|
||||
components/manta/features.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/components/manta/features.cc b/components/manta/features.cc
|
||||
--- a/components/manta/features.cc
|
||||
+++ b/components/manta/features.cc
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
namespace manta::features {
|
||||
|
||||
-BASE_FEATURE(kMantaService, "MantaService", base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+BASE_FEATURE(kMantaService, "MantaService", base::FEATURE_DISABLED_BY_DEFAULT); // keep disabled
|
||||
|
||||
bool IsMantaServiceEnabled() {
|
||||
return base::FeatureList::IsEnabled(kMantaService);
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,34 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Thu, 28 Sep 2023 08:11:00 +0000
|
||||
Subject: Keep disabled FetchLaterAPI
|
||||
|
||||
---
|
||||
.../blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc | 3 +++
|
||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++--
|
||||
2 files changed, 5 insertions(+), 2 deletions(-)
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc
|
||||
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc b/cromite_flags/third_party/blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/third_party/blink/common/features_cc/Keep-disabled-FetchLaterAPI.inc
|
||||
@@ -0,0 +1,3 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kFetchLaterAPI);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kKeepAliveInBrowserMigration);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPendingBeaconAPI);
|
||||
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
|
||||
@@ -1754,8 +1754,8 @@
|
||||
},
|
||||
{
|
||||
// The Blink runtime-enabled feature name for the API's IDL.
|
||||
- name: "FetchLaterAPI",
|
||||
- status: "experimental",
|
||||
+ name: "FetchLaterAPI", // disable
|
||||
+ status: "experimental", // by default
|
||||
origin_trial_feature_name: "FetchLaterAPI",
|
||||
base_feature: "FetchLaterAPI",
|
||||
// base_feature is meant as kill-switch. This runtime-enabled feature
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,23 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 17 Apr 2023 12:43:19 +0000
|
||||
Subject: Remove detection of captive portals
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
chrome/browser/net/profile_network_context_service.cc | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
|
||||
--- a/chrome/browser/net/profile_network_context_service.cc
|
||||
+++ b/chrome/browser/net/profile_network_context_service.cc
|
||||
@@ -364,7 +364,7 @@ void ProfileNetworkContextService::UpdateAdditionalCertificates() {
|
||||
void ProfileNetworkContextService::RegisterProfilePrefs(
|
||||
user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled,
|
||||
- true);
|
||||
+ false);
|
||||
registry->RegisterBooleanPref(prefs::kQuicAllowed, true);
|
||||
registry->RegisterBooleanPref(prefs::kGloballyScopeHTTPAuthCacheEnabled,
|
||||
false);
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,24 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Thu, 20 Apr 2023 15:03:56 +0000
|
||||
Subject: Remove https connection from chrome://discards
|
||||
|
||||
---
|
||||
chrome/browser/resources/discards/graph_doc_template.html | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/resources/discards/graph_doc_template.html b/chrome/browser/resources/discards/graph_doc_template.html
|
||||
--- a/chrome/browser/resources/discards/graph_doc_template.html
|
||||
+++ b/chrome/browser/resources/discards/graph_doc_template.html
|
||||
@@ -82,10 +82,6 @@ URL. As result, this document needs to be self-contained, hence inline scripts.
|
||||
}
|
||||
|
||||
</style>
|
||||
- <script src="https://ajax.googleapis.com/ajax/libs/d3js/5.7.0/d3.min.js"
|
||||
- integrity="sha384-HL96dun1KbYEq6UT/ZlsspAODCyQ+Zp4z318ajUPBPSMzy5dvxl6ziwmnil8/Cpd"
|
||||
- crossorigin="anonymous">
|
||||
- </script>
|
||||
<script type="application/javascript">
|
||||
${javascript_file}
|
||||
</script>
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,26 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 14 Mar 2023 15:58:00 +0000
|
||||
Subject: WIN Disable TabHoverCard images
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
chrome/browser/ui/ui_features.cc | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
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
|
||||
@@ -221,11 +221,7 @@ BASE_FEATURE(kTabHoverCardImageSettings,
|
||||
// https://crbug.com/928954
|
||||
BASE_FEATURE(kTabHoverCardImages,
|
||||
"TabHoverCardImages",
|
||||
-#if BUILDFLAG(IS_MAC)
|
||||
base::FEATURE_DISABLED_BY_DEFAULT
|
||||
-#else
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT
|
||||
-#endif
|
||||
);
|
||||
|
||||
const char kTabHoverCardImagesNotReadyDelayParameterName[] =
|
||||
--
|
||||
2.25.1
|
||||
@@ -1,34 +0,0 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 14 Feb 2023 16:32:30 +0000
|
||||
Subject: WIN enable file system access blocklist
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
content/browser/file_system_access/features.cc | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/content/browser/file_system_access/features.cc b/content/browser/file_system_access/features.cc
|
||||
--- a/content/browser/file_system_access/features.cc
|
||||
+++ b/content/browser/file_system_access/features.cc
|
||||
@@ -15,7 +15,7 @@ namespace content::features {
|
||||
// some applications.
|
||||
BASE_FEATURE(kFileSystemAccessDragAndDropCheckBlocklist,
|
||||
"FileSystemAccessDragAndDropCheckBlocklist",
|
||||
- base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
// TODO(crbug.com/1381621): Remove this flag eventually.
|
||||
// When enabled, move() will result in a promise rejection when the specified
|
||||
@@ -44,8 +44,8 @@ BASE_FEATURE(kFileSystemAccessRemove,
|
||||
// When enabled, a user gesture is required to rename a file if the site does
|
||||
// not have write access to the parent. See http://b/254157070 for more context.
|
||||
BASE_FEATURE(kFileSystemAccessRenameWithoutParentAccessRequiresUserActivation,
|
||||
- "FileSystemAccessRenameWithoutParentAccessRequiresUserActivation",
|
||||
- base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+ "FileSystemAccessRenameWithoutParentAccessRequiresUserActivation", // enabled by default
|
||||
+ base::FEATURE_ENABLED_BY_DEFAULT); // in bromite
|
||||
|
||||
// TODO(crbug.com/1247850): Remove this flag eventually.
|
||||
// When enabled, move operations within the same file system that do not change
|
||||
--
|
||||
2.25.1
|
||||
@@ -20,8 +20,8 @@ See discussions at:
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
base/android/android_image_reader_compat.cc | 8 +++++++-
|
||||
base/android/android_image_reader_compat.h | 4 ++++
|
||||
base/android/android_image_reader_compat.cc | 16 ++++++++++++++++
|
||||
base/android/android_image_reader_compat.h | 14 ++++++++++++++
|
||||
chrome/browser/flag-metadata.json | 6 +++---
|
||||
.../AImageReader-CFI-crash-mitigations.inc | 4 ++++
|
||||
.../AImageReader-CFI-crash-mitigations.inc | 1 +
|
||||
@@ -30,63 +30,67 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
gpu/config/gpu_finch_features.h | 1 +
|
||||
gpu/config/gpu_util.cc | 8 ++++++++
|
||||
gpu/config/gpu_workaround_list.txt | 1 +
|
||||
gpu/ipc/service/gpu_init.cc | 7 +++++++
|
||||
gpu/ipc/service/gpu_init.cc | 8 ++++++++
|
||||
gpu/ipc/service/stream_texture_android.cc | 11 ++++++++++-
|
||||
12 files changed, 67 insertions(+), 5 deletions(-)
|
||||
12 files changed, 87 insertions(+), 4 deletions(-)
|
||||
create mode 100644 cromite_flags/media/base/media_switches_cc/AImageReader-CFI-crash-mitigations.inc
|
||||
create mode 100644 cromite_flags/media/base/media_switches_h/AImageReader-CFI-crash-mitigations.inc
|
||||
|
||||
diff --git a/base/android/android_image_reader_compat.cc b/base/android/android_image_reader_compat.cc
|
||||
--- a/base/android/android_image_reader_compat.cc
|
||||
+++ b/base/android/android_image_reader_compat.cc
|
||||
@@ -23,6 +23,8 @@
|
||||
@@ -7,7 +7,23 @@
|
||||
namespace base {
|
||||
namespace android {
|
||||
|
||||
+bool AndroidImageReader::disable_support_ = false;
|
||||
+AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
+ // C++11 static local variable initialization is
|
||||
+ // thread-safe.
|
||||
+ static AndroidImageReader instance;
|
||||
+ return instance;
|
||||
+}
|
||||
+
|
||||
AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
// C++11 static local variable initialization is
|
||||
// thread-safe.
|
||||
@@ -30,8 +32,12 @@ AndroidImageReader& AndroidImageReader::GetInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
+void AndroidImageReader::DisableSupport() {
|
||||
+ disable_support_ = true;
|
||||
+}
|
||||
+
|
||||
bool AndroidImageReader::IsSupported() {
|
||||
- return is_supported_;
|
||||
+ return !disable_support_ && is_supported_;
|
||||
}
|
||||
|
||||
AndroidImageReader::AndroidImageReader() : is_supported_(LoadFunctions()) {}
|
||||
+bool AndroidImageReader::IsSupported() {
|
||||
+ return !disable_support_;
|
||||
+}
|
||||
+
|
||||
bool EnableAndroidImageReader() {
|
||||
+ if (!AndroidImageReader::GetInstance().IsSupported()) return false;
|
||||
// Currently we want to enable AImageReader only for android P+ devices.
|
||||
if (__builtin_available(android 28, *)) {
|
||||
return true;
|
||||
diff --git a/base/android/android_image_reader_compat.h b/base/android/android_image_reader_compat.h
|
||||
--- a/base/android/android_image_reader_compat.h
|
||||
+++ b/base/android/android_image_reader_compat.h
|
||||
@@ -24,6 +24,9 @@ class BASE_EXPORT AndroidImageReader {
|
||||
AndroidImageReader(const AndroidImageReader&) = delete;
|
||||
AndroidImageReader& operator=(const AndroidImageReader&) = delete;
|
||||
@@ -10,6 +10,20 @@
|
||||
namespace base {
|
||||
namespace android {
|
||||
|
||||
+ // Disable image reader support.
|
||||
+ static void DisableSupport();
|
||||
+class BASE_EXPORT AndroidImageReader {
|
||||
+ public:
|
||||
+ // Thread safe GetInstance.
|
||||
+ static AndroidImageReader& GetInstance();
|
||||
+
|
||||
// Check if the image reader usage is supported. This function returns TRUE
|
||||
// if android version is >=OREO, image reader support is not disabled and all
|
||||
// the required functions are loaded.
|
||||
@@ -61,6 +64,7 @@ class BASE_EXPORT AndroidImageReader {
|
||||
jobject ANativeWindow_toSurface(JNIEnv* env, ANativeWindow* window);
|
||||
+ bool IsSupported();
|
||||
+
|
||||
+ // Disable image reader support.
|
||||
+ void DisableSupport();
|
||||
+
|
||||
+ private:
|
||||
+ bool disable_support_ = false;
|
||||
+};
|
||||
+
|
||||
// Check if the image reader usage is supported.
|
||||
BASE_EXPORT bool EnableAndroidImageReader();
|
||||
|
||||
private:
|
||||
+ static bool disable_support_;
|
||||
friend class base::NoDestructor<AndroidImageReader>;
|
||||
|
||||
AndroidImageReader();
|
||||
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
|
||||
@@ -2842,9 +2842,9 @@
|
||||
@@ -3046,9 +3046,9 @@
|
||||
"expiry_milestone": 125
|
||||
},
|
||||
{
|
||||
@@ -117,7 +121,7 @@ new file mode 100644
|
||||
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json
|
||||
--- a/gpu/config/gpu_driver_bug_list.json
|
||||
+++ b/gpu/config/gpu_driver_bug_list.json
|
||||
@@ -3212,6 +3212,22 @@
|
||||
@@ -2689,6 +2689,22 @@
|
||||
"no_downscaled_overlay_promotion"
|
||||
]
|
||||
},
|
||||
@@ -143,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.
|
||||
@@ -179,7 +183,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
if (!gpu_preferences.enable_android_surface_control)
|
||||
return kGpuFeatureStatusDisabled;
|
||||
|
||||
@@ -347,6 +350,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
@@ -368,6 +371,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info) {
|
||||
gpu_feature_info->status_values[GPU_FEATURE_TYPE_CANVAS_OOP_RASTERIZATION] =
|
||||
kGpuFeatureStatusBlocklisted;
|
||||
}
|
||||
@@ -194,8 +198,8 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc
|
||||
diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt
|
||||
--- a/gpu/config/gpu_workaround_list.txt
|
||||
+++ b/gpu/config/gpu_workaround_list.txt
|
||||
@@ -13,6 +13,7 @@ count_all_in_varyings_packing
|
||||
decode_encode_srgb_for_generatemipmap
|
||||
@@ -11,6 +11,7 @@ clamp_texture_base_level_and_max_level
|
||||
clear_pixel_unpack_buffer_before_copyteximage
|
||||
disable_2d_canvas_auto_flush
|
||||
disable_accelerated_av1_decode
|
||||
+disable_aimagereader
|
||||
@@ -205,14 +209,22 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list
|
||||
diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc
|
||||
--- a/gpu/ipc/service/gpu_init.cc
|
||||
+++ b/gpu/ipc/service/gpu_init.cc
|
||||
@@ -668,6 +668,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
@@ -65,6 +65,7 @@
|
||||
|
||||
#if BUILDFLAG(IS_ANDROID)
|
||||
#include "ui/gfx/android/android_surface_control_compat.h"
|
||||
+#include "base/android/android_image_reader_compat.h"
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_VULKAN)
|
||||
@@ -662,6 +663,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line,
|
||||
}
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
|
||||
+#if BUILDFLAG(IS_ANDROID)
|
||||
+ // Disable AImageReader if the workaround is enabled.
|
||||
+ if (gpu_feature_info_.IsWorkaroundEnabled(DISABLE_AIMAGEREADER)) {
|
||||
+ base::android::AndroidImageReader::DisableSupport();
|
||||
+ base::android::AndroidImageReader::GetInstance().DisableSupport();
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
@@ -248,4 +260,3 @@ diff --git a/gpu/ipc/service/stream_texture_android.cc b/gpu/ipc/service/stream_
|
||||
: TextureOwner::Mode::kSurfaceTextureInsecure;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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
|
||||
@@ -229,6 +229,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;
|
||||
@@ -988,6 +989,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();
|
||||
@@ -40,42 +40,42 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
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
|
||||
@@ -146,6 +146,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
@@ -136,6 +136,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&feed::kFeedShowSignInCommand,
|
||||
&feed::kFeedSignedOutViewDemotion,
|
||||
&feed::kFeedUserInteractionReliabilityReport,
|
||||
+ &kAllowUserCertificates,
|
||||
&feed::kInterestFeedV2,
|
||||
&feed::kInterestFeedV2Autoplay,
|
||||
&feed::kInterestFeedV2Hearts,
|
||||
&feed::kWebFeed,
|
||||
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
|
||||
@@ -98,6 +98,7 @@ public abstract class ChromeFeatureList {
|
||||
@@ -141,6 +141,7 @@ public abstract class ChromeFeatureList {
|
||||
return ChromeFeatureMap.getInstance().mutableFlagWithSafeDefault(featureName, defaultValue);
|
||||
}
|
||||
|
||||
/* Alphabetical: */
|
||||
+ public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates";
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR = "AdaptiveButtonInTopToolbar";
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE =
|
||||
"AdaptiveButtonInTopToolbarTranslate";
|
||||
@@ -517,6 +518,8 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sAndroidAppIntegration =
|
||||
new CachedFlag(ANDROID_APP_INTEGRATION, false);
|
||||
public static final CachedFlag sAndroidHub = new CachedFlag(ANDROID_HUB, false);
|
||||
public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS =
|
||||
@@ -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 =
|
||||
+ new CachedFlag(ALLOW_USER_CERTIFICATES, false);
|
||||
public static final CachedFlag sAppMenuMobileSiteOption =
|
||||
new CachedFlag(APP_MENU_MOBILE_SITE_OPTION, false);
|
||||
+ newCachedFlag(ALLOW_USER_CERTIFICATES, false);
|
||||
public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false);
|
||||
public static final CachedFlag sBackGestureActivityTabProvider =
|
||||
@@ -662,6 +665,7 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(BACK_GESTURE_ACTIVITY_TAB_PROVIDER, false);
|
||||
@@ -679,6 +682,7 @@ public abstract class ChromeFeatureList {
|
||||
|
||||
public static final List<CachedFlag> sFlagsCachedFullBrowser =
|
||||
List.of(
|
||||
+ sAllowUserCertificates,
|
||||
sAndroidAppIntegration,
|
||||
sAndroidElegantTextHeight,
|
||||
sAndroidHub,
|
||||
sAppMenuMobileSiteOption,
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -111,24 +111,23 @@ new file mode 100644
|
||||
diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java
|
||||
--- a/net/android/java/src/org/chromium/net/X509Util.java
|
||||
+++ b/net/android/java/src/org/chromium/net/X509Util.java
|
||||
@@ -544,6 +544,8 @@ public class X509Util {
|
||||
@@ -525,6 +525,8 @@ public class X509Util {
|
||||
return userRootBytes.toArray(new byte[0][]);
|
||||
}
|
||||
|
||||
+ public static boolean AllowUserCertificates = false;
|
||||
+
|
||||
public static AndroidCertVerifyResult verifyServerCertificates(byte[][] certChain,
|
||||
String authType,
|
||||
String host)
|
||||
@@ -630,6 +632,9 @@ public class X509Util {
|
||||
public static AndroidCertVerifyResult verifyServerCertificates(
|
||||
byte[][] certChain, String authType, String host)
|
||||
throws KeyStoreException, NoSuchAlgorithmException {
|
||||
@@ -613,6 +615,9 @@ public class X509Util {
|
||||
isIssuedByKnownRoot = isKnownRoot(root);
|
||||
}
|
||||
|
||||
+ if (AllowUserCertificates == false && isIssuedByKnownRoot == false)
|
||||
+ return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT);
|
||||
+
|
||||
return new AndroidCertVerifyResult(CertVerifyStatusAndroid.OK,
|
||||
isIssuedByKnownRoot, verifiedChain);
|
||||
return new AndroidCertVerifyResult(
|
||||
CertVerifyStatusAndroid.OK, isIssuedByKnownRoot, verifiedChain);
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -10,14 +10,13 @@ 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/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java
|
||||
@@ -152,6 +152,8 @@ public class KeyboardShortcuts {
|
||||
KeyEvent.KEYCODE_F, KeyEvent.META_CTRL_ON);
|
||||
addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
|
||||
KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON);
|
||||
@@ -204,6 +204,8 @@ public class KeyboardShortcuts {
|
||||
R.string.keyboard_shortcut_address_bar,
|
||||
KeyEvent.KEYCODE_L,
|
||||
KeyEvent.META_CTRL_ON);
|
||||
+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar,
|
||||
+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON);
|
||||
shortcutGroups.add(chromeFeatureShortcutGroup);
|
||||
|
||||
KeyboardShortcutGroup webpageShortcutGroup = new KeyboardShortcutGroup(
|
||||
KeyboardShortcutGroup webpageShortcutGroup =
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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
|
||||
@@ -287,6 +287,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||
@@ -300,6 +300,11 @@ std::unique_ptr<URLRequestJob> URLRequestHttpJob::Create(URLRequest* request) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,4 +57,3 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
|
||||
// Check whether the app allows cleartext traffic to this host, and return
|
||||
// ERR_CLEARTEXT_NOT_PERMITTED if not.
|
||||
--
|
||||
2.25.1
|
||||
|
||||
-1
@@ -52,4 +52,3 @@ new file mode 100644
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
+4
-5
@@ -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
|
||||
@@ -6884,9 +6884,9 @@
|
||||
"expiry_milestone": 121
|
||||
@@ -7195,9 +7195,9 @@
|
||||
"expiry_milestone": 125
|
||||
},
|
||||
{
|
||||
- "name": "restrict-gamepad-access",
|
||||
@@ -25,11 +25,11 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js
|
||||
+ "expiry_milestone": -1
|
||||
},
|
||||
{
|
||||
"name": "rounded-display",
|
||||
"name": "revamp-page-info-ios",
|
||||
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
|
||||
@@ -3001,7 +3001,7 @@ const char kResetShortcutCustomizationsDescription[] =
|
||||
@@ -3089,7 +3089,7 @@ const char kResetShortcutCustomizationsDescription[] =
|
||||
|
||||
const char kRestrictGamepadAccessName[] = "Restrict gamepad access";
|
||||
const char kRestrictGamepadAccessDescription[] =
|
||||
@@ -71,4 +71,3 @@ diff --git a/third_party/blink/renderer/modules/gamepad/navigator_gamepad.cc b/t
|
||||
DCHECK(processing_events_);
|
||||
DCHECK(has_connection_event_listener_);
|
||||
--
|
||||
2.25.1
|
||||
@@ -50,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -27,6 +27,9 @@ found in the LICENSE file.
|
||||
@@ -25,6 +25,9 @@ found in the LICENSE file.
|
||||
<!-- Compositor Tab Title Text -->
|
||||
<bool name="compositor_tab_title_fake_bold_text">true</bool>
|
||||
|
||||
@@ -77,7 +77,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/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -78,6 +78,7 @@ public class PrivacySettings
|
||||
@@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private static final String PREF_SAFE_BROWSING = "safe_browsing";
|
||||
private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
|
||||
private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
|
||||
@@ -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
|
||||
@@ -301,6 +301,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
@@ -308,6 +308,8 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
|
||||
builtins_to_provide.push_back(
|
||||
base::ASCIIToUTF16(chrome::kChromeUISettingsURL));
|
||||
#endif
|
||||
@@ -100,8 +100,8 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
|
||||
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
|
||||
--- a/chrome/browser/browser_resources.grd
|
||||
+++ b/chrome/browser/browser_resources.grd
|
||||
@@ -240,6 +240,9 @@
|
||||
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings_internal\pref_hash_seed.bin" type="BINDATA" />
|
||||
@@ -237,6 +237,9 @@
|
||||
<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 -->
|
||||
@@ -113,8 +113,8 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou
|
||||
diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
|
||||
@@ -388,7 +388,7 @@ absl::optional<base::Value::Dict> CreateProxyConfigDict(
|
||||
return absl::nullopt;
|
||||
@@ -387,7 +387,7 @@ std::optional<base::Value::Dict> CreateProxyConfigDict(
|
||||
return std::nullopt;
|
||||
}
|
||||
return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string,
|
||||
- bypass_list);
|
||||
@@ -197,16 +197,16 @@ 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
|
||||
@@ -185,6 +185,8 @@
|
||||
@@ -191,6 +191,8 @@
|
||||
#include "printing/buildflags/buildflags.h"
|
||||
#include "rlz/buildflags/buildflags.h"
|
||||
#include "third_party/abseil-cpp/absl/types/optional.h"
|
||||
|
||||
+#include "chrome/browser/net/proxy_service_factory.h"
|
||||
+
|
||||
#if BUILDFLAG(ENABLE_BACKGROUND_MODE)
|
||||
#include "chrome/browser/background/background_mode_manager.h"
|
||||
#endif
|
||||
@@ -1387,6 +1389,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);
|
||||
@@ -397,7 +397,7 @@ new file mode 100644
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+import {$} from 'chrome://resources/js/util_ts.js';
|
||||
+import {$} from 'chrome://resources/js/util.js';
|
||||
+
|
||||
+/**
|
||||
+ * Main entry point called once the page has loaded.
|
||||
@@ -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
|
||||
@@ -297,6 +297,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,15 +673,15 @@ 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
|
||||
@@ -58,6 +58,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"
|
||||
+#include "chrome/browser/ui/webui/proxy_config_ui.h"
|
||||
#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"
|
||||
#include "chrome/browser/ui/webui/signin_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>;
|
||||
@@ -1127,7 +1127,7 @@ new file mode 100644
|
||||
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
|
||||
--- a/chrome/common/webui_url_constants.cc
|
||||
+++ b/chrome/common/webui_url_constants.cc
|
||||
@@ -51,6 +51,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
@@ -49,6 +49,8 @@ const char kChromeUICertificateViewerHost[] = "view-cert";
|
||||
const char kChromeUICertificateViewerURL[] = "chrome://view-cert/";
|
||||
const char kChromeUIChromeSigninHost[] = "chrome-signin";
|
||||
const char kChromeUIChromeSigninURL[] = "chrome://chrome-signin/";
|
||||
@@ -1136,15 +1136,15 @@ 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";
|
||||
@@ -457,6 +459,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
kChromeUILockScreenNetworkHost,
|
||||
kChromeUILockScreenStartReauthHost,
|
||||
kChromeUIMobileSetupHost,
|
||||
+ kChromeUIProxyConfigHost,
|
||||
kChromeUIMultiDeviceSetupHost,
|
||||
kChromeUINetworkHost,
|
||||
kChromeUINotificationTesterHost,
|
||||
@@ -771,6 +774,7 @@ const char* const kChromeHostURLs[] = {
|
||||
@@ -460,6 +462,7 @@ bool IsSystemWebUIHost(base::StringPiece host) {
|
||||
kChromeUILockScreenNetworkHost,
|
||||
kChromeUILockScreenStartReauthHost,
|
||||
kChromeUIMobileSetupHost,
|
||||
+ kChromeUIProxyConfigHost,
|
||||
kChromeUIMultiDeviceSetupHost,
|
||||
kChromeUINetworkHost,
|
||||
kChromeUINotificationTesterHost,
|
||||
@@ -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
|
||||
@@ -139,6 +139,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[];
|
||||
@@ -1321,7 +1321,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox
|
||||
diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc
|
||||
--- a/components/proxy_config/proxy_policy_handler.cc
|
||||
+++ b/components/proxy_config/proxy_policy_handler.cc
|
||||
@@ -262,7 +262,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
||||
@@ -376,7 +376,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies,
|
||||
set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers(
|
||||
server->GetString(), bypass_list && bypass_list->is_string()
|
||||
? bypass_list->GetString()
|
||||
@@ -1333,7 +1333,7 @@ diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_
|
||||
diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc
|
||||
--- a/net/proxy_resolution/proxy_config.cc
|
||||
+++ b/net/proxy_resolution/proxy_config.cc
|
||||
@@ -112,7 +112,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
|
||||
@@ -109,7 +109,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
|
||||
&single_proxies,
|
||||
ProxyServer::SCHEME_HTTP);
|
||||
type = Type::PROXY_LIST;
|
||||
@@ -1342,7 +1342,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
||||
}
|
||||
|
||||
// Trim whitespace off the url scheme.
|
||||
@@ -143,6 +143,56 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
|
||||
@@ -140,6 +140,56 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1354,8 +1354,8 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
||||
+ // special case: a single proxy servers list specified
|
||||
+ if (type == Type::PROXY_LIST) {
|
||||
+ std::string proxy_list;
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ single_proxies.GetAll()) {
|
||||
+ for (const auto& proxy_chain : single_proxies.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ proxy_list += ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ // remove last semicolon
|
||||
@@ -1373,20 +1373,20 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c
|
||||
+
|
||||
+ // start to build a per-scheme list
|
||||
+ std::string list;
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ proxies_for_http.GetAll()) {
|
||||
+ for (const auto& proxy_chain : proxies_for_http.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "http=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ proxies_for_https.GetAll()) {
|
||||
+ for (const auto& proxy_chain : proxies_for_https.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "https=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ proxies_for_ftp.GetAll()) {
|
||||
+ for (const auto& proxy_chain : proxies_for_ftp.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "ftp=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ for (const ProxyServer& proxy_server :
|
||||
+ fallback_proxies.GetAll()) {
|
||||
+ for (const auto& proxy_chain : fallback_proxies.AllChains()) {
|
||||
+ net::ProxyServer proxy_server = proxy_chain.GetProxyServer(/*chain_index=*/0);
|
||||
+ list += "socks=" + ProxyServerToProxyUri(proxy_server) + ";";
|
||||
+ }
|
||||
+ if (list.length() != 0 ) {
|
||||
@@ -1413,4 +1413,3 @@ diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_co
|
||||
// Returns one of {&proxies_for_http, &proxies_for_https, &proxies_for_ftp,
|
||||
// &fallback_proxies}, or NULL if there is no proxy to use.
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -11,13 +11,13 @@ Require: Content-settings-infrastructure.patch
|
||||
.../res/drawable-xhdpi/settings_autoplay.png | Bin 0 -> 551 bytes
|
||||
.../res/drawable-xxhdpi/settings_autoplay.png | Bin 0 -> 792 bytes
|
||||
.../drawable-xxxhdpi/settings_autoplay.png | Bin 0 -> 1064 bytes
|
||||
.../impl/BromiteAutoplayContentSetting.java | 92 ++++++++++++++++++
|
||||
.../impl/BromiteAutoplayContentSetting.java | 93 ++++++++++++++++++
|
||||
.../bromite_content_settings/autoplay.grdp | 21 ++++
|
||||
.../bromite_content_settings/autoplay.inc | 12 +++
|
||||
.../core/browser/content_settings_registry.cc | 2 +-
|
||||
.../core/html/media/autoplay_policy.cc | 14 +++
|
||||
.../core/html/media/autoplay_policy.h | 4 +
|
||||
11 files changed, 144 insertions(+), 1 deletion(-)
|
||||
11 files changed, 145 insertions(+), 1 deletion(-)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-hdpi/settings_autoplay.png
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-mdpi/settings_autoplay.png
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/res/drawable-xhdpi/settings_autoplay.png
|
||||
@@ -139,7 +139,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteAutoplayContentSetting.java
|
||||
@@ -0,0 +1,92 @@
|
||||
@@ -0,0 +1,93 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -192,7 +192,8 @@ new file mode 100644
|
||||
+ /*defaultEnabledValue*/ getDefaultEnabledValue(),
|
||||
+ /*defaultDisabledValue*/ getDefaultDisabledValue(),
|
||||
+ /*enabledSummary*/ R.string.website_settings_category_autoplay_enabled,
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_autoplay_disabled);
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_autoplay_disabled,
|
||||
+ /*summaryOverrideForScreenReader*/ 0);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
@@ -278,13 +279,13 @@ new file mode 100644
|
||||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
@@ -246,7 +246,7 @@ void ContentSettingsRegistry::Init() {
|
||||
@@ -255,7 +255,7 @@ void ContentSettingsRegistry::Init() {
|
||||
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
|
||||
|
||||
- Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_ALLOW,
|
||||
+ Register(ContentSettingsType::AUTOPLAY, "autoplay", CONTENT_SETTING_BLOCK,
|
||||
WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_schemes=*/{},
|
||||
WebsiteSettingsInfo::UNSYNCABLE, /*allowlisted_primary_schemes=*/{},
|
||||
/*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
|
||||
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||
diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/third_party/blink/renderer/core/html/media/autoplay_policy.cc
|
||||
@@ -298,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"
|
||||
@@ -310,6 +311,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
|
||||
@@ -330,6 +331,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() {
|
||||
}
|
||||
|
||||
bool AutoplayPolicy::IsGestureNeededForPlayback() const {
|
||||
@@ -307,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi
|
||||
if (!IsLockedPendingUserGesture())
|
||||
return false;
|
||||
|
||||
@@ -408,6 +411,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||
@@ -428,6 +431,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -328,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
|
||||
@@ -133,6 +133,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;
|
||||
|
||||
@@ -340,4 +341,3 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.h b/thir
|
||||
bool IsOrWillBeAutoplayingMutedInternal(bool muted) const;
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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 ++
|
||||
@@ -26,14 +26,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../bookmarks/BookmarkToolbarViewBinder.java | 6 +
|
||||
.../native_page/NativePageFactory.java | 11 +-
|
||||
chrome/browser/BUILD.gn | 11 +-
|
||||
.../bookmarks/android/bookmark_bridge.cc | 283 ++++++++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.cc | 287 ++++++++++++++++++
|
||||
.../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 | 12 +
|
||||
chrome/browser/importer/profile_writer.cc | 10 +
|
||||
chrome/browser/importer/profile_writer.h | 6 +
|
||||
.../preferences/ChromePreferenceKeys.java | 3 +
|
||||
.../strings/android_chrome_strings.grd | 18 ++
|
||||
@@ -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, 920 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
|
||||
@@ -11,6 +11,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;
|
||||
@@ -50,7 +51,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,20 +137,20 @@ 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;
|
||||
@@ -76,7 +77,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
|
||||
|
||||
@@ -82,7 +83,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
|
||||
private NativePageFactory mNativePageFactory;
|
||||
|
||||
- public TabbedModeTabDelegateFactory(Activity activity,
|
||||
+ public TabbedModeTabDelegateFactory(ChromeActivity activity,
|
||||
public TabbedModeTabDelegateFactory(
|
||||
- Activity activity,
|
||||
+ ChromeActivity activity,
|
||||
BrowserControlsVisibilityDelegate appBrowserControlsVisibilityDelegate,
|
||||
Supplier<ShareDelegate> shareDelegateSupplier,
|
||||
Supplier<EphemeralTabCoordinator> ephemeralTabCoordinatorSupplier,
|
||||
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
|
||||
@@ -21,6 +21,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;
|
||||
@@ -171,10 +171,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -54,8 +62,23 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
BackPressHelper.create(this, getOnBackPressedDispatcher(),
|
||||
mBookmarkManagerCoordinator::onBackPressed, SecondaryActivity.BOOKMARK);
|
||||
}
|
||||
@@ -58,8 +66,23 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
getOnBackPressedDispatcher(),
|
||||
mBookmarkManagerCoordinator,
|
||||
SecondaryActivity.BOOKMARK);
|
||||
+
|
||||
+ final boolean listenToActivityState = true;
|
||||
+ mIntentRequestTracker = IntentRequestTracker.createFromActivity(this);
|
||||
@@ -195,15 +195,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
@@ -65,6 +88,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);
|
||||
+ mWindowAndroid.getIntentRequestTracker().onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) {
|
||||
BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString(
|
||||
data.getStringExtra(INTENT_VISIT_BOOKMARK_ID));
|
||||
@@ -72,6 +96,14 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
BookmarkId bookmarkId =
|
||||
BookmarkId.getBookmarkIdFromString(
|
||||
@@ -77,6 +101,14 @@ public class BookmarkActivity extends SnackbarActivity {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -221,62 +221,56 @@ 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
|
||||
@@ -4,7 +4,20 @@
|
||||
|
||||
package org.chromium.chrome.browser.bookmarks;
|
||||
@@ -33,6 +33,48 @@ import org.chromium.url.GURL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
+import android.app.Activity;
|
||||
+import android.content.Intent;
|
||||
+import android.content.Context;
|
||||
+import android.content.pm.PackageManager;
|
||||
+import android.content.DialogInterface;
|
||||
+import android.content.Intent;
|
||||
+import android.net.Uri;
|
||||
+import android.content.res.Resources;
|
||||
+import android.content.ContentResolver;
|
||||
+import android.net.Uri;
|
||||
+import android.provider.Browser;
|
||||
+import android.provider.DocumentsContract;
|
||||
+import android.Manifest.permission;
|
||||
+import android.view.View;
|
||||
+import android.view.LayoutInflater;
|
||||
+
|
||||
+import androidx.appcompat.app.AlertDialog;
|
||||
import android.os.SystemClock;
|
||||
+import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Pair;
|
||||
|
||||
@@ -38,6 +51,33 @@ import org.chromium.url.GURL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
+
|
||||
+import java.io.File;
|
||||
+
|
||||
+import org.chromium.base.ContentUriUtils;
|
||||
+import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
||||
+import org.chromium.base.task.AsyncTask;
|
||||
+import org.chromium.chrome.R;
|
||||
+import org.chromium.chrome.browser.document.ChromeLauncherActivity;
|
||||
+import org.chromium.chrome.browser.IntentHandler;
|
||||
+import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
+import org.chromium.base.shared_preferences.SharedPreferencesManager;
|
||||
+import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
+import org.chromium.ui.base.PageTransition;
|
||||
+import org.chromium.ui.base.WindowAndroid;
|
||||
+import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
+
|
||||
+import android.view.View;
|
||||
+import android.view.LayoutInflater;
|
||||
+import org.chromium.ui.modelutil.PropertyModel;
|
||||
+import org.chromium.ui.modaldialog.ModalDialogProperties;
|
||||
+import org.chromium.ui.modaldialog.DialogDismissalCause;
|
||||
+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 android.content.res.Resources;
|
||||
+import org.chromium.base.task.AsyncTask;
|
||||
+
|
||||
+import java.io.File;
|
||||
+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;
|
||||
+import org.chromium.ui.base.WindowAndroid;
|
||||
+import org.chromium.ui.modelutil.PropertyModel;
|
||||
+import org.chromium.ui.modaldialog.ModalDialogManager;
|
||||
+import org.chromium.ui.modaldialog.ModalDialogProperties;
|
||||
+import org.chromium.ui.modaldialog.DialogDismissalCause;
|
||||
+
|
||||
/**
|
||||
* Provides the communication channel for Android to fetch and manipulate the bookmark model stored
|
||||
* in native.
|
||||
@@ -451,6 +491,209 @@ class BookmarkBridge {
|
||||
@@ -483,6 +525,212 @@ class BookmarkBridge {
|
||||
.getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType());
|
||||
}
|
||||
|
||||
@@ -430,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);
|
||||
@@ -480,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.
|
||||
*
|
||||
@@ -979,6 +1222,39 @@ class BookmarkBridge {
|
||||
@@ -1036,6 +1284,39 @@ class BookmarkBridge {
|
||||
depthList.add(depth);
|
||||
}
|
||||
|
||||
@@ -526,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++) {
|
||||
@@ -1024,6 +1300,10 @@ class BookmarkBridge {
|
||||
@@ -1094,6 +1375,10 @@ class BookmarkBridge {
|
||||
void getChildIds(
|
||||
long nativeBookmarkBridge, long id, int type, List<BookmarkId> bookmarksList);
|
||||
|
||||
@@ -560,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
|
||||
@@ -49,6 +49,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;
|
||||
@@ -586,7 +583,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/BookmarkManagerMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java
|
||||
@@ -55,6 +55,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
|
||||
@@ -53,6 +53,8 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega
|
||||
import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate.SelectionObserver;
|
||||
import org.chromium.components.commerce.core.CommerceSubscription;
|
||||
import org.chromium.components.commerce.core.ShoppingService;
|
||||
@@ -605,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;
|
||||
@@ -566,6 +571,14 @@ class BookmarkManagerMediator
|
||||
@@ -554,6 +559,14 @@ class BookmarkManagerMediator
|
||||
mNativePage = nativePage;
|
||||
}
|
||||
|
||||
@@ -620,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.
|
||||
@@ -742,6 +755,16 @@ class BookmarkManagerMediator
|
||||
@@ -734,6 +747,16 @@ class BookmarkManagerMediator
|
||||
}
|
||||
}
|
||||
|
||||
@@ -653,14 +650,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
@@ -31,7 +34,7 @@ public class BookmarkPage extends BasicNativePage {
|
||||
ComponentName componentName,
|
||||
SnackbarManager snackbarManager,
|
||||
boolean isIncognito,
|
||||
Profile profile,
|
||||
- NativePageHost host) {
|
||||
+ NativePageHost host, ChromeActivity activity) {
|
||||
super(host);
|
||||
|
||||
mBookmarkManagerCoordinator =
|
||||
@@ -44,6 +47,9 @@ public class BookmarkPage extends BasicNativePage {
|
||||
Profile.getLastUsedRegularProfile(),
|
||||
@@ -43,6 +46,9 @@ public class BookmarkPage extends BasicNativePage {
|
||||
profile,
|
||||
new BookmarkUiPrefs(ChromeSharedPreferences.getInstance()));
|
||||
mBookmarkManagerCoordinator.setBasicNativePage(this);
|
||||
+ mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(),
|
||||
@@ -726,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);
|
||||
@@ -780,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;
|
||||
@@ -53,7 +54,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 {
|
||||
@@ -797,16 +794,16 @@ 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;
|
||||
@@ -70,7 +71,7 @@ public class NativePageFactory {
|
||||
|
||||
@@ -74,7 +75,7 @@ public class NativePageFactory {
|
||||
private NativePageBuilder mNativePageBuilder;
|
||||
|
||||
- public NativePageFactory(@NonNull Activity activity,
|
||||
+ public NativePageFactory(@NonNull ChromeActivity activity,
|
||||
public NativePageFactory(
|
||||
- @NonNull Activity activity,
|
||||
+ @NonNull ChromeActivity activity,
|
||||
@NonNull BottomSheetController sheetController,
|
||||
@NonNull BrowserControlsManager browserControlsManager,
|
||||
@NonNull Supplier<Tab> currentTabSupplier,
|
||||
@@ -118,7 +119,7 @@ public class NativePageFactory {
|
||||
@@ -140,7 +141,7 @@ public class NativePageFactory {
|
||||
|
||||
@VisibleForTesting
|
||||
static class NativePageBuilder {
|
||||
@@ -815,19 +812,19 @@ 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;
|
||||
@@ -133,7 +134,7 @@ public class NativePageFactory {
|
||||
private final HomeSurfaceTracker mHomeSurfaceTracker;
|
||||
private final ObservableSupplier<TabContentManager> mTabContentManagerSupplier;
|
||||
@@ -158,7 +159,7 @@ public class NativePageFactory {
|
||||
private final OneshotSupplier<ModuleRegistry> mModuleRegistrySupplier;
|
||||
|
||||
- public NativePageBuilder(Activity activity, Supplier<NewTabPageUma> uma,
|
||||
+ public NativePageBuilder(ChromeActivity activity, Supplier<NewTabPageUma> uma,
|
||||
public NativePageBuilder(
|
||||
- Activity activity,
|
||||
+ ChromeActivity activity,
|
||||
Supplier<NewTabPageUma> uma,
|
||||
BottomSheetController sheetController,
|
||||
BrowserControlsManager browserControlsManager, Supplier<Tab> currentTabSupplier,
|
||||
Supplier<SnackbarManager> snackbarManagerSupplier,
|
||||
@@ -175,7 +176,7 @@ public class NativePageFactory {
|
||||
protected NativePage buildBookmarksPage(Tab tab) {
|
||||
return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(),
|
||||
mTabModelSelector.isIncognitoSelected(),
|
||||
BrowserControlsManager browserControlsManager,
|
||||
@@ -228,7 +229,7 @@ public class NativePageFactory {
|
||||
mActivity.getComponentName(),
|
||||
mSnackbarManagerSupplier.get(),
|
||||
tab.getProfile(),
|
||||
- new TabShim(tab, mBrowserControlsManager, mTabModelSelector));
|
||||
+ new TabShim(tab, mBrowserControlsManager, mTabModelSelector), mActivity);
|
||||
}
|
||||
@@ -836,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
|
||||
@@ -208,6 +208,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",
|
||||
@@ -845,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",
|
||||
@@ -1974,6 +1976,13 @@ static_library("browser") {
|
||||
@@ -1935,6 +1937,13 @@ static_library("browser") {
|
||||
]
|
||||
}
|
||||
|
||||
@@ -859,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",
|
||||
@@ -3691,8 +3700,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",
|
||||
@@ -871,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,25 @@
|
||||
@@ -59,6 +59,28 @@
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
|
||||
@@ -893,11 +890,14 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+#include "base/task/task_traits.h"
|
||||
+#include "base/task/thread_pool.h"
|
||||
+#include "content/public/browser/browser_task_traits.h"
|
||||
+#include "base/files/file_path.h"
|
||||
+#include "ui/shell_dialogs/selected_file_info.h"
|
||||
+#include "ui/shell_dialogs/select_file_dialog.h"
|
||||
+
|
||||
using base::android::AttachCurrentThread;
|
||||
using base::android::ConvertUTF16ToJavaString;
|
||||
using base::android::ConvertUTF8ToJavaString;
|
||||
@@ -75,8 +94,92 @@ using bookmarks::android::JavaBookmarkIdGetType;
|
||||
@@ -76,12 +98,96 @@ using bookmarks::android::JavaBookmarkIdGetType;
|
||||
using content::BrowserThread;
|
||||
using power_bookmarks::PowerBookmarkMeta;
|
||||
|
||||
@@ -952,7 +952,11 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+} // internal
|
||||
+
|
||||
namespace {
|
||||
// The key used to connect the instance of the bookmark bridge to the bookmark
|
||||
// model.
|
||||
const char kBookmarkBridgeUserDataKey[] = "bookmark_bridge";
|
||||
|
||||
// Compares titles of different instance of BookmarkNode.
|
||||
+class FileBookmarksExportObserver: public BookmarksExportObserver {
|
||||
+ public:
|
||||
+ FileBookmarksExportObserver(
|
||||
@@ -990,10 +994,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
class BookmarkTitleComparer {
|
||||
public:
|
||||
explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
|
||||
@@ -198,6 +301,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
if (partner_bookmarks_shim_)
|
||||
partner_bookmarks_shim_->RemoveObserver(this);
|
||||
reading_list_manager_->RemoveObserver(this);
|
||||
@@ -232,6 +338,10 @@ BookmarkBridge::~BookmarkBridge() {
|
||||
partner_bookmarks_shim_observation_.Reset();
|
||||
bookmark_model_observation_.Reset();
|
||||
profile_observation_.Reset();
|
||||
+ // There may be pending file dialogs, we need to tell them that we've gone
|
||||
+ // away so they don't try and call back to us.
|
||||
+ if (select_file_dialog_)
|
||||
@@ -1001,7 +1005,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
}
|
||||
|
||||
void BookmarkBridge::Destroy(JNIEnv*) {
|
||||
@@ -556,6 +663,182 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
@@ -668,6 +778,183 @@ jint BookmarkBridge::GetTotalBookmarkCount(
|
||||
return count;
|
||||
}
|
||||
|
||||
@@ -1083,8 +1087,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+ return std::make_unique<TemplateURL>(data);
|
||||
+}
|
||||
+
|
||||
+void BookmarkBridge::FileSelected(const base::FilePath& path, int index,
|
||||
+void BookmarkBridge::FileSelected(const ui::SelectedFileInfo& file, int index,
|
||||
+ void* params) {
|
||||
+ base::FilePath path = file.path();
|
||||
+ base::ThreadPool::PostTaskAndReplyWithResult(
|
||||
+ FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()},
|
||||
+ base::BindOnce(&BookmarkBridge::FileSelectedImpl,
|
||||
@@ -1187,7 +1192,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
@@ -19,6 +19,7 @@
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "base/supports_user_data.h"
|
||||
#include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
|
||||
#include "chrome/browser/image_service/image_service_factory.h"
|
||||
@@ -1195,32 +1200,32 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
#include "chrome/browser/profiles/profile.h"
|
||||
#include "chrome/browser/profiles/profile_observer.h"
|
||||
#include "chrome/browser/reading_list/android/reading_list_manager.h"
|
||||
@@ -27,6 +28,9 @@
|
||||
@@ -33,6 +34,9 @@
|
||||
#include "components/prefs/pref_change_registrar.h"
|
||||
#include "url/android/gurl_android.h"
|
||||
|
||||
+#include "components/search_engines/template_url.h"
|
||||
+#include "ui/shell_dialogs/select_file_dialog.h"
|
||||
+
|
||||
namespace bookmarks {
|
||||
class BookmarkModel;
|
||||
class ManagedBookmarkService;
|
||||
@@ -44,7 +48,8 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
class BookmarkBridgeTest;
|
||||
|
||||
// The delegate to fetch bookmarks information for the Android native
|
||||
@@ -44,7 +48,8 @@ class BookmarkBridge : public ProfileObserver,
|
||||
public bookmarks::BaseBookmarkModelObserver,
|
||||
public PartnerBookmarksShim::Observer,
|
||||
public ReadingListManager::Observer,
|
||||
public ProfileObserver,
|
||||
- public base::SupportsUserData::Data {
|
||||
+ public base::SupportsUserData::Data,
|
||||
+ public ui::SelectFileDialog::Listener {
|
||||
public:
|
||||
BookmarkBridge(Profile* profile,
|
||||
bookmarks::BookmarkModel* model,
|
||||
@@ -72,6 +77,12 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
BookmarkBridge(
|
||||
Profile* profile,
|
||||
@@ -81,6 +86,12 @@ class BookmarkBridge : public ProfileObserver,
|
||||
|
||||
bool IsDoingExtensiveChanges(JNIEnv* env);
|
||||
|
||||
+ // SelectFileDialog::Listener implementation.
|
||||
+ void FileSelected(const base::FilePath& path,
|
||||
+ void FileSelected(const ui::SelectedFileInfo& file,
|
||||
+ int index,
|
||||
+ void* params) override;
|
||||
+ void FileSelectionCanceled(void* params) override;
|
||||
@@ -1228,7 +1233,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
jboolean IsEditBookmarksEnabled(JNIEnv* env);
|
||||
|
||||
void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env);
|
||||
@@ -84,6 +95,15 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -93,6 +104,15 @@ class BookmarkBridge : public ProfileObserver,
|
||||
jlong id,
|
||||
jint type);
|
||||
|
||||
@@ -1241,13 +1246,13 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
+ const base::android::JavaParamRef<jobject>& java_window,
|
||||
+ const base::android::JavaParamRef<jstring>& j_export_path);
|
||||
+
|
||||
void GetTopLevelFolderIds(
|
||||
void GetAllFoldersWithDepths(
|
||||
JNIEnv* env,
|
||||
const base::android::JavaParamRef<jobject>& j_result_obj);
|
||||
@@ -310,12 +330,16 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
const base::android::JavaParamRef<jobject>& j_folders_obj,
|
||||
@@ -356,12 +376,16 @@ class BookmarkBridge : public ProfileObserver,
|
||||
void DestroyJavaObject();
|
||||
|
||||
raw_ptr<Profile> profile_;
|
||||
raw_ptr<Profile> profile_; // weak
|
||||
+ base::FilePath export_path_;
|
||||
+ raw_ptr<BookmarksExportObserver> observer_; // 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.
|
||||
@@ -329,6 +353,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
// Observes the profile destruction and creation.
|
||||
base::ScopedObservation<Profile, ProfileObserver> profile_observation_{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;
|
||||
@@ -1304,7 +1309,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
|
||||
@@ -49,7 +49,7 @@ public class DownloadLocationCustomView
|
||||
@@ -47,7 +47,7 @@ public class DownloadLocationCustomView extends ScrollView
|
||||
private TextView mFileSize;
|
||||
private Spinner mFileLocation;
|
||||
private TextView mLocationAvailableSpace;
|
||||
@@ -1312,18 +1317,18 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
||||
+ public CheckBox mDontShowAgain;
|
||||
private @DownloadLocationDialogType int mDialogType;
|
||||
private long mTotalBytes;
|
||||
|
||||
@@ -72,7 +72,7 @@ public class DownloadLocationCustomView
|
||||
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;
|
||||
@@ -125,7 +125,7 @@ public class DownloadLocationCustomView
|
||||
* @return The text that the user inputted as the name of the file.
|
||||
- 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
|
||||
- String getFileName() {
|
||||
@@ -1331,8 +1336,8 @@ 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();
|
||||
}
|
||||
@@ -134,7 +134,7 @@ public class DownloadLocationCustomView
|
||||
* @return The file path based on what the user selected as the location of the file.
|
||||
@@ -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
|
||||
- DirectoryOption getDirectoryOption() {
|
||||
@@ -1343,10 +1348,10 @@ 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
|
||||
@@ -36,12 +36,12 @@ import java.util.ArrayList;
|
||||
@@ -37,18 +37,18 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class DownloadLocationDialogCoordinator implements ModalDialogProperties.Controller {
|
||||
@NonNull
|
||||
private DownloadLocationDialogController mController;
|
||||
@NonNull private DownloadLocationDialogController mController;
|
||||
- private PropertyModel mDialogModel;
|
||||
+ protected PropertyModel mDialogModel;
|
||||
private PropertyModel mDownloadLocationDialogModel;
|
||||
@@ -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;
|
||||
@@ -130,7 +130,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.
|
||||
*/
|
||||
@@ -1371,44 +1383,29 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
||||
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
|
||||
@@ -191,6 +191,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
@@ -176,6 +176,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kCacheActivityTaskID,
|
||||
&kCastDeviceFilter,
|
||||
&kClearOmniboxFocusAfterNavigation,
|
||||
&kCloseTabSuggestions,
|
||||
&kCloseTabSaveTabList,
|
||||
+ &kBookmarksExportUseSaf,
|
||||
&kCriticalPersistedTabData,
|
||||
&kCreateNewTabInitializeRenderer,
|
||||
&kCCTBottomBarSwipeUpGesture,
|
||||
&kCCTBrandTransparencyMemoryImprovement,
|
||||
&kCCTClientDataHeader,
|
||||
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
|
||||
@@ -489,6 +489,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID =
|
||||
"UseLibunwindstackNativeUnwinderAndroid";
|
||||
@@ -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";
|
||||
+ public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf";
|
||||
public static final String VOICE_BUTTON_IN_TOP_TOOLBAR = "VoiceButtonInTopToolbar";
|
||||
public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy";
|
||||
public static final String WEBNOTES_STYLIZE = "WebNotesStylize";
|
||||
public static final String WEB_APK_ALLOW_ICON_UPDATE = "WebApkAllowIconUpdate";
|
||||
public static final String WEB_APK_BACKUP_AND_RESTORE_BACKEND = "WebApkBackupAndRestoreBackend";
|
||||
diff --git a/chrome/browser/importer/profile_writer.cc b/chrome/browser/importer/profile_writer.cc
|
||||
--- a/chrome/browser/importer/profile_writer.cc
|
||||
+++ b/chrome/browser/importer/profile_writer.cc
|
||||
@@ -105,12 +105,14 @@ void ProfileWriter::AddHistoryPage(const history::URLRows& page,
|
||||
HistoryServiceFactory::GetForProfile(profile_,
|
||||
ServiceAccessType::EXPLICIT_ACCESS)
|
||||
->AddPagesWithDetails(page, visit_source);
|
||||
+#if !BUILDFLAG(IS_ANDROID)
|
||||
// Measure the size of the history page after Auto Import on first run.
|
||||
if (first_run::IsChromeFirstRun() &&
|
||||
visit_source == history::SOURCE_IE_IMPORTED) {
|
||||
UMA_HISTOGRAM_COUNTS_1M("Import.ImportedHistorySize.AutoImportFromIE",
|
||||
page.size());
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ProfileWriter::AddHomepage(const GURL& home_page) {
|
||||
@@ -131,6 +133,16 @@ void ProfileWriter::AddBookmarks(
|
||||
@@ -125,6 +125,16 @@ void ProfileWriter::AddBookmarks(
|
||||
return;
|
||||
|
||||
BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_);
|
||||
@@ -1451,7 +1448,7 @@ diff --git a/chrome/browser/importer/profile_writer.h b/chrome/browser/importer/
|
||||
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
|
||||
@@ -101,6 +101,8 @@ public final class ChromePreferenceKeys {
|
||||
@@ -104,6 +104,8 @@ public final class ChromePreferenceKeys {
|
||||
"enhanced_bookmark_last_used_parent_folder";
|
||||
public static final String BOOKMARKS_SORT_ORDER = "Chrome.Bookmarks.BookmarkRowSortOrder";
|
||||
public static final String BOOKMARKS_VISUALS_PREF = "Chrome.Bookmarks.BookmarkRowDisplay";
|
||||
@@ -1460,7 +1457,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
||||
|
||||
/**
|
||||
* Whether Chrome is set as the default browser.
|
||||
@@ -986,6 +988,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,
|
||||
@@ -1499,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
|
||||
@@ -402,6 +402,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",
|
||||
@@ -1512,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 += [
|
||||
@@ -1521,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") {
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1720,25 +1717,25 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
||||
// The permission scenario for accessing media has evolved a bit over the years:
|
||||
// Early on, READ_EXTERNAL_STORAGE was required to access media, but that permission was
|
||||
// later deprecated. In its place (starting with Android T) READ_MEDIA_IMAGES and
|
||||
@@ -381,7 +388,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
@@ -385,7 +392,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
|
||||
// TODO(finnur): Remove once we figure out the cause of crbug.com/950024.
|
||||
- if (shouldUsePhotoPicker) {
|
||||
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
|
||||
if (permissions.length != requestPermissions.length) {
|
||||
throw new RuntimeException(
|
||||
String.format("Permissions arrays misaligned: %d != %d",
|
||||
@@ -395,7 +402,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
}
|
||||
// TODO(finnur): Remove once we figure out the cause of
|
||||
// crbug.com/950024.
|
||||
- if (shouldUsePhotoPicker) {
|
||||
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
|
||||
if (permissions.length != requestPermissions.length) {
|
||||
throw new RuntimeException(
|
||||
String.format(
|
||||
@@ -402,7 +409,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
}
|
||||
|
||||
- if (shouldUsePhotoPicker) {
|
||||
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
|
||||
if (permissions[i].equals(storagePermission)
|
||||
|| permissions[i].equals(Manifest.permission.READ_MEDIA_IMAGES)
|
||||
|| permissions[i].equals(
|
||||
@@ -672,6 +679,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
- if (shouldUsePhotoPicker) {
|
||||
+ if (shouldUsePhotoPicker || shouldShowHtmlTypes()) {
|
||||
if (permissions[i].equals(storagePermission)
|
||||
|| permissions[i].equals(
|
||||
Manifest.permission.READ_MEDIA_IMAGES)
|
||||
@@ -685,6 +692,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
}
|
||||
if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
|
||||
}
|
||||
@@ -1746,7 +1743,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui
|
||||
return mimeTypes;
|
||||
}
|
||||
|
||||
@@ -1000,6 +1008,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
@@ -1034,6 +1042,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick
|
||||
return countAcceptTypesFor(superType) == mFileTypes.size();
|
||||
}
|
||||
|
||||
@@ -1773,7 +1770,7 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h
|
||||
--- a/ui/shell_dialogs/select_file_dialog.h
|
||||
+++ b/ui/shell_dialogs/select_file_dialog.h
|
||||
@@ -213,6 +213,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
|
||||
@@ -199,6 +199,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog
|
||||
const GURL* caller = nullptr);
|
||||
bool HasMultipleFileTypeChoices();
|
||||
|
||||
@@ -1785,7 +1782,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
--- a/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
+++ b/ui/shell_dialogs/select_file_dialog_android.cc
|
||||
@@ -142,6 +142,12 @@ void SelectFileDialogImpl::SelectFileImpl(
|
||||
@@ -137,6 +137,12 @@ void SelectFileDialogImpl::SelectFileImpl(
|
||||
owning_window->GetJavaObject());
|
||||
}
|
||||
|
||||
@@ -1839,7 +1836,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_linux.h b/ui/shell_dialogs/sele
|
||||
diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/select_file_dialog_win.cc
|
||||
--- a/ui/shell_dialogs/select_file_dialog_win.cc
|
||||
+++ b/ui/shell_dialogs/select_file_dialog_win.cc
|
||||
@@ -193,6 +193,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog,
|
||||
@@ -194,6 +194,7 @@ class SelectFileDialogImpl : public ui::SelectFileDialog,
|
||||
int index);
|
||||
|
||||
bool HasMultipleFileTypeChoicesImpl() override;
|
||||
@@ -1847,7 +1844,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/selec
|
||||
|
||||
// Returns the filter to be used while displaying the open/save file dialog.
|
||||
// This is computed from the extensions for the file types being opened.
|
||||
@@ -271,6 +272,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() {
|
||||
@@ -272,6 +273,10 @@ bool SelectFileDialogImpl::HasMultipleFileTypeChoicesImpl() {
|
||||
return has_multiple_file_type_choices_;
|
||||
}
|
||||
|
||||
@@ -1859,4 +1856,3 @@ diff --git a/ui/shell_dialogs/select_file_dialog_win.cc b/ui/shell_dialogs/selec
|
||||
if (!owning_window->GetRootWindow())
|
||||
return false;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+142
-120
@@ -16,19 +16,20 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
base/BUILD.gn | 4 +-
|
||||
base/android/feature_map.cc | 8 +-
|
||||
base/feature_list.cc | 80 ++++++++++
|
||||
.../base/cached_flags/CachedFlag.java | 8 +-
|
||||
base/feature_list.cc | 78 +++++++++
|
||||
base/feature_list.h | 72 ++++++++-
|
||||
build/android/gyp/java_cpp_features.py | 17 ++
|
||||
chrome/android/java/res/values/values.xml | 3 +
|
||||
.../java/res/xml/privacy_preferences.xml | 4 +
|
||||
.../homepage/settings/HomepageSettings.java | 2 +-
|
||||
.../privacy/settings/PrivacySettings.java | 2 +-
|
||||
.../browser/settings/SettingsActivity.java | 36 +++++
|
||||
chrome/browser/about_flags.cc | 11 ++
|
||||
chrome/browser/browser_features.cc | 1 +
|
||||
chrome/browser/flags/BUILD.gn | 12 ++
|
||||
chrome/browser/flags/BUILD.gn | 13 ++
|
||||
.../flags/android/chrome_feature_list.cc | 1 +
|
||||
.../flags/android/chrome_feature_list.h | 1 +
|
||||
.../chrome/browser/flags/CachedFlag.java | 6 +
|
||||
.../browser/flags/ChromeFeatureList.java | 13 +-
|
||||
.../flags/cromite/include_all_directory.java | 1 +
|
||||
.../java_template/CromiteCachedFlag.java.tmpl | 47 ++++++
|
||||
@@ -87,7 +88,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
services/network/public/cpp/features.h | 1 +
|
||||
third_party/blink/common/features.cc | 1 +
|
||||
third_party/blink/public/common/features.h | 1 +
|
||||
73 files changed, 737 insertions(+), 18 deletions(-)
|
||||
74 files changed, 738 insertions(+), 20 deletions(-)
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java
|
||||
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl
|
||||
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/placeholder.txt
|
||||
@@ -119,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
|
||||
@@ -206,6 +206,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") {
|
||||
@@ -128,15 +129,15 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
|
||||
sources = [
|
||||
"allocator/allocator_check.cc",
|
||||
"allocator/allocator_check.h",
|
||||
@@ -1037,7 +1039,7 @@ component("base") {
|
||||
@@ -1055,7 +1057,7 @@ component("base") {
|
||||
"//build/config/compiler:wglobal_constructors",
|
||||
]
|
||||
|
||||
- deps = [
|
||||
+ deps += [
|
||||
":check_version_internal",
|
||||
":message_pump_buildflags",
|
||||
"//base/allocator:buildflags",
|
||||
"//base/allocator/partition_allocator:raw_ptr",
|
||||
diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
|
||||
--- a/base/android/feature_map.cc
|
||||
+++ b/base/android/feature_map.cc
|
||||
@@ -157,14 +158,38 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc
|
||||
return base::FeatureList::IsEnabled(*feature);
|
||||
}
|
||||
|
||||
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
|
||||
@@ -125,7 +125,7 @@ public class CachedFlag extends Flag {
|
||||
.writeBoolean(getSharedPreferenceKey(), isEnabledInNative);
|
||||
}
|
||||
|
||||
- String getSharedPreferenceKey() {
|
||||
+ public String getSharedPreferenceKey() {
|
||||
// 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);
|
||||
}
|
||||
|
||||
+ public void setValueReturnedOverride(@Nullable Boolean value) {
|
||||
+ synchronized (ValuesReturned.sBoolValues) {
|
||||
+ ValuesReturned.sBoolValues.put(getSharedPreferenceKey(), value);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/** Create a Map of feature names -> {@link CachedFlag} from multiple lists of CachedFlags. */
|
||||
public static Map<String, CachedFlag> createCachedFlagMap(
|
||||
List<List<CachedFlag>> allCachedFlagsLists) {
|
||||
diff --git a/base/feature_list.cc b/base/feature_list.cc
|
||||
--- a/base/feature_list.cc
|
||||
+++ b/base/feature_list.cc
|
||||
@@ -29,6 +29,33 @@
|
||||
#include "base/strings/stringprintf.h"
|
||||
#include "build/build_config.h"
|
||||
@@ -37,6 +37,31 @@
|
||||
|
||||
namespace base {
|
||||
|
||||
+namespace base {
|
||||
+namespace internal {
|
||||
+
|
||||
+using DefaultStateOverrides =
|
||||
@@ -189,12 +214,11 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
|
||||
+}
|
||||
+
|
||||
+} // namespace internal
|
||||
+} // namespace base
|
||||
+
|
||||
namespace base {
|
||||
|
||||
namespace {
|
||||
@@ -436,6 +463,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
|
||||
|
||||
// Pointer to the FeatureList instance singleton that was set via
|
||||
@@ -464,6 +489,48 @@ bool FeatureList::IsEnabled(const Feature& feature) {
|
||||
return g_feature_list_instance->IsFeatureEnabled(feature);
|
||||
}
|
||||
|
||||
@@ -243,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;
|
||||
@@ -616,6 +685,17 @@ void FeatureList::SetCachingContextForTesting(uint16_t caching_context) {
|
||||
@@ -710,6 +777,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) {
|
||||
|
||||
void FeatureList::FinalizeInitialization() {
|
||||
DCHECK(!initialized_);
|
||||
@@ -264,7 +288,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc
|
||||
diff --git a/base/feature_list.h b/base/feature_list.h
|
||||
--- a/base/feature_list.h
|
||||
+++ b/base/feature_list.h
|
||||
@@ -93,8 +93,10 @@ enum FeatureState {
|
||||
@@ -99,8 +99,10 @@ enum FeatureState {
|
||||
// [1]:
|
||||
// https://crsrc.org/c/docs/speed/binary_size/android_binary_size_trybot.md#Mutable-Constants
|
||||
struct BASE_EXPORT LOGICALLY_CONST Feature {
|
||||
@@ -277,7 +301,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
|
||||
#if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX)
|
||||
if (StringPiece(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) {
|
||||
LOG(FATAL) << "Invalid feature name " << name << " starts with "
|
||||
@@ -120,6 +122,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
|
||||
@@ -126,6 +128,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature {
|
||||
// command line switch.
|
||||
const FeatureState default_state;
|
||||
|
||||
@@ -287,7 +311,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
|
||||
private:
|
||||
friend class FeatureList;
|
||||
|
||||
@@ -395,6 +400,11 @@ class BASE_EXPORT FeatureList {
|
||||
@@ -401,6 +406,11 @@ class BASE_EXPORT FeatureList {
|
||||
// instance, which is checked in builds with DCHECKs enabled.
|
||||
static bool IsEnabled(const Feature& feature);
|
||||
|
||||
@@ -299,7 +323,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
|
||||
// Some characters are not allowed to appear in feature names or the
|
||||
// associated field trial names, as they are used as special characters for
|
||||
// command-line serialization. This function checks that the strings are ASCII
|
||||
@@ -616,4 +626,62 @@ class BASE_EXPORT FeatureList {
|
||||
@@ -665,4 +675,62 @@ class BASE_EXPORT FeatureList {
|
||||
|
||||
} // namespace base
|
||||
|
||||
@@ -321,7 +345,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h
|
||||
+} // namespace base
|
||||
+
|
||||
+#define CROMITE_FEATURE(feature, name, default_state) \
|
||||
+ CONSTINIT const base::Feature feature(name, default_state, true, true); \
|
||||
+ constinit const base::Feature feature(name, default_state, true, true); \
|
||||
+ _Pragma("clang diagnostic push") \
|
||||
+ _Pragma("clang diagnostic ignored \"-Wglobal-constructors\"") \
|
||||
+ static const ::base::internal::FeatureDefaultStateOverrider \
|
||||
@@ -396,20 +420,20 @@ diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -44,6 +44,9 @@ found in the LICENSE file.
|
||||
<!-- Contextual Search -->
|
||||
<item name="contextual_search_sheet_full_height_fraction" format="float" type="dimen">0.95</item>
|
||||
@@ -9,6 +9,9 @@ found in the LICENSE file.
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:ignore="MissingTranslation">
|
||||
|
||||
+ <string name="cromite_flags_title">Open Cromite flags list</string>
|
||||
+ <string name="cromite_flags_url">chrome://flags/cromite</string>
|
||||
+
|
||||
<!-- Tablet tab strip -->
|
||||
<item name="compositor_background_tab_outline_alpha" format="float" type="dimen">0.5</item>
|
||||
<item name="compositor_background_tab_overlay_alpha" format="float" type="dimen">0</item>
|
||||
<!-- Full Screen Constants -->
|
||||
<!-- These constants were chosen empirically for their visually pleasant behavior.
|
||||
Contact tedchoc@chromium.org or dtrainor@chromium.org for questions about
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -58,6 +58,10 @@ found in the LICENSE file.
|
||||
@@ -59,6 +59,10 @@ found in the LICENSE file.
|
||||
android:title="@string/tabgrid_use_icons_title"
|
||||
android:summary="@string/tabgrid_use_icons_summary"
|
||||
android:defaultValue="false" />
|
||||
@@ -420,10 +444,22 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
<Preference
|
||||
android:key="preload_pages"
|
||||
android:title="@string/preload_pages_title"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/settings/HomepageSettings.java
|
||||
@@ -37,7 +37,7 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
private RadioButtonGroupHomepagePreference mRadioButtons;
|
||||
|
||||
@Override
|
||||
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
+ public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) {
|
||||
mHomepageManager = HomepageManager.getInstance();
|
||||
|
||||
getActivity().setTitle(R.string.options_homepage_title);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -123,7 +123,7 @@ public class PrivacySettings
|
||||
@@ -121,7 +121,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private static final String PREF_HISTORY_EXPIRE_DAYS_THRESHOLD = "history_expire_days_threshold";
|
||||
|
||||
@Override
|
||||
@@ -443,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;
|
||||
@@ -73,6 +74,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;
|
||||
@@ -451,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 {
|
||||
@@ -487,8 +523,8 @@ 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";
|
||||
static final String EXTRA_SHOW_FRAGMENT_ARGUMENTS = "show_fragment_args";
|
||||
@@ -354,6 +386,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
||||
|
||||
@@ -367,6 +399,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
|
||||
((AccessibilitySettings) fragment)
|
||||
.getDelegate()).setSnackbarManager(mSnackbarManager);
|
||||
}
|
||||
@@ -502,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
|
||||
@@ -370,6 +370,10 @@ using flags_ui::kOsLinux;
|
||||
@@ -371,6 +371,10 @@ using flags_ui::kOsLinux;
|
||||
using flags_ui::kOsMac;
|
||||
using flags_ui::kOsWin;
|
||||
|
||||
@@ -513,9 +549,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
namespace about_flags {
|
||||
|
||||
namespace {
|
||||
@@ -4033,6 +4037,10 @@ const flags_ui::FeatureEntry::FeatureVariation
|
||||
std::size(kParcelTrackingTestDataOutForDelivery), 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"
|
||||
@@ -524,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.
|
||||
@@ -4059,6 +4067,9 @@ const flags_ui::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.
|
||||
@@ -537,28 +573,31 @@ 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
|
||||
@@ -298,4 +298,5 @@ BASE_FEATURE(kPayloadTestComponent,
|
||||
@@ -368,4 +368,5 @@ BASE_FEATURE(kNetworkAnnotationMonitoring,
|
||||
"NetworkAnnotationMonitoring",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
#endif
|
||||
|
||||
+#include "cromite_flags/chrome_browser_browser_features_cc.inc"
|
||||
} // namespace features
|
||||
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
|
||||
@@ -26,7 +26,11 @@ android_library("java") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
|
||||
@@ -13,9 +13,14 @@ android_library("java") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
||||
]
|
||||
+ sources += [
|
||||
+ "android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java",
|
||||
+ ]
|
||||
public_deps = [ "//base:base_cached_flags_java" ]
|
||||
deps = [
|
||||
+ ":java_cromite_cached_flags",
|
||||
"//base:base_java",
|
||||
+ "//base:base_cached_flags_java",
|
||||
"//base/version_info/android:version_constants_java",
|
||||
"//build:chromeos_buildflags",
|
||||
"//build/android:build_java",
|
||||
@@ -37,12 +41,20 @@ android_library("java") {
|
||||
@@ -25,12 +30,20 @@ android_library("java") {
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
]
|
||||
srcjar_deps = [
|
||||
@@ -582,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
|
||||
@@ -1225,5 +1225,6 @@ BASE_FEATURE(kWebApkInstallService,
|
||||
"WebApkInstallService",
|
||||
@@ -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"
|
||||
@@ -592,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
|
||||
@@ -231,6 +231,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
|
||||
@@ -188,6 +188,7 @@ constexpr base::FeatureParam<int> kAuxiliarySearchMaxTabsCountParam(
|
||||
"auxiliary_search_max_donation_tab",
|
||||
100);
|
||||
|
||||
@@ -600,28 +639,12 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser
|
||||
} // namespace android
|
||||
} // namespace chrome
|
||||
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
|
||||
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/CachedFlag.java
|
||||
@@ -192,6 +192,12 @@ public class CachedFlag extends Flag {
|
||||
}
|
||||
}
|
||||
|
||||
+ public void setValueReturnedOverride(@Nullable Boolean value) {
|
||||
+ synchronized (ValuesReturned.sBoolValues) {
|
||||
+ ValuesReturned.sBoolValues.put(getSharedPreferenceKey(), value);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* Create a Map of feature names -> {@link CachedFlag} from multiple lists of CachedFlags.
|
||||
*/
|
||||
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
|
||||
@@ -7,6 +7,10 @@ package org.chromium.chrome.browser.flags;
|
||||
import org.chromium.base.FeatureMap;
|
||||
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
|
||||
@@ -13,6 +13,10 @@ import org.chromium.base.cached_flags.DoubleCachedFieldTrialParameter;
|
||||
import org.chromium.base.cached_flags.IntCachedFieldTrialParameter;
|
||||
import org.chromium.base.cached_flags.StringCachedFieldTrialParameter;
|
||||
|
||||
+import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase;
|
||||
+import java.util.Arrays;
|
||||
@@ -630,18 +653,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -673,7 +677,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sUseLibunwindstackNativeUnwinderAndroid =
|
||||
new CachedFlag(USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID, true);
|
||||
@@ -691,7 +695,7 @@ public abstract class ChromeFeatureList {
|
||||
public static final CachedFlag sVerticalAutomotiveBackButtonToolbar =
|
||||
newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true);
|
||||
|
||||
- public static final List<CachedFlag> sFlagsCachedFullBrowser =
|
||||
+ public static final List<CachedFlag> sFlagsCachedFullBrowserChromium =
|
||||
List.of(
|
||||
sAllowUserCertificates,
|
||||
sAndroidAppIntegration,
|
||||
@@ -757,6 +761,13 @@ public abstract class ChromeFeatureList {
|
||||
sShowAlwaysContextMenuOnLinks,
|
||||
sUseLibunwindstackNativeUnwinderAndroid);
|
||||
@@ -779,6 +783,13 @@ public abstract class ChromeFeatureList {
|
||||
sUseLibunwindstackNativeUnwinderAndroid,
|
||||
sVerticalAutomotiveBackButtonToolbar);
|
||||
|
||||
+ private static <T> List<T> concatenateLists(List<T>... collections) {
|
||||
+ return Arrays.stream(collections).flatMap(x -> x.stream()).collect(Collectors.toList());
|
||||
@@ -689,7 +712,7 @@ new file mode 100644
|
||||
+import java.util.ArrayList;
|
||||
+import java.util.List;
|
||||
+
|
||||
+import org.chromium.chrome.browser.flags.CachedFlag;
|
||||
+import org.chromium.base.cached_flags.CachedFlag;
|
||||
+
|
||||
+{IMPORT_CLAUSE}
|
||||
+
|
||||
@@ -806,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
|
||||
@@ -398,4 +398,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
|
||||
@@ -450,4 +450,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
|
||||
"StopLoadingAnimationForHiddenWindow",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
@@ -815,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
|
||||
@@ -1717,4 +1717,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
|
||||
@@ -1735,4 +1735,5 @@ BASE_FEATURE(kSupportsRtcWakeOver24Hours,
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
#endif // BUILDFLAG(IS_CHROMEOS_ASH)
|
||||
|
||||
@@ -838,8 +861,8 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/
|
||||
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
|
||||
--- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
|
||||
+++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java
|
||||
@@ -10,6 +10,9 @@ import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
@@ -12,6 +12,9 @@ import android.view.accessibility.AccessibilityEvent;
|
||||
import android.view.accessibility.AccessibilityNodeInfo;
|
||||
import android.widget.TextView;
|
||||
|
||||
+import androidx.annotation.Nullable;
|
||||
@@ -848,7 +871,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
|
||||
import androidx.annotation.ColorRes;
|
||||
import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
@@ -29,6 +32,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
@@ -30,6 +33,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
/** Indicates if the preference uses a custom layout. */
|
||||
private final boolean mHasCustomLayout;
|
||||
|
||||
@@ -857,10 +880,10 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
|
||||
+
|
||||
+ private final boolean mNeedRestart;
|
||||
+
|
||||
public ChromeSwitchPreference(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
@@ -37,6 +45,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
// TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate
|
||||
// away from a switch with dynamically changing summaries onto a radio group.
|
||||
/**
|
||||
@@ -46,6 +54,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat {
|
||||
super(context, attrs);
|
||||
|
||||
mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs);
|
||||
@@ -878,7 +901,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
|
||||
+ return mNeedRestart;
|
||||
}
|
||||
|
||||
/**
|
||||
/** Sets the ManagedPreferenceDelegate which will determine whether this preference is managed. */
|
||||
diff --git a/components/components_strings.grd b/components/components_strings.grd
|
||||
--- a/components/components_strings.grd
|
||||
+++ b/components/components_strings.grd
|
||||
@@ -893,9 +916,9 @@ 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
|
||||
@@ -94,5 +94,6 @@ BASE_FEATURE(kTpcdHeuristicsGrants,
|
||||
const base::FeatureParam<bool> kTpcdReadHeuristicsGrants{
|
||||
&kTpcdHeuristicsGrants, kTpcdReadHeuristicsGrantsName, false};
|
||||
@@ -112,5 +112,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap,
|
||||
"IndexedHostContentSettingsMap",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+#include "cromite_flags/components_content_settings_core_common_features_cc.inc"
|
||||
} // namespace features
|
||||
@@ -1068,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();
|
||||
}
|
||||
|
||||
@@ -1076,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[] = [
|
||||
@@ -1087,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() {
|
||||
@@ -1099,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[] = [];
|
||||
|
||||
@@ -1132,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(
|
||||
@@ -1157,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);
|
||||
});
|
||||
}
|
||||
@@ -1207,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;
|
||||
@@ -1224,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);
|
||||
@@ -1243,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}`;
|
||||
@@ -1251,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;
|
||||
@@ -1280,7 +1303,7 @@ diff --git a/components/flags_ui/resources/flags_browser_proxy.ts b/components/f
|
||||
diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc
|
||||
--- a/components/offline_pages/core/offline_page_feature.cc
|
||||
+++ b/components/offline_pages/core/offline_page_feature.cc
|
||||
@@ -82,4 +82,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() {
|
||||
@@ -55,4 +55,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() {
|
||||
return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown);
|
||||
}
|
||||
|
||||
@@ -1289,7 +1312,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/
|
||||
diff --git a/components/offline_pages/core/offline_page_feature.h b/components/offline_pages/core/offline_page_feature.h
|
||||
--- a/components/offline_pages/core/offline_page_feature.h
|
||||
+++ b/components/offline_pages/core/offline_page_feature.h
|
||||
@@ -64,6 +64,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled();
|
||||
@@ -50,6 +50,7 @@ bool IsOnTheFlyMhtmlHashComputationEnabled();
|
||||
// offline pages to avoid showing them even when the device is online.
|
||||
bool IsOfflinePagesNetworkStateLikelyUnknown();
|
||||
|
||||
@@ -1300,9 +1323,9 @@ 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
|
||||
@@ -159,6 +159,7 @@ BASE_FEATURE(kBlockMidiByDefault,
|
||||
"BlockMidiByDefault",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
@@ -139,6 +139,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate,
|
||||
"CpssQuietChipTextUpdate",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+#include "cromite_flags/components_permissions_features_cc.inc"
|
||||
} // namespace features
|
||||
@@ -1323,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
|
||||
@@ -571,4 +571,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
|
||||
@@ -596,4 +596,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix,
|
||||
|
||||
// Please keep features in alphabetical order.
|
||||
|
||||
@@ -1332,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
|
||||
@@ -1361,4 +1361,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
|
||||
@@ -1389,4 +1389,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() {
|
||||
VideoCaptureServiceConfiguration::kEnabledForBrowserProcess;
|
||||
}
|
||||
|
||||
@@ -1341,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
|
||||
@@ -335,6 +335,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();
|
||||
|
||||
@@ -1639,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
|
||||
@@ -1750,5 +1750,5 @@ uint32_t GetPassthroughAudioFormats() {
|
||||
@@ -1860,5 +1860,5 @@ uint32_t GetPassthroughAudioFormats() {
|
||||
return 0;
|
||||
#endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS)
|
||||
}
|
||||
@@ -1649,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
|
||||
@@ -517,5 +517,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
|
||||
@@ -547,5 +547,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled();
|
||||
MEDIA_EXPORT uint32_t GetPassthroughAudioFormats();
|
||||
|
||||
} // namespace media
|
||||
@@ -1659,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
|
||||
@@ -477,4 +477,5 @@ BASE_FEATURE(kNewCertPathBuilderIterationLimit,
|
||||
"NewCertPathBuilderIterationLimit",
|
||||
@@ -535,4 +535,5 @@ BASE_FEATURE(kTruncateBodyToContentLength,
|
||||
"TruncateBodyToContentLength",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
|
||||
+#include "cromite_flags/net_base_features_cc.inc"
|
||||
@@ -1668,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
|
||||
@@ -470,6 +470,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kReceiveEcn);
|
||||
|
||||
NET_EXPORT BASE_DECLARE_FEATURE(kNewCertPathBuilderIterationLimit);
|
||||
@@ -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
|
||||
@@ -1679,8 +1702,8 @@ 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
|
||||
@@ -431,4 +431,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsSupport{
|
||||
&kSkipTpcdMitigationsForAds, /*name=*/"SkipTpcdMitigationsForAdsSupport",
|
||||
@@ -467,4 +467,5 @@ const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial{
|
||||
/*name=*/"SkipTpcdMitigationsForAdsTopLevelTrial",
|
||||
/*default_value=*/false};
|
||||
|
||||
+#include "cromite_flags/services_network_public_cpp_features_cc.inc"
|
||||
@@ -1688,9 +1711,9 @@ 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
|
||||
@@ -168,6 +168,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsMetadata;
|
||||
@@ -187,6 +187,7 @@ extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTrial;
|
||||
COMPONENT_EXPORT(NETWORK_CPP)
|
||||
extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsSupport;
|
||||
extern const base::FeatureParam<bool> kSkipTpcdMitigationsForAdsTopLevelTrial;
|
||||
|
||||
+#include "cromite_flags/services_network_public_cpp_features_h.inc"
|
||||
} // namespace features
|
||||
@@ -1699,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
|
||||
@@ -2222,5 +2222,6 @@ bool IsKeepAliveURLLoaderServiceEnabled() {
|
||||
base::FeatureList::IsEnabled(kFetchLaterAPI);
|
||||
}
|
||||
@@ -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
|
||||
@@ -1709,13 +1732,12 @@ 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
|
||||
@@ -1427,6 +1427,7 @@ BLINK_COMMON_EXPORT bool IsKeepAliveURLLoaderServiceEnabled();
|
||||
@@ -1638,6 +1638,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kInteractiveDetectorIgnoreFcp);
|
||||
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(
|
||||
kRemoveAuthroizationOnCrossOriginRedirect);
|
||||
kSimplifyLoadingTransparentPlaceholderImage);
|
||||
|
||||
+#include "cromite_flags/third_party_blink_common_features_h.inc"
|
||||
} // namespace features
|
||||
} // namespace blink
|
||||
|
||||
--
|
||||
2.25.1
|
||||
@@ -13,13 +13,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../java/res/xml/privacy_preferences.xml | 10 ++++++++
|
||||
.../browser/LaunchIntentDispatcher.java | 21 ++++++++++++++++
|
||||
.../customtabs/CustomTabsConnection.java | 1 +
|
||||
.../IncognitoCustomTabIntentDataProvider.java | 6 +++++
|
||||
.../privacy/settings/PrivacySettings.java | 24 +++++++++++++++++++
|
||||
.../chrome/browser/tab/TabAssociatedApp.java | 6 ++++-
|
||||
.../strings/android_chrome_strings.grd | 14 +++++++++++
|
||||
.../core/common/language_experiments.cc | 1 +
|
||||
.../add-custom-tab-intents-privacy-option.inc | 2 ++
|
||||
8 files changed, 83 insertions(+), 1 deletion(-)
|
||||
.../add-custom-tab-intents-privacy-option.inc | 1 +
|
||||
9 files changed, 83 insertions(+), 1 deletion(-)
|
||||
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
||||
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -45,7 +46,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
|
||||
@@ -56,6 +56,9 @@ import java.lang.annotation.Retention;
|
||||
@@ -55,6 +55,9 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -55,17 +56,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
/**
|
||||
* Dispatches incoming intents to the appropriate activity based on the current configuration and
|
||||
* Intent fired.
|
||||
@@ -247,6 +250,9 @@ public class LaunchIntentDispatcher {
|
||||
@@ -244,6 +247,9 @@ public class LaunchIntentDispatcher {
|
||||
*/
|
||||
public static boolean isCustomTabIntent(Intent intent) {
|
||||
if (intent == null) return false;
|
||||
+ if (!ContextUtils.getAppSharedPreferences()
|
||||
+ .getBoolean(PrivacySettings.PREF_ALLOW_CUSTOM_TAB_INTENTS, false))
|
||||
+ return false;
|
||||
if (CustomTabsIntent.shouldAlwaysUseBrowserUI(intent)
|
||||
|| !intent.hasExtra(CustomTabsIntent.EXTRA_SESSION)) {
|
||||
return false;
|
||||
@@ -266,6 +272,10 @@ public class LaunchIntentDispatcher {
|
||||
Log.w(
|
||||
TAG,
|
||||
"CustomTabsIntent#shouldAlwaysUseBrowserUI() = "
|
||||
@@ -265,6 +271,10 @@ public class LaunchIntentDispatcher {
|
||||
newIntent.setData(uri);
|
||||
newIntent.setClassName(context, CustomTabActivity.class.getName());
|
||||
|
||||
@@ -76,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
// Since configureIntentForResizableCustomTab() might change the componenet/class
|
||||
// associated with the passed intent, it needs to be called after #setClassName(context,
|
||||
// CustomTabActivity.class.getName());
|
||||
@@ -412,6 +422,17 @@ public class LaunchIntentDispatcher {
|
||||
@@ -410,6 +420,17 @@ public class LaunchIntentDispatcher {
|
||||
|
||||
if (Intent.ACTION_VIEW.equals(newIntent.getAction())
|
||||
&& !IntentHandler.wasIntentSenderChrome(newIntent)) {
|
||||
@@ -94,6 +95,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
|
||||
if (!chromeTabbedTaskExists()) {
|
||||
newIntent.putExtra(IntentHandler.EXTRA_STARTED_TABBED_CHROME_TASK, true);
|
||||
}
|
||||
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
|
||||
@@ -850,6 +850,7 @@ public class CustomTabsConnection {
|
||||
PostTask.postTask(
|
||||
TaskTraits.UI_DEFAULT,
|
||||
() -> {
|
||||
+ if ((true)) return; // Disable CCTPostMessageAPI
|
||||
// Attempt to verify origin synchronously. If successful directly initialize
|
||||
// postMessage channel for session.
|
||||
Uri verifiedOrigin = verifyOriginForSession(session, uid, postMessageOrigin);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java
|
||||
@@ -107,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
|
||||
/**
|
||||
* A model class that parses the incoming intent for incognito Custom Tabs specific customization
|
||||
* data.
|
||||
@@ -113,6 +116,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||
@@ -115,6 +118,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD
|
||||
}
|
||||
|
||||
private static boolean isIntentFromThirdPartyAllowed() {
|
||||
@@ -120,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -98,6 +98,9 @@ public class PrivacySettings
|
||||
@@ -96,6 +96,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private IncognitoLockSettings mIncognitoLockSettings;
|
||||
|
||||
@@ -130,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||
getActivity().setTitle(R.string.prefs_privacy_security);
|
||||
@@ -246,6 +249,9 @@ public class PrivacySettings
|
||||
@@ -274,6 +277,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
|
||||
}
|
||||
|
||||
@@ -140,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
@@ -262,6 +268,14 @@ public class PrivacySettings
|
||||
@@ -290,6 +296,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
} else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
|
||||
UserPrefs.get(getProfile())
|
||||
.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
|
||||
@@ -155,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -286,6 +300,16 @@ public class PrivacySettings
|
||||
@@ -312,6 +326,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
|
||||
}
|
||||
|
||||
@@ -175,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
|
||||
@@ -84,7 +84,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;
|
||||
@@ -191,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
|
||||
@@ -5165,6 +5165,20 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
@@ -225,8 +237,6 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/a
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc
|
||||
@@ -0,0 +1,2 @@
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kCCTIntentFeatureOverrides);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kCCTPostMessageAPI);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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" />
|
||||
@@ -46,9 +46,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
|
||||
import org.chromium.base.ObserverList;
|
||||
+import org.chromium.chrome.browser.incognito.IncognitoNotificationManager;
|
||||
|
||||
/**
|
||||
* Watches for when Chrome is told to restart itself.
|
||||
@@ -43,6 +44,7 @@ public class ApplicationLifetime {
|
||||
/** Watches for when Chrome is told to restart itself. */
|
||||
public class ApplicationLifetime {
|
||||
@@ -39,6 +40,7 @@ public class ApplicationLifetime {
|
||||
|
||||
@CalledByNative
|
||||
public static void terminate(boolean restart) {
|
||||
@@ -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
|
||||
@@ -242,6 +242,8 @@ import java.util.Locale;
|
||||
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.
|
||||
@@ -2337,6 +2339,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");
|
||||
@@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
+ ApplicationLifetime.terminate(false);
|
||||
} else if (id == R.id.close_all_tabs_menu_id) {
|
||||
// Close both incognito and normal tabs.
|
||||
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
|
||||
CloseAllTabsDialog.show(
|
||||
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
|
||||
@@ -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;
|
||||
@@ -2404,6 +2405,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -2576,6 +2577,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -98,12 +98,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
|
||||
+ }
|
||||
+
|
||||
if (id == R.id.update_menu_id) {
|
||||
UpdateMenuItemHelper.getInstance().onMenuItemClicked(this);
|
||||
return true;
|
||||
UpdateMenuItemHelper.getInstance(
|
||||
getProfileProviderSupplier().get().getOriginalProfile())
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLifetimeController.java
|
||||
@@ -82,7 +82,11 @@ class ChromeLifetimeController implements ApplicationLifetime.Observer,
|
||||
@@ -81,7 +81,11 @@ class ChromeLifetimeController
|
||||
|
||||
// Kick off a timer to kill the process after a delay, which fires only if the Activities
|
||||
// take too long to be finished.
|
||||
@@ -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
|
||||
@@ -3765,6 +3765,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
@@ -130,4 +130,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
Appearance
|
||||
</message>
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -18,15 +18,15 @@ 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 @@
|
||||
#include "base/barrier_callback.h"
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "base/check_op.h"
|
||||
#include "base/containers/contains.h"
|
||||
+#include "base/command_line.h"
|
||||
#include "base/feature_list.h"
|
||||
#include "base/format_macros.h"
|
||||
#include "base/functional/bind.h"
|
||||
@@ -334,6 +335,15 @@ AutocompleteController::AutocompleteController(
|
||||
@@ -392,6 +393,15 @@ AutocompleteController::AutocompleteController(
|
||||
provider_client_->GetOmniboxTriggeredFeatureService()),
|
||||
steady_state_omnibox_position_(
|
||||
metrics::OmniboxEventProto::UNKNOWN_POSITION) {
|
||||
@@ -45,7 +45,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/
|
||||
diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc
|
||||
--- a/components/omnibox/browser/history_url_provider.cc
|
||||
+++ b/components/omnibox/browser/history_url_provider.cc
|
||||
@@ -478,6 +478,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
|
||||
@@ -479,6 +479,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input,
|
||||
if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY)
|
||||
matches_.push_back(what_you_typed_match);
|
||||
|
||||
@@ -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"
|
||||
@@ -650,6 +651,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) {
|
||||
@@ -88,7 +88,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/files/file_util.h"
|
||||
#include "base/i18n/char_iterator.h"
|
||||
@@ -608,6 +610,8 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
|
||||
@@ -621,6 +623,8 @@ GURL FixupURLInternal(const std::string& text,
|
||||
|
||||
FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url);
|
||||
if (chrome_url && !parts.host.is_valid())
|
||||
@@ -135,4 +135,3 @@ new file mode 100644
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -71,4 +71,3 @@ new file mode 100644
|
||||
@@ -0,0 +1 @@
|
||||
+COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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,9 +101,9 @@ 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"
|
||||
@@ -174,6 +178,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool(
|
||||
#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) {
|
||||
DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES);
|
||||
@@ -124,4 +124,3 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -37,4 +37,3 @@ new file mode 100644
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kResumeBackgroundVideo);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -4,12 +4,12 @@ Subject: Add flag to disable IPv6 probes
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
.../add-flag-to-disable-IPv6-probes.inc | 8 ++++++++
|
||||
.../features_cc/add-flag-to-disable-IPv6-probes.inc | 3 +++
|
||||
.../features_h/add-flag-to-disable-IPv6-probes.inc | 2 ++
|
||||
net/BUILD.gn | 1 +
|
||||
net/dns/host_resolver_manager.cc | 11 +++++++++++
|
||||
5 files changed, 25 insertions(+)
|
||||
.../about_flags_cc/add-flag-to-disable-IPv6-probes.inc | 8 ++++++++
|
||||
.../base/features_cc/add-flag-to-disable-IPv6-probes.inc | 3 +++
|
||||
.../base/features_h/add-flag-to-disable-IPv6-probes.inc | 2 ++
|
||||
net/BUILD.gn | 1 +
|
||||
net/dns/host_resolver_manager.cc | 8 ++++++++
|
||||
5 files changed, 22 insertions(+)
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
create mode 100644 cromite_flags/net/base/features_cc/add-flag-to-disable-IPv6-probes.inc
|
||||
create mode 100644 cromite_flags/net/base/features_h/add-flag-to-disable-IPv6-probes.inc
|
||||
@@ -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
|
||||
@@ -1096,6 +1096,7 @@ component("net") {
|
||||
@@ -1030,6 +1030,7 @@ component("net") {
|
||||
"//build:chromeos_buildflags",
|
||||
"//components/miracle_parameter/common",
|
||||
"//net/http:transport_security_state_generated_files",
|
||||
@@ -56,7 +56,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn
|
||||
diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
--- a/net/dns/host_resolver_manager.cc
|
||||
+++ b/net/dns/host_resolver_manager.cc
|
||||
@@ -111,6 +111,7 @@
|
||||
@@ -113,6 +113,7 @@
|
||||
#include "net/log/net_log_event_type.h"
|
||||
#include "net/log/net_log_source.h"
|
||||
#include "net/log/net_log_source_type.h"
|
||||
@@ -64,17 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
#include "net/log/net_log_with_source.h"
|
||||
#include "net/socket/client_socket_factory.h"
|
||||
#include "net/url_request/url_request_context.h"
|
||||
@@ -684,6 +685,9 @@ class HostResolverManager::RequestImpl
|
||||
// request source is LOCAL_ONLY. This is due to LOCAL_ONLY requiring a
|
||||
// synchronous response, so it cannot wait on an async probe result and
|
||||
// cannot make assumptions about reachability.
|
||||
+ if (!base::FeatureList::IsEnabled(features::kIPv6Probing)) {
|
||||
+ return OK;
|
||||
+ }
|
||||
if (parameters_.source == HostResolverSource::LOCAL_ONLY) {
|
||||
int rv = resolver_->StartIPv6ReachabilityCheck(
|
||||
source_net_log_, GetClientSocketFactory(),
|
||||
@@ -3903,6 +3907,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
|
||||
@@ -1373,6 +1374,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck(
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -89,4 +79,3 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc
|
||||
ipv6_request_callbacks_.push_back(std::move(callback));
|
||||
return ERR_IO_PENDING;
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -30,4 +30,3 @@ new file mode 100644
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
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
|
||||
@@ -104,6 +104,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
||||
@@ -103,6 +103,7 @@ void SetRuntimeFeatureDefaultsForPlatform(
|
||||
if (command_line.HasSwitch(switches::kDisableMediaSessionAPI)) {
|
||||
WebRuntimeFeatures::EnableMediaSession(false);
|
||||
}
|
||||
@@ -70,7 +70,7 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa
|
||||
diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.cc b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||
--- a/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||
+++ b/third_party/blink/renderer/modules/vibration/vibration_controller.cc
|
||||
@@ -29,6 +29,7 @@
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "third_party/blink/renderer/core/frame/local_frame.h"
|
||||
#include "third_party/blink/renderer/core/frame/navigator.h"
|
||||
#include "third_party/blink/renderer/core/page/page.h"
|
||||
@@ -78,7 +78,7 @@ diff --git a/third_party/blink/renderer/modules/vibration/vibration_controller.c
|
||||
|
||||
// Maximum number of entries in a vibration pattern.
|
||||
const unsigned kVibrationPatternLengthMax = 99;
|
||||
@@ -152,6 +153,8 @@ bool VibrationController::vibrate(Navigator& navigator,
|
||||
@@ -109,6 +110,8 @@ bool VibrationController::vibrate(Navigator& navigator,
|
||||
// reference to |window| or |navigator| was retained in another window.
|
||||
if (!navigator.DomWindow())
|
||||
return false;
|
||||
@@ -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
|
||||
@@ -2718,6 +2718,10 @@
|
||||
@@ -635,6 +635,10 @@
|
||||
status: {"Android": "stable"},
|
||||
base_feature: "none",
|
||||
},
|
||||
@@ -113,7 +113,6 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
+ status: "stable",
|
||||
+ },
|
||||
{
|
||||
name: "OriginIsolationHeader",
|
||||
status: "stable",
|
||||
name: "CompositionForegroundMarkers",
|
||||
status: {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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,29 +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 | 5 +++++
|
||||
build_overrides/build.gni | 3 +++
|
||||
2 files changed, 8 insertions(+)
|
||||
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
|
||||
@@ -1889,6 +1889,11 @@ config("default_warnings") {
|
||||
# TODO(crbug.com/1495100): Evaluate and possibly enable.
|
||||
"-Wno-delayed-template-parsing-in-cxx20",
|
||||
@@ -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",
|
||||
+ ]
|
||||
+ }
|
||||
}
|
||||
+ if (skip_clangd_unsupported_options) {
|
||||
+ cflags -= [
|
||||
+ "-Wno-deprecated-builtins",
|
||||
+ "-Wno-thread-safety-reference-return",
|
||||
+ ]
|
||||
+ cflags_cc -= [
|
||||
+ "-Wno-c++11-narrowing-const-reference",
|
||||
+ ]
|
||||
+ }
|
||||
}
|
||||
|
||||
# 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
|
||||
@@ -57,6 +57,9 @@ declare_args() {
|
||||
@@ -62,6 +62,9 @@ declare_args() {
|
||||
# to lack of toolchain support.
|
||||
gtest_enable_absl_printers = !is_nacl
|
||||
|
||||
@@ -40,4 +51,3 @@ diff --git a/build_overrides/build.gni b/build_overrides/build.gni
|
||||
# TODO(crbug.com/1402249): evaluate removing this end of 2023
|
||||
use_cxx17 = false
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,27 +6,27 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/android/java/res/menu/main_menu.xml | 7 ++
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 24 +++++++
|
||||
.../browser/bookmarks/BookmarkBridge.java | 66 +++++++++++++++++++
|
||||
.../bookmarks/android/bookmark_bridge.cc | 43 ++++++++++++
|
||||
.../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_client.cc | 2 +
|
||||
.../bookmarks/browser/bookmark_codec.cc | 22 +++++--
|
||||
.../bookmarks/browser/bookmark_codec.cc | 20 +++++-
|
||||
components/bookmarks/browser/bookmark_codec.h | 7 +-
|
||||
.../browser/bookmark_load_details.cc | 4 ++
|
||||
.../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 | 4 ++
|
||||
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 +
|
||||
22 files changed, 230 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
|
||||
@@ -42,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" />
|
||||
@@ -55,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
|
||||
@@ -85,6 +85,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;
|
||||
@@ -63,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;
|
||||
@@ -2360,6 +2361,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,9 +71,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
+ bookmarkAllTabs();
|
||||
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
|
||||
// Close only incognito tabs
|
||||
CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
|
||||
@@ -2424,6 +2427,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
mTabModalHandler.onOmniboxFocusChanged(hasFocus);
|
||||
CloseAllTabsDialog.show(
|
||||
@@ -3021,6 +3024,27 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus);
|
||||
}
|
||||
|
||||
+ private void bookmarkAllTabs() {
|
||||
@@ -103,18 +103,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
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
|
||||
@@ -32,6 +32,7 @@ import org.jni_zero.NativeMethods;
|
||||
@@ -18,11 +18,17 @@ import org.jni_zero.NativeMethods;
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.ContextUtils;
|
||||
+import org.chromium.base.Log;
|
||||
import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.ThreadUtils;
|
||||
import org.chromium.base.metrics.RecordHistogram;
|
||||
@@ -40,6 +41,10 @@ import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
import org.chromium.chrome.browser.read_later.ReadingListUtils;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
+import org.chromium.chrome.browser.tab.Tab;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
|
||||
+import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
|
||||
@@ -122,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;
|
||||
@@ -85,6 +90,8 @@ import java.io.File;
|
||||
@@ -82,6 +88,8 @@ import org.chromium.ui.modaldialog.DialogDismissalCause;
|
||||
class BookmarkBridge {
|
||||
private final ObserverList<BookmarkModelObserver> mObservers = new ObserverList<>();
|
||||
|
||||
@@ -131,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;
|
||||
@@ -390,6 +397,16 @@ class BookmarkBridge {
|
||||
@@ -402,6 +410,16 @@ class BookmarkBridge {
|
||||
return mMobileFolderId;
|
||||
}
|
||||
|
||||
@@ -145,11 +144,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
+ mNativeBookmarkBridge, BookmarkBridge.this);
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @return Id representing the special "other" folder from bookmark model.
|
||||
*/
|
||||
@@ -1034,6 +1051,50 @@ class BookmarkBridge {
|
||||
return BookmarkBridgeJni.get().addToReadingList(mNativeBookmarkBridge, title, url);
|
||||
/** Returns Id representing the special "other" folder from bookmark model. */
|
||||
public BookmarkId getOtherFolderId() {
|
||||
ThreadUtils.assertOnUiThread();
|
||||
@@ -1092,6 +1110,50 @@ class BookmarkBridge {
|
||||
.addToReadingList(mNativeBookmarkBridge, parentId, title, url);
|
||||
}
|
||||
|
||||
+ // Used to bookmark all tabs in a specific folder, created if not existing
|
||||
@@ -197,19 +196,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
|
||||
+ }
|
||||
+
|
||||
/**
|
||||
* @param url The URL of the reading list item.
|
||||
* @return The reading list item with the URL, or null if no such reading list item.
|
||||
@@ -1273,6 +1334,9 @@ class BookmarkBridge {
|
||||
BookmarkId getBookmarkIdForWebContents(
|
||||
long nativeBookmarkBridge, WebContents webContents, boolean onlyEditable);
|
||||
* Helper method to mark an item as read.
|
||||
*
|
||||
@@ -1334,6 +1396,9 @@ class BookmarkBridge {
|
||||
|
||||
BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl(long nativeBookmarkBridge, GURL url);
|
||||
|
||||
+ BookmarkId getBookmarkIdForTabsCollection(
|
||||
+ long nativeBookmarkBridge, GURL url);
|
||||
+
|
||||
BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type);
|
||||
|
||||
void getTopLevelFolderIds(long nativeBookmarkBridge, List<BookmarkId> bookmarksList);
|
||||
@@ -1284,6 +1348,8 @@ class BookmarkBridge {
|
||||
void getTopLevelFolderIds(
|
||||
@@ -1353,6 +1418,8 @@ class BookmarkBridge {
|
||||
|
||||
BookmarkId getRootFolderId(long nativeBookmarkBridge);
|
||||
|
||||
@@ -221,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
|
||||
@@ -330,6 +330,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
|
||||
@@ -367,6 +367,33 @@ void BookmarkBridge::GetImageUrlForBookmark(
|
||||
base::BindOnce(&HandleImageUrlResponse, callback));
|
||||
}
|
||||
|
||||
@@ -236,11 +235,11 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+ bookmarks::BookmarkModel* model =
|
||||
+ BookmarkModelFactory::GetForBrowserContext(profile_);
|
||||
+
|
||||
+ std::vector<const bookmarks::BookmarkNode*> nodes =
|
||||
+ std::vector<raw_ptr<const bookmarks::BookmarkNode, VectorExperimental>> nodes =
|
||||
+ model->GetNodesByURL(gurl);
|
||||
+ std::sort(nodes.begin(), nodes.end(), &bookmarks::MoreRecentlyAdded);
|
||||
+
|
||||
+ for (const auto* node : nodes) {
|
||||
+ for (const BookmarkNode* node : nodes) {
|
||||
+ for (const auto& child : model->tabs_collection_node()->children()) {
|
||||
+ if (node->id() == child->id()) {
|
||||
+ return JavaBookmarkIdCreateBookmarkId(env, node->id(),
|
||||
@@ -253,20 +252,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
+}
|
||||
+
|
||||
base::android::ScopedJavaLocalRef<jobject>
|
||||
BookmarkBridge::GetBookmarkIdForWebContents(
|
||||
BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(
|
||||
JNIEnv* env,
|
||||
@@ -438,6 +465,10 @@ void BookmarkBridge::GetTopLevelFolderIds(
|
||||
}
|
||||
top_level_folders.push_back(root_child.get());
|
||||
}
|
||||
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
|
||||
+ if (node->is_folder())
|
||||
+ top_level_folders.push_back(node.get());
|
||||
+ }
|
||||
|
||||
if (partner_bookmarks_shim_->HasPartnerBookmarks() &&
|
||||
IsReachable(partner_bookmarks_shim_->GetPartnerBookmarksRoot())) {
|
||||
@@ -477,6 +508,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(),
|
||||
@@ -274,8 +262,20 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
bookmark_model_->bookmark_bar_node(),
|
||||
bookmark_model_->other_node(),
|
||||
};
|
||||
@@ -1049,6 +1081,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||
@@ -539,6 +567,11 @@ std::vector<const BookmarkNode*> BookmarkBridge::GetTopLevelFolderIdsImpl(
|
||||
top_level_folders.push_back(root_child.get());
|
||||
}
|
||||
|
||||
+ for (const auto& node : bookmark_model_->tabs_collection_node()->children()) {
|
||||
+ if (node->is_folder())
|
||||
+ top_level_folders.push_back(node.get());
|
||||
+ }
|
||||
+
|
||||
if (account_reading_list_manager_ &&
|
||||
account_reading_list_manager_->GetRoot()) {
|
||||
top_level_folders.push_back(account_reading_list_manager_->GetRoot());
|
||||
@@ -1176,6 +1209,17 @@ void BookmarkBridge::GetBookmarksOfType(
|
||||
AddBookmarkNodesToBookmarkIdList(env, j_list, results);
|
||||
}
|
||||
|
||||
+ScopedJavaLocalRef<jobject> BookmarkBridge::GetTabsCollectionFolderId(
|
||||
@@ -295,7 +295,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse
|
||||
diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
--- a/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
+++ b/chrome/browser/bookmarks/android/bookmark_bridge.h
|
||||
@@ -69,6 +69,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -77,6 +77,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
const base::android::JavaParamRef<jobject>& j_url,
|
||||
const base::android::JavaParamRef<jobject>& j_callback);
|
||||
|
||||
@@ -303,10 +303,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser
|
||||
+ JNIEnv* env,
|
||||
+ const base::android::JavaParamRef<jobject>& url);
|
||||
+
|
||||
base::android::ScopedJavaLocalRef<jobject> GetBookmarkIdForWebContents(
|
||||
base::android::ScopedJavaLocalRef<jobject>
|
||||
GetMostRecentlyAddedUserBookmarkIdForUrl(
|
||||
JNIEnv* env,
|
||||
|
||||
@@ -205,6 +209,10 @@ class BookmarkBridge : public bookmarks::BaseBookmarkModelObserver,
|
||||
@@ -227,6 +231,10 @@ class BookmarkBridge : public ProfileObserver,
|
||||
const base::android::JavaParamRef<jobject>& j_list,
|
||||
jint type);
|
||||
|
||||
@@ -320,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);
|
||||
@@ -341,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());
|
||||
@@ -353,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
|
||||
@@ -79,7 +79,7 @@ public class DownloadLocationCustomView
|
||||
@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView
|
||||
mDirectoryAdapter.update();
|
||||
}
|
||||
|
||||
@@ -362,7 +372,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse
|
||||
mTitle.setText(title);
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class DownloadLocationCustomView
|
||||
@@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView
|
||||
mSubtitleView.setText(subtitle);
|
||||
}
|
||||
|
||||
@@ -374,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
|
||||
@@ -3895,6 +3895,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
@@ -407,22 +417,10 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri
|
||||
<message name="IDS_BOOKMARK_BAR_OTHER_FOLDER_NAME" desc="In Title Case: Name shown in the tree for the other bookmarks folder">
|
||||
Other Bookmarks
|
||||
</message>
|
||||
diff --git a/components/bookmarks/browser/bookmark_client.cc b/components/bookmarks/browser/bookmark_client.cc
|
||||
--- a/components/bookmarks/browser/bookmark_client.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_client.cc
|
||||
@@ -55,6 +55,8 @@ bool BookmarkClient::IsPermanentNodeVisibleWhenEmpty(
|
||||
case BookmarkNode::MOBILE:
|
||||
// Either MOBILE or OTHER_NODE is visible when empty, but never both.
|
||||
return !IsPermanentNodeVisibleWhenEmpty(BookmarkNode::OTHER_NODE);
|
||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||
+ return !is_desktop;
|
||||
}
|
||||
NOTREACHED_NORETURN();
|
||||
}
|
||||
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";
|
||||
@@ -430,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";
|
||||
@@ -74,7 +75,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));
|
||||
}
|
||||
|
||||
@@ -82,6 +84,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;
|
||||
@@ -102,6 +105,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));
|
||||
|
||||
@@ -119,6 +123,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();
|
||||
@@ -126,7 +131,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),
|
||||
@@ -474,7 +463,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
||||
ids_reassigned_ = false;
|
||||
uuids_reassigned_ = false;
|
||||
ids_valid_ = true;
|
||||
@@ -134,12 +140,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,
|
||||
@@ -483,21 +472,22 @@ 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;
|
||||
}
|
||||
@@ -191,6 +198,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
|
||||
@@ -189,6 +196,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo(
|
||||
bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
BookmarkNode* other_folder_node,
|
||||
BookmarkNode* mobile_folder_node,
|
||||
+ BookmarkNode* tabs_folder_node,
|
||||
const base::Value::Dict& value,
|
||||
std::string* sync_metadata_str) {
|
||||
absl::optional<int> version = value.FindInt(kVersionKey);
|
||||
@@ -215,6 +223,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
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 =
|
||||
roots->FindDict(kMobileBookmarkFolderNameKey);
|
||||
@@ -506,23 +496,23 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar
|
||||
|
||||
if (!bb_value || !other_folder_value || !mobile_folder_value)
|
||||
return false;
|
||||
@@ -222,6 +232,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
@@ -220,6 +230,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node,
|
||||
DecodeNode(*bb_value, nullptr, bb_node);
|
||||
DecodeNode(*other_folder_value, nullptr, other_folder_node);
|
||||
DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node);
|
||||
+ if (tabs_folder_value)
|
||||
+ DecodeNode(*tabs_folder_value, nullptr, tabs_folder_node);
|
||||
|
||||
if (!DecodeMetaInfo(*roots, &model_meta_info_map_))
|
||||
return false;
|
||||
@@ -463,11 +475,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);
|
||||
@@ -533,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,
|
||||
@@ -549,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,
|
||||
@@ -565,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,
|
||||
@@ -578,41 +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
|
||||
@@ -37,6 +37,10 @@ BookmarkLoadDetails::BookmarkLoadDetails(BookmarkClient* client)
|
||||
root_node_->Add(BookmarkPermanentNode::CreateMobileBookmarks(
|
||||
max_id_++,
|
||||
client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::MOBILE))));
|
||||
+ tabs_collection_folder_node_ = static_cast<BookmarkPermanentNode*>(
|
||||
+ root_node_->Add(BookmarkPermanentNode::CreateTabsCollectionBookmarks(
|
||||
+ max_id_++,
|
||||
+ client->IsPermanentNodeVisibleWhenEmpty(BookmarkNode::TABS_COLLECTION))));
|
||||
}
|
||||
@@ -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
|
||||
@@ -801,7 +801,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() &&
|
||||
@@ -621,20 +628,20 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar
|
||||
}
|
||||
|
||||
bool BookmarkModel::IsBookmarked(const GURL& url) const {
|
||||
@@ -1111,6 +1111,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();
|
||||
|
||||
titled_url_index_->SetNodeSorter(
|
||||
std::make_unique<TypedCountSorter>(client_.get()));
|
||||
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
|
||||
@@ -132,6 +132,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
|
||||
return mobile_node_;
|
||||
}
|
||||
@@ -159,6 +159,12 @@ class BookmarkModel final : public BookmarkUndoProvider,
|
||||
// bookmarks in the account storage).
|
||||
const BookmarkNode* account_mobile_node() const;
|
||||
|
||||
+ // Returns the 'mobile' node. This is NULL until loaded.
|
||||
+ const BookmarkNode* tabs_collection_node() const {
|
||||
@@ -645,10 +652,10 @@ 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_;
|
||||
@@ -475,6 +481,7 @@ class BookmarkModel final : public BookmarkUndoProvider,
|
||||
nullptr;
|
||||
raw_ptr<BookmarkPermanentNode, AcrossTasksDanglingUntriaged> mobile_node_ =
|
||||
nullptr;
|
||||
@@ -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;
|
||||
+ raw_ptr<BookmarkPermanentNode> tabs_collection_node_ = nullptr;
|
||||
|
||||
// The maximum ID assigned to the bookmark nodes in the model.
|
||||
@@ -656,19 +663,26 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark
|
||||
diff --git a/components/bookmarks/browser/bookmark_node.cc b/components/bookmarks/browser/bookmark_node.cc
|
||||
--- a/components/bookmarks/browser/bookmark_node.cc
|
||||
+++ b/components/bookmarks/browser/bookmark_node.cc
|
||||
@@ -189,6 +189,17 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id,
|
||||
visible_when_empty));
|
||||
@@ -161,6 +161,8 @@ bool BookmarkPermanentNode::IsTypeVisibleWhenEmpty(Type type) {
|
||||
#endif
|
||||
|
||||
switch (type) {
|
||||
+ case bookmarks::BookmarkNode::TABS_COLLECTION:
|
||||
+ return !is_desktop;
|
||||
case BookmarkNode::URL:
|
||||
NOTREACHED_NORETURN();
|
||||
case BookmarkNode::FOLDER:
|
||||
@@ -211,6 +213,15 @@ BookmarkPermanentNode::CreateMobileBookmarks(int64_t id) {
|
||||
l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_MOBILE_FOLDER_NAME)));
|
||||
}
|
||||
|
||||
+// static
|
||||
+std::unique_ptr<BookmarkPermanentNode>
|
||||
+BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id,
|
||||
+ bool visible_when_empty) {
|
||||
+BookmarkPermanentNode::CreateTabsCollectionBookmarks(int64_t id) {
|
||||
+ // base::WrapUnique() used because the constructor is private.
|
||||
+ return base::WrapUnique(new BookmarkPermanentNode(
|
||||
+ id, TABS_COLLECTION, base::Uuid::ParseLowercase(kTabsCollectionBookmarksNodeUuid),
|
||||
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME),
|
||||
+ visible_when_empty));
|
||||
+ l10n_util::GetStringUTF16(IDS_BOOKMARK_BAR_TABS_COLLECTION_FOLDER_NAME)));
|
||||
+}
|
||||
+
|
||||
BookmarkPermanentNode::BookmarkPermanentNode(int64_t id,
|
||||
@@ -685,16 +699,34 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks
|
||||
MOBILE
|
||||
};
|
||||
|
||||
@@ -245,6 +246,9 @@ class BookmarkPermanentNode : public BookmarkNode {
|
||||
@@ -231,6 +232,8 @@ class BookmarkPermanentNode : public BookmarkNode {
|
||||
int64_t id);
|
||||
static std::unique_ptr<BookmarkPermanentNode> CreateMobileBookmarks(
|
||||
int64_t id,
|
||||
bool visible_when_empty);
|
||||
int64_t id);
|
||||
+ static std::unique_ptr<BookmarkPermanentNode> CreateTabsCollectionBookmarks(
|
||||
+ int64_t id,
|
||||
+ bool visible_when_empty);
|
||||
+ int64_t id);
|
||||
|
||||
// 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());
|
||||
}
|
||||
|
||||
// Constructor is private to disallow the construction of permanent nodes
|
||||
// other than the well-known ones, see factory methods.
|
||||
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
|
||||
@@ -722,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
|
||||
@@ -744,4 +795,3 @@ diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/compo
|
||||
return sync_pb::BookmarkSpecifics::FOLDER;
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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
|
||||
@@ -55,6 +55,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
|
||||
@@ -2384,6 +2384,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
|
||||
@@ -2537,6 +2537,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
|
||||
@@ -550,6 +550,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);
|
||||
|
||||
@@ -1148,6 +1149,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
|
||||
@@ -241,6 +241,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
@@ -295,6 +295,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat
|
||||
|
||||
updateRequestDesktopSiteMenuItem(
|
||||
menu, currentTab, requestDesktopSiteVisible, isChromeScheme);
|
||||
@@ -127,4 +127,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
<message name="IDS_PREFS_SECTION_ACCOUNT_AND_GOOGLE_SERVICES" desc="Title for the group of account-related entries and google services in Settings. [CHAR_LIMIT=32]">
|
||||
You and Google
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+69
-65
@@ -4,36 +4,37 @@ Subject: Add option to disable snapshots
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../tab_management/TabGridViewBinder.java | 9 +++-
|
||||
.../tab_management/TabGridViewBinder.java | 10 +++--
|
||||
.../tasks/tab_management/TabProperties.java | 5 +++
|
||||
.../java/res/xml/privacy_preferences.xml | 5 +++
|
||||
.../chrome/browser/app/ChromeActivity.java | 3 +-
|
||||
.../layouts/content/TabContentManager.java | 7 +++-
|
||||
.../privacy/settings/PrivacySettings.java | 42 ++++++++++++++++++-
|
||||
.../strings/android_chrome_strings.grd | 8 ++++
|
||||
7 files changed, 73 insertions(+), 6 deletions(-)
|
||||
7 files changed, 73 insertions(+), 7 deletions(-)
|
||||
|
||||
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
|
||||
@@ -287,8 +287,12 @@ class TabGridViewBinder {
|
||||
// Adjust bitmap to thumbnail.
|
||||
TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
|
||||
} else if (isMostRecentRequest) {
|
||||
- // If the most recent request is a null bitmap ensure a placeholder is visible.
|
||||
- thumbnail.setImageDrawable(null);
|
||||
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
||||
+ if (tabFavicon != null) {
|
||||
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
|
||||
+ thumbnail.setImageDrawable(
|
||||
+ isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable());
|
||||
+ }
|
||||
}
|
||||
};
|
||||
@@ -327,9 +327,12 @@ class TabGridViewBinder {
|
||||
// Adjust bitmap to thumbnail.
|
||||
TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize);
|
||||
} else if (isMostRecentRequest) {
|
||||
- // If the most recent request is a null bitmap ensure a placeholder is
|
||||
- // visible.
|
||||
- thumbnail.setImageDrawable(null);
|
||||
+ TabListFaviconProvider.TabFavicon tabFavicon = model.get(TabProperties.FAVICON);
|
||||
+ if (tabFavicon != null) {
|
||||
+ thumbnail.setScaleType(ImageView.ScaleType.CENTER);
|
||||
+ thumbnail.setImageDrawable(
|
||||
+ isSelected ? tabFavicon.getSelectedDrawable() : tabFavicon.getDefaultDrawable());
|
||||
+ }
|
||||
}
|
||||
};
|
||||
if (sThumbnailFetcherForTesting != null) {
|
||||
@@ -324,6 +328,7 @@ class TabGridViewBinder {
|
||||
*/
|
||||
private static void setFavicon(ViewLookupCachingFrameLayout rootView, PropertyModel model,
|
||||
@@ -368,6 +371,7 @@ class TabGridViewBinder {
|
||||
ViewLookupCachingFrameLayout rootView,
|
||||
PropertyModel model,
|
||||
TabListFaviconProvider.TabFavicon favicon) {
|
||||
+ model.set(TabProperties.FAVICON, favicon);
|
||||
ImageView faviconView = (ImageView) rootView.fastFindViewById(R.id.tab_favicon);
|
||||
@@ -42,32 +43,36 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java
|
||||
@@ -56,6 +56,9 @@ public class TabProperties {
|
||||
@@ -63,6 +63,9 @@ public class TabProperties {
|
||||
public static final WritableBooleanPropertyKey FAVICON_FETCHED =
|
||||
new WritableBooleanPropertyKey();
|
||||
|
||||
+ public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFavicon> FAVICON =
|
||||
+ new WritableObjectPropertyKey<>();
|
||||
+
|
||||
/**
|
||||
* Property for lazily fetching favicons when required by an item in a UI.
|
||||
*/
|
||||
@@ -134,9 +137,11 @@ public class TabProperties {
|
||||
SELECTABLE_TAB_ACTION_BUTTON_BACKGROUND,
|
||||
SELECTABLE_TAB_ACTION_BUTTON_SELECTED_BACKGROUND, URL_DOMAIN, ACCESSIBILITY_DELEGATE,
|
||||
CARD_TYPE, CONTENT_DESCRIPTION_STRING, CLOSE_BUTTON_DESCRIPTION_STRING,
|
||||
+ FAVICON,
|
||||
SHOPPING_PERSISTED_TAB_DATA_FETCHER, SHOULD_SHOW_PRICE_DROP_TOOLTIP};
|
||||
|
||||
public static final PropertyKey[] ALL_KEYS_TAB_STRIP = new PropertyKey[] {TAB_ID,
|
||||
TAB_SELECTED_LISTENER, TAB_CLOSED_LISTENER, FAVICON_FETCHED, FAVICON_FETCHER,
|
||||
+ FAVICON,
|
||||
IS_SELECTED, TITLE, TABSTRIP_FAVICON_BACKGROUND_COLOR_ID, IS_INCOGNITO};
|
||||
}
|
||||
/** Property for lazily fetching favicons when required by an item in a UI. */
|
||||
public static final WritableObjectPropertyKey<TabListFaviconProvider.TabFaviconFetcher>
|
||||
FAVICON_FETCHER = new WritableObjectPropertyKey<>();
|
||||
@@ -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,
|
||||
QUICK_DELETE_ANIMATION_STATUS
|
||||
@@ -172,6 +176,7 @@ public class TabProperties {
|
||||
TAB_CLOSED_LISTENER,
|
||||
FAVICON_FETCHED,
|
||||
FAVICON_FETCHER,
|
||||
+ FAVICON,
|
||||
IS_SELECTED,
|
||||
TITLE,
|
||||
TABSTRIP_FAVICON_BACKGROUND_COLOR_ID,
|
||||
diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/privacy_preferences.xml
|
||||
@@ -53,6 +53,11 @@ found in the LICENSE file.
|
||||
@@ -54,6 +54,11 @@ found in the LICENSE file.
|
||||
android:title="@string/open_external_links_incognito_title"
|
||||
android:summary="@string/open_external_links_incognito_summary"
|
||||
android:defaultValue="false" />
|
||||
@@ -82,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;
|
||||
@@ -90,25 +95,27 @@ 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;
|
||||
@@ -663,7 +664,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
@@ -704,7 +705,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
|
||||
new TabContentManager(
|
||||
this,
|
||||
mBrowserControlsManagerSupplier.get(),
|
||||
- !SysUtils.isLowEndDevice(),
|
||||
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
||||
tabModelSelector != null ? tabModelSelector::getTabById : null));
|
||||
|
||||
TabModelSelector tabModelSelector = mTabModelOrchestrator.getTabModelSelector();
|
||||
setTabContentManager(new TabContentManager(this, mBrowserControlsManagerSupplier.get(),
|
||||
- !SysUtils.isLowEndDevice(),
|
||||
+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false),
|
||||
tabModelSelector != null ? tabModelSelector::getTabById : null));
|
||||
|
||||
getBrowserControlsManager().initialize(
|
||||
getBrowserControlsManager()
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java
|
||||
@@ -345,9 +345,12 @@ public class TabContentManager {
|
||||
* @param forceUpdate Whether to obtain the thumbnail from the live content.
|
||||
* @param writeBack When {@code forceUpdate}, whether to write the thumbnail to cache.
|
||||
@@ -326,11 +326,14 @@ public class TabContentManager {
|
||||
*/
|
||||
- public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize,
|
||||
+ public void getTabThumbnailWithCallback(@NonNull int tabId, @NonNull Size thumbnailSize, //
|
||||
@NonNull Callback<Bitmap> callback, boolean forceUpdate, boolean writeBack) {
|
||||
public void getTabThumbnailWithCallback(
|
||||
@NonNull int tabId,
|
||||
- @NonNull Size thumbnailSize,
|
||||
+ @NonNull Size thumbnailSize, //
|
||||
@NonNull Callback<Bitmap> callback,
|
||||
boolean forceUpdate,
|
||||
boolean writeBack) {
|
||||
- if (!mSnapshotsEnabled) return;
|
||||
+ if (!mSnapshotsEnabled) {
|
||||
+ callback.onResult(null);
|
||||
@@ -120,7 +127,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -66,6 +66,11 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
@@ -66,12 +66,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
|
||||
import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
|
||||
import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
|
||||
|
||||
@@ -132,12 +139,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -73,7 +78,15 @@ import java.util.List;
|
||||
* Fragment to keep track of the all the privacy related preferences.
|
||||
*/
|
||||
public class PrivacySettings
|
||||
- extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener {
|
||||
+ extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
|
||||
/** Fragment to keep track of the all the privacy related preferences. */
|
||||
public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
- implements Preference.OnPreferenceChangeListener {
|
||||
+ implements Preference.OnPreferenceChangeListener, INeedSnackbarManager {
|
||||
+ private SnackbarManager mSnackbarManager;
|
||||
+ private Snackbar mSnackbar;
|
||||
+
|
||||
@@ -149,7 +154,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment";
|
||||
private static final String PREF_PRELOAD_PAGES = "preload_pages";
|
||||
private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
|
||||
@@ -136,6 +149,21 @@ public class PrivacySettings
|
||||
@@ -140,6 +153,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,8 +175,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
+
|
||||
Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE);
|
||||
// Record the launch of PG from the S&P link-row entry point
|
||||
privacyGuidePreference.setOnPreferenceClickListener(preference -> {
|
||||
@@ -293,6 +321,7 @@ public class PrivacySettings
|
||||
privacyGuidePreference.setOnPreferenceClickListener(
|
||||
@@ -321,6 +349,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
|
||||
public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
|
||||
public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito";
|
||||
@@ -179,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
@@ -318,6 +347,13 @@ public class PrivacySettings
|
||||
@@ -346,6 +375,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit();
|
||||
sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue);
|
||||
sharedPreferencesEditor.apply();
|
||||
@@ -193,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -360,6 +396,10 @@ public class PrivacySettings
|
||||
@@ -386,6 +422,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
: R.string.text_off);
|
||||
}
|
||||
|
||||
@@ -207,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
|
||||
@@ -5384,6 +5384,14 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
|
||||
@@ -223,4 +228,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
<message name="IDS_TAB_MANAGEMENT_MODULE_TITLE" desc="Text shown when the Tab Management module is referenced in install start, success, failure UI (e.g. in IDS_MODULE_INSTALL_START_TEXT, which will expand to 'Installing Tab management for Chrome…').">
|
||||
Tab management
|
||||
--
|
||||
2.25.1
|
||||
@@ -13,13 +13,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../LegacyChromePreferenceKeys.java | 1 +
|
||||
.../omnibox/LocationBarCoordinator.java | 2 +-
|
||||
.../strings/android_chrome_strings.grd | 7 +++++++
|
||||
.../toolbar/top/ToolbarControlContainer.java | 5 ++---
|
||||
components/BUILD.gn | 6 +++---
|
||||
.../res/xml/accessibility_preferences.xml | 5 +++++
|
||||
.../accessibility/AccessibilitySettings.java | 10 ++++++++++
|
||||
.../AccessibilitySettingsDelegate.java | 2 ++
|
||||
.../chromium/ui/base/DeviceFormFactor.java | 6 ++++++
|
||||
15 files changed, 73 insertions(+), 9 deletions(-)
|
||||
14 files changed, 71 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java
|
||||
@@ -53,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
|
||||
@@ -948,7 +948,9 @@ public final class ReturnToChromeUtil {
|
||||
@@ -979,7 +979,9 @@ public final class ReturnToChromeUtil {
|
||||
|
||||
public static boolean isScrollableMvtEnabled(Context context) {
|
||||
boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled();
|
||||
@@ -63,19 +62,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
|
||||
// On phones, parameter SURFACE_POLISH_SCROLLABLE_MVT is checked when feature flag
|
||||
// surface polish is enabled; otherwise, feature flag
|
||||
// SHOW_SCROLLABLE_MVT_ON_NTP_PHONE_ANDROID
|
||||
// SHOW_SCROLLABLE_MVT_ON_NTP_PHONE_ANDROID is checked.
|
||||
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;
|
||||
@@ -1454,7 +1455,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;
|
||||
@@ -85,11 +84,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) {
|
||||
stubId = R.id.find_toolbar_tablet_stub;
|
||||
}
|
||||
mFindToolbarManager = new FindToolbarManager(mActivity.findViewById(stubId),
|
||||
mFindToolbarManager =
|
||||
diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
|
||||
--- a/chrome/browser/preferences/BUILD.gn
|
||||
+++ b/chrome/browser/preferences/BUILD.gn
|
||||
@@ -25,6 +25,7 @@ android_library("java") {
|
||||
@@ -26,6 +26,7 @@ android_library("java") {
|
||||
"//components/browser_ui/site_settings/android:constants_java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
@@ -100,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
|
||||
@@ -349,6 +349,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";
|
||||
@@ -121,8 +120,8 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
||||
public class ChromeSharedPreferences {
|
||||
public static final PreferenceKeyRegistry REGISTRY =
|
||||
@@ -22,6 +24,12 @@ public class ChromeSharedPreferences {
|
||||
LegacyChromePreferenceKeys.getPrefixesInUse())
|
||||
: null);
|
||||
LegacyChromePreferenceKeys.getPrefixesInUse())
|
||||
: null);
|
||||
|
||||
+ static {
|
||||
+ DeviceFormFactor.setForceTabletUI(
|
||||
@@ -136,9 +135,9 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro
|
||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
@@ -63,6 +63,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.FLAGS_CACHED_START_SURFACE_ENABLED,
|
||||
ChromePreferenceKeys.FLAGS_CACHED_TAB_GROUPS_ANDROID_ENABLED,
|
||||
@@ -58,6 +58,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE,
|
||||
ChromePreferenceKeys.FIRST_RUN_SKIP_WELCOME_PAGE,
|
||||
ChromePreferenceKeys.FONT_USER_FONT_SCALE_FACTOR,
|
||||
+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED,
|
||||
ChromePreferenceKeys.FONT_USER_SET_FORCE_ENABLE_ZOOM,
|
||||
@@ -147,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
|
||||
@@ -779,7 +779,7 @@ public class LocationBarCoordinator
|
||||
@@ -771,7 +771,7 @@ public class LocationBarCoordinator
|
||||
}
|
||||
|
||||
private boolean isTabletWindow() {
|
||||
@@ -159,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
|
||||
@@ -1658,6 +1658,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>
|
||||
|
||||
@@ -173,25 +172,10 @@ 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]">
|
||||
Safety check
|
||||
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
|
||||
@@ -166,9 +166,8 @@ public class ToolbarControlContainer extends OptimizedFrameLayout implements Con
|
||||
|
||||
return backgroundDrawable;
|
||||
} else {
|
||||
- final Drawable backgroundDrawable =
|
||||
- AppCompatResources.getDrawable(getContext(), R.drawable.toolbar_background)
|
||||
- .mutate();
|
||||
+ Drawable backgroundDrawable = new ColorDrawable(
|
||||
+ ChromeColors.getPrimaryBackgroundColor(getContext(), incognito));
|
||||
backgroundDrawable.setTint(ChromeColors.getDefaultThemeColor(getContext(), incognito));
|
||||
backgroundDrawable.setTintMode(PorterDuff.Mode.MULTIPLY);
|
||||
|
||||
diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
--- a/components/BUILD.gn
|
||||
+++ b/components/BUILD.gn
|
||||
@@ -68,7 +68,7 @@ if (is_ios) {
|
||||
@@ -69,7 +69,7 @@ if (is_ios) {
|
||||
|
||||
# Omit Lacros because it allows //components to depend on //chrome, which in
|
||||
# turn depends on //extensions.
|
||||
@@ -200,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
|
||||
@@ -811,7 +811,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.
|
||||
@@ -209,7 +193,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
assert_no_deps = [ "//chrome/*" ]
|
||||
assert_no_deps += disallowed_extension_deps_
|
||||
}
|
||||
@@ -1099,7 +1099,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.
|
||||
@@ -221,7 +205,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
|
||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
@@ -35,6 +35,11 @@ found in the LICENSE file.
|
||||
@@ -40,6 +40,11 @@ found in the LICENSE file.
|
||||
android:summary="@string/reader_for_accessibility_summary"
|
||||
android:title="@string/reader_for_accessibility_title" />
|
||||
|
||||
@@ -236,7 +220,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||
@@ -33,6 +33,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -32,6 +32,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
public static final String PREF_CAPTIONS = "captions";
|
||||
public static final String PREF_ZOOM_INFO = "zoom_info";
|
||||
|
||||
@@ -244,8 +228,8 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
@@ -117,6 +119,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -129,6 +131,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
getPreferenceScreen().removePreference(readerForAccessibilityPref);
|
||||
}
|
||||
|
||||
@@ -256,9 +240,9 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
+ forceTabletUiPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(preference -> {
|
||||
Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS);
|
||||
@@ -174,6 +182,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -190,6 +198,8 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mFontSizePrefs.setUserFontScaleFactor((Float) newValue);
|
||||
} else if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) {
|
||||
mFontSizePrefs.setForceEnableZoomFromUser((Boolean) newValue);
|
||||
@@ -270,7 +254,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
@@ -60,6 +60,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -52,6 +52,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
*/
|
||||
IntegerPreferenceDelegate getTextSizeContrastAccessibilityDelegate();
|
||||
|
||||
@@ -282,8 +266,8 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
||||
--- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
||||
+++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java
|
||||
@@ -38,6 +38,11 @@ public class DeviceFormFactor {
|
||||
*/
|
||||
@@ -31,6 +31,11 @@ public class DeviceFormFactor {
|
||||
/** Matches the value set in res/values-sw720dp/values.xml */
|
||||
private static final int SCREEN_BUCKET_LARGET_TABLET = 3;
|
||||
|
||||
+ private static boolean mForceTabletUI;
|
||||
@@ -294,7 +278,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
||||
/**
|
||||
* Each activity could be on a different display, and this will just tell you whether the
|
||||
* display associated with the application context is "tablet sized".
|
||||
@@ -63,6 +68,7 @@ public class DeviceFormFactor {
|
||||
@@ -56,6 +61,7 @@ public class DeviceFormFactor {
|
||||
* E.g. http://developer.samsung.com/samsung-dex/testing
|
||||
*/
|
||||
public static boolean isNonMultiDisplayContextOnTablet(Context context) {
|
||||
@@ -303,4 +287,3 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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;
|
||||
@@ -1333,8 +1334,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@@ -1614,8 +1615,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
boolean hadCipherData =
|
||||
CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
|
||||
|
||||
@@ -46,7 +46,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
|
||||
+ CommandLine.getInstance().hasSwitch(ChromeSwitches.NO_RESTORE_STATE) ||
|
||||
+ ContextUtils.getAppSharedPreferences().getBoolean(PREF_CLOSE_TABS_ON_EXIT, false);
|
||||
boolean shouldShowNtpAsHomeSurfaceAtStartup = false;
|
||||
final AtomicBoolean isActiveUrlNTP = new AtomicBoolean(false);
|
||||
final AtomicBoolean isActiveUrlNtp = new AtomicBoolean(false);
|
||||
if (noRestoreState) {
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
|
||||
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
import org.chromium.chrome.R;
|
||||
import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
@@ -89,6 +92,8 @@ public class PrivacySettings
|
||||
@@ -87,6 +90,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
private final SharedPreferencesManager mSharedPreferencesManager =
|
||||
ChromeSharedPreferences.getInstance();
|
||||
|
||||
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
private ManagedPreferenceDelegate mManagedPreferenceDelegate;
|
||||
private IncognitoLockSettings mIncognitoLockSettings;
|
||||
|
||||
@@ -243,7 +248,11 @@ public class PrivacySettings
|
||||
@@ -271,7 +276,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
String key = preference.getKey();
|
||||
@@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
|
||||
UserPrefs.get(getProfile())
|
||||
.setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
|
||||
} else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
|
||||
@@ -290,6 +299,11 @@ public class PrivacySettings
|
||||
@@ -316,6 +325,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment
|
||||
PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -4806,6 +4806,12 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
@@ -119,4 +119,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
LINK
|
||||
</message>
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -23,15 +23,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java
|
||||
@@ -18,6 +18,7 @@ import org.chromium.base.Callback;
|
||||
import org.chromium.base.ResettersForTesting;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
@@ -22,6 +22,7 @@ import org.chromium.base.supplier.ObservableSupplier;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
import org.chromium.base.task.PostTask;
|
||||
import org.chromium.base.task.TaskTraits;
|
||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||
import org.chromium.chrome.browser.tab.Tab;
|
||||
import org.chromium.chrome.browser.tab.TabCreationState;
|
||||
import org.chromium.chrome.browser.tab.TabLaunchType;
|
||||
@@ -44,6 +45,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate;
|
||||
@@ -47,6 +48,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
import org.chromium.ui.modelutil.PropertyModel;
|
||||
import org.chromium.ui.text.EmptyTextWatcher;
|
||||
@@ -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;
|
||||
@@ -564,9 +566,14 @@ public class TabGridDialogMediator
|
||||
@@ -636,11 +638,16 @@ public class TabGridDialogMediator
|
||||
|
||||
assert relatedTabs.size() > 0;
|
||||
|
||||
@@ -49,12 +49,14 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||
mTabCreatorManager.getTabCreator(currentTab.isIncognito())
|
||||
- .createNewTab(new LoadUrlParams(UrlConstants.NTP_URL),
|
||||
+ .createNewTab(new LoadUrlParams(url),
|
||||
TabLaunchType.FROM_TAB_GROUP_UI, parentTabToAttach);
|
||||
mTabCreatorManager
|
||||
.getTabCreator(currentTab.isIncognito())
|
||||
.createNewTab(
|
||||
- new LoadUrlParams(UrlConstants.NTP_URL),
|
||||
+ new LoadUrlParams(url),
|
||||
TabLaunchType.FROM_TAB_GROUP_UI,
|
||||
parentTabToAttach);
|
||||
RecordUserAction.record("MobileNewTabOpened." + mComponentName);
|
||||
};
|
||||
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
||||
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
||||
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java
|
||||
@@ -66,21 +68,23 @@ 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;
|
||||
@@ -351,8 +352,13 @@ public class TabGroupUiMediator implements BackPressHandler {
|
||||
assert relatedTabs.size() > 0;
|
||||
@@ -375,10 +376,15 @@ public class TabGroupUiMediator implements BackPressHandler {
|
||||
assert relatedTabs.size() > 0;
|
||||
|
||||
parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||
+ String url = UrlConstants.NTP_URL;
|
||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
mTabCreatorManager.getTabCreator(currentTab.isIncognito())
|
||||
- .createNewTab(new LoadUrlParams(UrlConstants.NTP_URL),
|
||||
+ .createNewTab(new LoadUrlParams(url),
|
||||
TabLaunchType.FROM_TAB_GROUP_UI, parentTabToAttach);
|
||||
RecordUserAction.record("MobileNewTabOpened." + TabGroupUiCoordinator.COMPONENT_NAME);
|
||||
};
|
||||
parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1);
|
||||
+ String url = UrlConstants.NTP_URL;
|
||||
+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) {
|
||||
+ GURL gurl = HomepageManager.getInstance().getHomepageGurl();
|
||||
+ url = gurl != null ? gurl.getSpec() : url;
|
||||
+ }
|
||||
mTabCreatorManager
|
||||
.getTabCreator(currentTab.isIncognito())
|
||||
.createNewTab(
|
||||
- new LoadUrlParams(UrlConstants.NTP_URL),
|
||||
+ new LoadUrlParams(url),
|
||||
TabLaunchType.FROM_TAB_GROUP_UI,
|
||||
parentTabToAttach);
|
||||
RecordUserAction.record(
|
||||
diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/homepage_preferences.xml
|
||||
@@ -99,7 +103,7 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
@@ -247,6 +247,22 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
|
||||
@@ -233,6 +233,22 @@ public class HomepageManager
|
||||
notifyHomepageUpdated();
|
||||
}
|
||||
|
||||
@@ -131,9 +135,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
|
||||
import org.chromium.url.GURL;
|
||||
+import org.chromium.components.embedder_support.util.UrlConstants;
|
||||
|
||||
/**
|
||||
* Fragment that allows the user to configure homepage related preferences.
|
||||
@@ -32,6 +33,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
/** Fragment that allows the user to configure homepage related preferences. */
|
||||
public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
@@ -30,6 +31,8 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
@VisibleForTesting
|
||||
public static final String PREF_HOMEPAGE_RADIO_GROUP = "homepage_radio_group";
|
||||
|
||||
@@ -142,8 +146,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
|
||||
private HomepageManager mHomepageManager;
|
||||
private RadioButtonGroupHomepagePreference mRadioButtons;
|
||||
|
||||
@@ -65,6 +68,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
});
|
||||
@@ -64,6 +67,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment {
|
||||
});
|
||||
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
|
||||
|
||||
+ ChromeSwitchPreference mNTPIsHomepageSwitch =
|
||||
@@ -161,26 +165,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchMetrics.java
|
||||
@@ -104,7 +104,6 @@ public class LaunchMetrics {
|
||||
@@ -112,7 +112,6 @@ public class LaunchMetrics {
|
||||
public static void recordHomePageLaunchMetrics(
|
||||
boolean showHomeButton, boolean homepageIsNtp, GURL homepageGurl) {
|
||||
if (homepageGurl.isEmpty()) {
|
||||
- assert !showHomeButton : "Homepage should be disabled for an empty GURL";
|
||||
}
|
||||
LaunchMetricsJni.get().recordHomePageLaunchMetrics(
|
||||
showHomeButton, homepageIsNtp, homepageGurl);
|
||||
LaunchMetricsJni.get()
|
||||
.recordHomePageLaunchMetrics(showHomeButton, homepageIsNtp, homepageGurl);
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java
|
||||
@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||
@@ -24,6 +24,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask;
|
||||
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
|
||||
import org.chromium.chrome.browser.flags.ChromeFeatureList;
|
||||
import org.chromium.chrome.browser.incognito.IncognitoUtils;
|
||||
import org.chromium.chrome.browser.new_tab_url.DseNewTabUrlManager;
|
||||
+import org.chromium.chrome.browser.homepage.HomepageManager;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageLaunchOrigin;
|
||||
import org.chromium.chrome.browser.ntp.NewTabPageUtils;
|
||||
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
|
||||
@@ -497,6 +498,13 @@ public class ChromeTabCreator extends TabCreator {
|
||||
@@ -484,6 +485,13 @@ public class ChromeTabCreator extends TabCreator {
|
||||
* @return the created tab.
|
||||
*/
|
||||
public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) {
|
||||
@@ -197,18 +201,18 @@ 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
|
||||
@@ -361,6 +361,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";
|
||||
|
||||
+ public static final String HOMEPAGE_NTP_IS_HOMEPAGE = "newtabpage_is_homepage";
|
||||
/**
|
||||
* Key used to save homepage location set by enterprise policy
|
||||
*/
|
||||
/** Key used to save homepage location set by enterprise policy */
|
||||
public static final String DEPRECATED_HOMEPAGE_LOCATION_POLICY =
|
||||
"Chrome.Policy.HomepageLocation";
|
||||
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java
|
||||
@@ -67,6 +67,7 @@ public class LegacyChromePreferenceKeys {
|
||||
@@ -62,6 +62,7 @@ public class LegacyChromePreferenceKeys {
|
||||
ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO,
|
||||
ChromePreferenceKeys.HOMEPAGE_ENABLED,
|
||||
ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI,
|
||||
@@ -219,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
|
||||
@@ -1431,6 +1431,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>
|
||||
@@ -232,19 +236,19 @@ 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());
|
||||
+ registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false,
|
||||
+ GetHomeButtonAndHomePageIsNewTabPageFlags());
|
||||
+ PrefRegistry::NO_REGISTRATION_FLAGS);
|
||||
|
||||
registry->RegisterInt64Pref(prefs::kDefaultBrowserLastDeclined, 0);
|
||||
bool reset_check_default = false;
|
||||
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
|
||||
@@ -1296,6 +1296,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";
|
||||
|
||||
@@ -256,4 +260,3 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
|
||||
// The old key value is kept to avoid unnecessary migration code.
|
||||
inline constexpr char kSpeechRecognitionFilterProfanities[] =
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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
|
||||
@@ -64,19 +64,26 @@ 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
|
||||
@@ -88,6 +88,8 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_QUENDU = 69,
|
||||
SEARCH_ENGINE_BRAVE = 70,
|
||||
@@ -90,10 +90,15 @@ enum SearchEngineType {
|
||||
SEARCH_ENGINE_KARMA = 71,
|
||||
+ SEARCH_ENGINE_GOOGLE_EN = 72,
|
||||
+ SEARCH_ENGINE_DUCKDUCKGOLIGHT = 73,
|
||||
SEARCH_ENGINE_YOU = 72,
|
||||
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
|
||||
@@ -56,6 +56,7 @@ struct EngineAndTier {
|
||||
@@ -63,6 +63,7 @@ struct EngineAndTier {
|
||||
|
||||
// Default (for countries with no better engine set)
|
||||
constexpr EngineAndTier engines_default[] = {
|
||||
@@ -84,7 +91,7 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
||||
{SearchEngineTier::kTopEngines, &google},
|
||||
{SearchEngineTier::kTopEngines, &bing},
|
||||
{SearchEngineTier::kTopEngines, &yahoo},
|
||||
@@ -1608,6 +1609,8 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
||||
@@ -1683,6 +1684,8 @@ const std::vector<EngineAndTier> GetPrepopulationSetFromCountryID(
|
||||
for (size_t i = 0; i < num_engines; i++) {
|
||||
t_url.push_back(engines[i]);
|
||||
}
|
||||
@@ -94,4 +101,3 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+71
-87
@@ -26,16 +26,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../core/browsing_data_policies_utils.h | 11 +++
|
||||
.../browsing_data/core/browsing_data_utils.cc | 34 +++++++++
|
||||
.../core/clear_browsing_data_tab.h | 2 +-
|
||||
components/browsing_data/core/pref_names.cc | 27 +++++++
|
||||
components/browsing_data/core/pref_names.h | 9 +++
|
||||
components/browsing_data/core/pref_names.cc | 17 +++++
|
||||
components/browsing_data/core/pref_names.h | 10 +++
|
||||
content/browser/storage_partition_impl.cc | 1 +
|
||||
25 files changed, 321 insertions(+), 17 deletions(-)
|
||||
25 files changed, 312 insertions(+), 17 deletions(-)
|
||||
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java
|
||||
|
||||
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
|
||||
@@ -301,6 +301,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
|
||||
@@ -150,6 +150,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||
@@ -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;
|
||||
@@ -1333,7 +1334,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,8 +70,8 @@ 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
|
||||
@@ -412,6 +412,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();
|
||||
|
||||
+ protected boolean shouldClearBrowsingData() {
|
||||
@@ -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.
|
||||
*
|
||||
@@ -489,6 +493,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;
|
||||
@@ -522,6 +527,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;
|
||||
|
||||
@@ -84,6 +84,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);
|
||||
}
|
||||
@@ -121,6 +123,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
|
||||
@@ -2339,6 +2339,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
|
||||
@@ -426,6 +426,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();
|
||||
|
||||
@@ -476,7 +479,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.
|
||||
@@ -497,7 +502,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(
|
||||
@@ -572,9 +579,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
@@ -582,9 +589,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData(
|
||||
}
|
||||
|
||||
device_event_log::Clear(delete_begin_, delete_end_);
|
||||
@@ -330,32 +330,32 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
|
||||
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
|
||||
@@ -513,6 +513,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
(*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] =
|
||||
settings_api::PrefType::PREF_TYPE_NUMBER;
|
||||
settings_api::PrefType::kNumber;
|
||||
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteBrowsingHistoryAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteDownloadHistoryAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteCacheAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteCookiesAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeletePasswordsAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteFormDataAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteSiteSettingsAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+ (*s_allowlist)[browsing_data::prefs::kDeleteHostedAppsDataAtStart] =
|
||||
+ settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
+ settings_api::PrefType::kBoolean;
|
||||
+
|
||||
// Accessibility.
|
||||
(*s_allowlist)[::prefs::kAccessibilityImageLabelsEnabled] =
|
||||
settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
settings_api::PrefType::kBoolean;
|
||||
diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
--- a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
+++ b/chrome/browser/profiles/android/java/src/org/chromium/chrome/browser/profiles/ProfileManagerUtils.java
|
||||
@@ -54,9 +54,14 @@ public class ProfileManagerUtils {
|
||||
@@ -52,10 +52,15 @@ public class ProfileManagerUtils {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -366,6 +366,7 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse
|
||||
@NativeMethods
|
||||
interface Natives {
|
||||
void flushPersistentDataForAllProfiles();
|
||||
|
||||
void removeSessionCookiesForAllProfiles();
|
||||
+ void removeBrowsingDataAtStart();
|
||||
}
|
||||
@@ -373,7 +374,7 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse
|
||||
diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/browser/profiles/android/profile_manager_utils.cc
|
||||
--- a/chrome/browser/profiles/android/profile_manager_utils.cc
|
||||
+++ b/chrome/browser/profiles/android/profile_manager_utils.cc
|
||||
@@ -67,3 +67,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles(
|
||||
@@ -62,3 +62,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles(
|
||||
g_browser_process->profile_manager()->GetLoadedProfiles(),
|
||||
RemoveSessionCookiesForProfile);
|
||||
}
|
||||
@@ -385,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
|
||||
@@ -1491,6 +1491,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
@@ -1488,6 +1488,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -405,10 +406,10 @@ 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_ ||
|
||||
@@ -2154,7 +2167,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 (auto* browser_iter : *BrowserList::GetInstance()) {
|
||||
for (Browser* browser_iter : *BrowserList::GetInstance()) {
|
||||
- if (browser_iter->profile()->GetOriginalProfile() == original_profile)
|
||||
+ if (browser_iter->profile() == profile)
|
||||
return;
|
||||
@@ -429,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
|
||||
@@ -304,6 +304,50 @@
|
||||
@@ -305,6 +305,50 @@
|
||||
disabled="[[clearingInProgress_]]" no-set-pref>
|
||||
</settings-checkbox>
|
||||
</div>
|
||||
@@ -483,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
|
||||
@@ -247,6 +247,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
@@ -302,6 +302,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
value: () =>
|
||||
[loadTimeData.getString('basicPageTitle'),
|
||||
loadTimeData.getString('advancedPageTitle'),
|
||||
@@ -491,7 +492,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_
|
||||
],
|
||||
},
|
||||
|
||||
@@ -366,6 +367,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
@@ -425,6 +426,7 @@ export class SettingsClearBrowsingDataDialogElement extends
|
||||
}
|
||||
this.clearButtonDisabled_ =
|
||||
this.getSelectedDataTypes_(tab as HTMLElement).length === 0;
|
||||
@@ -502,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
|
||||
@@ -1526,6 +1526,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>
|
||||
@@ -515,14 +516,14 @@ 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
|
||||
@@ -1604,6 +1604,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
|
||||
{"clearedData", IDS_SETTINGS_CLEARED_DATA},
|
||||
{"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA},
|
||||
{"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION},
|
||||
+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
|
||||
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
|
||||
{"safeBrowsingEnableExtendedReportingDesc",
|
||||
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
|
||||
@@ -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},
|
||||
+ {"atStartPageTitle", IDS_CLEAR_BROWSING_DATA_ATSTART_TAB_TITLE},
|
||||
{"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT},
|
||||
{"safeBrowsingEnableExtendedReportingDesc",
|
||||
IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC},
|
||||
diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
--- a/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
+++ b/components/browsing_data/core/browsing_data_policies_utils.cc
|
||||
@@ -638,24 +639,7 @@ diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/component
|
||||
diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_data/core/pref_names.cc
|
||||
--- a/components/browsing_data/core/pref_names.cc
|
||||
+++ b/components/browsing_data/core/pref_names.cc
|
||||
@@ -26,6 +26,16 @@ const char kClearBrowsingDataOnExitDeletionPending[] =
|
||||
// delete just before browser shutdown.
|
||||
const char kClearBrowsingDataOnExitList[] = "browser.clear_data.clear_on_exit";
|
||||
|
||||
+// Clear Browsing Data dialog datatype preferences.
|
||||
+const char kDeleteBrowsingHistoryAtStart[] = "browser.clear_data.browsing_history_at_start";
|
||||
+const char kDeleteDownloadHistoryAtStart[] = "browser.clear_data.download_history_at_start";
|
||||
+const char kDeleteCacheAtStart[] = "browser.clear_data.cache_at_start";
|
||||
+const char kDeleteCookiesAtStart[] = "browser.clear_data.cookies_at_start";
|
||||
+const char kDeletePasswordsAtStart[] = "browser.clear_data.passwords_at_start";
|
||||
+const char kDeleteFormDataAtStart[] = "browser.clear_data.form_data_at_start";
|
||||
+const char kDeleteHostedAppsDataAtStart[] = "browser.clear_data.hosted_apps_data_at_start";
|
||||
+const char kDeleteSiteSettingsAtStart[] = "browser.clear_data.site_settings_at_start";
|
||||
+
|
||||
// Clear browsing data deletion time period.
|
||||
const char kDeleteTimePeriod[] = "browser.clear_data.time_period";
|
||||
const char kDeleteTimePeriodBasic[] = "browser.clear_data.time_period_basic";
|
||||
@@ -97,6 +107,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
@@ -47,6 +47,23 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
|
||||
registry->RegisterIntegerPref(
|
||||
kClearBrowsingDataHistoryNoticeShownTimes, 0);
|
||||
|
||||
@@ -682,26 +666,27 @@ diff --git a/components/browsing_data/core/pref_names.cc b/components/browsing_d
|
||||
diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_data/core/pref_names.h
|
||||
--- a/components/browsing_data/core/pref_names.h
|
||||
+++ b/components/browsing_data/core/pref_names.h
|
||||
@@ -17,6 +17,15 @@ extern const char kBrowsingDataLifetime[];
|
||||
extern const char kClearBrowsingDataOnExitDeletionPending[];
|
||||
extern const char kClearBrowsingDataOnExitList[];
|
||||
@@ -28,6 +28,16 @@ inline constexpr char kClearBrowsingDataOnExitDeletionPending[] =
|
||||
inline constexpr char kClearBrowsingDataOnExitList[] =
|
||||
"browser.clear_data.clear_on_exit";
|
||||
|
||||
+extern const char kDeleteBrowsingHistoryAtStart[];
|
||||
+extern const char kDeleteDownloadHistoryAtStart[];
|
||||
+extern const char kDeleteCacheAtStart[];
|
||||
+extern const char kDeleteCookiesAtStart[];
|
||||
+extern const char kDeletePasswordsAtStart[];
|
||||
+extern const char kDeleteFormDataAtStart[];
|
||||
+extern const char kDeleteHostedAppsDataAtStart[];
|
||||
+extern const char kDeleteSiteSettingsAtStart[];
|
||||
+// Clear Browsing Data dialog datatype preferences.
|
||||
+inline constexpr char kDeleteBrowsingHistoryAtStart[] = "browser.clear_data.browsing_history_at_start";
|
||||
+inline constexpr char kDeleteDownloadHistoryAtStart[] = "browser.clear_data.download_history_at_start";
|
||||
+inline constexpr char kDeleteCacheAtStart[] = "browser.clear_data.cache_at_start";
|
||||
+inline constexpr char kDeleteCookiesAtStart[] = "browser.clear_data.cookies_at_start";
|
||||
+inline constexpr char kDeletePasswordsAtStart[] = "browser.clear_data.passwords_at_start";
|
||||
+inline constexpr char kDeleteFormDataAtStart[] = "browser.clear_data.form_data_at_start";
|
||||
+inline constexpr char kDeleteHostedAppsDataAtStart[] = "browser.clear_data.hosted_apps_data_at_start";
|
||||
+inline constexpr char kDeleteSiteSettingsAtStart[] = "browser.clear_data.site_settings_at_start";
|
||||
+
|
||||
extern const char kDeleteTimePeriod[];
|
||||
extern const char kDeleteTimePeriodBasic[];
|
||||
|
||||
// Clear browsing data deletion time period.
|
||||
inline constexpr char kDeleteTimePeriod[] = "browser.clear_data.time_period";
|
||||
inline constexpr char kDeleteTimePeriodBasic[] =
|
||||
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
|
||||
@@ -1569,6 +1569,7 @@ void StoragePartitionImpl::Initialize(
|
||||
@@ -1488,6 +1488,7 @@ void StoragePartitionImpl::Initialize(
|
||||
.AppendASCII("Code Cache");
|
||||
}
|
||||
DCHECK_GE(settings.size_in_bytes(), 0);
|
||||
@@ -710,4 +695,3 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage
|
||||
settings.size_in_bytes());
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
+64
-65
@@ -76,7 +76,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/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java
|
||||
@@ -87,8 +87,9 @@ class ChromeContextMenuItem {
|
||||
@@ -111,8 +111,9 @@ class ChromeContextMenuItem {
|
||||
int SHARE_HIGHLIGHT = 32;
|
||||
int REMOVE_HIGHLIGHT = 33;
|
||||
int LEARN_MORE = 34;
|
||||
@@ -86,16 +86,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
+ int NUM_ENTRIES = 36;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -130,6 +131,7 @@ class ChromeContextMenuItem {
|
||||
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
||||
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
||||
R.id.contextmenu_learn_more, // Item.LEARN_MORE
|
||||
/** Mapping from {@link Item} to the ID found in the ids.xml. */
|
||||
@@ -152,6 +153,7 @@ class ChromeContextMenuItem {
|
||||
R.id.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
||||
R.id.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
||||
R.id.contextmenu_learn_more, // Item.LEARN_MORE
|
||||
+ R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB
|
||||
};
|
||||
|
||||
/** Mapping from {@link Item} to the ID of the string that describes the action of the item. */
|
||||
@@ -169,6 +171,7 @@ class ChromeContextMenuItem {
|
||||
@@ -191,6 +193,7 @@ class ChromeContextMenuItem {
|
||||
R.string.contextmenu_share_highlight, // Item.SHARE_HIGHLIGHT
|
||||
R.string.contextmenu_remove_highlight, // Item.REMOVE_HIGHLIGHT
|
||||
R.string.contextmenu_learn_more, // Item.LEARN_MORE
|
||||
@@ -106,20 +106,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java
|
||||
@@ -241,6 +241,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
@@ -266,6 +266,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
|
||||
if (mParams.isAnchor()) {
|
||||
ModelList linkGroup = new ModelList();
|
||||
+ if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) {
|
||||
+ linkGroup.add(createListItem(Item.FOLLOW_LINK));
|
||||
+ }
|
||||
if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl())
|
||||
if (FirstRunStatus.getFirstRunFlowComplete()
|
||||
&& !isEmptyUrl(mParams.getUrl())
|
||||
&& UrlUtilities.isAcceptedScheme(mParams.getUrl())) {
|
||||
if (mMode == ContextMenuMode.NORMAL) {
|
||||
@@ -593,6 +596,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
ShareHelper.shareDirectly(
|
||||
params, ShareHelper.getLastShareComponentName(), getProfile(), false);
|
||||
});
|
||||
@@ -631,6 +634,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator {
|
||||
getProfile(),
|
||||
false);
|
||||
});
|
||||
+ } else if (itemId == R.id.contextmenu_open_in_tab) {
|
||||
+ mItemDelegate.onOpenUrl(mParams.getUrl(), mParams.getReferrer());
|
||||
} else if (itemId == R.id.contextmenu_open_in_chrome) {
|
||||
@@ -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
|
||||
@@ -251,6 +251,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
@@ -273,6 +273,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
mTab.loadUrl(loadUrlParams);
|
||||
}
|
||||
|
||||
@@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
|
||||
diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
|
||||
--- a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
|
||||
+++ b/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/contextmenu/ContextMenuItemDelegate.java
|
||||
@@ -111,6 +111,8 @@ public interface ContextMenuItemDelegate {
|
||||
@@ -110,6 +110,8 @@ public interface ContextMenuItemDelegate {
|
||||
*/
|
||||
void onOpenImageUrl(GURL url, Referrer referrer);
|
||||
|
||||
@@ -158,19 +158,19 @@ 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
|
||||
@@ -331,6 +331,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kTabDragDropAndroid,
|
||||
&kTabAndLinkDragDropAndroid,
|
||||
&kTabEngagementReportingAndroid,
|
||||
@@ -280,6 +280,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
|
||||
&kTabGroupParityAndroid,
|
||||
&kTabletTabSwitcherLongPressMenu,
|
||||
&kTabletToolbarIncognitoStatus,
|
||||
+ &blink::features::kShowAlwaysContextMenuOnLinks,
|
||||
&kTabStripRedesign,
|
||||
&kTabletToolbarReordering,
|
||||
&kTabResumptionModuleAndroid,
|
||||
&kTabStateFlatBuffer,
|
||||
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
|
||||
@@ -330,6 +330,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,27 +178,27 @@ 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";
|
||||
@@ -615,6 +617,8 @@ public abstract class ChromeFeatureList {
|
||||
new CachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
|
||||
@@ -619,6 +621,8 @@ public abstract class ChromeFeatureList {
|
||||
newCachedFlag(OMNIBOX_MATCH_TOOLBAR_AND_STATUS_BAR_COLOR, false);
|
||||
public static final CachedFlag sMoveTopToolbarToBottom =
|
||||
new CachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
||||
newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false);
|
||||
+ public static final CachedFlag sShowAlwaysContextMenuOnLinks =
|
||||
+ new CachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false);
|
||||
+ newCachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false);
|
||||
public static final CachedFlag sOmniboxModernizeVisualUpdate =
|
||||
new CachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
|
||||
newCachedFlag(OMNIBOX_MODERNIZE_VISUAL_UPDATE, true);
|
||||
public static final CachedFlag sOptimizationGuidePushNotifications =
|
||||
@@ -750,6 +754,7 @@ public abstract class ChromeFeatureList {
|
||||
sTabToGTSAnimation,
|
||||
@@ -771,6 +775,7 @@ public abstract class ChromeFeatureList {
|
||||
sTabWindowManagerReportIndicesMismatch,
|
||||
sToolbarUseHardwareBitmapDraw,
|
||||
sUseChimeAndroidSdk,
|
||||
+ sShowAlwaysContextMenuOnLinks,
|
||||
sUseLibunwindstackNativeUnwinderAndroid);
|
||||
sUseLibunwindstackNativeUnwinderAndroid,
|
||||
sVerticalAutomotiveBackButtonToolbar);
|
||||
|
||||
public static final List<CachedFlag> sFlagsCachedInMinimalBrowser =
|
||||
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
|
||||
@@ -1732,6 +1732,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]">
|
||||
@@ -2772,6 +2778,9 @@ To change this setting, <ph name="BEGIN_LINK"><resetlink></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>
|
||||
@@ -224,7 +224,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
@@ -30,6 +30,11 @@ found in the LICENSE file.
|
||||
@@ -35,6 +35,11 @@ found in the LICENSE file.
|
||||
android:summary="@string/page_zoom_always_show_preference_summary"
|
||||
android:title="@string/page_zoom_always_show_preference_title" />
|
||||
|
||||
@@ -239,14 +239,14 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
|
||||
@@ -36,6 +36,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
@@ -35,6 +35,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private BooleanPreferenceDelegate mForceTabletUIDelegate;
|
||||
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
|
||||
static final String PREF_MOVE_TOOLBAR_TO_BOTTOM = "move_toolbar_bottom";
|
||||
+ static final String PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS = "always_show_contextmenu_on_links";
|
||||
private TextScalePreference mTextScalePref;
|
||||
private PageZoomPreference mPageZoomDefaultZoomPref;
|
||||
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
|
||||
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
|
||||
@@ -45,6 +46,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private BooleanPreferenceDelegate mReaderForAccessibilityDelegate;
|
||||
private double mPageZoomLatestDefaultZoomPrefValue;
|
||||
@@ -254,8 +254,8 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
+ private BooleanPreferenceDelegate mShowAlwaysContextMenuOnLinksDelegate;
|
||||
|
||||
private FontSizePrefs mFontSizePrefs;
|
||||
private FontSizePrefsObserver mFontSizePrefsObserver = new FontSizePrefsObserver() {
|
||||
@@ -137,6 +139,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
private FontSizePrefsObserver mFontSizePrefsObserver =
|
||||
@@ -149,6 +151,12 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
mMoveToolbarToBottomPref.setChecked(mMoveTopToolbarToBottomDelegate.isEnabled());
|
||||
mMoveToolbarToBottomPref.setOnPreferenceChangeListener(this);
|
||||
|
||||
@@ -266,30 +266,30 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
|
||||
+ mShowAlwaysContextMenuOnLinksPref.setOnPreferenceChangeListener(this);
|
||||
+
|
||||
Preference captions = findPreference(PREF_CAPTIONS);
|
||||
captions.setOnPreferenceClickListener(preference -> {
|
||||
Intent intent = new Intent(Settings.ACTION_CAPTIONING_SETTINGS);
|
||||
@@ -210,6 +218,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
captions.setOnPreferenceClickListener(
|
||||
preference -> {
|
||||
@@ -226,6 +234,9 @@ public class AccessibilitySettings extends PreferenceFragmentCompat
|
||||
} else if (PREF_MOVE_TOOLBAR_TO_BOTTOM.equals(preference.getKey())) {
|
||||
mMoveTopToolbarToBottomDelegate.setEnabled((Boolean) newValue);
|
||||
mDelegate.requestRestart(getActivity());
|
||||
+ } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) {
|
||||
+ mShowAlwaysContextMenuOnLinksDelegate.setEnabled((Boolean) newValue);
|
||||
+ mDelegate.requestRestart(getActivity());
|
||||
} else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) {
|
||||
// TODO(mschillaci): Implement the override behavior for OS level.
|
||||
}
|
||||
|
||||
return true;
|
||||
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java
|
||||
@@ -49,6 +49,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
@@ -43,6 +43,8 @@ public interface AccessibilitySettingsDelegate {
|
||||
|
||||
BooleanPreferenceDelegate getMoveTopToolbarToBottomDelegate();
|
||||
|
||||
+ BooleanPreferenceDelegate getShowAlwaysContextMenuOnLinksDelegate();
|
||||
+
|
||||
/**
|
||||
* @return The BrowserContextHandle that should be used to read and update settings.
|
||||
*/
|
||||
/** @return The BrowserContextHandle that should be used to read and update settings. */
|
||||
BrowserContextHandle getBrowserContextHandle();
|
||||
|
||||
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-setting-to-invert-tap-and-long-tap.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -328,7 +328,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
#include "third_party/blink/renderer/core/page/page.h"
|
||||
#include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h"
|
||||
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
|
||||
@@ -456,6 +457,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
@@ -467,6 +468,17 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
bool is_trusted,
|
||||
base::TimeTicks platform_time_stamp,
|
||||
KURL completed_url) {
|
||||
@@ -346,7 +346,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
LocalDOMWindow* window = GetDocument().domWindow();
|
||||
if (!window) {
|
||||
return;
|
||||
@@ -518,6 +530,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
@@ -527,6 +539,15 @@ void HTMLAnchorElement::NavigateToHyperlink(ResourceRequest request,
|
||||
/*element=*/this, request.HasUserGesture()));
|
||||
}
|
||||
|
||||
@@ -362,7 +362,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
Frame* target_frame =
|
||||
frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame;
|
||||
|
||||
@@ -541,7 +562,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) {
|
||||
@@ -559,7 +580,7 @@ void HTMLAnchorElement::SetHovered(bool hovered) {
|
||||
HTMLElement::SetHovered(hovered);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
@@ -641,13 +662,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(
|
||||
@@ -657,7 +677,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
|
||||
@@ -672,7 +692,9 @@ void HTMLAnchorElement::HandleClick(Event& event) {
|
||||
frame->GetEventHandler().SetDelayedNavigationTaskHandle(
|
||||
std::move(task_handle));
|
||||
} else {
|
||||
@@ -403,7 +403,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third
|
||||
diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||
--- a/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||
+++ b/third_party/blink/renderer/core/html/html_anchor_element.h
|
||||
@@ -104,6 +104,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
@@ -106,6 +106,7 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
void SetHovered(bool hovered) override;
|
||||
|
||||
void Trace(Visitor*) const override;
|
||||
@@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_
|
||||
|
||||
protected:
|
||||
void ParseAttribute(const AttributeModificationParams&) override;
|
||||
@@ -126,12 +127,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
@@ -130,12 +131,16 @@ class CORE_EXPORT HTMLAnchorElement : public HTMLElement, public DOMURLUtils {
|
||||
bool IsInteractiveContent() const final;
|
||||
InsertionNotificationRequest InsertedInto(ContainerNode&) override;
|
||||
void RemovedFrom(ContainerNode&) override;
|
||||
@@ -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,15 +441,15 @@ 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"
|
||||
@@ -63,6 +64,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"
|
||||
+#include "third_party/blink/renderer/core/page/context_menu_controller.h"
|
||||
#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/style/content_data.h"
|
||||
@@ -753,6 +755,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
|
||||
#include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h"
|
||||
@@ -803,6 +805,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate(
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,7 +474,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_
|
||||
diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h
|
||||
--- a/third_party/blink/renderer/core/html/html_image_element.h
|
||||
+++ b/third_party/blink/renderer/core/html/html_image_element.h
|
||||
@@ -220,6 +220,8 @@ class CORE_EXPORT HTMLImageElement final
|
||||
@@ -236,6 +236,8 @@ class CORE_EXPORT HTMLImageElement final
|
||||
void DidAddUserAgentShadowRoot(ShadowRoot&) override;
|
||||
void AdjustStyle(ComputedStyleBuilder&) override;
|
||||
|
||||
@@ -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
|
||||
@@ -231,14 +231,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();
|
||||
}
|
||||
|
||||
@@ -456,7 +458,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,
|
||||
@@ -479,6 +482,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;
|
||||
@@ -832,11 +844,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
@@ -831,11 +843,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame,
|
||||
SetAutofillData(result.InnerNode(), data);
|
||||
SetPasswordManagerData(result.InnerElement(), data);
|
||||
|
||||
@@ -574,4 +574,3 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.h b/th
|
||||
bool ShouldShowContextMenuFromTouch(const ContextMenuData&);
|
||||
|
||||
--
|
||||
2.25.1
|
||||
@@ -8,6 +8,7 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
chrome/browser/about_flags.cc | 1 +
|
||||
.../engagement/important_sites_util.cc | 9 +++++
|
||||
.../internal/tracker_impl.cc | 3 ++
|
||||
.../public/feature_configurations.cc | 7 ++++
|
||||
.../content/site_engagement_score.cc | 5 +++
|
||||
@@ -15,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
components/site_engagement/core/features.cc | 30 ++++++++++++++++
|
||||
components/site_engagement/core/features.h | 34 +++++++++++++++++++
|
||||
.../Add-site-engagement-flag.inc | 10 ++++++
|
||||
8 files changed, 96 insertions(+)
|
||||
9 files changed, 105 insertions(+)
|
||||
create mode 100644 components/site_engagement/core/features.cc
|
||||
create mode 100644 components/site_engagement/core/features.h
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc
|
||||
@@ -23,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
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
|
||||
@@ -152,6 +152,7 @@
|
||||
@@ -153,6 +153,7 @@
|
||||
#include "components/send_tab_to_self/features.h"
|
||||
#include "components/services/heap_profiling/public/cpp/switches.h"
|
||||
#include "components/services/storage/public/cpp/buckets/bucket_info.h"
|
||||
@@ -31,10 +32,43 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
||||
#include "components/shared_highlighting/core/common/shared_highlighting_features.h"
|
||||
#include "components/signin/core/browser/dice_account_reconcilor_delegate.h"
|
||||
#include "components/signin/public/base/signin_buildflags.h"
|
||||
diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc
|
||||
--- a/chrome/browser/engagement/important_sites_util.cc
|
||||
+++ b/chrome/browser/engagement/important_sites_util.cc
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "components/prefs/scoped_user_pref_update.h"
|
||||
#include "components/site_engagement/content/site_engagement_score.h"
|
||||
#include "components/site_engagement/content/site_engagement_service.h"
|
||||
+#include "components/site_engagement/core/features.h"
|
||||
#include "components/site_engagement/core/mojom/site_engagement_details.mojom.h"
|
||||
#include "components/webapps/browser/banners/app_banner_settings_helper.h"
|
||||
#include "net/base/registry_controlled_domains/registry_controlled_domain.h"
|
||||
@@ -387,6 +388,10 @@ void ImportantSitesUtil::RegisterProfilePrefs(
|
||||
// static
|
||||
std::set<std::string> ImportantSitesUtil::GetInstalledRegisterableDomains(
|
||||
Profile* profile) {
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
|
||||
+ std::set<std::string> empty_list;
|
||||
+ return empty_list;
|
||||
+ }
|
||||
std::set<GURL> installed_origins = GetOriginsWithInstalledWebApps(profile);
|
||||
std::set<std::string> registerable_domains;
|
||||
|
||||
@@ -401,6 +406,10 @@ std::vector<ImportantDomainInfo>
|
||||
ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile,
|
||||
size_t max_results) {
|
||||
SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime");
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
|
||||
+ std::vector<ImportantDomainInfo> empty_list;
|
||||
+ return empty_list;
|
||||
+ }
|
||||
std::map<std::string, ImportantDomainInfo> important_info;
|
||||
std::map<GURL, double> engagement_map;
|
||||
|
||||
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"
|
||||
@@ -42,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"
|
||||
@@ -187,6 +188,8 @@ TrackerImpl::TrackerImpl(
|
||||
@@ -211,6 +212,8 @@ TrackerImpl::TrackerImpl(
|
||||
TrackerImpl::~TrackerImpl() = default;
|
||||
|
||||
void TrackerImpl::NotifyEvent(const std::string& event) {
|
||||
@@ -62,10 +96,10 @@ 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"
|
||||
@@ -48,6 +49,12 @@ FeatureConfig CreateAlwaysTriggerConfig(const base::Feature* feature) {
|
||||
@@ -111,6 +112,12 @@ std::optional<FeatureConfig> GetClientSideFeatureConfig(
|
||||
}
|
||||
|
||||
absl::optional<FeatureConfig> GetClientSideFeatureConfig(
|
||||
const base::Feature* feature) {
|
||||
#endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN)
|
||||
+ if (!base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement)) {
|
||||
+ absl::optional<FeatureConfig> config = FeatureConfig();
|
||||
+ config->valid = false;
|
||||
@@ -205,4 +239,3 @@ new file mode 100644
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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
|
||||
@@ -84,6 +84,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,17 +20,17 @@ 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;
|
||||
@@ -436,8 +437,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) {
|
||||
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show(
|
||||
- this, getString(R.string.help_context_settings), null);
|
||||
- HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
|
||||
- .show(this, getString(R.string.help_context_settings), null);
|
||||
+ if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
|
||||
+ ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed();
|
||||
+ } else {
|
||||
+ HelpAndFeedbackLauncherImpl.getForProfile(mProfile).show(
|
||||
+ this, getString(R.string.help_context_settings), null);
|
||||
+ HelpAndFeedbackLauncherImpl.getForProfile(mProfile)
|
||||
+ .show(this, getString(R.string.help_context_settings), null);
|
||||
+ }
|
||||
return true;
|
||||
}
|
||||
@@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
|
||||
diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||
--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||
+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
|
||||
@@ -97,4 +97,8 @@ public class SettingsUtils {
|
||||
@@ -91,4 +91,8 @@ public class SettingsUtils {
|
||||
ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility);
|
||||
return true;
|
||||
}
|
||||
@@ -48,4 +48,3 @@ diff --git a/components/browser_ui/settings/android/java/src/org/chromium/compon
|
||||
+ }
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -56,10 +56,10 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base
|
||||
+import android.system.Os;
|
||||
+import android.content.ContentProviderClient;
|
||||
+
|
||||
/**
|
||||
* This class provides methods to access content URI schemes.
|
||||
*/
|
||||
@@ -89,6 +92,36 @@ public abstract class ContentUriUtils {
|
||||
/** This class provides methods to access content URI schemes. */
|
||||
public abstract class ContentUriUtils {
|
||||
private static final String TAG = "ContentUriUtils";
|
||||
@@ -87,6 +90,36 @@ public abstract class ContentUriUtils {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -97,4 +97,3 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base
|
||||
* Check whether a content URI exists.
|
||||
*
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -56,8 +56,9 @@ Enabled by default
|
||||
third_party/libjxl/OWNERS | 9 +
|
||||
third_party/libjxl/README.chromium | 15 +
|
||||
.../libjxl/gen_headers/jxl/jxl_export.h | 11 +
|
||||
tools/metrics/histograms/enums.xml | 3 +-
|
||||
52 files changed, 1995 insertions(+), 17 deletions(-)
|
||||
tools/metrics/histograms/enums.xml | 1 +
|
||||
.../histograms/metadata/blink/enums.xml | 2 +-
|
||||
53 files changed, 1995 insertions(+), 17 deletions(-)
|
||||
create mode 100644 build/linux/unbundle/libjxl.gn
|
||||
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-support-to-jxl.inc
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Add-support-to-jxl.inc
|
||||
@@ -83,7 +84,7 @@ Enabled by default
|
||||
diff --git a/DEPS b/DEPS
|
||||
--- a/DEPS
|
||||
+++ b/DEPS
|
||||
@@ -504,6 +504,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.
|
||||
@@ -94,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
|
||||
@@ -1134,6 +1138,9 @@ deps = {
|
||||
@@ -1107,6 +1111,9 @@ deps = {
|
||||
'src/third_party/dawn':
|
||||
Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'),
|
||||
|
||||
@@ -315,7 +316,7 @@ diff --git a/media/BUILD.gn b/media/BUILD.gn
|
||||
diff --git a/media/media_options.gni b/media/media_options.gni
|
||||
--- a/media/media_options.gni
|
||||
+++ b/media/media_options.gni
|
||||
@@ -129,6 +129,9 @@ declare_args() {
|
||||
@@ -132,6 +132,9 @@ declare_args() {
|
||||
# `enable_libaom` should likely also be overriddent to false.
|
||||
enable_av1_decoder = enable_dav1d_decoder
|
||||
|
||||
@@ -328,7 +329,7 @@ diff --git a/media/media_options.gni b/media/media_options.gni
|
||||
diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
|
||||
--- a/net/base/mime_util.cc
|
||||
+++ b/net/base/mime_util.cc
|
||||
@@ -163,6 +163,7 @@ static const MimeInfo kPrimaryMappings[] = {
|
||||
@@ -164,6 +164,7 @@ static const MimeInfo kPrimaryMappings[] = {
|
||||
{"image/avif", "avif"},
|
||||
{"image/gif", "gif"},
|
||||
{"image/jpeg", "jpeg,jpg"},
|
||||
@@ -336,7 +337,7 @@ diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc
|
||||
{"image/png", "png"},
|
||||
{"image/apng", "png,apng"},
|
||||
{"image/svg+xml", "svg,svgz"},
|
||||
@@ -666,6 +667,7 @@ static const char* const kStandardImageTypes[] = {"image/avif",
|
||||
@@ -667,6 +668,7 @@ static const char* const kStandardImageTypes[] = {"image/avif",
|
||||
"image/gif",
|
||||
"image/ief",
|
||||
"image/jpeg",
|
||||
@@ -374,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
|
||||
@@ -97,6 +97,7 @@
|
||||
@@ -90,6 +90,7 @@
|
||||
/libgifcodec
|
||||
/libjingle/source
|
||||
/libupnp
|
||||
@@ -393,7 +394,7 @@ diff --git a/third_party/blink/common/loader/network_utils.cc b/third_party/blin
|
||||
|
||||
namespace blink {
|
||||
namespace network_utils {
|
||||
@@ -33,7 +34,20 @@ bool AlwaysAccessNetwork(
|
||||
@@ -34,7 +35,20 @@ bool AlwaysAccessNetwork(
|
||||
}
|
||||
|
||||
const char* ImageAcceptHeader() {
|
||||
@@ -466,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
|
||||
@@ -4218,6 +4218,7 @@ domain Emulation
|
||||
@@ -4294,6 +4294,7 @@ domain Emulation
|
||||
experimental type DisabledImageType extends string
|
||||
enum
|
||||
avif
|
||||
@@ -477,7 +478,7 @@ diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/t
|
||||
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
|
||||
--- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
|
||||
+++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
|
||||
@@ -495,10 +495,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader(
|
||||
@@ -502,10 +502,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader(
|
||||
String header(network_utils::ImageAcceptHeader());
|
||||
for (String type : *disabled_image_types) {
|
||||
// The header string is expected to be like
|
||||
@@ -491,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent
|
||||
header.Replace(String(type + ","), "");
|
||||
}
|
||||
return AtomicString(header);
|
||||
@@ -842,6 +842,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
|
||||
@@ -850,6 +850,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes(
|
||||
namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum;
|
||||
for (protocol::Emulation::DisabledImageType type : *disabled_types) {
|
||||
if (DisabledImageTypeEnum::Avif == type ||
|
||||
@@ -607,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
|
||||
@@ -2256,6 +2256,10 @@ source_set("blink_platform_unittests_sources") {
|
||||
@@ -2280,6 +2280,10 @@ source_set("blink_platform_unittests_sources") {
|
||||
sources += [ "text/locale_icu_test.cc" ]
|
||||
}
|
||||
|
||||
@@ -618,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 += [
|
||||
@@ -2299,6 +2303,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",
|
||||
@@ -672,11 +673,11 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h
|
||||
+ kMaxValue = kJXL,
|
||||
};
|
||||
|
||||
// Categories for the JPEG color space histogram. Synced with 'JpegColorSpace'
|
||||
// |type| is the return value of ImageDecoder::FilenameExtension().
|
||||
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",
|
||||
]
|
||||
|
||||
@@ -2210,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
|
||||
@@ -4822,6 +4822,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 ]
|
||||
|
||||
@@ -2231,13 +2232,13 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we
|
||||
+crbug.com/1210658 virtual/jxl-enabled/images/jxl/jxl-images.html [ Crash Failure Pass Timeout ]
|
||||
+crbug.com/1358616 virtual/jxl-enabled/images/jxl/progressive.html [ Crash Failure Pass Timeout ]
|
||||
+
|
||||
# Temporarily disabled to unblock https://crrev.com/c/3099011
|
||||
crbug.com/1199701 http/tests/devtools/console/console-big-array.js [ Crash Failure Pass Timeout ]
|
||||
# Sheriff 2021-11-15
|
||||
crbug.com/1270362 http/tests/devtools/sources/debugger-ui/debugger-inline-values.js [ Failure Pass Timeout ]
|
||||
|
||||
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
|
||||
--- a/third_party/blink/web_tests/VirtualTestSuites
|
||||
+++ b/third_party/blink/web_tests/VirtualTestSuites
|
||||
@@ -429,6 +429,15 @@
|
||||
@@ -102,6 +102,15 @@
|
||||
"--disable-threaded-compositing", "--disable-threaded-animation"],
|
||||
"expires": "Jul 1, 2023"
|
||||
},
|
||||
@@ -2251,8 +2252,8 @@ diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/w
|
||||
+ "expires": "Jul 1, 2023"
|
||||
+ },
|
||||
{
|
||||
"prefix": "scalefactor150",
|
||||
"platforms": ["Linux", "Win"],
|
||||
"prefix": "unsafe_webgpu",
|
||||
"platforms": ["Linux", "Mac", "Win"],
|
||||
diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-set-disabled-image-types-jxl-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-set-disabled-image-types-jxl-expected.txt
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -2652,16 +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
|
||||
@@ -26859,7 +26859,7 @@ Called by update_debug_scenarios.py.-->
|
||||
<int value="5" label="kImageICO"/>
|
||||
<int value="6" label="kImageBMP"/>
|
||||
<int value="7" label="kImageAVIF"/>
|
||||
- <int value="8" label="(obsolete) kImageJXL"/>
|
||||
+ <int value="8" label="kImageJXL"/>
|
||||
</enum>
|
||||
|
||||
<enum name="DecodeSwapChainNotUsedReason">
|
||||
@@ -66334,6 +66334,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"/>
|
||||
@@ -2669,5 +2661,16 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums
|
||||
<int value="190395448" label="SearchWebInSidePanel:enabled"/>
|
||||
<int value="191737931" label="enable-mark-http-as"/>
|
||||
<int value="191891628" label="AutocompleteExtendedSuggestions:enabled"/>
|
||||
diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/histograms/metadata/blink/enums.xml
|
||||
--- a/tools/metrics/histograms/metadata/blink/enums.xml
|
||||
+++ b/tools/metrics/histograms/metadata/blink/enums.xml
|
||||
@@ -227,7 +227,7 @@ chromium-metrics-reviews@google.com.
|
||||
<int value="5" label="kImageICO"/>
|
||||
<int value="6" label="kImageBMP"/>
|
||||
<int value="7" label="kImageAVIF"/>
|
||||
- <int value="8" label="(obsolete) kImageJXL"/>
|
||||
+ <int value="8" label="kImageJXL"/>
|
||||
</enum>
|
||||
|
||||
<enum name="FedCmAccountsResponseInvalidReason">
|
||||
--
|
||||
2.25.1
|
||||
@@ -9,7 +9,7 @@ Requires patch: Content-settings-infrastructure.patch
|
||||
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
|
||||
---
|
||||
.../impl/BromiteWebGLContentSetting.java | 92 +++++++++++++++++++
|
||||
.../impl/BromiteWebGLContentSetting.java | 93 +++++++++++++++++++
|
||||
.../bromite_content_settings/webgl.grdp | 27 ++++++
|
||||
.../bromite_content_settings/webgl.inc | 22 +++++
|
||||
.../common/bromite_content_settings/WEBGL.inc | 1 +
|
||||
@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../execution_context/execution_context.h | 2 +
|
||||
.../webgl/webgl_rendering_context_base.cc | 32 +++----
|
||||
.../webgl/webgl_rendering_context_base.h | 2 +
|
||||
8 files changed, 166 insertions(+), 19 deletions(-)
|
||||
8 files changed, 167 insertions(+), 19 deletions(-)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java
|
||||
create mode 100644 components/browser_ui/strings/bromite_content_settings/webgl.grdp
|
||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/webgl.inc
|
||||
@@ -27,7 +27,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebGLContentSetting.java
|
||||
@@ -0,0 +1,92 @@
|
||||
@@ -0,0 +1,93 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -80,7 +80,8 @@ new file mode 100644
|
||||
+ /*defaultEnabledValue*/ getDefaultEnabledValue(),
|
||||
+ /*defaultDisabledValue*/ getDefaultDisabledValue(),
|
||||
+ /*enabledSummary*/ R.string.website_settings_category_webgl_enabled,
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_webgl_disabled);
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_webgl_disabled,
|
||||
+ /*summaryOverrideForScreenReader*/ 0);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
@@ -217,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
|
||||
@@ -271,6 +271,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
|
||||
@@ -311,6 +311,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits(
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,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_);
|
||||
@@ -544,25 +551,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");
|
||||
@@ -257,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('.');
|
||||
@@ -622,6 +610,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
|
||||
@@ -662,6 +650,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider(
|
||||
const CanvasContextCreationAttributesCore& attributes,
|
||||
Platform::ContextType context_type,
|
||||
Platform::GraphicsInfo* graphics_info) {
|
||||
@@ -273,14 +274,13 @@ 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
|
||||
@@ -1944,6 +1944,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
|
||||
@@ -1960,6 +1960,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
|
||||
DOMArrayBufferView* pixels,
|
||||
int64_t offset);
|
||||
|
||||
+ static bool AllowWebglForHost(blink::CanvasRenderingContextHost* host);
|
||||
+
|
||||
// Record Canvas/OffscreenCanvas.RenderingContextDrawnTo at the first draw
|
||||
// call.
|
||||
void RecordUKMCanvasDrawnToAtFirstDrawCall();
|
||||
void RecordANGLEImplementation();
|
||||
|
||||
private:
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -7,14 +7,14 @@ Requires patch: Content-settings-infrastructure.patch
|
||||
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
|
||||
---
|
||||
.../impl/BromiteWebRTCContentSetting.java | 93 +++++++++++++++++++
|
||||
.../impl/BromiteWebRTCContentSetting.java | 94 +++++++++++++++++++
|
||||
.../bromite_content_settings/webrtc.grdp | 27 ++++++
|
||||
.../bromite_content_settings/webrtc.inc | 22 +++++
|
||||
.../bromite_content_settings/WEBRTC.inc | 1 +
|
||||
.../peer_connection_dependency_factory.cc | 6 ++
|
||||
.../peerconnection/rtc_rtp_receiver.cc | 10 ++
|
||||
.../modules/peerconnection/rtc_rtp_sender.cc | 10 ++
|
||||
7 files changed, 169 insertions(+)
|
||||
7 files changed, 170 insertions(+)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java
|
||||
create mode 100644 components/browser_ui/strings/bromite_content_settings/webrtc.grdp
|
||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/webrtc.inc
|
||||
@@ -24,7 +24,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromiteWebRTCContentSetting.java
|
||||
@@ -0,0 +1,93 @@
|
||||
@@ -0,0 +1,94 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
@@ -77,7 +77,8 @@ new file mode 100644
|
||||
+ /*defaultEnabledValue*/ getDefaultEnabledValue(),
|
||||
+ /*defaultDisabledValue*/ getDefaultDisabledValue(),
|
||||
+ /*enabledSummary*/ R.string.website_settings_category_webrtc_enabled,
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_webrtc_disabled);
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_webrtc_disabled,
|
||||
+ /*summaryOverrideForScreenReader*/ 0);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
@@ -186,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"
|
||||
@@ -781,6 +782,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
@@ -847,6 +848,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator(
|
||||
// origin.
|
||||
WebRTCIPHandlingPolicy policy =
|
||||
GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy);
|
||||
@@ -218,7 +219,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.
|
||||
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
|
||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
|
||||
@@ -255,6 +257,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
||||
@@ -287,6 +289,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state,
|
||||
if (kind != "audio" && kind != "video")
|
||||
return nullptr;
|
||||
|
||||
@@ -243,9 +244,9 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||
+#include "third_party/blink/public/platform/web_content_settings_client.h"
|
||||
+#include "third_party/blink/public/web/web_local_frame.h"
|
||||
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
|
||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h"
|
||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h"
|
||||
#include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h"
|
||||
@@ -1004,6 +1006,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
||||
@@ -1062,6 +1064,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state,
|
||||
if (kind != "audio" && kind != "video")
|
||||
return nullptr;
|
||||
|
||||
@@ -261,4 +262,3 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
|
||||
capabilities->setCodecs(HeapVector<Member<RTCRtpCodecCapability>>());
|
||||
capabilities->setHeaderExtensions(
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+2
-3
@@ -12,11 +12,11 @@ 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
|
||||
@@ -372,6 +372,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
|
||||
@@ -368,6 +368,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow(
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (!opener.GetFrame()->GetContentSettingsClient()->AllowPopupsAndRedirects(false)) {
|
||||
+ if (!opener.GetFrame()->GetContentSettings()->allow_popup) {
|
||||
+ exception_state.ThrowDOMException(DOMExceptionCode::kNotAllowedError,
|
||||
+ "Document PiP requires user popup permission");
|
||||
+ resolver->Reject(exception_state);
|
||||
@@ -27,4 +27,3 @@ diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/pict
|
||||
web_options.width = options->width();
|
||||
web_options.height = options->height();
|
||||
--
|
||||
2.25.1
|
||||
@@ -20,11 +20,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../network/public/mojom/network_context.mojom | 2 ++
|
||||
.../core/frame/csp/content_security_policy.cc | 3 +++
|
||||
.../blink/renderer/core/frame/local_frame.cc | 3 +++
|
||||
.../blink/renderer/core/frame/local_frame.h | 6 +++---
|
||||
.../blink/renderer/core/frame/local_frame.h | 4 +++-
|
||||
.../renderer/core/frame/reporting_context.cc | 9 +++++++++
|
||||
.../renderer/core/frame/reporting_context.h | 7 +++++--
|
||||
.../renderer/core/frame/reporting_observer.cc | 3 +--
|
||||
20 files changed, 58 insertions(+), 27 deletions(-)
|
||||
20 files changed, 58 insertions(+), 25 deletions(-)
|
||||
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc
|
||||
|
||||
diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc
|
||||
@@ -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
|
||||
@@ -1314,6 +1314,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(
|
||||
@@ -1327,6 +1328,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||
@@ -1413,6 +1414,7 @@ std::vector<GURL> ComputeReportingURLs(RenderFrameHostImpl* frame_host) {
|
||||
});
|
||||
return urls;
|
||||
}
|
||||
@@ -72,7 +72,7 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/
|
||||
void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
|
||||
std::initializer_list<std::pair<base::StringPiece, base::StringPiece>> body,
|
||||
bool report_only) {
|
||||
- const absl::optional<std::string>& endpoint =
|
||||
- const std::optional<std::string>& endpoint =
|
||||
- report_only ? report_only_endpoint_ : endpoint_;
|
||||
const char* const disposition = report_only ? "reporting" : "enforce";
|
||||
if (observer_) {
|
||||
@@ -88,7 +88,7 @@ diff --git a/content/browser/network/cross_origin_embedder_policy_reporter.cc b/
|
||||
base::Value::Dict body_to_pass;
|
||||
for (const auto& pair : body) {
|
||||
@@ -125,6 +127,7 @@ void CrossOriginEmbedderPolicyReporter::QueueAndNotify(
|
||||
/*user_agent=*/absl::nullopt, std::move(body_to_pass));
|
||||
/*user_agent=*/std::nullopt, std::move(body_to_pass));
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
@@ -152,7 +152,7 @@ diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/co
|
||||
@@ -280,12 +275,14 @@ void CrossOriginOpenerPolicyReporter::QueueAccessReport(
|
||||
storage_partition_->GetNetworkContext()->QueueReport(
|
||||
"coop", endpoint, context_url_, reporting_source_,
|
||||
network_anonymization_key_, absl::nullopt, std::move(body));
|
||||
network_anonymization_key_, std::nullopt, std::move(body));
|
||||
+#endif
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ diff --git a/content/browser/network/cross_origin_opener_policy_reporter.cc b/co
|
||||
@@ -294,6 +291,7 @@ void CrossOriginOpenerPolicyReporter::QueueNavigationReport(
|
||||
"coop", endpoint, context_url_, reporting_source_,
|
||||
network_anonymization_key_,
|
||||
/*user_agent=*/absl::nullopt, std::move(body));
|
||||
/*user_agent=*/std::nullopt, std::move(body));
|
||||
+#endif
|
||||
}
|
||||
|
||||
@@ -193,7 +193,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse
|
||||
return;
|
||||
rph->GetStoragePartition()->GetNetworkContext()->QueueReport(
|
||||
type, group, url, reporting_source_, network_anonymization_key_,
|
||||
/*user_agent=*/absl::nullopt, std::move(body));
|
||||
/*user_agent=*/std::nullopt, std::move(body));
|
||||
+#endif
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -13639,12 +13639,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
||||
@@ -13787,12 +13787,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
|
||||
base::Value::Dict body;
|
||||
if (!reason.empty())
|
||||
body.Set("reason", reason);
|
||||
@@ -210,7 +210,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b
|
||||
- GetProcess()->GetStoragePartition()->GetNetworkContext()->QueueReport(
|
||||
- /*type=*/"crash", /*group=*/"default", last_committed_url_,
|
||||
- GetReportingSource(), isolation_info_.network_anonymization_key(),
|
||||
- absl::nullopt /* user_agent */, std::move(body));
|
||||
- std::nullopt /* user_agent */, std::move(body));
|
||||
}
|
||||
|
||||
void RenderFrameHostImpl::SendCommitNavigation(
|
||||
@@ -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
|
||||
@@ -228,6 +228,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)
|
||||
@@ -265,7 +265,7 @@ diff --git a/net/base/features.cc b/net/base/features.cc
|
||||
diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc
|
||||
--- a/net/reporting/reporting_service.cc
|
||||
+++ b/net/reporting/reporting_service.cc
|
||||
@@ -211,6 +211,12 @@ class ReportingServiceImpl : public ReportingService {
|
||||
@@ -214,6 +214,12 @@ class ReportingServiceImpl : public ReportingService {
|
||||
base::Value::Dict body,
|
||||
int depth,
|
||||
base::TimeTicks queued_ticks) {
|
||||
@@ -281,10 +281,10 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic
|
||||
diff --git a/services/network/network_context.h b/services/network/network_context.h
|
||||
--- a/services/network/network_context.h
|
||||
+++ b/services/network/network_context.h
|
||||
@@ -475,10 +475,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
const absl::optional<base::UnguessableToken>& reporting_source,
|
||||
@@ -464,10 +464,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
|
||||
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
|
||||
@@ -1438,7 +1438,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
|
||||
@@ -1201,6 +1201,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,
|
||||
@@ -1214,6 +1215,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"
|
||||
@@ -1164,6 +1165,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);
|
||||
|
||||
@@ -1171,6 +1173,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);
|
||||
@@ -354,7 +354,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c
|
||||
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
|
||||
@@ -42,6 +42,7 @@
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "build/build_config.h"
|
||||
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
|
||||
#include "mojo/public/cpp/system/message_pipe.h"
|
||||
@@ -362,8 +362,8 @@ 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"
|
||||
@@ -2533,9 +2534,11 @@ void LocalFrame::MainFrameInteractive() {
|
||||
}
|
||||
@@ -2619,9 +2620,11 @@ void LocalFrame::MainFrameInteractive() {
|
||||
v8_local_compile_hints_producer_->GenerateData();
|
||||
}
|
||||
|
||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||
@@ -372,34 +372,30 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
|
||||
}
|
||||
+#endif
|
||||
|
||||
// static
|
||||
void LocalFrame::NotifyUserActivation(
|
||||
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
|
||||
@@ -35,9 +35,9 @@
|
||||
#include "base/time/default_tick_clock.h"
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "base/time/time.h"
|
||||
#include "base/unguessable_token.h"
|
||||
-#include "build/build_config.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"
|
||||
@@ -636,9 +636,9 @@ class CORE_EXPORT LocalFrame final
|
||||
@@ -657,8 +658,9 @@ class CORE_EXPORT LocalFrame final
|
||||
void FinishedScrollSequence();
|
||||
|
||||
SmoothScrollSequencer* GetSmoothScrollSequencer() const;
|
||||
-
|
||||
+#if BUILDFLAG(ENABLE_REPORTING)
|
||||
mojom::blink::ReportingServiceProxy* GetReportingService();
|
||||
-
|
||||
+#endif
|
||||
mojom::blink::DevicePostureProvider* GetDevicePostureProvider();
|
||||
|
||||
// Returns the frame host ptr. The interface returned is backed by an
|
||||
// associated interface with the legacy Chrome IPC channel.
|
||||
mojom::blink::LocalFrameHost& GetLocalFrameHostRemote() const;
|
||||
diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_party/blink/renderer/core/frame/reporting_context.cc
|
||||
--- a/third_party/blink/renderer/core/frame/reporting_context.cc
|
||||
+++ b/third_party/blink/renderer/core/frame/reporting_context.cc
|
||||
@@ -512,4 +508,3 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third
|
||||
|
||||
bool ReportingObserver::Buffered() {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -4,26 +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 ------
|
||||
.../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 ++
|
||||
.../browser/ui/webui/management/management_ui_handler.cc | 2 ++
|
||||
components/supervised_user/buildflags.gni | 6 +-----
|
||||
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 | 8 ++++++++
|
||||
14 files changed, 31 insertions(+), 17 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
|
||||
@@ -3642,7 +3642,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",
|
||||
@@ -34,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
|
||||
@@ -1082,7 +1082,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",
|
||||
@@ -45,7 +46,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
||||
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
|
||||
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
|
||||
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
|
||||
@@ -69,7 +69,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
|
||||
@@ -68,7 +68,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
|
||||
import org.chromium.components.feature_engagement.EventConstants;
|
||||
import org.chromium.components.feature_engagement.Tracker;
|
||||
import org.chromium.components.prefs.PrefService;
|
||||
@@ -53,7 +54,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
|
||||
import org.chromium.components.user_prefs.UserPrefs;
|
||||
import org.chromium.third_party.android.swiperefresh.SwipeRefreshLayout;
|
||||
import org.chromium.ui.base.DeviceFormFactor;
|
||||
@@ -788,9 +787,7 @@ public class FeedSurfaceCoordinator
|
||||
@@ -775,9 +774,7 @@ public class FeedSurfaceCoordinator
|
||||
* Returns true if the supervised user feed should be displayed.
|
||||
*/
|
||||
public boolean shouldDisplaySupervisedFeed() {
|
||||
@@ -67,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
|
||||
@@ -3194,8 +3194,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",
|
||||
@@ -76,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",
|
||||
@@ -3413,10 +3411,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",
|
||||
@@ -90,22 +91,22 @@ 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
|
||||
@@ -1018,9 +1018,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
@@ -1024,9 +1024,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
|
||||
settings_api::PrefType::kBoolean;
|
||||
#endif
|
||||
|
||||
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
// Supervised Users. This setting is queried in our Tast tests (b/241943380).
|
||||
(*s_allowlist)[::prefs::kSupervisedUserExtensionsMayRequestPermissions] =
|
||||
settings_api::PrefType::PREF_TYPE_BOOLEAN;
|
||||
settings_api::PrefType::kBoolean;
|
||||
+#endif
|
||||
|
||||
#if BUILDFLAG(IS_CHROMEOS_LACROS)
|
||||
(*s_allowlist)[::prefs::kUseAshProxy] =
|
||||
(*s_allowlist)[::prefs::kUseAshProxy] = settings_api::PrefType::kBoolean;
|
||||
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
|
||||
@@ -696,10 +696,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);
|
||||
@@ -118,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(
|
||||
@@ -1625,11 +1627,13 @@ GURL ProfileImpl::GetHomePage() {
|
||||
@@ -1627,11 +1629,13 @@ GURL ProfileImpl::GetHomePage() {
|
||||
}
|
||||
|
||||
void ProfileImpl::UpdateSupervisedUserIdInStorage() {
|
||||
@@ -135,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
|
||||
@@ -1218,6 +1218,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
|
||||
@@ -1215,6 +1215,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
|
||||
profile->GetPrefs()->SetString(prefs::kProfileName, profile_name);
|
||||
}
|
||||
|
||||
@@ -143,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)
|
||||
@@ -1239,6 +1240,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
|
||||
@@ -1236,6 +1237,7 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) {
|
||||
profile->GetPrefs()->SetString(prefs::kSupervisedUserId,
|
||||
supervised_user_id);
|
||||
}
|
||||
@@ -151,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);
|
||||
@@ -2034,8 +2036,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
|
||||
@@ -2035,8 +2037,10 @@ void ProfileManager::AddProfileToStorage(Profile* profile) {
|
||||
init_params.icon_index =
|
||||
profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex);
|
||||
|
||||
@@ -180,7 +181,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w
|
||||
diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc
|
||||
--- a/chrome/browser/ui/webui/management/management_ui_handler.cc
|
||||
+++ b/chrome/browser/ui/webui/management/management_ui_handler.cc
|
||||
@@ -1456,10 +1456,12 @@ void ManagementUIHandler::AddObservers() {
|
||||
@@ -1507,10 +1507,12 @@ void ManagementUIHandler::AddObservers() {
|
||||
|
||||
pref_registrar_.Init(profile->GetPrefs());
|
||||
|
||||
@@ -207,10 +208,41 @@ diff --git a/components/supervised_user/buildflags.gni b/components/supervised_u
|
||||
- is_ios || is_linux || is_mac || is_win
|
||||
+ enable_supervised_users = false
|
||||
}
|
||||
diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||
--- a/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||
+++ b/components/supervised_user/core/browser/supervised_user_preferences.cc
|
||||
@@ -173,7 +173,7 @@ bool IsChildAccountStatusKnown(const PrefService& pref_service) {
|
||||
}
|
||||
|
||||
bool IsChildAccount(const PrefService& pref_service) {
|
||||
- return pref_service.GetString(prefs::kSupervisedUserId) == kChildAccountSUID;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
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
|
||||
@@ -171,4 +171,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
|
||||
@@ -163,4 +163,5 @@ bool IsShadowKidsApiWithSafeSitesEnabled() {
|
||||
return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites);
|
||||
}
|
||||
|
||||
@@ -230,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
|
||||
|
||||
@@ -240,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";
|
||||
|
||||
@@ -248,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,
|
||||
};
|
||||
@@ -256,39 +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
|
||||
@@ -76,11 +76,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 // BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
}
|
||||
|
||||
bool EmitLogSegmentHistogram(const std::vector<AccountInfo>& primary_accounts) {
|
||||
@@ -107,10 +111,14 @@ bool EmitLogSegmentHistogram(const std::vector<AccountInfo>& primary_accounts) {
|
||||
}
|
||||
|
||||
bool IsSubjectToParentalControls(const PrefService* pref_service) {
|
||||
+#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
return pref_service &&
|
||||
pref_service->GetString(prefs::kSupervisedUserId) ==
|
||||
kChildAccountSUID &&
|
||||
IsChildAccountSupervisionEnabled();
|
||||
+#else
|
||||
+ return false;
|
||||
+#endif
|
||||
}
|
||||
|
||||
} // namespace supervised_user
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
||||
--- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
||||
+++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
||||
@@ -1178,6 +1178,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
@@ -1181,6 +1181,12 @@ bool WebMediaPlayerImpl::HasAudio() const {
|
||||
return pipeline_metadata_.has_audio;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc
|
||||
void WebMediaPlayerImpl::EnabledAudioTracksChanged(
|
||||
const WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) {
|
||||
DCHECK(main_task_runner_->BelongsToCurrentThread());
|
||||
@@ -3502,7 +3508,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||
@@ -3524,7 +3530,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const {
|
||||
: HasAudio();
|
||||
|
||||
// Audio only stream is allowed to play when in background.
|
||||
@@ -50,4 +50,3 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b
|
||||
const WebVector<WebMediaPlayer::TrackId>& enabledTrackIds) override;
|
||||
void SelectedVideoTrackChanged(
|
||||
--
|
||||
2.25.1
|
||||
|
||||
-1
@@ -28,4 +28,3 @@ diff --git a/chrome/browser/resources/inspect/inspect.js b/chrome/browser/resour
|
||||
const propertiesBox = row.querySelector('.properties-box');
|
||||
propertiesBox.insertBefore(favicon, propertiesBox.firstChild);
|
||||
--
|
||||
2.25.1
|
||||
+6
-7
@@ -9,7 +9,7 @@ Subject: Always open browser controls in new tab
|
||||
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
|
||||
@@ -20,6 +20,7 @@ import org.chromium.base.IntentUtils;
|
||||
@@ -21,6 +21,7 @@ import org.chromium.base.IntentUtils;
|
||||
import org.chromium.base.PackageManagerUtils;
|
||||
import org.chromium.base.metrics.RecordUserAction;
|
||||
import org.chromium.base.supplier.Supplier;
|
||||
@@ -17,7 +17,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
|
||||
import org.chromium.chrome.browser.DefaultBrowserInfo;
|
||||
import org.chromium.chrome.browser.IntentHandler;
|
||||
import org.chromium.chrome.browser.bookmarks.BookmarkModel;
|
||||
@@ -34,6 +35,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
||||
@@ -35,6 +36,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
|
||||
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
|
||||
import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge;
|
||||
import org.chromium.chrome.browser.profiles.Profile;
|
||||
@@ -25,15 +25,15 @@ 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;
|
||||
@@ -206,6 +208,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
@Override
|
||||
public void onOpenInNewTab(GURL url, Referrer referrer, boolean navigateToTab,
|
||||
@@ -219,6 +221,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
Referrer referrer,
|
||||
boolean navigateToTab,
|
||||
@Nullable AdditionalNavigationParams additionalNavigationParams) {
|
||||
+ TabBrowserControlsConstraintsHelper.get(mTab).update(BrowserControlsState.SHOWN, true);
|
||||
RecordUserAction.record("MobileNewTabOpened");
|
||||
RecordUserAction.record("LinkOpenedInNewTab");
|
||||
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
|
||||
@@ -219,6 +222,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
@@ -235,6 +238,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
|
||||
|
||||
@Override
|
||||
public void onOpenInNewTabInGroup(GURL url, Referrer referrer) {
|
||||
@@ -42,4 +42,3 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
|
||||
RecordUserAction.record("LinkOpenedInNewTab");
|
||||
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
|
||||
--
|
||||
2.25.1
|
||||
@@ -17,7 +17,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/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java
|
||||
@@ -169,10 +169,6 @@ public class HomepageManager implements HomepagePolicyManager.HomepagePolicyStat
|
||||
@@ -152,10 +152,6 @@ public class HomepageManager
|
||||
* tab page if the homepage button is force enabled via flag.
|
||||
*/
|
||||
public static GURL getDefaultHomepageGurl() {
|
||||
@@ -26,25 +26,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa
|
||||
- }
|
||||
-
|
||||
String homepagePartnerDefaultGurlSerialized =
|
||||
ChromeSharedPreferences.getInstance().readString(
|
||||
ChromePreferenceKeys.HOMEPAGE_PARTNER_CUSTOMIZED_DEFAULT_GURL, "");
|
||||
ChromeSharedPreferences.getInstance()
|
||||
.readString(
|
||||
diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
--- a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
+++ b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java
|
||||
@@ -215,7 +215,7 @@ public class PartnerBrowserCustomizations {
|
||||
boolean systemOrPreStable =
|
||||
(context.getApplicationInfo().flags & ApplicationInfo.FLAG_SYSTEM) == 1
|
||||
|| !VersionInfo.isStableBuild();
|
||||
- if (!systemOrPreStable) {
|
||||
+ if ((true)) {
|
||||
// Only allow partner customization if this browser is a system package, or
|
||||
// is in pre-stable channels.
|
||||
return null;
|
||||
@@ -212,7 +212,7 @@ public class PartnerBrowserCustomizations {
|
||||
& ApplicationInfo.FLAG_SYSTEM)
|
||||
== 1
|
||||
|| !VersionInfo.isStableBuild();
|
||||
- if (!systemOrPreStable) {
|
||||
+ if ((true)) {
|
||||
// Only allow partner customization if this browser is a system
|
||||
// package, or is in pre-stable channels.
|
||||
return null;
|
||||
diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
||||
--- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
||||
+++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java
|
||||
@@ -75,6 +75,7 @@ public class TemplateUrl {
|
||||
* prepopulated_engines.json.
|
||||
@@ -69,6 +69,7 @@ public class TemplateUrl {
|
||||
* prepopulated_engines.json.
|
||||
*/
|
||||
public String getNewTabURL() {
|
||||
+ if ((true)) return null;
|
||||
@@ -54,7 +54,7 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/
|
||||
diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc
|
||||
--- a/components/search_engines/android/template_url_service_android.cc
|
||||
+++ b/components/search_engines/android/template_url_service_android.cc
|
||||
@@ -324,6 +324,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
|
||||
@@ -330,6 +330,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine(
|
||||
const base::android::JavaParamRef<jstring>&
|
||||
jimage_translate_target_language_param_key,
|
||||
jboolean set_as_default) {
|
||||
@@ -70,4 +70,3 @@ new file mode 100755
|
||||
+SET_CROMITE_FEATURE_DISABLED(kNewTabSearchEngineUrlAndroid);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPartnerCustomizationsUma);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -161,15 +161,15 @@ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.c
|
||||
diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
||||
--- a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
||||
+++ b/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <algorithm>
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <bit>
|
||||
#include <complex>
|
||||
|
||||
+#include "third_party/blink/renderer/modules/webaudio/base_audio_context.h"
|
||||
#include "third_party/blink/renderer/platform/audio/audio_bus.h"
|
||||
#include "third_party/blink/renderer/platform/audio/audio_utilities.h"
|
||||
#include "third_party/blink/renderer/platform/audio/vector_math.h"
|
||||
@@ -154,6 +155,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
|
||||
@@ -155,6 +156,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData(
|
||||
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
|
||||
kInputBufferSize];
|
||||
|
||||
@@ -177,7 +177,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
|
||||
destination[i] = value;
|
||||
}
|
||||
}
|
||||
@@ -181,6 +183,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
|
||||
@@ -182,6 +184,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) {
|
||||
input_buffer[(i + write_index - fft_size + kInputBufferSize) %
|
||||
kInputBufferSize];
|
||||
|
||||
@@ -186,7 +186,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
|
||||
// Scale from nominal -1 -> +1 to unsigned byte.
|
||||
double scaled_value = 128 * (value + 1);
|
||||
|
||||
@@ -300,6 +304,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
|
||||
@@ -301,6 +305,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) {
|
||||
double scaled_value =
|
||||
UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor;
|
||||
|
||||
@@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
|
||||
// Clip to valid range.
|
||||
destination[i] =
|
||||
static_cast<unsigned char>(ClampTo(scaled_value, 0, UCHAR_MAX));
|
||||
@@ -319,6 +325,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
|
||||
@@ -320,6 +326,7 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) {
|
||||
float linear_value = source[i];
|
||||
double db_mag = audio_utilities::LinearToDecibels(linear_value);
|
||||
destination[i] = static_cast<float>(db_mag);
|
||||
@@ -204,4 +204,3 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/
|
||||
}
|
||||
}
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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() {
|
||||
@@ -64,4 +64,3 @@ diff --git a/third_party/blink/renderer/modules/battery/battery_manager.cc b/thi
|
||||
|
||||
void BatteryManager::RegisterWithDispatcher() {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
-1
@@ -15,4 +15,3 @@ new file mode 100644
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_ENABLED(kBlockIntentsWhileLocked);
|
||||
--
|
||||
2.25.1
|
||||
@@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||
--- a/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
|
||||
@@ -710,6 +710,22 @@ void ExecutionContext::WriteIntoTrace(
|
||||
@@ -701,6 +701,22 @@ void ExecutionContext::WriteIntoTrace(
|
||||
proto->set_world_type(GetWorldType(*this));
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
|
||||
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
|
||||
@@ -391,6 +391,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
|
||||
@@ -390,6 +390,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable<ExecutionContext>,
|
||||
void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
|
||||
|
||||
HeapObserverSet<ContextLifecycleObserver>& ContextLifecycleObserverSet();
|
||||
@@ -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;
|
||||
@@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third
|
||||
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
--- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
+++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
|
||||
@@ -592,6 +592,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
@@ -593,6 +593,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const {
|
||||
return should_block_request;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -225,7 +225,7 @@ diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetc
|
||||
diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
+++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
|
||||
@@ -276,6 +276,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
||||
@@ -277,6 +277,11 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -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_; }
|
||||
|
||||
@@ -302,4 +302,3 @@ diff --git a/third_party/blink/renderer/modules/websockets/websocket_common.h b/
|
||||
|
||||
// Returns true if |protocol| is a valid WebSocket subprotocol name.
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -94,7 +94,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
|
||||
diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc
|
||||
--- a/components/url_formatter/url_fixer.cc
|
||||
+++ b/components/url_formatter/url_fixer.cc
|
||||
@@ -563,6 +563,10 @@ GURL FixupURL(const std::string& text, const std::string& desired_tld) {
|
||||
@@ -576,6 +576,10 @@ GURL FixupURLInternal(const std::string& text,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -829,6 +829,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
|
||||
@@ -1058,6 +1058,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",
|
||||
@@ -212,7 +212,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc
|
||||
|
||||
namespace net {
|
||||
|
||||
@@ -597,6 +599,12 @@ URLRequest::URLRequest(base::PassKey<URLRequestContext> pass_key,
|
||||
@@ -591,6 +593,12 @@ URLRequest::URLRequest(base::PassKey<URLRequestContext> pass_key,
|
||||
// Sanity check out environment.
|
||||
DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault());
|
||||
|
||||
@@ -235,8 +235,8 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur
|
||||
+#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"
|
||||
@@ -574,6 +575,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));
|
||||
}
|
||||
@@ -270,7 +270,7 @@ diff --git a/url/url_constants.h b/url/url_constants.h
|
||||
diff --git a/url/url_util.cc b/url/url_util.cc
|
||||
--- a/url/url_util.cc
|
||||
+++ b/url/url_util.cc
|
||||
@@ -46,6 +46,7 @@ struct SchemeRegistry {
|
||||
@@ -47,6 +47,7 @@ struct SchemeRegistry {
|
||||
std::vector<SchemeWithType> standard_schemes = {
|
||||
{kHttpsScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
|
||||
{kHttpScheme, SCHEME_WITH_HOST_PORT_AND_USER_INFORMATION},
|
||||
@@ -278,7 +278,7 @@ diff --git a/url/url_util.cc b/url/url_util.cc
|
||||
// Yes, file URLs can have a hostname, so file URLs should be handled as
|
||||
// "standard". File URLs never have a port as specified by the SchemeType
|
||||
// field. Unlike other SCHEME_WITH_HOST schemes, the 'host' in a file
|
||||
@@ -91,6 +92,7 @@ struct SchemeRegistry {
|
||||
@@ -92,6 +93,7 @@ struct SchemeRegistry {
|
||||
kAboutScheme,
|
||||
kJavaScriptScheme,
|
||||
kDataScheme,
|
||||
@@ -287,4 +287,3 @@ diff --git a/url/url_util.cc b/url/url_util.cc
|
||||
|
||||
// Schemes that can be sent CORS requests.
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -104,4 +104,3 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
|
||||
Import
|
||||
</message>
|
||||
--
|
||||
2.25.1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -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.
|
||||
@@ -20,4 +20,3 @@ diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_p
|
||||
chrome_public_manifest_package += ".stable"
|
||||
} else if (android_channel != "default" && android_channel != "stable") {
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
chrome/browser/browser_process_impl.cc | 21 ++
|
||||
chrome/browser/browser_process_impl.h | 2 +
|
||||
chrome/browser/chrome_browser_main.cc | 3 +
|
||||
chrome/browser/flags/BUILD.gn | 3 +
|
||||
chrome/browser/flags/BUILD.gn | 4 +
|
||||
.../flags/android/adblock_native_gateway.cc | 31 ++
|
||||
.../browser/flags/AdBlockNativeGateway.java | 30 ++
|
||||
.../net/system_network_context_manager.cc | 8 +
|
||||
@@ -48,7 +48,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../content/browser/ruleset_service.h | 7 +-
|
||||
.../content/browser/ruleset_version.h | 4 +
|
||||
.../unindexed_ruleset_stream_generator.cc | 3 +
|
||||
.../browser/verified_ruleset_dealer.cc | 4 +
|
||||
.../browser/verified_ruleset_dealer.cc | 3 +
|
||||
.../browser/subresource_filter_features.cc | 116 +-------
|
||||
.../core/common/indexed_ruleset.cc | 5 +-
|
||||
.../Bromite-subresource-adblocker.inc | 3 +
|
||||
@@ -68,8 +68,8 @@ 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
|
||||
@@ -297,6 +297,7 @@ if (current_toolchain == default_toolchain) {
|
||||
"//chrome/android/modules/image_editor/provider:java",
|
||||
@@ -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",
|
||||
+ "//chrome/browser/endpoint_fetcher: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
|
||||
@@ -450,6 +450,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",
|
||||
@@ -655,6 +656,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
|
||||
@@ -967,6 +967,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",
|
||||
@@ -106,7 +106,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
|
||||
+ "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java",
|
||||
"java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java",
|
||||
"java/src/org/chromium/chrome/browser/policy/PolicyAuditorBridge.java",
|
||||
"java/src/org/chromium/chrome/browser/printing/TabPrinter.java",
|
||||
"java/src/org/chromium/chrome/browser/privacy/settings/DoNotTrackSettings.java",
|
||||
diff --git a/chrome/android/java/res/layout/adblock_editor.xml b/chrome/android/java/res/layout/adblock_editor.xml
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -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>
|
||||
|
||||
@@ -210,7 +210,7 @@ diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res
|
||||
diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml
|
||||
--- a/chrome/android/java/res/values/values.xml
|
||||
+++ b/chrome/android/java/res/values/values.xml
|
||||
@@ -27,6 +27,10 @@ found in the LICENSE file.
|
||||
@@ -25,6 +25,10 @@ found in the LICENSE file.
|
||||
<!-- Compositor Tab Title Text -->
|
||||
<bool name="compositor_tab_title_fake_bold_text">true</bool>
|
||||
|
||||
@@ -254,9 +254,9 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml
|
||||
--- a/chrome/android/java/res/xml/main_preferences.xml
|
||||
+++ b/chrome/android/java/res/xml/main_preferences.xml
|
||||
@@ -72,6 +72,11 @@ found in the LICENSE file.
|
||||
@@ -78,6 +78,11 @@ found in the LICENSE file.
|
||||
android:key="safety_check"
|
||||
android:order="12"
|
||||
android:order="13"
|
||||
android:title="@string/prefs_safety_check"/>
|
||||
+ <Preference
|
||||
+ android:fragment="org.chromium.chrome.browser.settings.AdBlockPreferences"
|
||||
@@ -265,7 +265,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
|
||||
+ android:title="@string/prefs_adblock"/>
|
||||
<Preference
|
||||
android:key="notifications"
|
||||
android:order="13"
|
||||
android:order="14"
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
@@ -428,7 +428,7 @@ new file mode 100644
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java
|
||||
@@ -781,7 +781,7 @@ public class TabModelImpl extends TabModelJniBridge {
|
||||
@@ -839,7 +839,7 @@ public class TabModelImpl extends TabModelJniBridge {
|
||||
protected boolean createTabWithWebContents(
|
||||
Tab parent, Profile profile, WebContents webContents) {
|
||||
return getTabCreator(profile.isOffTheRecord())
|
||||
@@ -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
|
||||
@@ -14539,6 +14539,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
|
||||
@@ -1134,6 +1134,27 @@ BrowserProcessImpl::component_updater() {
|
||||
@@ -1168,6 +1168,27 @@ BrowserProcessImpl::component_updater() {
|
||||
return component_updater_.get();
|
||||
}
|
||||
|
||||
@@ -542,7 +542,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
|
||||
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
|
||||
--- a/chrome/browser/browser_process_impl.h
|
||||
+++ b/chrome/browser/browser_process_impl.h
|
||||
@@ -208,6 +208,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
@@ -209,6 +209,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
#endif
|
||||
|
||||
component_updater::ComponentUpdateService* component_updater() override;
|
||||
@@ -550,7 +550,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
|
||||
MediaFileSystemRegistry* media_file_system_registry() override;
|
||||
WebRtcLogUploader* webrtc_log_uploader() override;
|
||||
network_time::NetworkTimeTracker* network_time_tracker() override;
|
||||
@@ -404,6 +405,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
@@ -405,6 +406,7 @@ class BrowserProcessImpl : public BrowserProcess,
|
||||
// to concerns over integrity of data shared between profiles,
|
||||
// but some users of component updater only install per-user.
|
||||
std::unique_ptr<component_updater::ComponentUpdateService> component_updater_;
|
||||
@@ -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
|
||||
@@ -428,6 +428,9 @@ StartupProfileInfo CreateInitialProfile(
|
||||
@@ -446,6 +446,9 @@ StartupProfileInfo CreateInitialProfile(
|
||||
// missing code in the above test.
|
||||
CHECK(profile_info.profile) << "Cannot get default profile.";
|
||||
|
||||
@@ -574,15 +574,15 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows
|
||||
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
|
||||
@@ -24,6 +24,7 @@ android_library("java") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/StringCachedFieldTrialParameter.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ValuesOverridden.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ValuesReturned.java",
|
||||
@@ -8,6 +8,7 @@ import("//third_party/jni_zero/jni_zero.gni")
|
||||
android_library("java") {
|
||||
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
||||
sources += [
|
||||
+ "android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
|
||||
]
|
||||
deps = [
|
||||
"//base:base_java",
|
||||
@@ -45,6 +46,7 @@ android_library("java") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
||||
@@ -33,6 +34,7 @@ android_library("java") {
|
||||
generate_jni("jni_headers") {
|
||||
sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ]
|
||||
sources += [
|
||||
@@ -590,7 +590,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java",
|
||||
]
|
||||
@@ -59,6 +61,7 @@ static_library("flags_android") {
|
||||
@@ -47,6 +49,7 @@ static_library("flags_android") {
|
||||
"android/chrome_session_state.cc",
|
||||
"android/chrome_session_state.h",
|
||||
]
|
||||
@@ -598,6 +598,14 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
|
||||
deps = [
|
||||
":jni_headers",
|
||||
"//base",
|
||||
@@ -71,6 +74,7 @@ robolectric_library("flags_junit_tests") {
|
||||
"android/java/src/org/chromium/chrome/browser/flags/CachedFeatureFlagsAnnotationUnitTest.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureListWithProcessorUnitTest.java",
|
||||
"android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureListWithoutProcessorUnitTest.java",
|
||||
+ "android/java/src/org/chromium/chrome/browser/flags/AdBlockNativeGateway.java",
|
||||
]
|
||||
deps = [
|
||||
":java",
|
||||
diff --git a/chrome/browser/flags/android/adblock_native_gateway.cc b/chrome/browser/flags/android/adblock_native_gateway.cc
|
||||
new file mode 100755
|
||||
--- /dev/null
|
||||
@@ -672,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
|
||||
@@ -609,6 +609,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
|
||||
@@ -640,6 +640,14 @@ SystemNetworkContextManager::~SystemNetworkContextManager() {
|
||||
void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) {
|
||||
StubResolverConfigReader::RegisterPrefs(registry);
|
||||
|
||||
@@ -730,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
|
||||
@@ -2625,6 +2625,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";
|
||||
|
||||
@@ -745,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
|
||||
@@ -371,6 +371,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>
|
||||
@@ -771,12 +779,12 @@ diff --git a/components/component_updater/BUILD.gn b/components/component_update
|
||||
"component_updater_service.cc",
|
||||
"component_updater_service.h",
|
||||
"component_updater_service_internal.h",
|
||||
@@ -47,6 +53,7 @@ static_library("component_updater") {
|
||||
"//components/prefs",
|
||||
@@ -48,6 +54,7 @@ static_library("component_updater") {
|
||||
"//components/update_client",
|
||||
"//components/version_info",
|
||||
"//net",
|
||||
+ "//services/network/public/mojom",
|
||||
"//third_party/boringssl:boringssl",
|
||||
"//third_party/boringssl",
|
||||
"//ui/base",
|
||||
"//url",
|
||||
diff --git a/components/component_updater/adblock_updater_service.cc b/components/component_updater/adblock_updater_service.cc
|
||||
@@ -1554,8 +1562,8 @@ new file mode 100644
|
||||
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
|
||||
@@ -15,6 +15,9 @@
|
||||
#include "base/trace_event/trace_conversion_helper.h"
|
||||
@@ -14,6 +14,9 @@
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/trace_event/trace_event.h"
|
||||
#include "base/trace_event/traced_value.h"
|
||||
+#include "components/content_settings/core/common/content_settings_types.h"
|
||||
@@ -1564,7 +1572,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
||||
#include "components/subresource_filter/content/browser/activation_state_computing_navigation_throttle.h"
|
||||
#include "components/subresource_filter/content/browser/async_document_subresource_filter.h"
|
||||
#include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h"
|
||||
@@ -149,6 +152,7 @@ ContentSubresourceFilterThrottleManager::
|
||||
@@ -148,6 +151,7 @@ ContentSubresourceFilterThrottleManager::
|
||||
profile_interaction_manager_(
|
||||
std::make_unique<subresource_filter::ProfileInteractionManager>(
|
||||
profile_context)),
|
||||
@@ -1572,7 +1580,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
||||
web_contents_helper_(web_contents_helper) {}
|
||||
|
||||
ContentSubresourceFilterThrottleManager::
|
||||
@@ -668,6 +672,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
@@ -667,6 +671,17 @@ ContentSubresourceFilterThrottleManager::
|
||||
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
|
||||
ad_tagging_state);
|
||||
}
|
||||
@@ -1593,7 +1601,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
|
||||
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
||||
--- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
||||
+++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
|
||||
@@ -412,6 +412,8 @@ class ContentSubresourceFilterThrottleManager
|
||||
@@ -413,6 +413,8 @@ class ContentSubresourceFilterThrottleManager
|
||||
|
||||
std::unique_ptr<ProfileInteractionManager> profile_interaction_manager_;
|
||||
|
||||
@@ -1708,8 +1716,8 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
||||
IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET);
|
||||
return IndexedRulesetVersion();
|
||||
@@ -328,8 +346,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset(
|
||||
indexed_ruleset_version_dir, unindexed_ruleset_info.license_path,
|
||||
indexer.data(), indexer.size());
|
||||
WriteRuleset(indexed_ruleset_version_dir,
|
||||
unindexed_ruleset_info.license_path, indexer.data());
|
||||
RecordIndexAndWriteRulesetResult(result);
|
||||
- if (result != IndexAndWriteRulesetResult::SUCCESS)
|
||||
+ if (result != IndexAndWriteRulesetResult::SUCCESS) {
|
||||
@@ -1736,11 +1744,11 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.cc b/
|
||||
-
|
||||
publisher_->TryOpenAndSetRulesetFile(
|
||||
file_path, version.checksum,
|
||||
base::BindOnce(&RulesetService::OnRulesetSet, AsWeakPtr()));
|
||||
base::BindOnce(&RulesetService::OnRulesetSet,
|
||||
diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/components/subresource_filter/content/browser/ruleset_service.h
|
||||
--- a/components/subresource_filter/content/browser/ruleset_service.h
|
||||
+++ b/components/subresource_filter/content/browser/ruleset_service.h
|
||||
@@ -182,7 +182,7 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
@@ -182,7 +182,7 @@ class RulesetService {
|
||||
//
|
||||
// Virtual so that it can be mocked out in tests.
|
||||
virtual void IndexAndStoreAndPublishRulesetIfNeeded(
|
||||
@@ -1749,7 +1757,7 @@ diff --git a/components/subresource_filter/content/browser/ruleset_service.h b/c
|
||||
|
||||
// Get the ruleset version associated with the current local_state_.
|
||||
IndexedRulesetVersion GetMostRecentlyIndexedVersion() const;
|
||||
@@ -215,6 +215,11 @@ class RulesetService : public base::SupportsWeakPtr<RulesetService> {
|
||||
@@ -215,6 +215,11 @@ class RulesetService {
|
||||
const base::FilePath& indexed_ruleset_base_dir,
|
||||
const UnindexedRulesetInfo& unindexed_ruleset_info);
|
||||
|
||||
@@ -1798,15 +1806,7 @@ diff --git a/components/subresource_filter/content/browser/unindexed_ruleset_str
|
||||
diff --git a/components/subresource_filter/content/browser/verified_ruleset_dealer.cc b/components/subresource_filter/content/browser/verified_ruleset_dealer.cc
|
||||
--- a/components/subresource_filter/content/browser/verified_ruleset_dealer.cc
|
||||
+++ b/components/subresource_filter/content/browser/verified_ruleset_dealer.cc
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "base/functional/bind.h"
|
||||
#include "base/functional/callback_helpers.h"
|
||||
#include "base/location.h"
|
||||
+#include "base/logging.h"
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/notreached.h"
|
||||
#include "base/task/sequenced_task_runner.h"
|
||||
@@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
|
||||
@@ -38,6 +38,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile(
|
||||
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"),
|
||||
"VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid",
|
||||
file->IsValid());
|
||||
@@ -1819,8 +1819,8 @@ diff --git a/components/subresource_filter/content/browser/verified_ruleset_deal
|
||||
diff --git a/components/subresource_filter/core/browser/subresource_filter_features.cc b/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||
--- a/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||
+++ b/components/subresource_filter/core/browser/subresource_filter_features.cc
|
||||
@@ -54,72 +54,7 @@ class CommaSeparatedStrings {
|
||||
const std::vector<base::StringPiece> pieces_;
|
||||
@@ -55,72 +55,7 @@ class CommaSeparatedStrings {
|
||||
const std::vector<std::string_view> pieces_;
|
||||
};
|
||||
|
||||
-std::string TakeVariationParamOrReturnEmpty(
|
||||
@@ -1835,7 +1835,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
||||
-}
|
||||
-
|
||||
-mojom::ActivationLevel ParseActivationLevel(
|
||||
- const base::StringPiece activation_level) {
|
||||
- const std::string_view activation_level) {
|
||||
- if (base::EqualsCaseInsensitiveASCII(activation_level,
|
||||
- kActivationLevelEnabled))
|
||||
- return mojom::ActivationLevel::kEnabled;
|
||||
@@ -1845,7 +1845,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
||||
- return mojom::ActivationLevel::kDisabled;
|
||||
-}
|
||||
-
|
||||
-ActivationScope ParseActivationScope(const base::StringPiece activation_scope) {
|
||||
-ActivationScope ParseActivationScope(const std::string_view activation_scope) {
|
||||
- if (base::EqualsCaseInsensitiveASCII(activation_scope,
|
||||
- kActivationScopeAllSites))
|
||||
- return ActivationScope::ALL_SITES;
|
||||
@@ -1881,7 +1881,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
||||
- return value < 1 ? value : 1;
|
||||
-}
|
||||
-
|
||||
-int ParseInt(const base::StringPiece value) {
|
||||
-int ParseInt(const std::string_view value) {
|
||||
- int result = 0;
|
||||
- base::StringToInt(value, &result);
|
||||
- return result;
|
||||
@@ -1893,7 +1893,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
||||
// If ad tagging is enabled, turn on the dryrun automatically.
|
||||
bool ad_tagging_enabled = base::FeatureList::IsEnabled(kAdTagging);
|
||||
const struct {
|
||||
@@ -127,23 +62,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||
@@ -128,23 +63,16 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||
bool enabled_by_default;
|
||||
Configuration (*factory_method)();
|
||||
} kAvailablePresetConfigurations[] = {
|
||||
@@ -1919,7 +1919,7 @@ diff --git a/components/subresource_filter/core/browser/subresource_filter_featu
|
||||
enabled_configurations.push_back(available_preset.factory_method());
|
||||
}
|
||||
}
|
||||
@@ -151,46 +79,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||
@@ -152,46 +80,10 @@ std::vector<Configuration> FillEnabledPresetConfigurations(
|
||||
return enabled_configurations;
|
||||
}
|
||||
|
||||
@@ -1978,15 +1978,14 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp
|
||||
#include "base/metrics/histogram_macros.h"
|
||||
#include "base/trace_event/trace_event.h"
|
||||
#include "components/subresource_filter/core/common/first_party_origin.h"
|
||||
@@ -37,8 +38,10 @@ VerifyStatus GetVerifyStatus(const uint8_t* buffer,
|
||||
@@ -36,7 +37,9 @@ VerifyStatus GetVerifyStatus(base::span<const uint8_t> buffer,
|
||||
// least once. The verifier detects a subset of the errors detected by the
|
||||
// checksum, and is unneeded once expected_checksum is consistently nonzero.
|
||||
flatbuffers::Verifier verifier(buffer, size);
|
||||
+ int local_checksum = LocalGetChecksum(buffer, size);
|
||||
flatbuffers::Verifier verifier(buffer.data(), buffer.size());
|
||||
- if (expected_checksum != 0 && expected_checksum != LocalGetChecksum(buffer)) {
|
||||
+ int local_checksum = LocalGetChecksum(buffer);
|
||||
+ LOG(INFO) << "GetVerifyStatus: expected checksum = 0x" << std::hex << expected_checksum << ", local checksum = 0x" << std::hex << local_checksum;
|
||||
if (expected_checksum != 0 &&
|
||||
- expected_checksum != LocalGetChecksum(buffer, size)) {
|
||||
+ expected_checksum != local_checksum) {
|
||||
+ if (expected_checksum != 0 && expected_checksum != local_checksum) {
|
||||
return flat::VerifyIndexedRulesetBuffer(verifier)
|
||||
? VerifyStatus::kChecksumFailVerifierPass
|
||||
: VerifyStatus::kChecksumFailVerifierFail;
|
||||
@@ -1999,4 +1998,3 @@ new file mode 100644
|
||||
+SET_CROMITE_FEATURE_DISABLED(kAutomaticLazyFrameLoadingToEmbeds);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kAutomaticLazyFrameLoadingToEmbedUrls);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Sun, 4 Feb 2024 16:02:48 +0000
|
||||
Subject: Change popup site setting
|
||||
|
||||
In site settings added ability to block all popups per site
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../android/popup_blocked_message_delegate.cc | 20 +++-
|
||||
.../android/popup_blocked_message_delegate.h | 1 +
|
||||
components/blocked_content/popup_blocker.cc | 3 +
|
||||
components/blocked_content_strings.grdp | 3 +
|
||||
.../impl/BromitePopupContentSetting.java | 106 ++++++++++++++++++
|
||||
.../bromite_content_settings/popups.grdp | 12 ++
|
||||
.../bromite_content_settings/popups.inc | 7 ++
|
||||
.../core/browser/content_settings_registry.cc | 2 +-
|
||||
8 files changed, 151 insertions(+), 3 deletions(-)
|
||||
create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
|
||||
create mode 100644 components/browser_ui/strings/bromite_content_settings/popups.grdp
|
||||
create mode 100644 components/content_settings/core/browser/bromite_content_settings/popups.inc
|
||||
|
||||
diff --git a/components/blocked_content/android/popup_blocked_message_delegate.cc b/components/blocked_content/android/popup_blocked_message_delegate.cc
|
||||
--- a/components/blocked_content/android/popup_blocked_message_delegate.cc
|
||||
+++ b/components/blocked_content/android/popup_blocked_message_delegate.cc
|
||||
@@ -32,7 +32,7 @@ bool PopupBlockedMessageDelegate::ShowMessage(
|
||||
// the callback.
|
||||
auto message = std::make_unique<messages::MessageWrapper>(
|
||||
messages::MessageIdentifier::POPUP_BLOCKED,
|
||||
- base::BindOnce(&PopupBlockedMessageDelegate::HandleClick,
|
||||
+ base::BindOnce(&PopupBlockedMessageDelegate::HandleOpenLink,
|
||||
base::Unretained(this)),
|
||||
base::BindOnce(&PopupBlockedMessageDelegate::HandleDismissCallback,
|
||||
base::Unretained(this)));
|
||||
@@ -46,7 +46,7 @@ bool PopupBlockedMessageDelegate::ShowMessage(
|
||||
// Don't allow the user to configure the setting in the UI if the setting
|
||||
// is managed by policy.
|
||||
int button_text_id =
|
||||
- allow_settings_changes_ ? IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW : IDS_OK;
|
||||
+ allow_settings_changes_ ? IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW_THIS_TIME : IDS_OK;
|
||||
message->SetPrimaryButtonText(l10n_util::GetStringUTF16(button_text_id));
|
||||
messages::MessageDispatcherBridge* message_dispatcher_bridge =
|
||||
messages::MessageDispatcherBridge::Get();
|
||||
@@ -54,6 +54,14 @@ bool PopupBlockedMessageDelegate::ShowMessage(
|
||||
message->SetIconResourceId(message_dispatcher_bridge->MapToJavaDrawableId(
|
||||
IDR_ANDROID_INFOBAR_BLOCKED_POPUPS));
|
||||
|
||||
+ message->SetSecondaryIconResourceId(
|
||||
+ message_dispatcher_bridge->MapToJavaDrawableId(
|
||||
+ IDR_ANDROID_SETTINGS));
|
||||
+ message->SetSecondaryButtonMenuText(
|
||||
+ l10n_util::GetStringUTF16(IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW));
|
||||
+ message->SetSecondaryActionCallback(
|
||||
+ base::BindRepeating(&PopupBlockedMessageDelegate::HandleClick,
|
||||
+ base::Unretained(this)));
|
||||
// On rare occasions, such as the moment when activity is being recreated
|
||||
// or destroyed, popup blocked message will not be displayed and the
|
||||
// method will return false.
|
||||
@@ -102,6 +110,14 @@ void PopupBlockedMessageDelegate::HandleClick() {
|
||||
std::move(on_show_popups_callback_).Run();
|
||||
}
|
||||
|
||||
+void PopupBlockedMessageDelegate::HandleOpenLink() {
|
||||
+ // Launch popups.
|
||||
+ ShowBlockedPopups(&GetWebContents());
|
||||
+
|
||||
+ if (on_show_popups_callback_)
|
||||
+ std::move(on_show_popups_callback_).Run();
|
||||
+}
|
||||
+
|
||||
WEB_CONTENTS_USER_DATA_KEY_IMPL(PopupBlockedMessageDelegate);
|
||||
|
||||
} // namespace blocked_content
|
||||
diff --git a/components/blocked_content/android/popup_blocked_message_delegate.h b/components/blocked_content/android/popup_blocked_message_delegate.h
|
||||
--- a/components/blocked_content/android/popup_blocked_message_delegate.h
|
||||
+++ b/components/blocked_content/android/popup_blocked_message_delegate.h
|
||||
@@ -41,6 +41,7 @@ class PopupBlockedMessageDelegate
|
||||
|
||||
explicit PopupBlockedMessageDelegate(content::WebContents* web_contents);
|
||||
void HandleClick();
|
||||
+ void HandleOpenLink();
|
||||
void HandleDismissCallback(messages::DismissReason dismiss_reason);
|
||||
|
||||
raw_ptr<HostContentSettingsMap> map_ = nullptr;
|
||||
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
|
||||
@@ -70,6 +70,9 @@ PopupBlockType ShouldBlockPopup(content::WebContents* web_contents,
|
||||
if (cs == CONTENT_SETTING_ALLOW)
|
||||
return PopupBlockType::kNotBlocked;
|
||||
|
||||
+ if (cs == CONTENT_SETTING_ASK)
|
||||
+ return PopupBlockType::kAbusive;
|
||||
+
|
||||
if (!user_gesture)
|
||||
return PopupBlockType::kNoGesture;
|
||||
|
||||
diff --git a/components/blocked_content_strings.grdp b/components/blocked_content_strings.grdp
|
||||
--- a/components/blocked_content_strings.grdp
|
||||
+++ b/components/blocked_content_strings.grdp
|
||||
@@ -4,6 +4,9 @@
|
||||
<message name="IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW" desc="Pop-up Blocking Show Button [CHAR_LIMIT=32]">
|
||||
Always show
|
||||
</message>
|
||||
+ <message name="IDS_POPUPS_BLOCKED_INFOBAR_BUTTON_SHOW_THIS_TIME" desc="Pop-up Blocking Show Button [CHAR_LIMIT=32]">
|
||||
+ Open this time
|
||||
+ </message>
|
||||
<message name="IDS_POPUPS_BLOCKED_INFOBAR_TEXT" desc="Pop-up Blocking Title [CHAR_LIMIT=32] [ICU Syntax]">
|
||||
{NUM_POPUPS,plural,=1{Pop-up blocked} other{# pop-ups blocked}}
|
||||
</message>
|
||||
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/impl/BromitePopupContentSetting.java
|
||||
@@ -0,0 +1,106 @@
|
||||
+/*
|
||||
+ This file is part of Bromite.
|
||||
+
|
||||
+ Bromite is free software: you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation, either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ Bromite is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with Bromite. If not, see <https://www.gnu.org/licenses/>.
|
||||
+*/
|
||||
+
|
||||
+package org.chromium.components.browser_ui.site_settings.impl;
|
||||
+
|
||||
+import android.content.Context;
|
||||
+
|
||||
+import org.chromium.components.browser_ui.site_settings.R;
|
||||
+
|
||||
+import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting;
|
||||
+import org.chromium.components.browser_ui.site_settings.ContentSettingsResources;
|
||||
+import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory;
|
||||
+import org.chromium.components.content_settings.ContentSettingValues;
|
||||
+import org.chromium.components.content_settings.ContentSettingsType;
|
||||
+import org.chromium.content_public.browser.BrowserContextHandle;
|
||||
+
|
||||
+import androidx.annotation.Nullable;
|
||||
+import androidx.preference.Preference;
|
||||
+import androidx.preference.PreferenceScreen;
|
||||
+
|
||||
+import java.util.ArrayList;
|
||||
+
|
||||
+public class BromitePopupContentSetting extends BromiteCustomContentSetting {
|
||||
+ public BromitePopupContentSetting() {
|
||||
+ super(/*contentSettingsType*/ ContentSettingsType.POPUPS,
|
||||
+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW,
|
||||
+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK,
|
||||
+ /*allowException*/ true,
|
||||
+ /*preferenceKey*/ "popups",
|
||||
+ /*profilePrefKey*/ "popups");
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public ContentSettingsResources.ResourceItem getResourceItem() {
|
||||
+ return new ContentSettingsResources.ResourceItem(
|
||||
+ /*icon*/ R.drawable.permission_popups,
|
||||
+ /*title*/ R.string.popup_permission_title,
|
||||
+ /*defaultEnabledValue*/ getDefaultEnabledValue(),
|
||||
+ /*defaultDisabledValue*/ getDefaultDisabledValue(),
|
||||
+ /*enabledSummary*/ R.string.website_settings_category_popup_allowed,
|
||||
+ /*disabledSummary*/ R.string.website_settings_category_popup_blocked,
|
||||
+ /*summaryOverrideForScreenReader*/ 0);
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getCategorySummary(@Nullable @ContentSettingValues int value) {
|
||||
+ switch (value) {
|
||||
+ case ContentSettingValues.ALLOW:
|
||||
+ return R.string.website_settings_category_popup_allowed;
|
||||
+ case ContentSettingValues.BLOCK:
|
||||
+ return R.string.website_settings_category_popup_blocked;
|
||||
+ case ContentSettingValues.ASK:
|
||||
+ return R.string.website_settings_category_popup_block_all;
|
||||
+ default:
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getCategoryDescription() {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean requiresTriStateContentSetting() {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int[] getTriStateSettingDescriptionIDs() {
|
||||
+ int[] descriptionIDs = {
|
||||
+ R.string.website_settings_category_popup_allowed, // ALLOWED
|
||||
+ R.string.website_settings_category_popup_block_all, // ASK
|
||||
+ R.string.website_settings_category_popup_blocked}; // BLOCKED
|
||||
+ return descriptionIDs;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public boolean showOnlyDescriptions() {
|
||||
+ return true;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public int getAddExceptionDialogMessage() {
|
||||
+ return R.string.website_settings_category_popup_allowed;
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) {
|
||||
+ return ContentSettingValues.ALLOW != value;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/components/browser_ui/strings/bromite_content_settings/popups.grdp b/components/browser_ui/strings/bromite_content_settings/popups.grdp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/browser_ui/strings/bromite_content_settings/popups.grdp
|
||||
@@ -0,0 +1,12 @@
|
||||
+<?xml version="1.0" encoding="utf-8"?>
|
||||
+<grit-part>
|
||||
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL" desc="" formatter_data="android_java">
|
||||
+ Block all popups
|
||||
+ </message>
|
||||
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED" desc="" formatter_data="android_java">
|
||||
+ Allows popups
|
||||
+ </message>
|
||||
+ <message name="IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED" desc="" formatter_data="android_java">
|
||||
+ Block some popups
|
||||
+ </message>
|
||||
+</grit-part>
|
||||
diff --git a/components/content_settings/core/browser/bromite_content_settings/popups.inc b/components/content_settings/core/browser/bromite_content_settings/popups.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/components/content_settings/core/browser/bromite_content_settings/popups.inc
|
||||
@@ -0,0 +1,7 @@
|
||||
+ content_settings::WebsiteSettingsRegistry::GetInstance()
|
||||
+ ->GetMutable(ContentSettingsType::POPUPS)
|
||||
+ ->set_show_into_info_page()
|
||||
+ .set_desktop_ui()
|
||||
+ .set_allowed_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_ALLOWED)
|
||||
+ .set_ask_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCK_ALL)
|
||||
+ .set_blocked_ui(IDS_WEBSITE_SETTINGS_CATEGORY_POPUP_BLOCKED);
|
||||
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
--- a/components/content_settings/core/browser/content_settings_registry.cc
|
||||
+++ b/components/content_settings/core/browser/content_settings_registry.cc
|
||||
@@ -131,7 +131,7 @@ void ContentSettingsRegistry::Init() {
|
||||
WebsiteSettingsInfo::SYNCABLE,
|
||||
/*allowlisted_primary_schemes=*/
|
||||
{kChromeUIScheme, kChromeDevToolsScheme, kExtensionScheme},
|
||||
- /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
|
||||
+ /*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK, CONTENT_SETTING_ASK},
|
||||
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
|
||||
WebsiteSettingsRegistry::ALL_PLATFORMS,
|
||||
ContentSettingsInfo::INHERIT_IN_INCOGNITO,
|
||||
--
|
||||
+105
-82
@@ -16,7 +16,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
chrome/app/extensions_strings.grdp | 6 +++
|
||||
.../developer_private_api.cc | 37 ++++++++++++-
|
||||
.../developer_private/developer_private_api.h | 3 ++
|
||||
.../webstore_private/webstore_private_api.cc | 12 ++++-
|
||||
.../webstore_private/webstore_private_api.cc | 15 +++++-
|
||||
chrome/browser/extensions/cws_info_service.cc | 1 +
|
||||
.../extensions/extension_system_impl.cc | 2 +
|
||||
.../chrome_extension_downloader_factory.cc | 1 -
|
||||
.../extensions/updater/extension_updater.cc | 40 ++++++++------
|
||||
@@ -30,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 +++++++
|
||||
@@ -42,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 +-
|
||||
29 files changed, 249 insertions(+), 92 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
|
||||
@@ -64,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
|
||||
@@ -123,6 +123,12 @@
|
||||
@@ -127,6 +127,12 @@
|
||||
#include "url/gurl.h"
|
||||
#include "url/origin.h"
|
||||
|
||||
@@ -75,9 +76,9 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
|
||||
+#include "components/flags_ui/flags_storage.h"
|
||||
+
|
||||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
#include "chrome/browser/supervised_user/supervised_user_service_factory.h"
|
||||
#include "components/supervised_user/core/browser/supervised_user_service.h"
|
||||
@@ -520,9 +526,32 @@ std::unique_ptr<developer::ProfileInfo> DeveloperPrivateAPI::CreateProfileInfo(
|
||||
#include "components/supervised_user/core/browser/supervised_user_preferences.h"
|
||||
#endif // BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
@@ -476,9 +482,32 @@ std::unique_ptr<developer::ProfileInfo> DeveloperPrivateAPI::CreateProfileInfo(
|
||||
info->can_load_unpacked =
|
||||
ExtensionManagementFactory::GetForBrowserContext(profile)
|
||||
->HasAllowlistedExtension();
|
||||
@@ -110,7 +111,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
|
||||
template <>
|
||||
void BrowserContextKeyedAPIFactory<
|
||||
DeveloperPrivateAPI>::DeclareFactoryDependencies() {
|
||||
@@ -950,6 +979,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;
|
||||
@@ -118,16 +119,16 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
|
||||
params.callback =
|
||||
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
|
||||
updater->CheckNow(std::move(params));
|
||||
@@ -1089,7 +1119,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
||||
@@ -1048,7 +1078,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
||||
|
||||
const developer::ProfileConfigurationUpdate& update = params->update;
|
||||
|
||||
- if (update.in_developer_mode) {
|
||||
+ if (update.in_developer_mode.has_value() && update.in_developer_mode) {
|
||||
Profile* profile = Profile::FromBrowserContext(browser_context());
|
||||
|
||||
CHECK(profile);
|
||||
#if BUILDFLAG(ENABLE_SUPERVISED_USERS)
|
||||
@@ -1103,6 +1133,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
||||
@@ -1060,6 +1090,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
|
||||
util::SetDeveloperModeForProfile(profile, *update.in_developer_mode);
|
||||
}
|
||||
|
||||
@@ -163,7 +164,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
|
||||
#include "extensions/common/manifest.h"
|
||||
#include "extensions/common/manifest_constants.h"
|
||||
#include "extensions/common/manifest_handlers/permissions_parser.h"
|
||||
@@ -231,12 +232,16 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
|
||||
@@ -230,12 +231,16 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr;
|
||||
// there was previously stored data, or an empty string otherwise. The Set will
|
||||
// overwrite any previous login.
|
||||
std::string GetWebstoreLogin(Profile* profile) {
|
||||
@@ -180,16 +181,16 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
|
||||
profile->GetPrefs()->SetString(kWebstoreLogin, login);
|
||||
}
|
||||
|
||||
@@ -246,6 +251,8 @@ void RecordWebstoreExtensionInstallResult(bool success) {
|
||||
@@ -245,6 +250,8 @@ void RecordWebstoreExtensionInstallResult(bool success) {
|
||||
|
||||
api::webstore_private::ExtensionInstallStatus
|
||||
ConvertExtensionInstallStatusForAPI(ExtensionInstallStatus status) {
|
||||
+ if (!base::FeatureList::IsEnabled(extensions_features::kEnableExtensionManagementToChromeStore))
|
||||
+ return api::webstore_private::EXTENSION_INSTALL_STATUS_INSTALLABLE;
|
||||
+ return api::webstore_private::ExtensionInstallStatus::kInstallable;
|
||||
switch (status) {
|
||||
case kCanRequest:
|
||||
return api::webstore_private::ExtensionInstallStatus::
|
||||
@@ -1178,7 +1185,8 @@ ExtensionFunction::ResponseAction
|
||||
return api::webstore_private::ExtensionInstallStatus::kCanRequest;
|
||||
@@ -1163,7 +1170,8 @@ ExtensionFunction::ResponseAction
|
||||
WebstorePrivateIsInIncognitoModeFunction::Run() {
|
||||
Profile* profile = Profile::FromBrowserContext(browser_context());
|
||||
return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create(
|
||||
@@ -199,19 +200,37 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
|
||||
}
|
||||
|
||||
WebstorePrivateIsPendingCustodianApprovalFunction::
|
||||
@@ -1280,6 +1288,8 @@ WebstorePrivateGetReferrerChainFunction::Run() {
|
||||
@@ -1262,11 +1270,14 @@ WebstorePrivateGetReferrerChainFunction::Run() {
|
||||
request.mutable_referrer_chain_options()->set_recent_navigations_to_collect(
|
||||
recent_navigations_to_collect);
|
||||
|
||||
std::string serialized_referrer_proto = request.SerializeAsString();
|
||||
+ std::string serialized_referrer_proto = request.SerializeAsString();
|
||||
+ if (!base::FeatureList::IsEnabled(extensions_features::kEnableExtensionManagementToChromeStore))
|
||||
+ serialized_referrer_proto = "";
|
||||
// Base64 encode the proto to avoid issues with base::Value rejecting strings
|
||||
// which are not valid UTF8.
|
||||
base::Base64Encode(serialized_referrer_proto, &serialized_referrer_proto);
|
||||
// Base64 encode the request to avoid issues with base::Value rejecting
|
||||
// strings which are not valid UTF8.
|
||||
return RespondNow(
|
||||
ArgumentList(api::webstore_private::GetReferrerChain::Results::Create(
|
||||
- base::Base64Encode(request.SerializeAsString()))));
|
||||
+ base::Base64Encode(serialized_referrer_proto))));
|
||||
}
|
||||
|
||||
WebstorePrivateGetExtensionStatusFunction::
|
||||
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
|
||||
@@ -160,6 +160,7 @@ namespace extensions {
|
||||
BASE_FEATURE(kCWSInfoService,
|
||||
"CWSInfoService",
|
||||
base::FEATURE_ENABLED_BY_DEFAULT);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kCWSInfoService);
|
||||
|
||||
// Increase the frequency of periodic retrieval of extensions metadata from
|
||||
// CWS. This feature is used only for testing purposes.
|
||||
diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser/extensions/extension_system_impl.cc
|
||||
--- a/chrome/browser/extensions/extension_system_impl.cc
|
||||
+++ b/chrome/browser/extensions/extension_system_impl.cc
|
||||
@@ -57,6 +57,7 @@
|
||||
@@ -56,6 +56,7 @@
|
||||
#include "extensions/browser/updater/uninstall_ping_sender.h"
|
||||
#include "extensions/browser/user_script_manager.h"
|
||||
#include "extensions/common/constants.h"
|
||||
@@ -219,7 +238,7 @@ diff --git a/chrome/browser/extensions/extension_system_impl.cc b/chrome/browser
|
||||
#include "extensions/common/features/feature_channel.h"
|
||||
#include "extensions/common/manifest_url_handlers.h"
|
||||
#include "ui/message_center/public/cpp/notifier_id.h"
|
||||
@@ -84,6 +85,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
|
||||
@@ -83,6 +84,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
|
||||
Profile* profile,
|
||||
const Extension* extension,
|
||||
UninstallReason reason) {
|
||||
@@ -343,8 +362,8 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
|
||||
params.fetch_priority, &update_check_params);
|
||||
} else {
|
||||
@@ -518,7 +525,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
|
||||
const Extension* extension = registry_->GetExtensionById(
|
||||
id, extensions::ExtensionRegistry::EVERYTHING);
|
||||
const Extension* extension =
|
||||
registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING);
|
||||
if (extension) {
|
||||
- if (CanUseUpdateService(id)) {
|
||||
+ if ((false) && CanUseUpdateService(id)) {
|
||||
@@ -422,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);
|
||||
@@ -445,7 +464,7 @@ diff --git a/chrome/browser/resources/extensions/manager.html b/chrome/browser/r
|
||||
diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/resources/extensions/manager.ts
|
||||
--- a/chrome/browser/resources/extensions/manager.ts
|
||||
+++ b/chrome/browser/resources/extensions/manager.ts
|
||||
@@ -121,6 +121,11 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||
@@ -122,6 +122,11 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||
value: () => loadTimeData.getBoolean('inDevMode'),
|
||||
},
|
||||
|
||||
@@ -457,7 +476,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
|
||||
showActivityLog: {
|
||||
type: Boolean,
|
||||
value: () => loadTimeData.getBoolean('showActivityLog'),
|
||||
@@ -222,6 +227,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||
@@ -223,6 +228,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||
canLoadUnpacked: boolean;
|
||||
delegate: Service;
|
||||
inDevMode: boolean;
|
||||
@@ -465,7 +484,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
|
||||
showActivityLog: boolean;
|
||||
enableEnhancedSiteControls: boolean;
|
||||
devModeControlledByPolicy: boolean;
|
||||
@@ -292,6 +298,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||
@@ -293,6 +299,7 @@ export class ExtensionsManagerElement extends ExtensionsManagerElementBase {
|
||||
profileInfo.isDeveloperModeControlledByPolicy;
|
||||
this.inDevMode = profileInfo.inDeveloperMode;
|
||||
this.canLoadUnpacked = profileInfo.canLoadUnpacked;
|
||||
@@ -476,7 +495,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
|
||||
diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts
|
||||
--- a/chrome/browser/resources/extensions/service.ts
|
||||
+++ b/chrome/browser/resources/extensions/service.ts
|
||||
@@ -283,6 +283,11 @@ export class Service implements ServiceInterface {
|
||||
@@ -284,6 +284,11 @@ export class Service implements ServiceInterface {
|
||||
{inDeveloperMode: inDevMode});
|
||||
}
|
||||
|
||||
@@ -503,7 +522,7 @@ diff --git a/chrome/browser/resources/extensions/toolbar.html b/chrome/browser/r
|
||||
cr-toolbar {
|
||||
--cr-toolbar-center-basis: 680px;
|
||||
--cr-toolbar-field-max-width: var(--cr-toolbar-center-basis);
|
||||
@@ -87,6 +92,13 @@
|
||||
@@ -88,6 +93,13 @@
|
||||
checked="[[inDevMode]]" aria-labelledby="devModeLabel">
|
||||
</cr-toggle>
|
||||
</div>
|
||||
@@ -594,7 +613,7 @@ diff --git a/chrome/browser/resources/webstore_app/manifest.json b/chrome/browse
|
||||
diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
||||
--- a/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
||||
+++ b/chrome/browser/ui/webui/extensions/extensions_ui.cc
|
||||
@@ -56,6 +56,8 @@
|
||||
@@ -58,6 +58,8 @@
|
||||
#include "chrome/browser/ui/webui/extensions/ash/kiosk_apps_handler.h"
|
||||
#endif
|
||||
|
||||
@@ -603,7 +622,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse
|
||||
namespace extensions {
|
||||
|
||||
namespace {
|
||||
@@ -338,6 +340,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
|
||||
@@ -340,6 +342,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
|
||||
{"itemSuspiciousInstallLearnMore",
|
||||
IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE},
|
||||
{"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE},
|
||||
@@ -612,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},
|
||||
@@ -415,6 +419,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);
|
||||
@@ -626,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(),
|
||||
@@ -727,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"
|
||||
@@ -88,6 +92,27 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) {
|
||||
@@ -90,6 +94,27 @@ std::vector<std::string> CreateWarningsList(const Extension* extension) {
|
||||
return warnings_list;
|
||||
}
|
||||
|
||||
@@ -757,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) {
|
||||
@@ -261,6 +286,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) {
|
||||
@@ -766,8 +790,8 @@ 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;
|
||||
@@ -306,10 +333,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
|
||||
absl::optional<management::Get::Params> params =
|
||||
@@ -308,10 +335,9 @@ ExtensionFunction::ResponseAction ManagementGetFunction::Run() {
|
||||
std::optional<management::Get::Params> params =
|
||||
management::Get::Params::Create(args());
|
||||
EXTENSION_FUNCTION_VALIDATE(params);
|
||||
- ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context());
|
||||
@@ -778,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));
|
||||
|
||||
@@ -329,8 +355,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
|
||||
@@ -331,8 +357,7 @@ ManagementGetPermissionWarningsByIdFunction::Run() {
|
||||
EXTENSION_FUNCTION_VALIDATE(params);
|
||||
|
||||
const Extension* extension =
|
||||
@@ -788,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));
|
||||
|
||||
@@ -396,8 +421,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
|
||||
@@ -398,8 +423,7 @@ ExtensionFunction::ResponseAction ManagementLaunchAppFunction::Run() {
|
||||
return RespondNow(Error(keys::kNotAllowedInKioskError));
|
||||
|
||||
const Extension* extension =
|
||||
@@ -798,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())
|
||||
@@ -432,7 +456,7 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
|
||||
@@ -434,7 +458,7 @@ ExtensionFunction::ResponseAction ManagementSetEnabledFunction::Run() {
|
||||
->GetDelegate();
|
||||
|
||||
const Extension* target_extension =
|
||||
@@ -807,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_));
|
||||
}
|
||||
@@ -627,8 +651,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
|
||||
@@ -629,8 +653,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall(
|
||||
->GetDelegate();
|
||||
target_extension_id_ = target_extension_id;
|
||||
const Extension* target_extension =
|
||||
@@ -817,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_));
|
||||
@@ -692,8 +715,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 =
|
||||
@@ -827,7 +851,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br
|
||||
ExtensionRegistry::EVERYTHING);
|
||||
std::string error;
|
||||
bool success = false;
|
||||
@@ -774,8 +796,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 =
|
||||
@@ -837,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)));
|
||||
@@ -825,8 +846,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 =
|
||||
@@ -850,9 +874,9 @@ 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
|
||||
@@ -491,8 +491,8 @@ void ExtensionDownloader::CreateManifestLoader() {
|
||||
std::vector<base::StringPiece> id_vector(extension_ids.begin(),
|
||||
extension_ids.end());
|
||||
@@ -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, ",");
|
||||
- VLOG(2) << "Fetching " << active_request->full_url() << " for " << id_list;
|
||||
- VLOG(2) << "Update interactivity: "
|
||||
@@ -861,7 +885,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
||||
<< (active_request->foreground_check()
|
||||
? kUpdateInteractivityForeground
|
||||
: kUpdateInteractivityBackground);
|
||||
@@ -517,7 +517,7 @@ void ExtensionDownloader::CreateManifestLoader() {
|
||||
@@ -520,7 +520,7 @@ void ExtensionDownloader::CreateManifestLoader() {
|
||||
destination: WEBSITE
|
||||
}
|
||||
policy {
|
||||
@@ -870,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 "
|
||||
@@ -534,6 +534,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;
|
||||
@@ -878,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;
|
||||
@@ -542,10 +543,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())) {
|
||||
@@ -889,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,
|
||||
@@ -830,20 +827,6 @@ void ExtensionDownloader::HandleManifestResults(
|
||||
@@ -833,20 +830,6 @@ void ExtensionDownloader::HandleManifestResults(
|
||||
update.second->info);
|
||||
}
|
||||
|
||||
@@ -910,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);
|
||||
@@ -865,7 +848,7 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||
@@ -868,7 +851,7 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||
// extensions that have already existed in the system.
|
||||
if (!delegate_->GetExtensionExistingVersion(extension_id,
|
||||
&extension_version)) {
|
||||
@@ -919,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 << "'";
|
||||
@@ -876,11 +859,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())
|
||||
@@ -933,7 +957,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
||||
<< " latest version is '" << update_version_str << "'";
|
||||
}
|
||||
|
||||
@@ -890,21 +873,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.
|
||||
@@ -956,9 +980,9 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
||||
- VLOG(2) << extension_id << " version is not older than '"
|
||||
+ LOG(INFO) << extension_id << " version is not older than '"
|
||||
<< update_version_str << "'";
|
||||
has_noupdate = true;
|
||||
continue;
|
||||
@@ -925,7 +908,9 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||
bool can_rollback =
|
||||
update_version.CompareTo(existing_version) < 0 &&
|
||||
@@ -934,7 +917,9 @@ ExtensionDownloader::GetUpdateAvailability(
|
||||
}
|
||||
|
||||
// Stop checking as soon as an update for |extension_id| is found.
|
||||
@@ -969,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;
|
||||
}
|
||||
@@ -1170,7 +1155,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;
|
||||
@@ -978,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 {
|
||||
@@ -1178,7 +1163,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
||||
@@ -1187,7 +1172,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
||||
net::SiteForCookies::FromUrl(fetch->url);
|
||||
}
|
||||
|
||||
@@ -987,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
|
||||
@@ -1203,7 +1188,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
||||
@@ -1212,7 +1197,7 @@ void ExtensionDownloader::CreateExtensionLoader() {
|
||||
base::StringPrintf("Bearer %s", access_token_.c_str()));
|
||||
}
|
||||
|
||||
@@ -996,7 +1020,7 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
||||
|
||||
StartExtensionLoader();
|
||||
}
|
||||
@@ -1225,7 +1210,7 @@ void ExtensionDownloader::StartExtensionLoader() {
|
||||
@@ -1234,7 +1219,7 @@ void ExtensionDownloader::StartExtensionLoader() {
|
||||
destination: WEBSITE
|
||||
}
|
||||
policy {
|
||||
@@ -1005,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 "
|
||||
@@ -1296,6 +1281,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);
|
||||
@@ -1013,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(
|
||||
@@ -1316,7 +1302,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];
|
||||
@@ -1022,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) {
|
||||
@@ -1410,6 +1396,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList(
|
||||
@@ -1419,6 +1405,7 @@ void ExtensionDownloader::NotifyExtensionsDownloadFailedWithList(
|
||||
bool ExtensionDownloader::IterateFetchCredentialsAfterFailure(
|
||||
ExtensionFetch* fetch,
|
||||
int response_code) {
|
||||
@@ -1033,18 +1057,18 @@ diff --git a/extensions/browser/updater/extension_downloader.cc b/extensions/bro
|
||||
diff --git a/extensions/browser/updater/extension_downloader.h b/extensions/browser/updater/extension_downloader.h
|
||||
--- a/extensions/browser/updater/extension_downloader.h
|
||||
+++ b/extensions/browser/updater/extension_downloader.h
|
||||
@@ -113,7 +113,6 @@ class ExtensionDownloader {
|
||||
@@ -112,7 +112,6 @@ class ExtensionDownloader {
|
||||
}
|
||||
|
||||
void set_ping_enabled_domain(const std::string& domain) {
|
||||
- ping_enabled_domain_ = domain;
|
||||
}
|
||||
|
||||
// Set backoff policy for manifest and extension queue. Set `absl::nullopt` to
|
||||
// Set backoff policy for manifest and extension queue. Set `std::nullopt` to
|
||||
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),
|
||||
@@ -1053,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);
|
||||
@@ -1075,7 +1099,7 @@ diff --git a/extensions/browser/updater/manifest_fetch_data.cc b/extensions/brow
|
||||
diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/browser/updater/safe_manifest_parser.cc
|
||||
--- a/extensions/browser/updater/safe_manifest_parser.cc
|
||||
+++ b/extensions/browser/updater/safe_manifest_parser.cc
|
||||
@@ -203,6 +203,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
|
||||
@@ -202,6 +202,7 @@ void ParseXmlDone(ParseUpdateManifestCallback callback,
|
||||
std::move(callback).Run(/*results=*/nullptr, std::move(error));
|
||||
});
|
||||
|
||||
@@ -1086,8 +1110,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro
|
||||
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
|
||||
--- a/extensions/common/extension_features.cc
|
||||
+++ b/extensions/common/extension_features.cc
|
||||
@@ -226,4 +226,19 @@ BASE_FEATURE(kDeclarativeNetRequestSafeRuleLimits,
|
||||
"DeclarativeNetRequestSafeDynamicRules",
|
||||
@@ -158,4 +158,19 @@ BASE_FEATURE(kDeclarativeNetRequestResponseHeaderMatching,
|
||||
"DeclarativeNetRequestResponseHeaderMatching",
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
|
||||
+// Activates the auto update of extensions.
|
||||
@@ -1109,9 +1133,9 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
|
||||
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
|
||||
--- a/extensions/common/extension_features.h
|
||||
+++ b/extensions/common/extension_features.h
|
||||
@@ -108,6 +108,10 @@ BASE_DECLARE_FEATURE(kNewWebstoreURL);
|
||||
|
||||
BASE_DECLARE_FEATURE(kDeclarativeNetRequestSafeRuleLimits);
|
||||
@@ -200,6 +200,10 @@ BASE_DECLARE_FEATURE(kDeclarativeNetRequestSafeRuleLimits);
|
||||
// matching condition.
|
||||
BASE_DECLARE_FEATURE(kDeclarativeNetRequestResponseHeaderMatching);
|
||||
|
||||
+BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
|
||||
+
|
||||
@@ -1142,4 +1166,3 @@ diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescr
|
||||
|
||||
export interface ExtensionCommandUpdate {
|
||||
--
|
||||
2.25.1
|
||||
+5
-6
@@ -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();
|
||||
+
|
||||
@@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p
|
||||
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
|
||||
--- a/services/network/network_context.cc
|
||||
+++ b/services/network/network_context.cc
|
||||
@@ -1129,6 +1129,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
|
||||
@@ -1179,6 +1179,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
|
||||
base::BindOnce(&NetworkContext::OnHttpCacheCleared,
|
||||
base::Unretained(this), std::move(callback))));
|
||||
|
||||
@@ -89,4 +89,3 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
|
||||
if (memory_cache)
|
||||
memory_cache->Clear();
|
||||
--
|
||||
2.25.1
|
||||
@@ -7,17 +7,20 @@ Use Google Chrome branding for client hints
|
||||
|
||||
License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
---
|
||||
components/embedder_support/user_agent_utils.cc | 4 +---
|
||||
content/browser/client_hints/client_hints.cc | 3 ++-
|
||||
content/browser/loader/navigation_url_loader_impl.cc | 5 +++++
|
||||
.../content/common/features_cc/Client-hints-overrides.inc | 1 +
|
||||
.../public/cpp/features_cc/Client-hints-overrides.inc | 1 +
|
||||
net/http/http_network_transaction.cc | 1 +
|
||||
services/network/public/cpp/client_hints.cc | 1 +
|
||||
third_party/blink/common/client_hints/client_hints.cc | 1 +
|
||||
.../blink/common/client_hints/enabled_client_hints.cc | 4 +++-
|
||||
.../blink/renderer/platform/runtime_enabled_features.json5 | 4 ++--
|
||||
10 files changed, 18 insertions(+), 7 deletions(-)
|
||||
components/embedder_support/user_agent_utils.cc | 4 +---
|
||||
content/browser/client_hints/client_hints.cc | 17 +++++++++++------
|
||||
.../loader/navigation_url_loader_impl.cc | 5 +++++
|
||||
.../features_cc/Client-hints-overrides.inc | 1 +
|
||||
.../cpp/features_cc/Client-hints-overrides.inc | 1 +
|
||||
net/http/http_network_transaction.cc | 1 +
|
||||
services/network/public/cpp/client_hints.cc | 1 +
|
||||
.../blink/common/client_hints/client_hints.cc | 1 +
|
||||
.../common/client_hints/enabled_client_hints.cc | 4 +++-
|
||||
.../blink/renderer/core/frame/navigator_ua.idl | 4 +++-
|
||||
.../renderer/core/frame/navigator_ua_data.idl | 5 ++++-
|
||||
.../renderer/core/loader/base_fetch_context.cc | 6 ++++--
|
||||
.../platform/runtime_enabled_features.json5 | 4 ++++
|
||||
13 files changed, 40 insertions(+), 14 deletions(-)
|
||||
create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc
|
||||
create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc
|
||||
|
||||
@@ -27,18 +30,26 @@ 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
|
||||
--- a/content/browser/client_hints/client_hints.cc
|
||||
+++ b/content/browser/client_hints/client_hints.cc
|
||||
@@ -516,7 +516,8 @@ void AddPrefersReducedTransparencyHeader(net::HttpRequestHeaders* headers,
|
||||
@@ -55,6 +55,7 @@
|
||||
#include "third_party/blink/public/common/permissions_policy/origin_with_possible_wildcards.h"
|
||||
#include "third_party/blink/public/common/permissions_policy/permissions_policy.h"
|
||||
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
|
||||
+#include "third_party/blink/renderer/platform/runtime_enabled_features.h"
|
||||
#include "ui/display/display.h"
|
||||
#include "ui/display/screen.h"
|
||||
#include "url/origin.h"
|
||||
@@ -516,7 +517,8 @@ void AddPrefersReducedTransparencyHeader(net::HttpRequestHeaders* headers,
|
||||
: network::kPrefersReducedTransparencyNoPreference);
|
||||
}
|
||||
|
||||
@@ -48,10 +59,37 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie
|
||||
return network::IsOriginPotentiallyTrustworthy(origin);
|
||||
}
|
||||
|
||||
@@ -718,7 +720,8 @@ void UpdateNavigationRequestClientUaHeadersImpl(
|
||||
// value, disable them. This overwrites previous decision from UI.
|
||||
disable_due_to_custom_ua = !ua_metadata.has_value();
|
||||
}
|
||||
-
|
||||
+ if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled())
|
||||
+ disable_due_to_custom_ua = true;
|
||||
if (!disable_due_to_custom_ua) {
|
||||
if (!ua_metadata.has_value())
|
||||
ua_metadata = delegate->GetUserAgentMetadata();
|
||||
@@ -900,10 +903,12 @@ void AddRequestClientHintsHeaders(
|
||||
AddEctHeader(headers, network_quality_tracker, url);
|
||||
}
|
||||
|
||||
- UpdateNavigationRequestClientUaHeadersImpl(
|
||||
- delegate, is_ua_override_on, frame_tree_node,
|
||||
- ClientUaHeaderCallType::kDuringCreation, headers, container_policy,
|
||||
- request_url, data);
|
||||
+ if (blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) {
|
||||
+ UpdateNavigationRequestClientUaHeadersImpl(
|
||||
+ delegate, is_ua_override_on, frame_tree_node,
|
||||
+ ClientUaHeaderCallType::kDuringCreation, headers, container_policy,
|
||||
+ request_url, data);
|
||||
+ }
|
||||
|
||||
if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) {
|
||||
AddPrefersColorSchemeHeader(headers, frame_tree_node);
|
||||
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
|
||||
@@ -1063,6 +1063,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
|
||||
@@ -1091,6 +1091,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -78,25 +116,25 @@ new file mode 100644
|
||||
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
|
||||
--- a/net/http/http_network_transaction.cc
|
||||
+++ b/net/http/http_network_transaction.cc
|
||||
@@ -100,6 +100,7 @@ const size_t kMaxRestarts = 32;
|
||||
@@ -101,6 +101,7 @@ const size_t kMaxRestarts = 32;
|
||||
|
||||
// Returns true when Early Hints are allowed on the given protocol.
|
||||
bool EarlyHintsAreAllowedOn(HttpResponseInfo::ConnectionInfo connection_info) {
|
||||
bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) {
|
||||
+ if ((true)) return false;
|
||||
switch (connection_info) {
|
||||
case HttpResponseInfo::ConnectionInfo::CONNECTION_INFO_HTTP0_9:
|
||||
case HttpResponseInfo::ConnectionInfo::CONNECTION_INFO_HTTP1_0:
|
||||
case HttpConnectionInfo::kHTTP0_9:
|
||||
case HttpConnectionInfo::kHTTP1_0:
|
||||
diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc
|
||||
--- a/services/network/public/cpp/client_hints.cc
|
||||
+++ 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
|
||||
@@ -119,7 +157,7 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi
|
||||
switch (type) {
|
||||
case WebClientHintsType::kUA:
|
||||
case WebClientHintsType::kUAArch:
|
||||
@@ -99,7 +100,7 @@ bool IsDisabledByFeature(const WebClientHintsType type) {
|
||||
@@ -96,7 +97,7 @@ bool IsDisabledByFeature(const WebClientHintsType type) {
|
||||
} // namespace
|
||||
|
||||
bool EnabledClientHints::IsEnabled(const WebClientHintsType type) const {
|
||||
@@ -128,7 +166,7 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi
|
||||
}
|
||||
|
||||
void EnabledClientHints::SetIsEnabled(const WebClientHintsType type,
|
||||
@@ -110,6 +111,7 @@ void EnabledClientHints::SetIsEnabled(const WebClientHintsType type,
|
||||
@@ -107,6 +108,7 @@ void EnabledClientHints::SetIsEnabled(const WebClientHintsType type,
|
||||
|
||||
std::vector<WebClientHintsType> EnabledClientHints::GetEnabledHints() const {
|
||||
std::vector<WebClientHintsType> hints;
|
||||
@@ -136,19 +174,76 @@ diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/thi
|
||||
for (const auto& elem : network::GetClientHintToNameMap()) {
|
||||
const auto& type = elem.first;
|
||||
if (IsEnabled(type))
|
||||
diff --git a/third_party/blink/renderer/core/frame/navigator_ua.idl b/third_party/blink/renderer/core/frame/navigator_ua.idl
|
||||
--- a/third_party/blink/renderer/core/frame/navigator_ua.idl
|
||||
+++ b/third_party/blink/renderer/core/frame/navigator_ua.idl
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
// https://github.com/WICG/ua-client-hints
|
||||
|
||||
-interface mixin NavigatorUA {
|
||||
+[
|
||||
+ RuntimeEnabled=UserAgentClientHint
|
||||
+] interface mixin NavigatorUA {
|
||||
[SecureContext] readonly attribute NavigatorUAData userAgentData;
|
||||
};
|
||||
diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
||||
--- a/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
||||
+++ b/third_party/blink/renderer/core/frame/navigator_ua_data.idl
|
||||
@@ -4,7 +4,10 @@
|
||||
|
||||
// https://github.com/WICG/ua-client-hints
|
||||
|
||||
-[Exposed=(Window,Worker)] interface NavigatorUAData {
|
||||
+[
|
||||
+ RuntimeEnabled=UserAgentClientHint,
|
||||
+ Exposed=(Window,Worker)
|
||||
+] interface NavigatorUAData {
|
||||
[HighEntropy, MeasureAs=NavigatorUAData_Brands] readonly attribute FrozenArray<NavigatorUABrandVersion> brands;
|
||||
[HighEntropy=Direct, MeasureAs=NavigatorUAData_Mobile] readonly attribute boolean mobile;
|
||||
[HighEntropy=Direct, MeasureAs=NavigatorUAData_Platform] readonly attribute DOMString platform;
|
||||
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc
|
||||
--- a/third_party/blink/renderer/core/loader/base_fetch_context.cc
|
||||
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc
|
||||
@@ -167,7 +167,7 @@ void BaseFetchContext::AddClientHintsIfNecessary(
|
||||
// specifying accomponying client hints, in which case we disable sending
|
||||
// them.
|
||||
using network::mojom::blink::WebClientHintsType;
|
||||
- if (ua) {
|
||||
+ if (RuntimeEnabledFeatures::UserAgentClientHintEnabled() && ua) {
|
||||
// ShouldSendClientHint is called to make sure UA is controlled by
|
||||
// Permissions Policy.
|
||||
if (ShouldSendClientHint(policy, resource_origin, is_1p_origin,
|
||||
@@ -329,7 +329,7 @@ void BaseFetchContext::AddClientHintsIfNecessary(
|
||||
}
|
||||
|
||||
// Only send User Agent hints if the info is available
|
||||
- if (ua) {
|
||||
+ if (RuntimeEnabledFeatures::UserAgentClientHintEnabled() && ua) {
|
||||
if (ShouldSendClientHint(policy, resource_origin, is_1p_origin,
|
||||
WebClientHintsType::kUAArch, hints_preferences)) {
|
||||
SetHttpHeader(WebClientHintsType::kUAArch,
|
||||
@@ -652,6 +652,8 @@ bool BaseFetchContext::ShouldSendClientHint(
|
||||
bool is_1p_origin,
|
||||
network::mojom::blink::WebClientHintsType type,
|
||||
const ClientHintsPreferences& hints_preferences) const {
|
||||
+ if (!RuntimeEnabledFeatures::UserAgentClientHintEnabled())
|
||||
+ return false;
|
||||
// For subresource requests, sending the hint in the fetch request based on
|
||||
// the permissions policy.
|
||||
if ((!policy ||
|
||||
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
|
||||
@@ -4019,8 +4019,8 @@
|
||||
public: true,
|
||||
@@ -499,6 +499,10 @@
|
||||
name: "ByobFetch",
|
||||
status: "stable",
|
||||
},
|
||||
{
|
||||
- name: "UserAgentClientHint",
|
||||
- status: "stable",
|
||||
+ {
|
||||
+ name: "UserAgentClientHint", // always disabled
|
||||
+ status: "experimental", // in bromite
|
||||
},
|
||||
+ },
|
||||
{
|
||||
// https://chromestatus.com/feature/5132477781245952
|
||||
name: "CacheStorageCodeCacheHint",
|
||||
origin_trial_feature_name: "CacheStorageCodeCacheHint",
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+1
-2
@@ -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
|
||||
@@ -639,6 +639,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" ]
|
||||
@@ -22,4 +22,3 @@ diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_p
|
||||
# Crashpad trampoline lives in TrichromeLibrary.apk.
|
||||
# https://chromium.googlesource.com/chromium/src/+/main/docs/android_native_libraries.md#Crashpad-Packaging
|
||||
--
|
||||
2.25.1
|
||||
File diff suppressed because it is too large
Load Diff
@@ -47,12 +47,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
.../drawable-xxhdpi/fre_product_logo.png | Bin 7720 -> 60959 bytes
|
||||
.../drawable-xxxhdpi/fre_product_logo.png | Bin 10740 -> 93273 bytes
|
||||
tools/grit/grit/grd_reader.py | 35 ++++++++++++++++++
|
||||
43 files changed, 107 insertions(+), 53 deletions(-)
|
||||
ui/base/ui_base_features.cc | 2 +
|
||||
44 files changed, 109 insertions(+), 53 deletions(-)
|
||||
|
||||
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") {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13146,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
|
||||
@@ -2083,6 +2083,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",
|
||||
@@ -13180,7 +13181,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse
|
||||
diff --git a/chrome/browser/profiles/profile_shortcut_manager_win.cc b/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
||||
--- a/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
||||
+++ b/chrome/browser/profiles/profile_shortcut_manager_win.cc
|
||||
@@ -77,7 +77,7 @@ const int kMaxProfileShortcutFileNameLength = 64;
|
||||
@@ -78,7 +78,7 @@ const int kMaxProfileShortcutFileNameLength = 64;
|
||||
// Incrementing this number will cause profile icons to be regenerated on
|
||||
// profile startup (it should be incremented whenever the product/avatar icons
|
||||
// change, etc).
|
||||
@@ -13208,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
|
||||
@@ -2183,7 +2183,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">
|
||||
@@ -13220,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[] =
|
||||
@@ -13229,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)
|
||||
@@ -180,7 +180,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.
|
||||
@@ -13241,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
|
||||
@@ -1009,7 +1009,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]">
|
||||
@@ -18198,5 +18199,14 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py
|
||||
|
||||
class GrdPartContentHandler(xml.sax.handler.ContentHandler):
|
||||
def __init__(self, parent):
|
||||
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
|
||||
@@ -643,4 +643,6 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings,
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
#endif // BUILDFLAG(IS_WIN)
|
||||
|
||||
+SET_CROMITE_FEATURE_ENABLED(kChromeRefresh2023);
|
||||
+SET_CROMITE_FEATURE_ENABLED(kChromeWebuiRefresh2023);
|
||||
} // namespace features
|
||||
--
|
||||
2.25.1
|
||||
+118
-94
@@ -7,41 +7,56 @@ 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
|
||||
---
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 15 ++-
|
||||
.../browser/ChromeActionModeHandler.java | 4 +-
|
||||
.../chrome/browser/ChromeTabbedActivity.java | 15 +-
|
||||
.../compositor/layouts/LayoutManagerImpl.java | 8 ++
|
||||
.../chrome/browser/ui/RootUiCoordinator.java | 8 +-
|
||||
.../Customize-selection-popup.grdp | 34 +++++
|
||||
.../res/xml/accessibility_preferences.xml | 24 ++++
|
||||
.../selection/SelectActionMenuHelper.java | 121 +++++++++++++-----
|
||||
.../selection/SelectActionMenuHelper.java | 131 ++++++++++++------
|
||||
.../selection/SmartSelectionClient.java | 4 +
|
||||
7 files changed, 177 insertions(+), 37 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
|
||||
@@ -658,10 +658,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@Override
|
||||
public void didAddTab(Tab tab, @TabLaunchType int type,
|
||||
@TabCreationState int creationState, boolean markedForSelection) {
|
||||
- if (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
|
||||
- || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP
|
||||
- || type == TabLaunchType.FROM_RECENT_TABS
|
||||
- && !DeviceClassManager.enableAnimations()) {
|
||||
+ boolean selectionPopupTabsForeground =
|
||||
+ ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
+ "selection_popup_tabs_foreground", false);
|
||||
+ boolean showToast = type == TabLaunchType.FROM_RECENT_TABS
|
||||
@@ -737,10 +737,17 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
|
||||
@TabLaunchType int type,
|
||||
@TabCreationState int creationState,
|
||||
boolean markedForSelection) {
|
||||
- if (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
|
||||
- || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP
|
||||
- || type == TabLaunchType.FROM_RECENT_TABS
|
||||
- && !DeviceClassManager.enableAnimations()) {
|
||||
+ boolean selectionPopupTabsForeground =
|
||||
+ ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
+ "selection_popup_tabs_foreground", false);
|
||||
+ boolean showToast = type == TabLaunchType.FROM_RECENT_TABS
|
||||
+ && !DeviceClassManager.enableAnimations();
|
||||
+ if (!showToast && !selectionPopupTabsForeground) {
|
||||
+ showToast = !DeviceClassManager.enableAnimations() &&
|
||||
+ (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
|
||||
+ || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP);
|
||||
+ }
|
||||
+ if (showToast) {
|
||||
Toast.makeText(ChromeTabbedActivity.this, R.string.open_in_new_tab_toast,
|
||||
Toast.LENGTH_SHORT)
|
||||
.show();
|
||||
+ if (!showToast && !selectionPopupTabsForeground) {
|
||||
+ showToast = !DeviceClassManager.enableAnimations() &&
|
||||
+ (type == TabLaunchType.FROM_LONGPRESS_BACKGROUND
|
||||
+ || type == TabLaunchType.FROM_LONGPRESS_BACKGROUND_IN_GROUP);
|
||||
+ }
|
||||
+ if (showToast) {
|
||||
Toast.makeText(
|
||||
ChromeTabbedActivity.this,
|
||||
R.string.open_in_new_tab_toast,
|
||||
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
||||
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
||||
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerImpl.java
|
||||
@@ -53,10 +68,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
import org.chromium.base.ObserverList;
|
||||
import org.chromium.base.TraceEvent;
|
||||
import org.chromium.base.supplier.ObservableSupplier;
|
||||
@@ -221,6 +222,13 @@ public class LayoutManagerImpl
|
||||
&& launchType != TabLaunchType.FROM_RECENT_TABS
|
||||
&& launchType != TabLaunchType.FROM_RESTORE_TABS_UI
|
||||
|| (!getTabModelSelector().isIncognitoSelected() && incognito);
|
||||
@@ -228,6 +229,13 @@ public class LayoutManagerImpl
|
||||
&& launchType != TabLaunchType.FROM_RECENT_TABS
|
||||
&& launchType != TabLaunchType.FROM_RESTORE_TABS_UI
|
||||
|| (!getTabModelSelector().isIncognitoSelected() && incognito);
|
||||
+ boolean selectionPopupTabsForeground =
|
||||
+ ContextUtils.getAppSharedPreferences().getBoolean(
|
||||
+ "selection_popup_tabs_foreground", false);
|
||||
@@ -70,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
|
||||
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
|
||||
@@ -28,6 +28,7 @@ import androidx.appcompat.content.res.AppCompatResources;
|
||||
@@ -27,6 +27,7 @@ import androidx.appcompat.content.res.AppCompatResources;
|
||||
|
||||
import org.chromium.base.Callback;
|
||||
import org.chromium.base.CallbackController;
|
||||
@@ -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;
|
||||
@@ -758,11 +759,16 @@ public class RootUiCoordinator
|
||||
@@ -814,11 +815,16 @@ public class RootUiCoordinator
|
||||
TrackerFactory.getTrackerForProfile(tab.getProfile())
|
||||
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
|
||||
|
||||
@@ -138,7 +153,7 @@ new file mode 100644
|
||||
diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
--- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
+++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml
|
||||
@@ -58,4 +58,28 @@ found in the LICENSE file.
|
||||
@@ -63,4 +63,28 @@ found in the LICENSE file.
|
||||
android:key="move_toolbar_bottom"
|
||||
android:summary="@string/move_toolbar_bottom_summary"
|
||||
android:title="@string/move_toolbar_bottom_title" />
|
||||
@@ -170,21 +185,25 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
|
||||
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
||||
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
||||
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
|
||||
@@ -24,6 +24,7 @@ import androidx.annotation.RequiresApi;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -26,6 +26,7 @@ import androidx.core.content.ContextCompat;
|
||||
|
||||
import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.Log;
|
||||
+import org.chromium.base.ContextUtils;
|
||||
import org.chromium.base.PackageManagerUtils;
|
||||
import org.chromium.base.StrictModeContext;
|
||||
import org.chromium.content.R;
|
||||
@@ -45,28 +46,84 @@ import java.util.PriorityQueue;
|
||||
@@ -51,38 +52,84 @@ import java.util.TreeSet;
|
||||
public class SelectActionMenuHelper {
|
||||
private static final String TAG = "SelectActionMenu"; // 20 char limit.
|
||||
|
||||
- @Retention(RetentionPolicy.SOURCE)
|
||||
- @IntDef({GroupItemOrder.ASSIST_ITEMS, GroupItemOrder.DEFAULT_ITEMS,
|
||||
- GroupItemOrder.SECONDARY_ASSIST_ITEMS, GroupItemOrder.TEXT_PROCESSING_ITEMS})
|
||||
- @IntDef({
|
||||
- GroupItemOrder.ASSIST_ITEMS,
|
||||
- GroupItemOrder.DEFAULT_ITEMS,
|
||||
- GroupItemOrder.SECONDARY_ASSIST_ITEMS,
|
||||
- GroupItemOrder.TEXT_PROCESSING_ITEMS
|
||||
- })
|
||||
- public @interface GroupItemOrder {
|
||||
- int ASSIST_ITEMS = 1;
|
||||
- int DEFAULT_ITEMS = 2;
|
||||
@@ -225,16 +244,22 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
}
|
||||
|
||||
- @Retention(RetentionPolicy.SOURCE)
|
||||
- @IntDef({DefaultItemOrder.CUT, DefaultItemOrder.COPY, DefaultItemOrder.PASTE,
|
||||
- DefaultItemOrder.SHARE, DefaultItemOrder.SELECT_ALL,
|
||||
- DefaultItemOrder.PASTE_AS_PLAIN_TEXT, DefaultItemOrder.WEB_SEARCH})
|
||||
- @IntDef({
|
||||
- DefaultItemOrder.CUT,
|
||||
- DefaultItemOrder.COPY,
|
||||
- DefaultItemOrder.PASTE,
|
||||
- DefaultItemOrder.PASTE_AS_PLAIN_TEXT,
|
||||
- DefaultItemOrder.SHARE,
|
||||
- DefaultItemOrder.SELECT_ALL,
|
||||
- DefaultItemOrder.WEB_SEARCH
|
||||
- })
|
||||
- public @interface DefaultItemOrder {
|
||||
- int CUT = 1;
|
||||
- int COPY = 2;
|
||||
- int PASTE = 3;
|
||||
- int SHARE = 4;
|
||||
- int SELECT_ALL = 5;
|
||||
- int PASTE_AS_PLAIN_TEXT = 6;
|
||||
- int PASTE_AS_PLAIN_TEXT = 4;
|
||||
- int SHARE = 5;
|
||||
- int SELECT_ALL = 6;
|
||||
- int WEB_SEARCH = 7;
|
||||
+ private static class DefaultItemOrderChromium {
|
||||
+ static int CHROMIUM_CUT = 1;
|
||||
@@ -283,52 +308,52 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
}
|
||||
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
@@ -127,7 +184,7 @@ public class SelectActionMenuHelper {
|
||||
if (nonSelectionAdditionalItemProvider != null
|
||||
&& !nonSelectionAdditionalItemProvider.getItems().isEmpty()) {
|
||||
SelectionMenuGroup additionalItemGroup =
|
||||
- new SelectionMenuGroup(Menu.NONE, GroupItemOrder.DEFAULT_ITEMS + 1);
|
||||
+ new SelectionMenuGroup(Menu.NONE, GroupItemOrderChromium.DEFAULT_ITEMS() + 1);
|
||||
additionalItemGroup.addItems(nonSelectionAdditionalItemProvider.getItems());
|
||||
pasteMenuItems.add(additionalItemGroup);
|
||||
@@ -159,7 +206,7 @@ public class SelectActionMenuHelper {
|
||||
if (!additionalMenuItems.isEmpty()) {
|
||||
// Additional menu item group which comes after default menu items.
|
||||
SelectionMenuGroup additionalItemGroup =
|
||||
- new SelectionMenuGroup(Menu.NONE, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
|
||||
+ new SelectionMenuGroup(Menu.NONE, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
|
||||
additionalItemGroup.addItems(additionalMenuItems);
|
||||
pasteMenuItems.add(additionalItemGroup);
|
||||
}
|
||||
@@ -225,7 +272,7 @@ public class SelectActionMenuHelper {
|
||||
}
|
||||
@@ -177,7 +234,7 @@ public class SelectActionMenuHelper {
|
||||
return null;
|
||||
}
|
||||
SelectionMenuGroup primaryAssistGroup = new SelectionMenuGroup(
|
||||
- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
|
||||
+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
|
||||
SelectionMenuGroup primaryAssistGroup =
|
||||
new SelectionMenuGroup(
|
||||
- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
|
||||
+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
|
||||
View.OnClickListener clickListener = null;
|
||||
if (classificationResult.onClickListener != null) {
|
||||
clickListener = classificationResult.onClickListener;
|
||||
@@ -196,7 +253,7 @@ public class SelectActionMenuHelper {
|
||||
|
||||
private static SelectionMenuGroup getDefaultItems(SelectActionMenuDelegate delegate) {
|
||||
SelectionMenuGroup defaultGroup = new SelectionMenuGroup(
|
||||
- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
|
||||
+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
|
||||
defaultGroup.addItem(cut(delegate.canCut()));
|
||||
defaultGroup.addItem(copy(delegate.canCopy()));
|
||||
defaultGroup.addItem(paste(delegate.canPaste()));
|
||||
@@ -239,7 +296,7 @@ public class SelectActionMenuHelper {
|
||||
// We have to use android.R.id.textAssist as group id to make framework show icons for
|
||||
@@ -251,7 +298,7 @@ public class SelectActionMenuHelper {
|
||||
String selectedText) {
|
||||
SelectionMenuGroup defaultGroup =
|
||||
new SelectionMenuGroup(
|
||||
- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
|
||||
+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
|
||||
List<SelectionMenuItem.Builder> menuItemBuilders = new ArrayList<>();
|
||||
menuItemBuilders.add(cut(delegate.canCut()));
|
||||
menuItemBuilders.add(copy(delegate.canCopy()));
|
||||
@@ -302,7 +349,7 @@ public class SelectActionMenuHelper {
|
||||
// these menu items.
|
||||
SelectionMenuGroup secondaryAssistItems = new SelectionMenuGroup(
|
||||
- android.R.id.textAssist, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
|
||||
+ android.R.id.textAssist, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
|
||||
SelectionMenuGroup secondaryAssistItems =
|
||||
new SelectionMenuGroup(
|
||||
- android.R.id.textAssist, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
|
||||
+ android.R.id.textAssist, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
|
||||
|
||||
// First action is reserved for primary action so start at index 1.
|
||||
final int startIndex = 1;
|
||||
@@ -276,7 +333,7 @@ public class SelectActionMenuHelper {
|
||||
}
|
||||
@@ -335,7 +382,7 @@ public class SelectActionMenuHelper {
|
||||
SelectionMenuGroup textProcessingItems =
|
||||
new SelectionMenuGroup(R.id.select_action_menu_text_processing_items,
|
||||
new SelectionMenuGroup(
|
||||
R.id.select_action_menu_text_processing_items,
|
||||
- GroupItemOrder.TEXT_PROCESSING_ITEMS);
|
||||
+ GroupItemOrderChromium.TEXT_PROCESSING_ITEMS());
|
||||
final PackageManager packageManager = context.getPackageManager();
|
||||
for (int i = 0; i < supportedActivities.size(); i++) {
|
||||
ResolveInfo resolveInfo = supportedActivities.get(i);
|
||||
@@ -346,7 +403,7 @@ public class SelectActionMenuHelper {
|
||||
if (isSelectionPassword || intentHandler == null) {
|
||||
addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
|
||||
return textProcessingItems;
|
||||
@@ -431,7 +478,7 @@ public class SelectActionMenuHelper {
|
||||
.setId(R.id.select_action_menu_cut)
|
||||
.setIconAttr(android.R.attr.actionModeCutDrawable)
|
||||
.setAlphabeticShortcut(ItemKeyShortcuts.CUT)
|
||||
@@ -337,7 +362,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
.setShowAsActionFlags(
|
||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||
.setIsEnabled(isEnabled)
|
||||
@@ -359,7 +416,7 @@ public class SelectActionMenuHelper {
|
||||
@@ -443,7 +490,7 @@ public class SelectActionMenuHelper {
|
||||
.setId(R.id.select_action_menu_copy)
|
||||
.setIconAttr(android.R.attr.actionModeCopyDrawable)
|
||||
.setAlphabeticShortcut(ItemKeyShortcuts.COPY)
|
||||
@@ -346,7 +371,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
.setShowAsActionFlags(
|
||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||
.setIsEnabled(isEnabled)
|
||||
@@ -372,7 +429,7 @@ public class SelectActionMenuHelper {
|
||||
@@ -455,7 +502,7 @@ public class SelectActionMenuHelper {
|
||||
.setId(R.id.select_action_menu_paste)
|
||||
.setIconAttr(android.R.attr.actionModePasteDrawable)
|
||||
.setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
|
||||
@@ -355,8 +380,8 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
.setShowAsActionFlags(
|
||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||
.setIsEnabled(isEnabled)
|
||||
@@ -384,7 +441,7 @@ public class SelectActionMenuHelper {
|
||||
return new SelectionMenuItem.Builder(R.string.actionbar_share)
|
||||
@@ -469,7 +516,7 @@ public class SelectActionMenuHelper {
|
||||
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share))
|
||||
.setId(R.id.select_action_menu_share)
|
||||
.setIconAttr(android.R.attr.actionModeShareDrawable)
|
||||
- .setOrderInCategory(DefaultItemOrder.SHARE)
|
||||
@@ -364,7 +389,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
.setShowAsActionFlags(
|
||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||
.setIsEnabled(isEnabled)
|
||||
@@ -397,7 +454,7 @@ public class SelectActionMenuHelper {
|
||||
@@ -481,7 +528,7 @@ public class SelectActionMenuHelper {
|
||||
.setId(R.id.select_action_menu_select_all)
|
||||
.setIconAttr(android.R.attr.actionModeSelectAllDrawable)
|
||||
.setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
|
||||
@@ -373,17 +398,17 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
.setShowAsActionFlags(
|
||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||
.setIsEnabled(isEnabled)
|
||||
@@ -409,7 +466,7 @@ public class SelectActionMenuHelper {
|
||||
private static SelectionMenuItem pasteAsPlainText(boolean isEnabled) {
|
||||
return new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
|
||||
.setId(R.id.select_action_menu_paste_as_plain_text)
|
||||
- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
|
||||
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
|
||||
.setShowAsActionFlags(
|
||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||
.setIsEnabled(isEnabled)
|
||||
@@ -420,7 +477,7 @@ public class SelectActionMenuHelper {
|
||||
return new SelectionMenuItem.Builder(R.string.actionbar_web_search)
|
||||
@@ -494,7 +541,7 @@ public class SelectActionMenuHelper {
|
||||
SelectionMenuItem.Builder builder =
|
||||
new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
|
||||
.setId(R.id.select_action_menu_paste_as_plain_text)
|
||||
- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
|
||||
+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
|
||||
.setShowAsActionFlags(
|
||||
MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
|
||||
.setIsEnabled(isEnabled);
|
||||
@@ -514,7 +561,7 @@ public class SelectActionMenuHelper {
|
||||
return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search))
|
||||
.setId(R.id.select_action_menu_web_search)
|
||||
.setIconAttr(android.R.attr.actionModeWebSearchDrawable)
|
||||
- .setOrderInCategory(DefaultItemOrder.WEB_SEARCH)
|
||||
@@ -413,4 +438,3 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
+1
-2
@@ -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
|
||||
@@ -3232,8 +3232,8 @@
|
||||
@@ -3110,8 +3110,8 @@
|
||||
status: "stable",
|
||||
},
|
||||
{
|
||||
@@ -22,4 +22,3 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
{
|
||||
name: "RemoveMobileViewportDoubleTap",
|
||||
--
|
||||
2.25.1
|
||||
@@ -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
|
||||
@@ -290,8 +290,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) {
|
||||
@@ -58,7 +58,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
import android.os.SystemClock;
|
||||
import android.text.Editable;
|
||||
import android.text.InputType;
|
||||
@@ -104,6 +105,7 @@ public abstract class UrlBar extends AutocompleteEditText {
|
||||
@@ -99,6 +100,7 @@ public abstract class UrlBar extends AutocompleteEditText {
|
||||
private boolean mFocused;
|
||||
private boolean mAllowFocus = true;
|
||||
|
||||
@@ -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.
|
||||
@@ -304,6 +306,27 @@ public abstract class UrlBar extends AutocompleteEditText {
|
||||
@@ -294,6 +296,27 @@ public abstract class UrlBar extends AutocompleteEditText {
|
||||
mPendingScroll = false;
|
||||
}
|
||||
fixupTextDirection();
|
||||
@@ -95,4 +95,3 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
|
||||
|
||||
@Override
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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
|
||||
@@ -1024,6 +1024,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
|
||||
@@ -1112,6 +1112,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa
|
||||
structure.setChildCount(0);
|
||||
return;
|
||||
}
|
||||
@@ -55,4 +55,3 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/access
|
||||
final ViewStructure viewRoot = structure.asyncNewChild(0);
|
||||
viewRoot.setClassName("");
|
||||
--
|
||||
2.25.1
|
||||
|
||||
+50
-11
@@ -4,34 +4,69 @@ 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 | 38 +++++++++++++++++++
|
||||
.../policy/AppRestrictionsProvider.java | 8 ++++
|
||||
.../cromite/sEnableAndroidAppRestriction.java | 39 +++++++++++++++++++
|
||||
.../policy/AppRestrictionsProvider.java | 12 ++++++
|
||||
.../DisableAndroidAppRestriction.inc | 13 +++++++
|
||||
.../disable-android-app-restriction.inc | 3 ++
|
||||
.../disable-android-app-restriction.inc | 1 +
|
||||
6 files changed, 64 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
|
||||
@@ -35,6 +35,7 @@ android_library("java") {
|
||||
@@ -25,6 +25,7 @@ android_library("java") {
|
||||
"//build:chromeos_buildflags",
|
||||
"//build/android:build_java",
|
||||
"//chrome/browser/preferences:java",
|
||||
+ "//components/policy/android:policy_java",
|
||||
"//components/version_info/android:version_constants_java",
|
||||
"//third_party/android_deps:guava_android_java",
|
||||
"//third_party/androidx:androidx_annotation_annotation_java",
|
||||
"//third_party/jni_zero:jni_zero_java",
|
||||
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
|
||||
@@ -0,0 +1,38 @@
|
||||
@@ -0,0 +1,39 @@
|
||||
+/*
|
||||
+ This file is part of Cromite.
|
||||
+
|
||||
@@ -51,14 +86,15 @@ new file mode 100644
|
||||
+
|
||||
+package org.chromium.chrome.browser.flags.cromite;
|
||||
+
|
||||
+import org.chromium.chrome.browser.flags.CachedFlag;
|
||||
+import org.chromium.base.cached_flags.CachedFlag;
|
||||
+import org.chromium.chrome.browser.flags.ChromeFeatureMap;
|
||||
+import org.chromium.components.policy.AppRestrictionsProvider;
|
||||
+
|
||||
+public class sEnableAndroidAppRestriction {
|
||||
+ private static boolean initialized_ = false;
|
||||
+
|
||||
+ private static final CachedFlag sInstance =
|
||||
+ new CachedFlag("EnableAndroidAppRestriction", false);
|
||||
+ new CachedFlag(ChromeFeatureMap.getInstance(), "EnableAndroidAppRestriction", false);
|
||||
+
|
||||
+ private sEnableAndroidAppRestriction() {}
|
||||
+
|
||||
@@ -73,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";
|
||||
@@ -81,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) {
|
||||
@@ -128,4 +168,3 @@ new file mode 100644
|
||||
@@ -0,0 +1 @@
|
||||
+BASE_DECLARE_FEATURE(kEnableAndroidAppRestriction);
|
||||
--
|
||||
2.25.1
|
||||
@@ -7,15 +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);
|
||||
--
|
||||
2.25.1
|
||||
|
||||
-1
@@ -15,4 +15,3 @@ new file mode 100644
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kBackForwardCache);
|
||||
--
|
||||
2.25.1
|
||||
+7
-8
@@ -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,18 +23,18 @@ 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
|
||||
@@ -88,6 +88,7 @@ void ComponentInstaller::Register(RegisterCallback register_callback,
|
||||
base::OnceClosure callback,
|
||||
base::TaskPriority task_priority,
|
||||
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_);
|
||||
|
||||
task_runner_ = base::ThreadPool::CreateSequencedTaskRunner(
|
||||
if (!installer_policy_) {
|
||||
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
|
||||
@@ -522,7 +522,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.
|
||||
@@ -44,4 +44,3 @@ diff --git a/components/component_updater/component_updater_service.cc b/compone
|
||||
|
||||
} // namespace component_updater
|
||||
--
|
||||
2.25.1
|
||||
@@ -0,0 +1,32 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Mon, 26 Feb 2024 16:35:16 +0000
|
||||
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 +++
|
||||
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
|
||||
@@ -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
|
||||
}
|
||||
--
|
||||
+3
-4
@@ -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
|
||||
@@ -698,16 +698,18 @@
|
||||
status: "stable",
|
||||
@@ -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",
|
||||
@@ -32,4 +32,3 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
{
|
||||
name: "ComputedAccessibilityInfo",
|
||||
--
|
||||
2.25.1
|
||||
@@ -19,4 +19,3 @@ new file mode 100644
|
||||
+
|
||||
+#endif
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -12,17 +12,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
|
||||
.../browser/chrome_content_browser_client.cc | 3 +++
|
||||
.../privacy_sandbox_settings_delegate.cc | 1 +
|
||||
.../privacy_sandbox/privacy_sandbox_prompt.cc | 1 +
|
||||
.../history/core/browser/history_backend.cc | 13 +---------
|
||||
.../history/core/browser/history_backend.cc | 13 +------------
|
||||
.../privacy_sandbox_attestations.cc | 2 --
|
||||
.../privacy_sandbox_features.cc | 5 ++++
|
||||
.../privacy_sandbox_features.cc | 4 ++++
|
||||
.../privacy_sandbox/privacy_sandbox_prefs.cc | 4 ++--
|
||||
.../privacy_sandbox_settings_impl.cc | 24 +++++++++++++------
|
||||
8 files changed, 30 insertions(+), 23 deletions(-)
|
||||
.../privacy_sandbox_settings_impl.cc | 19 ++++++++++++++-----
|
||||
.../Disable-FLoC-and-privacy-sandbox.inc | 1 +
|
||||
third_party/blink/common/features.cc | 1 +
|
||||
10 files changed, 28 insertions(+), 21 deletions(-)
|
||||
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.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
|
||||
@@ -3432,6 +3432,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
|
||||
@@ -3239,6 +3239,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed(
|
||||
const url::Origin* destination_origin,
|
||||
const url::Origin* reporting_origin,
|
||||
bool* can_bypass) {
|
||||
@@ -46,18 +49,17 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc
|
||||
diff --git a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc
|
||||
--- a/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc
|
||||
+++ b/chrome/browser/ui/privacy_sandbox/privacy_sandbox_prompt.cc
|
||||
@@ -8,6 +8,7 @@
|
||||
@@ -8,5 +8,6 @@
|
||||
|
||||
void ShowPrivacySandboxPrompt(Browser* browser,
|
||||
PrivacySandboxService::PromptType prompt_type) {
|
||||
+ if ((true)) return;
|
||||
if (prompt_type == PrivacySandboxService::PromptType::kNotice) {
|
||||
ShowPrivacySandboxNoticeBubble(browser);
|
||||
} else {
|
||||
+ if ((true)) return;
|
||||
ShowPrivacySandboxDialog(browser, prompt_type);
|
||||
}
|
||||
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;
|
||||
|
||||
@@ -80,24 +82,23 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
|
||||
diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
|
||||
--- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
|
||||
+++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc
|
||||
@@ -389,8 +389,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed(
|
||||
@@ -478,8 +478,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed(
|
||||
if (attestations_map.has_value() &&
|
||||
(!file_version_.IsValid() || file_version_.CompareTo(version) < 0)) {
|
||||
// Parsing succeeded and the attestations file has newer version.
|
||||
- file_version_ = std::move(version);
|
||||
- attestations_map_ = std::move(attestations_map);
|
||||
- attestations_map_ = std::move(attestations_map.value());
|
||||
}
|
||||
|
||||
attestations_parse_progress_ = Progress::kFinished;
|
||||
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
|
||||
@@ -144,4 +144,9 @@ BASE_FEATURE(kAttributionDebugReportingCookieDeprecationTesting,
|
||||
"AttributionDebugReportingCookieDeprecationTesting",
|
||||
@@ -167,4 +167,8 @@ BASE_FEATURE(kTrackingProtectionNoticeRequestTracking,
|
||||
base::FEATURE_DISABLED_BY_DEFAULT);
|
||||
#endif // BUILDFLAG(IS_ANDROID)
|
||||
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxSettings4);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxSettings3);
|
||||
+SET_CROMITE_FEATURE_ENABLED(kDisablePrivacySandboxPrompts);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kEnforcePrivacySandboxAttestations);
|
||||
+SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxFirstPartySetsUI);
|
||||
@@ -112,21 +113,21 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/pr
|
||||
- prefs::kPrivacySandboxApisEnabled, true,
|
||||
+ prefs::kPrivacySandboxApisEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxApisEnabledV2, false);
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1ConsentDecisionMade,
|
||||
@@ -28,7 +28,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
false);
|
||||
@@ -27,7 +27,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false);
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled,
|
||||
false);
|
||||
- registry->RegisterBooleanPref(prefs::kPrivacySandboxM1Restricted, false);
|
||||
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxM1Restricted, true);
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxManuallyControlledV2,
|
||||
false);
|
||||
registry->RegisterTimePref(prefs::kPrivacySandboxTopicsDataAccessibleSince,
|
||||
base::Time());
|
||||
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) {
|
||||
@@ -135,18 +136,18 @@ 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_;
|
||||
}
|
||||
|
||||
-bool PrivacySandboxSettingsImpl::IsTopicsAllowed() const {
|
||||
+bool PrivacySandboxSettingsImpl::IsTopicsAllowed() const { // disabled in Bromite
|
||||
+ if ((true)) return false;
|
||||
// M1 specific
|
||||
if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings4)) {
|
||||
Status status = GetM1TopicAllowedStatus();
|
||||
@@ -287,7 +288,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext(
|
||||
IsPrivacySandboxEnabledForContext(top_frame_origin, url);
|
||||
Status status = GetM1TopicAllowedStatus();
|
||||
JoinHistogram(kIsTopicsAllowedHistogram, status);
|
||||
return IsAllowed(status);
|
||||
@@ -264,7 +265,8 @@ bool PrivacySandboxSettingsImpl::IsTopicsAllowedForContext(
|
||||
return IsAllowed(status);
|
||||
}
|
||||
|
||||
-bool PrivacySandboxSettingsImpl::IsTopicAllowed(const CanonicalTopic& topic) {
|
||||
@@ -155,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);
|
||||
|
||||
@@ -513,6 +515,7 @@ bool PrivacySandboxSettingsImpl::
|
||||
@@ -466,6 +468,7 @@ bool PrivacySandboxSettingsImpl::
|
||||
void PrivacySandboxSettingsImpl::SetFledgeJoiningAllowed(
|
||||
const std::string& top_frame_etld_plus1,
|
||||
bool allowed) {
|
||||
@@ -163,7 +164,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
|
||||
ScopedDictPrefUpdate scoped_pref_update(
|
||||
pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked);
|
||||
|
||||
@@ -583,7 +586,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings(
|
||||
@@ -536,7 +539,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings(
|
||||
}
|
||||
|
||||
bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed(
|
||||
@@ -173,28 +174,8 @@ 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();
|
||||
@@ -752,7 +756,8 @@ bool PrivacySandboxSettingsImpl::IsPrivateAggregationDebugModeAllowed(
|
||||
net::CookieSettingOverrides());
|
||||
}
|
||||
|
||||
-bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabled() const {
|
||||
+bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabled() const { // disabled in Bromite
|
||||
+ if ((true)) return false;
|
||||
PrivacySandboxSettingsImpl::Status status = GetPrivacySandboxAllowedStatus();
|
||||
if (!IsAllowed(status)) {
|
||||
return false;
|
||||
@@ -790,7 +795,8 @@ void PrivacySandboxSettingsImpl::SetTopicsBlockedForTesting() {
|
||||
pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, false);
|
||||
}
|
||||
|
||||
-void PrivacySandboxSettingsImpl::SetPrivacySandboxEnabled(bool enabled) {
|
||||
+void PrivacySandboxSettingsImpl::SetPrivacySandboxEnabled(bool enabled) { // disabled in Bromite
|
||||
+ enabled = false;
|
||||
pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, enabled);
|
||||
}
|
||||
|
||||
@@ -851,7 +857,10 @@ bool PrivacySandboxSettingsImpl::IsPrivacySandboxEnabledForContext(
|
||||
net::CookieSettingOverrides());
|
||||
@@ -782,7 +786,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting(
|
||||
delegate_ = std::move(delegate);
|
||||
}
|
||||
|
||||
-void PrivacySandboxSettingsImpl::SetTopicsDataAccessibleFromNow() const {
|
||||
@@ -205,7 +186,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo
|
||||
pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince,
|
||||
base::Time::Now());
|
||||
|
||||
@@ -864,6 +873,7 @@ PrivacySandboxSettingsImpl::Status
|
||||
@@ -795,6 +802,7 @@ PrivacySandboxSettingsImpl::Status
|
||||
PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
|
||||
const url::Origin& top_frame_origin,
|
||||
const GURL& url) const {
|
||||
@@ -213,5 +194,29 @@ 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
|
||||
@@ -809,6 +817,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus(
|
||||
PrivacySandboxSettingsImpl::Status
|
||||
PrivacySandboxSettingsImpl::GetPrivacySandboxAllowedStatus(
|
||||
bool should_ignore_restriction /*=false*/) const {
|
||||
+ if ((true)) return Status::kRestricted;
|
||||
if (delegate_->IsIncognitoProfile()) {
|
||||
return Status::kIncognitoProfile;
|
||||
}
|
||||
diff --git a/cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc b/cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/cromite_flags/third_party/blink/common/features_cc/Disable-FLoC-and-privacy-sandbox.inc
|
||||
@@ -0,0 +1 @@
|
||||
+SET_CROMITE_FEATURE_DISABLED(kFencedFrames);
|
||||
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
|
||||
@@ -2462,6 +2462,7 @@ bool IsAllowPageWithIDBConnectionAndTransactionInBFCacheEnabled() {
|
||||
}
|
||||
|
||||
bool IsAllowURNsInIframeEnabled() {
|
||||
+ if ((true)) return false; // see https://chromium-review.googlesource.com/c/chromium/src/+/3690741
|
||||
return base::FeatureList::IsEnabled(blink::features::kAllowURNsInIframes);
|
||||
}
|
||||
|
||||
--
|
||||
2.25.1
|
||||
|
||||
@@ -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
|
||||
@@ -1653,7 +1653,7 @@
|
||||
@@ -1570,7 +1570,7 @@
|
||||
{
|
||||
name: "FedCm",
|
||||
public: true,
|
||||
@@ -28,4 +28,3 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
|
||||
},
|
||||
{
|
||||
--
|
||||
2.25.1
|
||||
+8
-8
@@ -4,8 +4,8 @@ Subject: Disable Feeback Collector
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../browser/feedback/FeedbackCollector.java | 27 +++----------------
|
||||
1 file changed, 3 insertions(+), 24 deletions(-)
|
||||
.../browser/feedback/FeedbackCollector.java | 28 ++-----------------
|
||||
1 file changed, 3 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
||||
--- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/FeedbackCollector.java
|
||||
@@ -18,9 +18,9 @@ diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browse
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -64,30 +65,8 @@ public abstract class FeedbackCollector<T> implements Runnable {
|
||||
// Subclasses must invoke init() at construction time.
|
||||
protected void init(Activity activity, @Nullable ScreenshotSource screenshotTask, T initParams,
|
||||
@@ -69,31 +70,8 @@ public abstract class FeedbackCollector<T> implements Runnable {
|
||||
@Nullable ScreenshotSource screenshotTask,
|
||||
T initParams,
|
||||
Profile profile) {
|
||||
- // 1. Build all synchronous and asynchronous sources and determine the currently signed in
|
||||
- // account.
|
||||
@@ -29,8 +29,9 @@ diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browse
|
||||
- IdentityManager identityManager =
|
||||
- IdentityServicesProvider.get().getIdentityManager(profile);
|
||||
- if (identityManager != null) {
|
||||
- mAccountInUse = CoreAccountInfo.getEmailFrom(
|
||||
- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN));
|
||||
- mAccountInUse =
|
||||
- CoreAccountInfo.getEmailFrom(
|
||||
- identityManager.getPrimaryAccountInfo(ConsentLevel.SIGNIN));
|
||||
- }
|
||||
-
|
||||
- // Validation check in case a source is added to the wrong list.
|
||||
@@ -52,4 +53,3 @@ diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browse
|
||||
// 4. Kick off a task to timeout the async sources.
|
||||
ThreadUtils.postOnUiThreadDelayed(this, TIMEOUT_MS);
|
||||
--
|
||||
2.25.1
|
||||
@@ -0,0 +1,89 @@
|
||||
From: uazo <uazo@users.noreply.github.com>
|
||||
Date: Tue, 2 May 2023 15:26:46 +0000
|
||||
Subject: Disable FirstPartySets and StorageAccessAPI
|
||||
|
||||
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
|
||||
---
|
||||
.../first_party_sets/first_party_sets_navigation_throttle.cc | 2 +-
|
||||
.../first_party_sets/first_party_sets_policy_service.cc | 3 ++-
|
||||
.../browser/privacy_sandbox/privacy_sandbox_service_impl.cc | 2 +-
|
||||
components/privacy_sandbox/privacy_sandbox_prefs.cc | 2 +-
|
||||
components/privacy_sandbox/tracking_protection_prefs.cc | 4 ++--
|
||||
5 files changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc b/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc
|
||||
--- a/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc
|
||||
+++ b/chrome/browser/first_party_sets/first_party_sets_navigation_throttle.cc
|
||||
@@ -77,7 +77,7 @@ FirstPartySetsNavigationThrottle::MaybeCreateNavigationThrottle(
|
||||
// The `service` might be null for some irregular profiles.
|
||||
// TODO(https://crbug.com/1348572): regular profiles and guest sessions
|
||||
// aren't mutually exclusive on ChromeOS.
|
||||
- if (!profile->IsRegularProfile() || profile->IsGuestSession())
|
||||
+ if (((true)) || !profile->IsRegularProfile() || profile->IsGuestSession())
|
||||
return nullptr;
|
||||
|
||||
FirstPartySetsPolicyService* service =
|
||||
diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc b/chrome/browser/first_party_sets/first_party_sets_policy_service.cc
|
||||
--- a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc
|
||||
+++ b/chrome/browser/first_party_sets/first_party_sets_policy_service.cc
|
||||
@@ -58,6 +58,7 @@ const base::Value::Dict* GetOverridesPolicyForProfile(
|
||||
}
|
||||
|
||||
ServiceState GetServiceState(Profile* profile, bool pref_enabled) {
|
||||
+ if ((true)) return ServiceState::kPermanentlyDisabled;
|
||||
if (profile->IsSystemProfile() || profile->IsGuestSession() ||
|
||||
profile->IsOffTheRecord()) {
|
||||
return ServiceState::kPermanentlyDisabled;
|
||||
@@ -107,7 +108,7 @@ void FirstPartySetsPolicyService::Init() {
|
||||
profile, profile->GetPrefs() &&
|
||||
profile->GetPrefs()->GetBoolean(
|
||||
prefs::kPrivacySandboxRelatedWebsiteSetsEnabled));
|
||||
-
|
||||
+ service_state_ = ServiceState::kPermanentlyDisabled;
|
||||
if (service_state_ == ServiceState::kPermanentlyDisabled) {
|
||||
OnReadyToNotifyDelegates(net::FirstPartySetsContextConfig(),
|
||||
net::FirstPartySetsCacheFilter());
|
||||
diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
|
||||
--- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
|
||||
+++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc
|
||||
@@ -418,7 +418,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() {
|
||||
void PrivacySandboxServiceImpl::SetFirstPartySetsDataAccessEnabled(
|
||||
bool enabled) {
|
||||
pref_service_->SetBoolean(prefs::kPrivacySandboxRelatedWebsiteSetsEnabled,
|
||||
- enabled);
|
||||
+ false);
|
||||
}
|
||||
|
||||
bool PrivacySandboxServiceImpl::IsFirstPartySetsDataAccessEnabled() const {
|
||||
diff --git a/components/privacy_sandbox/privacy_sandbox_prefs.cc b/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
--- a/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
+++ b/components/privacy_sandbox/privacy_sandbox_prefs.cc
|
||||
@@ -51,7 +51,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kPrivacySandboxFirstPartySetsDataAccessAllowedInitialized, false);
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, true,
|
||||
+ prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, false, // must be disabled
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
|
||||
registry->RegisterBooleanPref(prefs::kPrivacySandboxTopicsConsentGiven,
|
||||
diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc
|
||||
--- a/components/privacy_sandbox/tracking_protection_prefs.cc
|
||||
+++ b/components/privacy_sandbox/tracking_protection_prefs.cc
|
||||
@@ -64,13 +64,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
|
||||
|
||||
// Tracking Protection Settings Prefs
|
||||
registry->RegisterBooleanPref(
|
||||
- prefs::kBlockAll3pcToggleEnabled, false,
|
||||
+ prefs::kBlockAll3pcToggleEnabled, false, // with true enables FPS
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
registry->RegisterIntegerPref(
|
||||
prefs::kTrackingProtectionLevel,
|
||||
static_cast<int>(TrackingProtectionLevel::kStandard),
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
- registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false);
|
||||
+ registry->RegisterBooleanPref(prefs::kTrackingProtection3pcdEnabled, false); // with true enables FPS
|
||||
registry->RegisterBooleanPref(
|
||||
prefs::kIpProtectionEnabled, false,
|
||||
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
|
||||
--
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user