diff --git a/VERSION.sh b/VERSION.sh
old mode 100644
new mode 100755
index 29c17dc7..783bb41d
--- a/VERSION.sh
+++ b/VERSION.sh
@@ -28,7 +28,7 @@ case $1 in
--help) displayHelp; exit 0;;
esac
-THOR_VER="109.0.5414.128"
+THOR_VER="110.0.5481.104"
export THOR_VER &&
diff --git a/logos/NEW/mac/gen/app/build_icns.sh b/logos/NEW/mac/gen/app/build_icns.sh
old mode 100644
new mode 100755
diff --git a/logos/NEW/mac/gen/document/build_icns.sh b/logos/NEW/mac/gen/document/build_icns.sh
old mode 100644
new mode 100755
diff --git a/other/Polly/setup_polly.sh b/other/Polly/setup_polly.sh
old mode 100644
new mode 100755
diff --git a/portable/THORIUM-PORTABLE b/portable/THORIUM-PORTABLE
index 3d5e894f..1c58f137 100755
--- a/portable/THORIUM-PORTABLE
+++ b/portable/THORIUM-PORTABLE
@@ -60,4 +60,4 @@ exec > >(exec cat)
exec 2> >(exec cat >&2)
# Note: exec -a below is a bashism.
-exec -a "$0" "$HERE/thorium" "--user-data-dir=$(pwd)/.config/thorium" "--no-default-browser-check" "--enable-experimental-web-platform-features" "--new-canvas-2d-api" "$@"
+exec -a "$0" "$HERE/thorium" "--user-data-dir=$(pwd)/.config/thorium" "--enable-experimental-web-platform-features" "--new-canvas-2d-api" "$@"
diff --git a/portable/THORIUM-SHELL b/portable/THORIUM-SHELL
index 17a87ec7..f6c0d10c 100755
--- a/portable/THORIUM-SHELL
+++ b/portable/THORIUM-SHELL
@@ -2,4 +2,4 @@
# Copyright (c) 2022 Alex313031
-./thorium_shell --data-path=$(pwd)/.config/thorium-shell --no-default-browser-check --enable-experimental-web-platform-features --new-canvas-2d-api --enable-clear-hevc-for-testing $@
+./thorium_shell --data-path=$(pwd)/.config/thorium-shell --enable-experimental-web-platform-features --new-canvas-2d-api --enable-clear-hevc-for-testing $@
diff --git a/portable/THORIUM.BAT b/portable/THORIUM.BAT
index da841653..21fa625b 100644
--- a/portable/THORIUM.BAT
+++ b/portable/THORIUM.BAT
@@ -1 +1 @@
-START "" "%cd%\BIN\thorium.exe" --user-data-dir="%~dp0%\USER_DATA" --no-default-browser-check --allow-outdated-plugins --disable-logging --disable-breakpad --enable-experimental-web-platform-features --new-canvas-2d-api
+START "" "%cd%\BIN\thorium.exe" --user-data-dir="%~dp0%\USER_DATA" --allow-outdated-plugins --disable-logging --disable-breakpad --enable-experimental-web-platform-features --new-canvas-2d-api
diff --git a/portable/THORIUM_SHELL.BAT b/portable/THORIUM_SHELL.BAT
index f0e344bb..d2bb66e4 100644
--- a/portable/THORIUM_SHELL.BAT
+++ b/portable/THORIUM_SHELL.BAT
@@ -1 +1 @@
-START "" "%cd%\BIN\106.0.5237.0\thorium_shell.exe" --data-path="%~dp0%\USER_DATA\thorium_shell" --no-default-browser-check --allow-outdated-plugins --disable-logging --disable-breakpad --enable-experimental-web-platform-features --new-canvas-2d-api
+START "" "%cd%\BIN\106.0.5237.0\thorium_shell.exe" --data-path="%~dp0%\USER_DATA\thorium_shell" --allow-outdated-plugins --disable-logging --disable-breakpad --enable-experimental-web-platform-features --new-canvas-2d-api
diff --git a/src/build/vs_toolchain.py b/src/build/vs_toolchain.py
old mode 100644
new mode 100755
diff --git a/src/chrome/app/chromium_strings.grd b/src/chrome/app/chromium_strings.grd
index 3b4e69b6..ed3315af 100644
--- a/src/chrome/app/chromium_strings.grd
+++ b/src/chrome/app/chromium_strings.grd
@@ -996,6 +996,15 @@ Permissions you've already given to websites and apps may apply to this account.
Thorium is using your camera.
+
+
+
+ {NUM_DEVICES, plural,
+ =1 {Thorium is connected to a HID device}
+ other {Thorium is connected to HID devices}}
+
+
+
diff --git a/src/chrome/app/generated_resources.grd b/src/chrome/app/generated_resources.grd
index 2c2fb450..29dc345f 100644
--- a/src/chrome/app/generated_resources.grd
+++ b/src/chrome/app/generated_resources.grd
@@ -1,5 +1,5 @@
-
+
@@ -2595,6 +2583,10 @@ are declared in tools/grit/grit_rule.gni.
desc="Label for the Delete button on the blocked download bubble subpage.">
Delete
+
+ $1bla.exe $2blocked dangerous more details
+
Resume
@@ -2764,41 +2756,81 @@ are declared in tools/grit/grit_rule.gni.
Anyone using this device can see downloaded files
+ desc="Tooltip label for action to resume a download.">
Resume
+
+ Resume $1bla.exe
+
+ desc="Tooltip label for action to pause a download.">
Pause
+
+ Pause $1bla.exe
+
+ desc="Tooltip label for action to cancel a download.">
Cancel
+
+ Cancel $1bla.exe
+
+ desc="Tooltip label for action to open a download.">
Open
+
+ Open $1bla.exe
+
+ desc="Mac: Tooltip label for showing the file in the Finder">
Show in Finder
+
+ Show $1bla.exe in Finder
+
+ desc="Tooltip label for showing the file in file explorer">
Show in folder
+
+ Show $1bla.exe in folder
+
+ desc="In Title Case: Tooltip label for showing the file in file explorer">
Show in Folder
+
+ Show $1bla.exe in Folder
+
+
+
+ Back to recent downloads
+
+
+
+
+ Back to Recent Downloads
+
+
+
+
+ Casting this tab
+
+
+ Casting a tab
+
+
+ Casting $1youtube.com
+
+
+ Cast this tab instead
+
+
+ Stop casting
+
@@ -5028,18 +5076,6 @@ are declared in tools/grit/grit_rule.gni.
Click to allow on $1google.com:
-
- Always allow "$1Gmail Checker" to run on $2google.com?
-
-
- Always allow these extensions to run on $1google.com?
-
-
- Always allow
-
-
- No thanks
-
Allowed to read & change
@@ -5504,6 +5540,24 @@ Keep your key file in a safe place. You will need it to create new versions of y
+
+
+ Ask your admin to update this app
+
+
+ Thorium Apps are migrating to Progressive Web Apps. This Thorium App was installed on your browser by your organization. To open the Progressive Web App from the Apps list, first contact your administrator and ask them to uninstall the Thorium App. In the meantime, you can visit $1sheets.google.com to open $2Google Sheets on the web.
+
+
+
+ Go To Site
+
+
+
+
+ Go to site
+
+
+
$12 apps are no longer supported
@@ -5637,6 +5691,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
Discover more extensions
+
+ Requests access
+
@@ -5969,6 +6026,20 @@ Keep your key file in a safe place. You will need it to create new versions of y
In Google Password Manager for $1user@gmail.com
+
+
+ Google Password Manager • $1user@gmail.com
+
+
+ To your Google Account, for $1user@gmail.com
+
+
+ In your Google Account, for $1user@gmail.com
+
+
+ Only on this device
+
+
Sign In
@@ -6596,6 +6667,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
Doodle Link
+
+ Appearance
+
Background
@@ -6614,6 +6688,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
Classic Thorium
+
+ Uploaded image
+
Upload from device
@@ -6623,6 +6700,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
Don't show shortcuts on this page
+
+ Show shortcuts
+
My shortcuts
@@ -7049,12 +7129,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
Got extensions? <a href="chrome://extensions">Manage your extensions</a> in one easy place.
-
-
- Top sites
-
-
-
@@ -7085,11 +7159,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
-
-
- {NUM_BOOKMARKS, plural, =1 {1 bookmark} other {# bookmarks}}
-
-
@@ -7171,9 +7240,6 @@ Keep your key file in a safe place. You will need it to create new versions of y
-
- $1All Bookmarks ($2Newest)
-
Sort by $1Newest
@@ -7195,8 +7261,35 @@ Keep your key file in a safe place. You will need it to create new versions of y
Z to A
+
+ Visual view
+
+
+ Compact view
+
- Sort Options
+ View List Options
+
+
+ Create New Folder
+
+
+ Edit Bookmark List
+
+
+ You'll find your bookmarks here
+
+
+ Bookmark things you want to come back to later
+
+
+ Sign in to see your bookmarks
+
+
+ Bookmarks are unavailable in guest mode
+
+
+ {NUM_BOOKMARKS, plural, =1 {1 bookmark} other {# bookmarks}}
@@ -7262,7 +7355,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
Press to go back, context menu to see history
- Enable featured experiments
+ Enable featured Thorium experiments
Toggle left aligned side panel
@@ -7719,6 +7812,9 @@ Keep your key file in a safe place. You will need it to create new versions of y
+
+ Nicely Done!
+
Right-click on a tab and select "Add Tab To New Group"
@@ -7755,6 +7851,23 @@ Keep your key file in a safe place. You will need it to create new versions of y
Try using tab groups to organize tasks, for online shopping, and more
+
+
+ Click the side panel icon to open it
+
+
+ Now add the current tab to your list
+
+
+ Select “Mark as read” to move the page to the bottom of your list
+
+
+ Click the drop down to choose another panel
+
+
+ Try using the side panel for bookmarks, journeys, and more
+
+
@@ -8021,9 +8134,6 @@ Check your passwords anytime in $1Google
Update
-
- Update...
-
Continue
@@ -8440,6 +8550,12 @@ Check your passwords anytime in $1Google
Previous track
+
+ Previous slide
+
+
+ Next slide
+
@@ -8781,6 +8897,9 @@ Check your passwords anytime in $1Google
+
+ Tab-group title
+
Save group
@@ -9052,7 +9171,7 @@ Check your passwords anytime in $1Google
- Not from the Thorium Web Store.
+ Not from Thorium Web Store.
Installed by a third party.
@@ -10181,11 +10300,11 @@ Check your passwords anytime in $1Google
Autofill
-
- History
+
+ Extensions
-
- Extensions and more
+
+ History and more
You can always choose what to sync in settings. Google may personalize Search and other services based on your history.
@@ -11507,9 +11626,12 @@ Please help our engineers fix this problem. Tell us what happened right before y
Microphone is turned off in Mac System Preferences
-
+
Open Preferences
+
+ Open Settings
+
Camera
@@ -11874,9 +11996,6 @@ Please help our engineers fix this problem. Tell us what happened right before y
Remove the suggestion $1Harry Potter
-
- Append the suggestion $1Harry Potter to search box
-
New tab
@@ -12284,6 +12403,9 @@ Please help our engineers fix this problem. Tell us what happened right before y
Camera
+
+ Geolocation
+
File Info
@@ -12304,6 +12426,22 @@ Please help our engineers fix this problem. Tell us what happened right before y
$1Nexus 5 detected
+
+
+
+ An extension is using a HID device
+
+
+ Click to manage permissions for "$1Google Translate"
+
+
+ Manage HID devices
+
+
+ Manage HID devices for $1Nina@gmail.com
+
+
+
@@ -12652,6 +12790,18 @@ Please help our engineers fix this problem. Tell us what happened right before y
Thorium is being controlled by automated test software.
+
+
+ Thorium for Testing v
+ $1109.0.5369.0
+ is only for automated testing. For regular browsing, use a standard version of Thorium that updates automatically.
+
+
+
+
+ Download Thorium
+
+
@@ -12936,6 +13086,12 @@ Please help our engineers fix this problem. Tell us what happened right before y
This device doesn't support the type of security key requested by this website
+
+ No passkeys available
+
+
+ There aren't any passkeys for $1google.com on this device
+
Turn on Bluetooth?
@@ -13472,6 +13628,11 @@ Please help our engineers fix this problem. Tell us what happened right before y
Open now
+
+
+ Get more protection against dangerous websites and downloads
+
+
Enhanced Safe Browsing is on
@@ -13759,14 +13920,8 @@ Please help our engineers fix this problem. Tell us what happened right before y
- Drag over any image to search
-
-
Select image area to search
-
- Select any part of the page to search
-
Thumbnail tab strip for tablet mode
@@ -13980,69 +14135,157 @@ Please help our engineers fix this problem. Tell us what happened right before y
Settings
-
-
-
- Assistant
-
-
- Automatic password change
-
-
- Let Google Assistant help you change your password
-
-
- Google Assistant in Thorium can complete actions across websites for you
-
-
- To help you complete tasks, Google will receive the URLs and contents of sites on which you use Assistant, as well as information you submit through Assistant. This information may be stored in your Google Account. You can turn off Assistant in Thorium settings. $1Learn more
-
-
- Learn more
-
-
- Learn more about automatic password change
-
-
- Cancel
-
-
- I agree
-
-
- Opening $1example.com...
-
-
- Successfully changed the compromised password
-
-
- Check your email to choose a new password
-
-
- Check your passwords anytime in $1Google Password Manager.
-
-
- Done
-
-
- OK
-
-
- Something went wrong.
-
-
- Check the site and try changing your password.
-
-
- Try again
-
-
- Your password didn't change. To change it, try again and leave this tab and side panel open. $1Try again
-
-
- Google Assistant stopped
-
-
+
+
+ Lorem ipsum Consent
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pretium pulvinar metus non mollis. Quisque placerat eget nisl sit amet facilisis.
+
+
+ Nulla in tortor a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit. Integer et libero id metus egestas consequat non a ipsum.
+
+
+ Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu, elementum ut venenatis ornare, consequat ac turpis.
+
+
+ Vestibulum orci risus, consectetur
+
+
+ Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu, elementum ut venenatis ornare, consequat ac turpis.
+
+
+ Consectetur
+
+
+ Quisque
+
+
+ Lorem
+
+
+ Esed purus vestibulum velit convalli
+
+
+ <b>Nulla in tortor: </b> a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
+
+
+ <b>Consectetur adipiscing elit:</b> Duis pretium pulvinar metus non mollis
+
+
+ <b>Sed purus vestibulum:</b> velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
+
+
+ Esed purus vestibulum velit convalli
+
+
+ Sed ullamcorper, ligula ac tempus venenatis
+
+
+
+ Lorem ipsum Notice EEA
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pretium pulvinar metus non mollis. Quisque placerat eget nisl sit amet facilisis.
+
+
+ Nulla in tortor: a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
+
+
+ Sed purus vestibulum: velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
+
+
+ Vestibulum orci risus, consectetur
+
+
+ Consectetur adipiscing elit duis pretium pulvinar metus non mollis
+
+
+ Sed
+
+
+ Cras id
+
+
+ Esed purus vestibulum velit convalli
+
+
+ Nulla in tortor a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit. Integer et libero id metus egestas consequat non a ipsum.
+
+
+ Proin sed purus vestibulum velit velit eget dapibus.
+
+
+ <b>Nulla in tortor:</b> a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit.
+
+
+ <b>Consectetur adipiscing elit:</b> Duis pretium pulvinar metus non mollis
+
+
+ <b>Sed purus vestibulum:</b> velit convallis suscipit. Aenean aliquam ut velit eget dapibus. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
+
+
+
+ Lorem ipsum Notice ROW
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis pretium pulvinar metus non mollis.
+
+
+ Nulla in tortor a ligula scelerisque laoreet. Sed sem velit, varius non purus vitae, imperdiet porttitor elit. Integer et libero id metus egestas consequat non a ipsum. Quisque placerat eget nisl sit amet facilisis.
+
+
+ Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu, elementum ut venenatis ornare, consequat ac turpis. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
+
+
+ Proin sed purus vestibulum velit convallis suscipit eget dapibus.
+
+
+ Sed
+
+
+ Cras id
+
+
+ Vestibulum orci risus consectetur
+
+
+ Esed purus vestibulum velit convalli
+
+
+ Etiam dictum sem et neque molestie lobortis. Morbi quam tellus, tincidunt eget dapibus ac, lobortis et lacus. Integer nec egestas elit. Nulla venenatis facilisis dui eget suscipit.
+
+
+ Class aptent taciti sociosqu ad
+
+
+ Vestibulum pretium placerat justo vel suscipit. Quisque urna arcu.
+
+
+ Sed elementum tellus condimentum quam vestibulum lacinia. Ut eu lobortis massa, venenatis sodales lacus. Nulla elementum magna et tortor efficitur, at volutpat metus varius.
+
+
+ Duis tempor nulla nisi, ac bibendum lorem tempus sit amet. Proin non blandit risus. Maecenas facilisis enim nec tristique tristique. Eelementum ut venenatis ornare, consequat ac turpis. Vestibulum orci risus, consectetur non odio vulputate, mattis dignissim purus. Cras id tempor mi.
+
+
+ Etiam hendrerit turpis nibh, ac maximus lectus placerat at. Vivamus ligula quam, posuere luctus felis eu, dictum egestas arcu. per conubia nostra, per inceptos himenaeos. Cras ut metus vel est molestie finibus nec ut orci.
+
+
+ Aliquam euismod scelerisque metus, in aliquet est vehicula ut. Curabitur sit amet ligula quis ante maximus gravida non id magna. Pellentesque interdum venenatis leo, at ultrices felis mollis nec. Integer vulputate velit eget mauris lacinia, ut ullamcorper mauris vehicula.
+
+
+ Orci varius natoque penatibus et
+
+
+ Suspendisse at dui pulvinar, rhoncus orci at, porttitor nibh. Curabitur lacinia nulla sem, eu euismod dolor vulputate quis. Duis mattis eros et arcu elementum tempor. Duis pharetra eleifend sagittis.
+
+
+ Cras sed lacus suscipit, efficitur erat nec, semper sapien. Fusce at nunc molestie, elementum augue at, auctor nunc. Sed dui nisi, consectetur sit amet urna vitae, facilisis scelerisque justo.
+
+
+ Ut venenatis magna nec lacus facilisis
+
+
diff --git a/src/chrome/app/settings_strings.grdp b/src/chrome/app/settings_strings.grdp
index 8b4375d5..4cf2ce57 100644
--- a/src/chrome/app/settings_strings.grdp
+++ b/src/chrome/app/settings_strings.grdp
@@ -1,5 +1,5 @@
-
+
@@ -8,6 +8,9 @@
Continue
+
+ Got it
+
More actions
@@ -699,9 +702,6 @@
When you edit your passkey, your $1relyingPartyId account won't change
-
- Got it
-
Saved addresses will appear here
@@ -893,6 +893,9 @@
Password is more than 1000 characters
+
+ Note is more than 1000 characters
+
A password for this account is already saved to your Google Password Manager (elisa.g.becket@gmail.com$1)
@@ -1002,8 +1005,8 @@
-
- Use TouchID when filling passwords
+
+ Use your screen lock when filling passwords
@@ -1537,6 +1540,9 @@
No languages added
+
+ Remove $1Swahili
+
Google Translate
@@ -1546,8 +1552,14 @@
Automatically translate these languages
+
+ Add languages to automatically translate
+
- Don’t offer to translate these languages
+ Never offer to translate these languages
+
+
+ Add languages to never offer translation
Spell check
@@ -1622,6 +1634,50 @@
+
+
+ Preload pages
+
+
+ Choose whether to preload pages
+
+
+ No preloading
+
+
+ Pages load only after you open them.
+
+
+ Standard preloading
+
+
+ Some of the pages you visit are preloaded.
+
+
+ Browsing and searching is faster.
+
+
+ Thorium preloads pages you're likely to visit, so that they load more quickly when you visit them.
+
+
+ Extended preloading
+
+
+ More pages are preloaded. Pages may be preloaded through Google servers when requested by other sites.
+
+
+ Browsing and searching is faster than standard preloading.
+
+
+ Thorium preloads even more pages that you're likely to visit, so that they load more quickly when you visit them.
+
+
+ When a site asks to privately preload links on their page, Thorium uses Google servers. This hides your identity from the preloaded site, but Google learns what sites get preloaded.
+
+
+ If you allow cookies, Thorium may use them when preloading.
+
+
Privacy and security
@@ -1758,17 +1814,111 @@
Spam and fraud reduction
-
- Spam & fraud reduction relies on trust tokens to help sites fight fraud and distinguish bots from people.
+
+ Spam & fraud reduction relies on private state tokens to help sites fight fraud and distinguish bots from people.
-
- When trials are on, Spam & fraud reduction relies on trust tokens to help sites fight fraud and distinguish bots from people.
+
+ When trials are on, Spam & fraud reduction relies on private state tokens to help sites fight fraud and distinguish bots from people.
-
- Based on your interaction with a site, like regularly signing in to an account, that site can issue a trust token to your browser. Later, if other sites you visit check for and find a valid trust token, they're more likely to treat you like a person and not a bot.
+
+ Based on your interaction with a site, like regularly signing in to an account, that site can issue a private state token to your browser. Later, if other sites you visit check for and find a valid private state token, they're more likely to treat you like a person and not a bot.
- Trust tokens improve privacy on the web and can't be used to find out who you are.
+ Private state tokens improve privacy on the web and can't be used to find out who you are.
+
+
+
+
+ Donec semper
+
+
+ Fusce purus nibh, dictum sit amet mi in, fringilla ullamcorper tortor
+
+
+
+
+ Donec semper
+
+
+ Mauris interdum lectus vitae lacinia
+
+
+ Enabled Nulla eros tortor, placerat blandit dictum a, interdum id metus
+
+
+ Disabled Nulla eros tortor, placerat blandit dictum a, interdum id metus
+
+
+ Aenean erat leo
+
+
+ Enabled Duis scelerisque a mi eget ultricies
+
+
+ Disabled Duis scelerisque a mi eget ultricies
+
+
+ Vestibulum augue erat
+
+
+ Enabled Vivamus id lacus et lacus porttitor vulputate. Sed semper egestas orci vel maximus.
+
+
+ Disabled Vivamus id lacus et lacus porttitor vulputate. Sed semper egestas orci vel maximus.
+
+
+
+
+ Mauris interdum lectus vitae lacinia
+
+
+ Nunc gravida condimentum consectetur
+
+
+ Vivamus nibh turpis, varius quis nisi vel, porta laoreet tellus. Mauris porta imperdiet venenatis
+
+
+ Mauris at lectus
+
+
+ Nulla tincidunt iaculis nulla, sit amet viverra massa luctus nec. Integer eget pellentesque magna, et venenatis lorem. Integer a porta elit. Eget bibendum neque.
+
+
+ Sed porta viverra lacus ut euismod. Integer a cursus metus, ac ultricies libero.
+
+
+ Curabitur sagittis sapien ut turpis interdum, vitae porttitor sem pretium. Vestibulum sem mauris, ultrices ac massa sit amet, sodales aliquet est.
+
+
+
+
+ Aenean erat leo
+
+
+
+
+ Vestibulum augue
+
+
+ Vestibulum augue erat
+
+
+ Vestibulum eleifend nunc a viverra congue. Integer nec mauris rutrum, porta mauris et, pellentesque ligula. Nam et pulvinar eros, in gravida nisl.
+
+
+ Mauris
+
+
+ Aenean
+
+
+ Praesent sodales, magna eget volutpat iaculis, justo odio viverra justo, id venenatis est est sit amet ex
+
+
+ Nunc metus est, faucibus sit amet lacus sit amet, aliquet rutrum libero. Maecenas vel euismod ante.
+
+
+ Mauris mattis urna elit. Phasellus quis erat sapien. Praesent finibus pellentesque iaculis. Mauris hendrerit metus at enim rhoncus bibendum.
@@ -1972,8 +2122,49 @@
Review
-
- Permissions removed from unused websites
+
+ Allow permissions again for $1website.com
+
+
+ Allow again
+
+
+ Review removed permissions
+
+
+ {NUM_SITES, plural,
+ =1 {Permissions removed from <b>1 site</b> you haven’t visited in a while}
+ other {Permissions removed from <b>{NUM_SITES} sites</b> you haven’t visited in a while}}
+
+
+ Removed $1location
+
+
+ Removed $1location, $2notifications
+
+
+ Removed $1location, $2notifications, $3camera
+
+
+ Removed $1location, $2notifications, and $32 more
+
+
+ {NUM_SITES, plural,
+ =1 {Permissions removed for 1 site}
+ other {Permissions removed for {NUM_SITES} sites}}
+
+
+ {NUM_SITES, plural,
+ =1 {To protect your data, permissions were removed from a site you haven't visited in 2 months}
+ other {To protect your data, permissions were removed from sites you haven't visited in 2 months}}
+
+
+ {NUM_SITES, plural,
+ =1 {Review complete for 1 site}
+ other {Review complete for {NUM_SITES} sites}}
+
+
+ Permissions allowed again for $1www.example.com
Updates
@@ -2040,11 +2231,16 @@
{NUM_SITES, plural,
- =1 {Review 1 site that recently sent a lot of notifications}
- other {Review {NUM_SITES} sites that recently sent a lot of notifications}}
+ =1 {Review 1 site that sent a lot of notifications}
+ other {Review {NUM_SITES} sites that sent a lot of notifications}}
+
+
+ Review notification permissions
- These sites sent a lot of notifications recently. You can stop them from sending future notifications.
+ {NUM_SITES, plural,
+ =1 {This site sent a lot of notifications recently. You can stop it from sending future notifications.}
+ other {These sites sent a lot of notifications recently. You can stop them from sending future notifications.}}
Notifications allowed for $1www.example.com
@@ -2060,9 +2256,6 @@
=1 {About 1 notification a day}
other {About {NUM_NOTIFICATION} notifications a day}}
-
- All done for now
-
Don't allow
@@ -2084,9 +2277,6 @@
More actions for $1website.com
-
- Undo
-
{NUM_SITES, plural,
=1 {Review <b>1 site</b> that recently sent a lot of notifications}
@@ -2100,6 +2290,12 @@
=1 {Notifications not allowed for 1 site}
other {Notifications not allowed for {NUM_SITES} sites}}
+
+ All done for now
+
+
+ Undo
+
Device software
@@ -2232,7 +2428,7 @@
Permissions and content settings
-
+
Controls what information sites can use and show (location, camera, pop-ups, and more)
Determines how to connect to websites over a secure connection
+
+
+ Determines how to connect to websites over a secure connection. This uses a managed service provider at $1https://dns.example.net/dns-query{?dns}
+
+
With your current service provider
@@ -2392,6 +2593,9 @@
Reset all settings
+
+ Learn more about resetting settings
+
@@ -3781,6 +3985,9 @@
Encrypt synced data with your own <a href="$1" target="_blank"><a href="$1" target="_blank">sync passphrase</a></a>. This doesn't include payment methods and addresses from Google Pay.
+
+ Encrypt synced data with your own <a href="$1" target="_blank"><a href="$1" target="_blank">sync passphrase</a></a>. Payment methods and addresses from Google Pay won’t be encrypted. Browsing history from Thorium won’t sync.
+
Only someone with your passphrase can read your encrypted data. The passphrase is not sent to or stored by Google. If you forget your passphrase or want to change this setting, you'll need to <a href="$1" target="_blank"><a href="$1" target="_blank">reset sync</a></a>.
@@ -4327,6 +4534,7 @@
Manage phones
+
Control which phones you use as security keys
diff --git a/src/chrome/app/shared_settings_strings.grdp b/src/chrome/app/shared_settings_strings.grdp
index ec049d2c..109748bb 100644
--- a/src/chrome/app/shared_settings_strings.grdp
+++ b/src/chrome/app/shared_settings_strings.grdp
@@ -1,5 +1,5 @@
-
+
diff --git a/src/chrome/browser/background/background_mode_manager.cc b/src/chrome/browser/background/background_mode_manager.cc
index c4c4a327..a9401857 100644
--- a/src/chrome/browser/background/background_mode_manager.cc
+++ b/src/chrome/browser/background/background_mode_manager.cc
@@ -24,7 +24,7 @@
#include "base/metrics/user_metrics.h"
#include "base/one_shot_event.h"
#include "base/strings/utf_string_conversions.h"
-#include "base/threading/thread_task_runner_handle.h"
+#include "base/task/single_thread_task_runner.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/app/chrome_command_ids.h"
@@ -681,7 +681,7 @@ void BackgroundModeManager::ReleaseStartupKeepAlive() {
// keep-alive (which can shutdown Chrome) before the message loop has
// started. This object reference is safe because it's going to be kept
// alive by the browser process until after the callback is called.
- base::ThreadTaskRunnerHandle::Get()->PostTask(
+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE,
base::BindOnce(&BackgroundModeManager::ReleaseStartupKeepAliveCallback,
base::Unretained(this)));
@@ -694,7 +694,7 @@ void BackgroundModeManager::ReleaseForceInstalledExtensionsKeepAlive() {
// keep-alive (which can shutdown Chrome) before the message loop has
// started. This object reference is safe because it's going to be kept
// alive by the browser process until after the callback is called.
- base::ThreadTaskRunnerHandle::Get()->PostTask(
+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE, base::BindOnce(
[](std::unique_ptr keep_alive) {
// Cleans up unique_ptr when it goes out of scope.
diff --git a/src/chrome/browser/net/stub_resolver_config_reader.cc b/src/chrome/browser/net/stub_resolver_config_reader.cc
index ba410e8d..70791249 100644
--- a/src/chrome/browser/net/stub_resolver_config_reader.cc
+++ b/src/chrome/browser/net/stub_resolver_config_reader.cc
@@ -42,6 +42,11 @@
#include "chrome/browser/enterprise/util/android_enterprise_info.h"
#endif
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+#include "chrome/browser/ash/net/dns_over_https/templates_uri_resolver_impl.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
+#endif
+
#if BUILDFLAG(IS_WIN)
#include "base/enterprise_util.h"
#include "base/win/win_util.h"
@@ -173,6 +178,11 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
pref_change_registrar_.Add(prefs::kDnsOverHttpsTemplates, pref_callback);
pref_change_registrar_.Add(prefs::kAdditionalDnsQueryTypesEnabled,
pref_callback);
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ pref_change_registrar_.Add(prefs::kDnsOverHttpsTemplatesWithIdentifiers,
+ pref_callback);
+ pref_change_registrar_.Add(prefs::kDnsOverHttpsSalt, pref_callback);
+#endif
parental_controls_delay_timer_.Start(
FROM_HERE, kParentalControlsCheckDelay,
@@ -201,6 +211,11 @@ void StubResolverConfigReader::RegisterPrefs(PrefRegistrySimple* registry) {
registry->RegisterStringPref(prefs::kDnsOverHttpsMode, std::string());
registry->RegisterStringPref(prefs::kDnsOverHttpsTemplates, std::string());
registry->RegisterBooleanPref(prefs::kAdditionalDnsQueryTypesEnabled, true);
+#if BUILDFLAG(IS_CHROMEOS)
+ registry->RegisterStringPref(prefs::kDnsOverHttpsTemplatesWithIdentifiers,
+ std::string());
+ registry->RegisterStringPref(prefs::kDnsOverHttpsSalt, std::string());
+#endif
}
SecureDnsConfig StubResolverConfigReader::GetSecureDnsConfiguration(
@@ -360,8 +375,15 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
net::DnsOverHttpsConfig doh_config;
if (secure_dns_mode != net::SecureDnsMode::kOff) {
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+ ash::dns_over_https::TemplatesUriResolverImpl doh_template_uri_resolver;
+ doh_template_uri_resolver.UpdateFromPrefs(local_state_);
+ doh_config = net::DnsOverHttpsConfig::FromStringLax(
+ doh_template_uri_resolver.GetEffectiveTemplates());
+#else
doh_config = net::DnsOverHttpsConfig::FromStringLax(
local_state_->GetString(prefs::kDnsOverHttpsTemplates));
+#endif
}
if (update_network_service) {
content::GetNetworkService()->ConfigureStubHostResolver(
@@ -384,3 +406,16 @@ void StubResolverConfigReader::OnAndroidOwnedStateCheckComplete(
UpdateNetworkService(false /* record_metrics */);
}
#endif
+
+#if BUILDFLAG(IS_CHROMEOS_ASH)
+absl::optional
+StubResolverConfigReader::GetDohWithIdentifiersDisplayServers() {
+ ash::dns_over_https::TemplatesUriResolverImpl doh_template_uri_resolver;
+ doh_template_uri_resolver.UpdateFromPrefs(local_state_);
+
+ if (doh_template_uri_resolver.GetDohWithIdentifiersActive())
+ return doh_template_uri_resolver.GetDisplayTemplates();
+
+ return absl::nullopt;
+}
+#endif
diff --git a/src/chrome/browser/ui/startup/default_browser_infobar_delegate.cc b/src/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
index 346e03a9..bafadbe7 100644
--- a/src/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
+++ b/src/chrome/browser/ui/startup/default_browser_infobar_delegate.cc
@@ -10,7 +10,7 @@
#include "base/callback_helpers.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
-#include "base/threading/thread_task_runner_handle.h"
+#include "base/task/single_thread_task_runner.h"
#include "chrome/browser/infobars/confirm_infobar_creator.h"
#include "chrome/browser/ui/startup/default_browser_prompt.h"
#include "chrome/grit/chromium_strings.h"
@@ -31,7 +31,7 @@ DefaultBrowserInfoBarDelegate::DefaultBrowserInfoBarDelegate(Profile* profile)
: profile_(profile) {
// We want the info-bar to stick-around for few seconds and then be hidden
// on the next navigation after that.
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
+ base::SingleThreadTaskRunner::GetCurrentDefault()->PostDelayedTask(
FROM_HERE,
base::BindOnce(&DefaultBrowserInfoBarDelegate::AllowExpiry,
weak_factory_.GetWeakPtr()),
diff --git a/src/chrome/browser/ui/startup/infobar_utils.cc b/src/chrome/browser/ui/startup/infobar_utils.cc
index 9cefe23f..ca64806b 100644
--- a/src/chrome/browser/ui/startup/infobar_utils.cc
+++ b/src/chrome/browser/ui/startup/infobar_utils.cc
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors and Alex313031. All rights reserved.
+// Copyright 2023 The Chromium Authors and Alex313031
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -8,6 +8,7 @@
#include "build/buildflag.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/chrome_for_testing/buildflags.h"
#include "chrome/browser/obsolete_system/obsolete_system.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
@@ -26,6 +27,10 @@
#include "content/public/common/content_switches.h"
#include "google_apis/google_api_keys.h"
+#if BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING)
+#include "chrome/browser/ui/startup/chrome_for_testing_infobar_delegate.h"
+#endif
+
namespace {
bool ShouldShowBadFlagsSecurityWarnings() {
#if !BUILDFLAG(IS_CHROMEOS_ASH)
@@ -70,8 +75,22 @@ void AddInfoBarsIfNecessary(Browser* browser,
// Show the Automation info bar unless it has been disabled by policy.
bool show_bad_flags_security_warnings = ShouldShowBadFlagsSecurityWarnings();
- if (IsAutomationEnabled() && show_bad_flags_security_warnings) {
- AutomationInfoBarDelegate::Create();
+
+ content::WebContents* web_contents =
+ browser->tab_strip_model()->GetActiveWebContents();
+ DCHECK(web_contents);
+
+ infobars::ContentInfoBarManager* infobar_manager =
+ infobars::ContentInfoBarManager::FromWebContents(web_contents);
+
+ if (show_bad_flags_security_warnings) {
+#if BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING)
+ // TODO(crbug.com/1336611): Switch to a global infobar.
+ ChromeForTestingInfoBarDelegate::Create(infobar_manager);
+#endif
+
+ if (IsAutomationEnabled())
+ AutomationInfoBarDelegate::Create();
}
// Do not show any other info bars in Kiosk mode, because it's unlikely that
@@ -103,16 +122,9 @@ void AddInfoBarsIfNecessary(Browser* browser,
return;
infobars_shown = true;
- content::WebContents* web_contents =
- browser->tab_strip_model()->GetActiveWebContents();
- DCHECK(web_contents);
-
if (show_bad_flags_security_warnings)
chrome::ShowBadFlagsPrompt(web_contents);
- infobars::ContentInfoBarManager* infobar_manager =
- infobars::ContentInfoBarManager::FromWebContents(web_contents);
-
#if !BUILDFLAG(IS_CHROMEOS_ASH)
if (!is_web_app &&
!startup_command_line.HasSwitch(switches::kNoDefaultBrowserCheck)) {
diff --git a/src/chrome/common/chrome_constants.cc b/src/chrome/common/chrome_constants.cc
index 037a97ba..9a54b7ab 100644
--- a/src/chrome/common/chrome_constants.cc
+++ b/src/chrome/common/chrome_constants.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2022 The Chromium Authors and Alex313031. All rights reserved.
+// Copyright (c) 2022 The Chromium Authors and Alex313031
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -7,6 +7,7 @@
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
+#include "chrome/browser/chrome_for_testing/buildflags.h"
#include "chrome/common/chrome_version.h"
#define FPL FILE_PATH_LITERAL
@@ -14,6 +15,8 @@
#if BUILDFLAG(IS_MAC)
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
#define PRODUCT_STRING "Thorium"
+#elif BUILDFLAG(USE_INTERNAL_CHROME_FOR_TESTING_ICONS)
+#define PRODUCT_STRING "Thorium for Testing"
#elif BUILDFLAG(CHROMIUM_BRANDING)
#define PRODUCT_STRING "Thorium"
#else
diff --git a/src/chrome/installer/linux/common/wrapper b/src/chrome/installer/linux/common/wrapper
index 410ba96d..58ba432a 100644
--- a/src/chrome/installer/linux/common/wrapper
+++ b/src/chrome/installer/linux/common/wrapper
@@ -60,4 +60,4 @@ exec > >(exec cat)
exec 2> >(exec cat >&2)
# Note: exec -a below is a bashism.
-exec -a "$0" "$HERE/@@PROGNAME@@" "--no-default-browser-check" "--enable-experimental-web-platform-features" "--new-canvas-2d-api" "$@"
+exec -a "$0" "$HERE/@@PROGNAME@@" "--enable-experimental-web-platform-features" "--new-canvas-2d-api" "$@"
diff --git a/src/components/privacy_sandbox/privacy_sandbox_prefs.cc b/src/components/privacy_sandbox/privacy_sandbox_prefs.cc
index 0b099364..5f854838 100644
--- a/src/components/privacy_sandbox/privacy_sandbox_prefs.cc
+++ b/src/components/privacy_sandbox/privacy_sandbox_prefs.cc
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors and Alex313031
+// Copyright 2023 The Chromium Authors and Alex313031
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -10,6 +10,27 @@
namespace prefs {
+const char kPrivacySandboxM1ConsentDecisionMade[] =
+ "privacy_sandbox.m1.consent_decision_made";
+
+const char kPrivacySandboxM1EEANoticeAcknowledged[] =
+ "privacy_sandbox.m1.eea_notice_acknowledged";
+
+const char kPrivacySandboxM1RowNoticeAcknowledged[] =
+ "privacy_sandbox.m1.row_notice_acknowledged";
+
+const char kPrivacySandboxM1PromptSuppressed[] =
+ "privacy_sandbox.m1.prompt_suppressed";
+
+const char kPrivacySandboxM1TopicsEnabled[] =
+ "privacy_sandbox.m1.topics_enabled";
+
+const char kPrivacySandboxM1FledgeEnabled[] =
+ "privacy_sandbox.m1.fledge_enabled";
+
+const char kPrivacySandboxM1AdMeasurementEnabled[] =
+ "privacy_sandbox.m1.ad_measurement_enabled";
+
const char kPrivacySandboxApisEnabled[] = "privacy_sandbox.apis_enabled";
const char kPrivacySandboxApisEnabledV2[] = "privacy_sandbox.apis_enabled_v2";
@@ -68,7 +89,19 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
prefs::kPrivacySandboxApisEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
- registry->RegisterBooleanPref(prefs::kPrivacySandboxApisEnabledV2, true);
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxApisEnabledV2, false);
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxM1ConsentDecisionMade,
+ false);
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxM1EEANoticeAcknowledged,
+ false);
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxM1RowNoticeAcknowledged,
+ false);
+ registry->RegisterIntegerPref(prefs::kPrivacySandboxM1PromptSuppressed, 0);
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxM1TopicsEnabled, false);
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxM1FledgeEnabled, false);
+ registry->RegisterBooleanPref(prefs::kPrivacySandboxM1AdMeasurementEnabled,
+ false);
+
registry->RegisterBooleanPref(
prefs::kPrivacySandboxManuallyControlled, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
diff --git a/src/components/privacy_sandbox/privacy_sandbox_settings.cc b/src/components/privacy_sandbox/privacy_sandbox_settings.cc
index 06399e3f..77f40a1e 100644
--- a/src/components/privacy_sandbox/privacy_sandbox_settings.cc
+++ b/src/components/privacy_sandbox/privacy_sandbox_settings.cc
@@ -63,13 +63,11 @@ PrivacySandboxSettings::PrivacySandboxSettings(
std::unique_ptr delegate,
HostContentSettingsMap* host_content_settings_map,
scoped_refptr cookie_settings,
- PrefService* pref_service,
- bool incognito_profile)
+ PrefService* pref_service)
: delegate_(std::move(delegate)),
host_content_settings_map_(host_content_settings_map),
cookie_settings_(cookie_settings),
- pref_service_(pref_service),
- incognito_profile_(incognito_profile) {
+ pref_service_(pref_service) {
DCHECK(pref_service_);
DCHECK(host_content_settings_map_);
DCHECK(cookie_settings_);
@@ -95,6 +93,11 @@ PrivacySandboxSettings::PrivacySandboxSettings(
PrivacySandboxSettings::~PrivacySandboxSettings() = default;
bool PrivacySandboxSettings::IsTopicsAllowed() const {
+ // M1 specific
+ if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings4)) {
+ return IsM1PrivacySandboxApiEnabled(prefs::kPrivacySandboxM1TopicsEnabled);
+ }
+
// Topics API calculation should be prevented if the user has blocked 3PC
// cookies, as there will be no context specific check.
const auto cookie_controls_mode =
@@ -113,6 +116,11 @@ bool PrivacySandboxSettings::IsTopicsAllowed() const {
bool PrivacySandboxSettings::IsTopicsAllowedForContext(
const GURL& url,
const absl::optional& top_frame_origin) const {
+ // M1 specific
+ if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings4)) {
+ return IsTopicsAllowed() && IsSiteDataAllowed(url);
+ }
+
// If the Topics API is disabled completely, it is not available in any
// context.
return IsTopicsAllowed() &&
@@ -296,28 +304,17 @@ bool PrivacySandboxSettings::IsFledgeJoiningAllowed(
bool PrivacySandboxSettings::IsFledgeAllowed(
const url::Origin& top_frame_origin,
- const url::Origin& auction_party) {
+ const url::Origin& auction_party) const {
+ if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings4)) {
+ return IsM1PrivacySandboxApiEnabled(
+ prefs::kPrivacySandboxM1FledgeEnabled) &&
+ IsSiteDataAllowed(auction_party.GetURL());
+ }
+
return IsPrivacySandboxEnabledForContext(auction_party.GetURL(),
top_frame_origin);
}
-std::vector PrivacySandboxSettings::FilterFledgeAllowedParties(
- const url::Origin& top_frame_origin,
- const std::vector& auction_parties) {
- // If the sandbox is disabled, then no parties are allowed and we can avoid
- // even iterating over them.
- if (!IsPrivacySandboxEnabled())
- return {};
-
- std::vector allowed_parties;
- for (const auto& party : auction_parties) {
- if (IsPrivacySandboxEnabledForContext(party, top_frame_origin)) {
- allowed_parties.push_back(party);
- }
- }
- return allowed_parties;
-}
-
bool PrivacySandboxSettings::IsSharedStorageAllowed(
const url::Origin& top_frame_origin,
const url::Origin& accessing_origin) const {
@@ -327,6 +324,28 @@ bool PrivacySandboxSettings::IsSharedStorageAllowed(
top_frame_origin);
}
+bool PrivacySandboxSettings::IsSharedStorageWriteAllowed(
+ const url::Origin& top_frame_origin,
+ const url::Origin& accessing_origin) {
+ // TODO(crbug.com/1378703): Respect appropriate M1 pref and site data settings
+ // when release 4 is enabled.
+ return IsSharedStorageAllowed(top_frame_origin, accessing_origin);
+}
+bool PrivacySandboxSettings::IsSharedStorageSelectURLAllowed(
+ const url::Origin& top_frame_origin,
+ const url::Origin& accessing_origin) {
+ // TODO(crbug.com/1378703): Respect appropriate M1 pref and site data settings
+ // when release 4 is enabled.
+ return IsSharedStorageAllowed(top_frame_origin, accessing_origin);
+}
+bool PrivacySandboxSettings::IsSharedStorageAggregateReportingAllowed(
+ const url::Origin& top_frame_origin,
+ const url::Origin& accessing_origin) {
+ // TODO(crbug.com/1378703): Respect appropriate M1 pref and site data settings
+ // when release 4 is enabled.
+ return IsSharedStorageAllowed(top_frame_origin, accessing_origin);
+}
+
bool PrivacySandboxSettings::IsPrivateAggregationAllowed(
const url::Origin& top_frame_origin,
const url::Origin& reporting_origin) const {
@@ -339,53 +358,29 @@ bool PrivacySandboxSettings::IsPrivacySandboxEnabled() const {
if (delegate_->IsPrivacySandboxRestricted())
return false;
+ if (delegate_->IsIncognitoProfile())
+ return false;
+
// For Measurement and Relevance APIs, we explicitly do not require the
// underlying pref to be enabled if there is a local flag enabling the APIs to
// allow for local testing.
- bool should_override_setting_for_local_testing = base::FeatureList::IsEnabled(
- privacy_sandbox::kOverridePrivacySandboxSettingsLocalTesting);
-
- // Which preference is consulted is dependent on whether release 3 of the
- // settings is available.
- if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3)) {
- // For Privacy Sandbox Settings 3, APIs are disabled in incognito.
- if (incognito_profile_)
- return false;
-
- if (should_override_setting_for_local_testing) {
- return true;
- }
-
- // For Privacy Sandbox Settings 3, APIs may be restricted via the delegate.
- // The V2 pref was introduced with the 3rd Privacy Sandbox release.
- return pref_service_->GetBoolean(prefs::kPrivacySandboxApisEnabledV2);
+ if (base::FeatureList::IsEnabled(
+ privacy_sandbox::kOverridePrivacySandboxSettingsLocalTesting)) {
+ return true;
}
- if (should_override_setting_for_local_testing)
- return true;
-
- return pref_service_->GetBoolean(prefs::kPrivacySandboxApisEnabled);
+ return pref_service_->GetBoolean(prefs::kPrivacySandboxApisEnabledV2);
}
void PrivacySandboxSettings::SetPrivacySandboxEnabled(bool enabled) {
- // Only apply the decision to the appropriate preference.
- if (base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3)) {
- pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, enabled);
- } else {
- pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabled, enabled);
- }
+ pref_service_->SetBoolean(prefs::kPrivacySandboxApisEnabledV2, enabled);
}
bool PrivacySandboxSettings::IsTrustTokensAllowed() {
- // The PrivacySandboxSettings is only involved in Trust Token access
- // decisions when the Release 3 flag is enabled.
- if (!base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3))
- return true;
-
return IsPrivacySandboxEnabled();
}
-bool PrivacySandboxSettings::IsPrivacySandboxRestricted() {
+bool PrivacySandboxSettings::IsPrivacySandboxRestricted() const {
return delegate_->IsPrivacySandboxRestricted();
}
@@ -394,11 +389,6 @@ void PrivacySandboxSettings::OnCookiesCleared() {
}
void PrivacySandboxSettings::OnPrivacySandboxPrefChanged() {
- // The PrivacySandboxSettings is only involved in Trust Token access
- // decisions when the Release 3 flag is enabled.
- if (!base::FeatureList::IsEnabled(privacy_sandbox::kPrivacySandboxSettings3))
- return;
-
for (auto& observer : observers_)
observer.OnTrustTokenBlockingChanged(!IsTrustTokensAllowed());
}
@@ -449,4 +439,38 @@ void PrivacySandboxSettings::SetTopicsDataAccessibleFromNow() const {
observer.OnTopicsDataAccessibleSinceUpdated();
}
+bool PrivacySandboxSettings::IsSiteDataAllowed(const GURL& url) const {
+ // 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) from a stand-alone
+ // point of view. This is not possible via |cookies_settings_|, which _also_
+ // takes into account third party context.
+ return host_content_settings_map_->GetContentSetting(
+ url, GURL(), ContentSettingsType::COOKIES) !=
+ ContentSetting::CONTENT_SETTING_BLOCK;
+}
+
+bool PrivacySandboxSettings::IsM1PrivacySandboxApiEnabled(
+ const std::string& pref_name) const {
+ DCHECK(pref_name == prefs::kPrivacySandboxM1TopicsEnabled ||
+ pref_name == prefs::kPrivacySandboxM1FledgeEnabled ||
+ pref_name == prefs::kPrivacySandboxM1AdMeasurementEnabled);
+
+ if (delegate_->IsIncognitoProfile())
+ return false;
+
+ if (IsPrivacySandboxRestricted())
+ return false;
+
+ // For Measurement and Relevance APIs, we explicitly do not require the
+ // underlying pref to be enabled if there is a local flag enabling the APIs to
+ // allow for local testing.
+ if (base::FeatureList::IsEnabled(
+ privacy_sandbox::kOverridePrivacySandboxSettingsLocalTesting)) {
+ return true;
+ }
+
+ return pref_service_->GetBoolean(pref_name);
+}
+
} // namespace privacy_sandbox
diff --git a/src/components/search_engines/prepopulated_engines.json b/src/components/search_engines/prepopulated_engines.json
index dbc9c4e3..c51548d9 100644
--- a/src/components/search_engines/prepopulated_engines.json
+++ b/src/components/search_engines/prepopulated_engines.json
@@ -28,7 +28,7 @@
// Increment this if you change the data in ways that mean users with
// existing data should get a new version. Otherwise, existing data may
// continue to be used and updates made here will not always appear.
- "kCurrentDataVersion": 136
+ "kCurrentDataVersion": 137
},
// The following engines are included in country lists and are added to the
@@ -135,6 +135,7 @@
"side_search_param": "sidesearch",
"side_image_search_param": "sideimagesearch",
"image_search_branding_label": "Google Lens",
+ "search_intent_params": ["si", "gs_ssp"],
"alternate_urls": [
"{google:baseURL}#q={searchTerms}",
"{google:baseURL}search#q={searchTerms}",
diff --git a/src/components/search_engines/template_url_prepopulate_data.cc b/src/components/search_engines/template_url_prepopulate_data.cc
index e46b4e0c..dd6f3458 100644
--- a/src/components/search_engines/template_url_prepopulate_data.cc
+++ b/src/components/search_engines/template_url_prepopulate_data.cc
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors and Alex313031.
+// Copyright 2023 The Chromium Authors and Alex313031
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -48,7 +48,7 @@ const PrepopulatedEngine* const engines_AE[] = {
&bing,
&yahoo,
&duckduckgo,
- &ecosia,
+ &yandex_ru,
};
// Albania
@@ -57,7 +57,7 @@ const PrepopulatedEngine* const engines_AL[] = {
&bing,
&yahoo,
&duckduckgo,
- &yandex_com,
+ &yandex_tr,
};
// Argentina
@@ -73,8 +73,8 @@ const PrepopulatedEngine* const engines_AR[] = {
const PrepopulatedEngine* const engines_AT[] = {
&google,
&bing,
- &duckduckgo,
&yahoo_at,
+ &duckduckgo,
&ecosia,
};
@@ -120,7 +120,7 @@ const PrepopulatedEngine* const engines_BH[] = {
&bing,
&yahoo,
&duckduckgo,
- &yandex_com,
+ &ecosia,
};
// Burundi
@@ -156,7 +156,7 @@ const PrepopulatedEngine* const engines_BR[] = {
&bing,
&yahoo_br,
&duckduckgo,
- &ecosia,
+ &yandex_com,
};
// Belarus
@@ -174,7 +174,7 @@ const PrepopulatedEngine* const engines_BZ[] = {
&bing,
&yahoo,
&duckduckgo,
- &ecosia,
+ &naver,
};
// Canada
@@ -191,8 +191,8 @@ const PrepopulatedEngine* const engines_CH[] = {
&google,
&bing,
&duckduckgo,
- &ecosia,
&yahoo_ch,
+ &ecosia,
};
// Chile
@@ -206,11 +206,14 @@ const PrepopulatedEngine* const engines_CL[] = {
// China
const PrepopulatedEngine* const engines_CN[] = {
- &sogou,
&baidu,
&bing,
- &google,
+ &sogou,
&so_360,
+ &google,
+ &brave,
+ &duckduckgo,
+ &ecosia,
};
// Colombia
@@ -218,8 +221,8 @@ const PrepopulatedEngine* const engines_CO[] = {
&google,
&bing,
&yahoo_co,
- &ecosia,
&duckduckgo,
+ &ecosia,
};
// Costa Rica
@@ -244,10 +247,10 @@ const PrepopulatedEngine* const engines_CZ[] = {
const PrepopulatedEngine* const engines_DE[] = {
&google,
&bing,
- &ecosia,
+ &yahoo_de,
&duckduckgo,
&brave,
- &yahoo_de,
+ &ecosia,
};
// Denmark
@@ -281,7 +284,7 @@ const PrepopulatedEngine* const engines_DZ[] = {
const PrepopulatedEngine* const engines_EC[] = {
&google,
&bing,
- &yahoo,
+ &yahoo_es,
&ecosia,
&duckduckgo,
};
@@ -292,7 +295,7 @@ const PrepopulatedEngine* const engines_EE[] = {
&bing,
&yandex_ru,
&duckduckgo,
- &yahoo,
+ &mail_ru,
};
// Egypt
@@ -326,7 +329,7 @@ const PrepopulatedEngine* const engines_FI[] = {
const PrepopulatedEngine* const engines_FO[] = {
&google,
&bing,
- &yahoo_dk,
+ &yahoo_uk,
&duckduckgo,
&ecosia,
};
@@ -374,10 +377,13 @@ const PrepopulatedEngine* const engines_GT[] = {
// Hong Kong
const PrepopulatedEngine* const engines_HK[] = {
&google,
- &yahoo_hk,
&bing,
+ &yahoo_hk,
&baidu,
+ &so_360,
+ &brave,
&duckduckgo,
+ &ecosia,
};
// Honduras
@@ -393,8 +399,8 @@ const PrepopulatedEngine* const engines_HN[] = {
const PrepopulatedEngine* const engines_HR[] = {
&google,
&bing,
- &yahoo,
&duckduckgo,
+ &yahoo,
&ecosia,
};
@@ -410,10 +416,10 @@ const PrepopulatedEngine* const engines_HU[] = {
// Indonesia
const PrepopulatedEngine* const engines_ID[] = {
&google,
- &yahoo_id,
&bing,
- &yandex_com,
+ &yahoo_id,
&duckduckgo,
+ &yandex_com,
};
// Ireland
@@ -449,7 +455,7 @@ const PrepopulatedEngine* const engines_IQ[] = {
&bing,
&yahoo,
&yandex_tr,
- &duckduckgo,
+ &petal_search,
};
// Iran
@@ -457,8 +463,8 @@ const PrepopulatedEngine* const engines_IR[] = {
&google,
&bing,
&yahoo,
- &ask,
&duckduckgo,
+ &ask,
};
// Iceland
@@ -493,15 +499,15 @@ const PrepopulatedEngine* const engines_JO[] = {
&google,
&bing,
&yahoo,
+ &petal_search,
&duckduckgo,
- &yandex_com,
};
// Japan
const PrepopulatedEngine* const engines_JP[] = {
&google,
- &yahoo_jp,
&bing,
+ &yahoo_jp,
&duckduckgo,
&baidu,
};
@@ -512,15 +518,15 @@ const PrepopulatedEngine* const engines_KE[] = {
&bing,
&yahoo,
&duckduckgo,
- &ecosia,
+ &yandex_com,
};
// South Korea
const PrepopulatedEngine* const engines_KR[] = {
&google,
&naver,
- &daum,
&bing,
+ &daum,
&yahoo,
};
@@ -530,7 +536,7 @@ const PrepopulatedEngine* const engines_KW[] = {
&bing,
&yahoo,
&duckduckgo,
- &yandex_com,
+ &yandex_tr,
};
// Kazakhstan
@@ -564,9 +570,9 @@ const PrepopulatedEngine* const engines_LI[] = {
const PrepopulatedEngine* const engines_LT[] = {
&google,
&bing,
- &yahoo,
- &duckduckgo,
&yandex_ru,
+ &duckduckgo,
+ &yahoo,
};
// Luxembourg
@@ -592,7 +598,7 @@ const PrepopulatedEngine* const engines_LY[] = {
&google,
&bing,
&yahoo,
- &yandex_com,
+ &yandex_tr,
&duckduckgo,
};
@@ -609,9 +615,9 @@ const PrepopulatedEngine* const engines_MA[] = {
const PrepopulatedEngine* const engines_MC[] = {
&google,
&bing,
- &duckduckgo,
&yahoo_fr,
- &ecosia,
+ &duckduckgo,
+ &qwant,
};
// Moldova
@@ -620,15 +626,15 @@ const PrepopulatedEngine* const engines_MD[] = {
&yandex_ru,
&bing,
&mail_ru,
- &yahoo,
+ &duckduckgo,
};
// Montenegro
const PrepopulatedEngine* const engines_ME[] = {
&google,
&bing,
- &yahoo,
&yandex_ru,
+ &yahoo,
&duckduckgo,
};
@@ -638,7 +644,7 @@ const PrepopulatedEngine* const engines_MK[] = {
&bing,
&yahoo,
&duckduckgo,
- &yandex_ru,
+ &yandex_com,
};
// Mexico
@@ -674,7 +680,7 @@ const PrepopulatedEngine* const engines_NL[] = {
&bing,
&yahoo_nl,
&duckduckgo,
- &ecosia,
+ &yandex_ru,
};
// Norway
@@ -700,8 +706,8 @@ const PrepopulatedEngine* const engines_OM[] = {
&google,
&bing,
&yahoo,
- &duckduckgo,
&petal_search,
+ &duckduckgo,
};
// Panama
@@ -726,7 +732,7 @@ const PrepopulatedEngine* const engines_PE[] = {
const PrepopulatedEngine* const engines_PH[] = {
&google,
&bing,
- &yahoo,
+ &yahoo_ph,
&ecosia,
&duckduckgo,
};
@@ -805,11 +811,11 @@ const PrepopulatedEngine* const engines_RS[] = {
// Russia
const PrepopulatedEngine* const engines_RU[] = {
- &google,
&yandex_ru,
- &mail_ru,
- &bing,
+ &google,
&duckduckgo,
+ &bing,
+ &mail_ru,
};
// Rwanda
@@ -836,7 +842,7 @@ const PrepopulatedEngine* const engines_SE[] = {
&bing,
&yahoo_se,
&duckduckgo,
- &ecosia,
+ &yandex_ru,
};
// Singapore
@@ -844,8 +850,8 @@ const PrepopulatedEngine* const engines_SG[] = {
&google,
&bing,
&yahoo_sg,
- &duckduckgo,
&baidu,
+ &duckduckgo,
};
// Slovenia
@@ -863,7 +869,7 @@ const PrepopulatedEngine* const engines_SK[] = {
&bing,
&duckduckgo,
&yahoo,
- &yandex_com,
+ &yandex_ru,
};
// El Salvador
@@ -879,8 +885,8 @@ const PrepopulatedEngine* const engines_SV[] = {
const PrepopulatedEngine* const engines_SY[] = {
&google,
&bing,
+ &yandex_ru,
&yahoo,
- &yandex_com,
&duckduckgo,
};
@@ -889,8 +895,8 @@ const PrepopulatedEngine* const engines_TH[] = {
&google,
&bing,
&yahoo_th,
- &yandex_ru,
- &mail_ru,
+ &naver,
+ &duckduckgo,
};
// Tunisia
@@ -917,7 +923,7 @@ const PrepopulatedEngine* const engines_TT[] = {
&bing,
&yahoo,
&duckduckgo,
- &ecosia,
+ &yandex_com,
};
// Taiwan
@@ -935,16 +941,18 @@ const PrepopulatedEngine* const engines_TZ[] = {
&bing,
&yahoo,
&duckduckgo,
- &baidu,
+ &ecosia,
};
// Ukraine
const PrepopulatedEngine* const engines_UA[] = {
&google,
- &yandex_ua,
+ &yandex_ru,
&bing,
&duckduckgo,
- &yahoo,
+ &brave,
+ &ecosia,
+ &mail_ru,
};
// United States
@@ -974,16 +982,16 @@ const PrepopulatedEngine* const engines_VE[] = {
&bing,
&yahoo_es,
&duckduckgo,
- &ecosia,
+ &yandex_com,
};
// Vietnam
const PrepopulatedEngine* const engines_VN[] = {
&google,
&coccoc,
- &yahoo,
&bing,
- &yandex_ru,
+ &yahoo,
+ &baidu,
};
// Yemen
@@ -991,8 +999,8 @@ const PrepopulatedEngine* const engines_YE[] = {
&google,
&bing,
&yahoo,
- &yandex_com,
&duckduckgo,
+ &yandex_com,
};
// South Africa
diff --git a/src/components/url_formatter/url_formatter.cc b/src/components/url_formatter/url_formatter.cc
index 7b6e69fc..dae15825 100644
--- a/src/components/url_formatter/url_formatter.cc
+++ b/src/components/url_formatter/url_formatter.cc
@@ -1,4 +1,4 @@
-// Copyright 2022 The Chromium Authors and Alex313031.
+// Copyright 2023 The Chromium Authors and Alex313031
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -695,7 +695,7 @@ std::u16string FormatUrlWithAdjustments(
} else if ((format_types & kFormatUrlOmitTrailingSlashOnBareHostname) &&
CanStripTrailingSlash(url)) {
// Omit the path, which is a single trailing slash. There's no query or ref.
- if (parsed.path.len > 0) {
+ if (parsed.path.is_nonempty()) {
adjustments->push_back(base::OffsetAdjuster::Adjustment(
parsed.path.begin, parsed.path.len, 0));
}
diff --git a/src/tools/clang/scripts/build.py b/src/tools/clang/scripts/build.py
old mode 100644
new mode 100755
diff --git a/src/tools/gn/bootstrap/bootstrap.py b/src/tools/gn/bootstrap/bootstrap.py
old mode 100644
new mode 100755