M117 stage 3

This commit is contained in:
Alexander Frick 2023-10-08 08:02:30 -05:00
parent 1eea8773fb
commit d6f983cb2b
18 changed files with 536 additions and 350 deletions

View File

@ -1,4 +1,4 @@
# Security
## Security
### Thorium Security Policy
@ -7,6 +7,6 @@
### List of major vulnerabilities fixed in Thorium
libwebp WebP bug [CVE-2023-4863](https://nvd.nist.gov/vuln/detail/CVE-2023-4863) - Fixed in M117
– libwebp WebP bug [CVE-2023-4863](https://nvd.nist.gov/vuln/detail/CVE-2023-4863) - Fixed in M117
libvpx VP8 bug [CVE-2023-5217](https://nvd.nist.gov/vuln/detail/CVE-2023-5217) - Fixed in M117
– libvpx VP8 bug [CVE-2023-5217](https://nvd.nist.gov/vuln/detail/CVE-2023-5217) - Fixed in M117

View File

@ -43,7 +43,7 @@ Enable Quiet Notifications Patch > https://github.com/Alex313031/thorium/blob/ma
Title Bar Patch > https://github.com/saiarcot895/chromium-ubuntu-build/blob/master/debian/patches/title-bar-default-system.patch-v35
VDPAU Patch > https://github.com/saiarcot895/chromium-ubuntu-build/blob/master/debian/patches/vdpau-support.patch
REMOVED ~~VDPAU Patch > https://github.com/saiarcot895/chromium-ubuntu-build/blob/master/debian/patches/vdpau-support.patch~~
- Modified by me.
Audio Sandbox Patch > https://github.com/saiarcot895/chromium-ubuntu-build/blob/master/debian/patches/fix-audio-sandbox.patch
@ -162,6 +162,8 @@ Enable HEVC/H.265 Decoding Patch - https://github.com/StaZhu/enable-chromium-hev
Allow all HEVC Video Profiles to Play Patch - https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding/blob/main/remove-main-main10-profile-limit.patch
Enable multi-threaded HEVC decoding - https://github.com/RobRich999/Chromium_Clang/blob/649f66dc041a72467c02d76e8d1fe00ee06d8276/Linux/linux64-avx.patch#L295
Enable AC3 and EAC3 for HEVC Patch - https://github.com/Muril-o/electron-chromium-codecs
- https://github.com/Alex313031/thorium/commit/46893f326c42b08a56769f3de6743aec049b2091#diff-09b3d55a8198fc42186bfd6bf5869fe78b8edad6f67e75b78228446f1d7cf66f

View File

@ -81,7 +81,7 @@
<DT><A HREF="https://source.chromium.org/chromium/chromium/src/+/refs/tags/117.0.5938.157:chrome/browser/search/search.cc;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">search.cc - Chromium Code Search</A>
<DT><A HREF="https://source.chromium.org/chromium/chromium/src/+/refs/tags/117.0.5938.157:sandbox/linux/BUILD.gn;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">BUILD.gn - Chromium Code Search</A>
<DT><A HREF="https://source.chromium.org/chromium/chromium/src/+/refs/tags/117.0.5938.157:components/dom_distiller/core/css/distilledpage.css;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">distilledpage.css - Chromium Code Search</A>
<DT><A HREF="https://source.chromium.org/chromium/chromium/src/+/refs/tags/117.0.5938.157:chrome/browser/ui/views/toolbar/reload_button.cc;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">reload_button.cc - Chromium Code Search</A>
<DT><A HREF="https://source.chromium.org/chromium/chromium/src/+/refs/tags/117.0.5938.157:chrome/browser/ui/views/toolbar/reload_button.h;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">reload_button.h - Chromium Code Search</A>
<DT><A HREF="https://source.chromium.org/chromium/chromium/src/+/refs/tags/117.0.5938.157:third_party/blink/common/features.cc;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">features.cc - Chromium Code Search</A>
<DT><A HREF="https://source.chromium.org/chromium/chromium/src/+/refs/tags/117.0.5938.157:chrome/browser/profiles/profile_shortcut_manager_win.cc;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">profile_shortcut_manager_win.cc - Chromium Code Search</A>
<DT><A HREF="https://source.chromium.org/chromium/_/chromium/v8/v8.git/+/1add2a3f621ccbce65daacc6067fe3b440884557:src/parsing/parser-base.h;bpv=1" ADD_DATE="1661054752" ICON="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADIUlEQVQ4jW1TXWwUZRQ955ufnZ3dlm4VpE2Q+lND1cSQYDBaKY2VEkUFa1d9K4laBROEIg+mDfvkg5Bu9MWoD/hkTJdqJBFCMRENEqONRkMbIiWGWn5SjWw7OzO7szPf9UFCCnrebu7JuTc55xA3QURYKkEtXw7+1gDm0mDWBtMm+GcAnb+P0VI+lw4fTIp7C6O7dU3nlKFyisxp0TmDRpMmmyDSCqLY96D1HUQIUsxrd9nfD3VrHDbDTi/ENi5V/TCdtmlQ0Y60dmwANNXT0HpodEx+2kNUb/4e45PSUhBR/1lcw6Gvf3fGf4gmJn6NBgGgUBBFAHj+vepdKSvp2r5m/pPu7juqA4fEOTcXvhaG2KAMVjOp5MjJ4eynBOTIz7Vnzs5Jcfoiej9+1TlHAHjyneArKrl/XcVtnQLcS/A/b23J9DzUBgQRcPo84JX90VOF7JCIGFsOBLMCTB/dl3lc9b+7uA1O+jHb4OuFAvVl+oOtLZmekc1JbUc36nt7pb6zK0mslL2n6+3wUZJJyuIuOm7Ps8Xyc8qP3Q+TMDj+2W73MABUatK5vg26vcVQf3navOqL+Ui7kay53dJeEG8AgPE33PEkDI6HSfZ9BRFAQJF/LSVYDSIQEBiKsE0lsRaGNSiTEl43X4SAQKWN8GUj427qG/XyAJB15IvTM+CJKW04FuoiEpd+1Grmj8BvzPIYAGwten2mm9mUsauDBIAnDvgnAHQMrHZX5/NMOguLBy07NXTPKhvVGnDhb0BH3pvfDjcelDExnpoNLormmS/3uT0KAFY0xDs2dhiLqXZsBoBThca9QK1z8mxlZPpCZZeq+2dMqi2AcGYtzOZG9dayrHoFACgiJCkTU9FAJZCtCxX7he3dvCFl60b8ta6lh2/T2Rdf2oam3gc4f2MXRLi7NOd0tq34iFS/aNFHIwBhJLGVSLRqZd3rWNYQfj+L5igOdb6YvoISNEC5LgBSDk9G6ynYScgVrbGgFMsQKSdiLIhIWSe6rGifzz/M8H/bCABjU2L781BeOCMrK5FcvfNeuexB8M1J7N+/MSEpS/n/AGH0clblBN69AAAAAElFTkSuQmCC">parser-base.h - Chromium Code Search</A>

View File

@ -8,6 +8,7 @@
#include "base/metrics/field_trial_params.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "components/flags_ui/feature_entry.h"
namespace features {
@ -21,11 +22,15 @@ BASE_FEATURE(kAllowWindowDragUsingSystemDragDrop,
#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
BASE_FEATURE(kDesktopPWAsAppHomePage,
"DesktopPWAsAppHomePage",
base::FEATURE_DISABLED_BY_DEFAULT);
base::FEATURE_ENABLED_BY_DEFAULT);
#endif // !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID)
// Enables Chrome Labs menu in the toolbar. See https://crbug.com/1145666
BASE_FEATURE(kChromeLabs, "ChromeLabs", base::FEATURE_ENABLED_BY_DEFAULT);
const char kChromeLabsActivationParameterName[] =
"chrome_labs_activation_percentage";
const base::FeatureParam<int> kChromeLabsActivationPercentage{
&kChromeLabs, kChromeLabsActivationParameterName, 99};
// Enables "Chrome What's New" UI.
// TODO: Alex313031 Test Mock UI
@ -77,6 +82,12 @@ BASE_FEATURE(kGetTheMostOutOfChrome,
base::FEATURE_DISABLED_BY_DEFAULT);
#endif
#if !BUILDFLAG(IS_ANDROID)
// Enables or disables the Happiness Tracking Surveys being delivered via chrome
// webui, rather than a separate static website.
BASE_FEATURE(kHaTSWebUI, "HaTSWebUI", base::FEATURE_DISABLED_BY_DEFAULT);
#endif // !BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(ENABLE_EXTENSIONS)
// Controls whether we use a different UX for simple extensions overriding
// settings.
@ -95,6 +106,12 @@ BASE_FEATURE(kQuickCommands,
"QuickCommands",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enable responsive toolbar. Toolbar buttons overflow to a chevron button when
// the browser width is resized smaller than normal.
BASE_FEATURE(kResponsiveToolbar,
"ResponsiveToolbar",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables the side search feature for Google Search. Presents recent Google
// search results in a browser side panel.
BASE_FEATURE(kSideSearch, "SideSearch", base::FEATURE_ENABLED_BY_DEFAULT);
@ -356,6 +373,7 @@ int GetLocationPermissionsExperimentLabelPromptLimit() {
#endif
// Reduce resource usage when view is hidden by not rendering loading animation.
// TODO(crbug.com/1322081): Clean up the feature in M117.
BASE_FEATURE(kStopLoadingAnimationForHiddenWindow,
"StopLoadingAnimationForHiddenWindow",
base::FEATURE_ENABLED_BY_DEFAULT);

View File

@ -1,243 +0,0 @@
// 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.
#include "chrome/browser/ui/views/toolbar/reload_button.h"
#include <stddef.h>
#include "base/strings/utf_string_conversions.h"
#include "build/build_config.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/app/vector_icons/vector_icons.h"
#include "chrome/browser/command_updater.h"
#include "chrome/browser/external_protocol/external_protocol_handler.h"
#include "chrome/browser/themes/theme_properties.h"
#include "chrome/browser/ui/view_ids.h"
#include "chrome/grit/generated_resources.h"
#include "components/vector_icons/vector_icons.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/models/simple_menu_model.h"
#include "ui/base/pointer/touch_ui_controller.h"
#include "ui/base/theme_provider.h"
#include "ui/base/ui_base_features.h"
#include "ui/base/window_open_disposition.h"
#include "ui/base/window_open_disposition_utils.h"
#include "ui/gfx/color_palette.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/views/metrics.h"
#include "ui/views/widget/widget.h"
// ReloadButton ---------------------------------------------------------------
ReloadButton::ReloadButton(CommandUpdater* command_updater)
: ToolbarButton(base::BindRepeating(&ReloadButton::ButtonPressed,
base::Unretained(this)),
CreateMenuModel(),
nullptr),
command_updater_(command_updater),
double_click_timer_delay_(
base::Milliseconds(views::GetDoubleClickInterval())),
mode_switch_timer_delay_(base::Milliseconds(1350)) {
SetVisibleMode(Mode::kReload);
SetTriggerableEventFlags(ui::EF_LEFT_MOUSE_BUTTON |
ui::EF_MIDDLE_MOUSE_BUTTON);
SetAccessibleName(l10n_util::GetStringUTF16(IDS_ACCNAME_RELOAD));
SetID(VIEW_ID_RELOAD_BUTTON);
}
ReloadButton::~ReloadButton() {}
void ReloadButton::ChangeMode(Mode mode, bool force) {
intended_mode_ = mode;
// If the change is forced, or the user isn't hovering the icon, or it's
// safe to change it to the other image type, make the change immediately;
// otherwise we'll let it happen later.
if (force || (!IsMouseHovered() && !testing_mouse_hovered_) ||
((mode == Mode::kStop) ? !double_click_timer_.IsRunning()
: (visible_mode_ != Mode::kStop))) {
double_click_timer_.Stop();
mode_switch_timer_.Stop();
SetVisibleMode(mode);
SetEnabled(true);
// We want to disable the button if we're preventing a change from stop to
// reload due to hovering, but not if we're preventing a change from
// reload to stop due to the double-click timer running. (Disabled reload
// state is only applicable when instant extended API is enabled and mode
// is NTP, which is handled just above.)
} else if (visible_mode_ != Mode::kReload) {
SetEnabled(false);
// Go ahead and change to reload after a bit, which allows repeated
// reloads without moving the mouse.
if (!mode_switch_timer_.IsRunning()) {
mode_switch_timer_.Start(FROM_HERE, mode_switch_timer_delay_, this,
&ReloadButton::OnStopToReloadTimer);
}
}
}
bool menu_enabled_() {
return true;
}
bool ReloadButton::GetMenuEnabled() const {
return menu_enabled_;
}
void ReloadButton::SetMenuEnabled(bool enable) {
menu_enabled_ = true;
}
void ReloadButton::OnMouseExited(const ui::MouseEvent& event) {
ToolbarButton::OnMouseExited(event);
if (!IsMenuShowing())
ChangeMode(intended_mode_, true);
}
std::u16string ReloadButton::GetTooltipText(const gfx::Point& p) const {
int reload_tooltip = menu_enabled_ ?
IDS_TOOLTIP_RELOAD_WITH_MENU : IDS_TOOLTIP_RELOAD;
return l10n_util::GetStringUTF16(
visible_mode_ == Mode::kReload ? reload_tooltip : IDS_TOOLTIP_STOP);
}
void ReloadButton::GetAccessibleNodeData(ui::AXNodeData* node_data) {
if (menu_enabled_)
ToolbarButton::GetAccessibleNodeData(node_data);
else
Button::GetAccessibleNodeData(node_data);
}
bool ReloadButton::ShouldShowMenu() {
return menu_enabled_ && (visible_mode_ == Mode::kReload);
}
void ReloadButton::ShowDropDownMenu(ui::MenuSourceType source_type) {
ToolbarButton::ShowDropDownMenu(source_type); // Blocks.
ChangeMode(intended_mode_, true);
}
bool ReloadButton::IsCommandIdChecked(int command_id) const {
return false;
}
bool ReloadButton::IsCommandIdEnabled(int command_id) const {
return true;
}
bool ReloadButton::IsCommandIdVisible(int command_id) const {
return true;
}
bool ReloadButton::GetAcceleratorForCommandId(
int command_id,
ui::Accelerator* accelerator) const {
return GetWidget()->GetAccelerator(command_id, accelerator);
}
void ReloadButton::ExecuteCommand(int command_id, int event_flags) {
ExecuteBrowserCommand(command_id, event_flags);
}
std::unique_ptr<ui::SimpleMenuModel> ReloadButton::CreateMenuModel() {
auto menu_model = std::make_unique<ui::SimpleMenuModel>(this);
menu_model->AddItemWithStringId(IDC_RELOAD,
IDS_RELOAD_MENU_NORMAL_RELOAD_ITEM);
menu_model->AddItemWithStringId(IDC_RELOAD_BYPASSING_CACHE,
IDS_RELOAD_MENU_HARD_RELOAD_ITEM);
menu_model->AddItemWithStringId(IDC_RELOAD_CLEARING_CACHE,
IDS_RELOAD_MENU_EMPTY_AND_HARD_RELOAD_ITEM);
return menu_model;
}
void ReloadButton::SetVisibleMode(Mode mode) {
visible_mode_ = mode;
switch (mode) {
case Mode::kReload:
SetVectorIcons(features::IsChromeRefresh2023()
? vector_icons::kReloadChromeRefreshIcon
: vector_icons::kReloadIcon,
kReloadTouchIcon);
break;
case Mode::kStop:
SetVectorIcons(features::IsChromeRefresh2023()
? kNavigateStopChromeRefreshIcon
: kNavigateStopIcon,
kNavigateStopTouchIcon);
break;
}
}
void ReloadButton::ButtonPressed(const ui::Event& event) {
// This is called in order to signal that external protocol dialogs are
// allowed to show due to a user action, which are likely to happen on the
// next page load after the reload button is clicked.
// Ideally, the browser UI's event system would notify ExternalProtocolHandler
// that a user action occurred and we are OK to open the dialog, but for some
// reason that isn't happening every time the reload button is clicked. See
// http://crbug.com/1206456
ExternalProtocolHandler::PermitLaunchUrl();
ClearPendingMenu();
if (visible_mode_ == Mode::kStop) {
if (command_updater_) {
command_updater_->ExecuteCommandWithDisposition(
IDC_STOP, WindowOpenDisposition::CURRENT_TAB);
}
// The user has clicked, so we can feel free to update the button, even if
// the mouse is still hovering.
ChangeMode(Mode::kReload, true);
return;
}
if (!double_click_timer_.IsRunning()) {
// Shift-clicking or ctrl-clicking the reload button means we should ignore
// any cached content.
int command;
int flags = event.flags();
if (event.IsShiftDown() || event.IsControlDown()) {
command = IDC_RELOAD_BYPASSING_CACHE;
// Mask off Shift and Control so they don't affect the disposition below.
flags &= ~(ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN);
} else {
command = IDC_RELOAD;
}
// Start a timer - while this timer is running, the reload button cannot be
// changed to a stop button. We do not set |intended_mode_| to Mode::kStop
// here as the browser will do that when it actually starts loading (which
// may happen synchronously, thus the need to do this before telling the
// browser to execute the reload command).
double_click_timer_.Start(FROM_HERE, double_click_timer_delay_, this,
&ReloadButton::OnDoubleClickTimer);
ExecuteBrowserCommand(command, flags);
++testing_reload_count_;
}
}
void ReloadButton::ExecuteBrowserCommand(int command, int event_flags) {
if (!command_updater_)
return;
command_updater_->ExecuteCommandWithDisposition(
command, ui::DispositionFromEventFlags(event_flags));
}
void ReloadButton::OnDoubleClickTimer() {
if (!IsMenuShowing())
ChangeMode(intended_mode_, false);
}
void ReloadButton::OnStopToReloadTimer() {
DCHECK(!IsMenuShowing());
ChangeMode(intended_mode_, true);
}
BEGIN_METADATA(ReloadButton, ToolbarButton)
ADD_PROPERTY_METADATA(bool, MenuEnabled)
END_METADATA

View File

@ -0,0 +1,115 @@
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_VIEWS_TOOLBAR_RELOAD_BUTTON_H_
#define CHROME_BROWSER_UI_VIEWS_TOOLBAR_RELOAD_BUTTON_H_
#include "base/memory/raw_ptr.h"
#include "base/time/time.h"
#include "base/timer/timer.h"
#include "chrome/browser/ui/views/chrome_views_export.h"
#include "chrome/browser/ui/views/toolbar/toolbar_button.h"
#include "ui/base/metadata/metadata_header_macros.h"
#include "ui/base/models/simple_menu_model.h"
#include "ui/views/metadata/view_factory.h"
class CommandUpdater;
////////////////////////////////////////////////////////////////////////////////
//
// ReloadButton
//
// The reload button in the toolbar, which changes to a stop button when a page
// load is in progress. The change from stop back to reload may be delayed if
// the user is hovering the button, to prevent mis-clicks.
//
////////////////////////////////////////////////////////////////////////////////
class ReloadButton : public ToolbarButton,
public ui::SimpleMenuModel::Delegate {
public:
METADATA_HEADER(ReloadButton);
enum class Mode { kReload = 0, kStop };
explicit ReloadButton(CommandUpdater* command_updater);
ReloadButton(const ReloadButton&) = delete;
ReloadButton& operator=(const ReloadButton&) = delete;
~ReloadButton() override;
// Ask for a specified button state. If |force| is true this will be applied
// immediately.
void ChangeMode(Mode mode, bool force);
Mode visible_mode() const { return visible_mode_; }
// Gets/Sets whether reload drop-down menu is enabled.
bool GetMenuEnabled() const;
void SetMenuEnabled(bool enable);
// ToolbarButton:
void OnMouseExited(const ui::MouseEvent& event) override;
std::u16string GetTooltipText(const gfx::Point& p) const override;
void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
bool ShouldShowMenu() override;
void ShowDropDownMenu(ui::MenuSourceType source_type) override;
// ui::SimpleMenuModel::Delegate:
bool IsCommandIdChecked(int command_id) const override;
bool IsCommandIdEnabled(int command_id) const override;
bool IsCommandIdVisible(int command_id) const override;
bool GetAcceleratorForCommandId(int command_id,
ui::Accelerator* accelerator) const override;
void ExecuteCommand(int command_id, int event_flags) override;
private:
friend class ReloadButtonTest;
std::unique_ptr<ui::SimpleMenuModel> CreateMenuModel();
void SetVisibleMode(Mode mode);
void ButtonPressed(const ui::Event& event);
void ExecuteBrowserCommand(int command, int event_flags);
void OnDoubleClickTimer();
void OnStopToReloadTimer();
base::OneShotTimer double_click_timer_;
// Timer to delay switching between reload and stop states.
base::OneShotTimer mode_switch_timer_;
// This may be NULL when testing.
raw_ptr<CommandUpdater, DanglingUntriaged> command_updater_;
// The mode we should be in assuming no timers are running.
Mode intended_mode_ = Mode::kReload;
// The currently-visible mode - this may differ from the intended mode.
Mode visible_mode_ = Mode::kReload;
// The delay times for the timers. These are members so that tests can modify
// them.
base::TimeDelta double_click_timer_delay_;
base::TimeDelta mode_switch_timer_delay_;
// Indicates if reload menu is enabled.
bool menu_enabled_ = true;
// TESTING ONLY
// True if we should pretend the button is hovered.
bool testing_mouse_hovered_ = false;
// Increments when we would tell the browser to "reload", so
// test code can tell whether we did so (as there may be no |browser_|).
int testing_reload_count_ = 0;
};
BEGIN_VIEW_BUILDER(CHROME_VIEWS_EXPORT, ReloadButton, ToolbarButton)
VIEW_BUILDER_PROPERTY(bool, MenuEnabled)
END_VIEW_BUILDER
DEFINE_VIEW_BUILDER(CHROME_VIEWS_EXPORT, ReloadButton)
#endif // CHROME_BROWSER_UI_VIEWS_TOOLBAR_RELOAD_BUTTON_H_

View File

@ -19,10 +19,6 @@
#include "chrome/common/chrome_constants.h"
#include "chrome/common/chrome_paths_internal.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
namespace {
// Return an NSBundle* as the internal implementation of

View File

@ -34,11 +34,14 @@ const InstallConstants kInstallModes[] = {
.logo_suffix = L"", // No logo suffix for the primary install mode.
.app_guid =
L"", // Empty app_guid since no integration with Google Update.
.base_app_name = L"Thorium", // A distinct base_app_name.
.base_app_id = L"Thorium", // A distinct base_app_id.
.prog_id_prefix = L"ThoriumHTM", // ProgID prefix.
.prog_id_description =
L"Thorium HTML Document", // ProgID description.
.base_app_name = L"Thorium", // A distinct base_app_name.
.base_app_id = L"Thorium", // A distinct base_app_id.
.browser_prog_id_prefix = L"ThoriumHTM", // Browser ProgID prefix.
.browser_prog_id_description =
L"Thorium HTML Document", // Browser ProgID description.
.pdf_prog_id_prefix = L"ThoriumPDF", // PDF ProgID prefix.
.pdf_prog_id_description =
L"Thorium PDF Document", // PDF ProgID description.
.active_setup_guid =
L"{7D2B3E1D-D096-4594-9D8F-A6667F12E0AC}", // Active Setup GUID.
.legacy_command_execute_clsid =

View File

@ -115,6 +115,12 @@
<message name="IDS_AUTOFILL_SAVE_CARD_PROMPT_TITLE_LOCAL" desc="Title text for the Autofill save card prompt when the card is to be saved locally. The prompt can be either a bubble or an infobar.">
Save card?
</message>
<message name="IDS_AUTOFILL_SAVE_CVC_PROMPT_TITLE_LOCAL" desc="Title text for the Autofill save CVC prompt that offers to save CVC for existing local cards. This prompt is shown if a CVC is detected for an existing local card on form submission.">
Save security code?
</message>
<message name="IDS_AUTOFILL_SAVE_CVC_PROMPT_EXPLANATION_LOCAL" desc="Explanation text for the Autofill save CVC prompt that offers to save CVC for existing local cards. This prompt is shown if a CVC is detected for an existing local card on form submission.">
For faster checkout, save the CVC for this card to your device
</message>
<message name="IDS_AUTOFILL_FIX_FLOW_PROMPT_SAVE_CARD_LABEL" desc="Text to show on the button to save the card to Google when the fix flow dialog is shown after the Autofill save card prompt." formatter_data="android_java">
Save card
</message>
@ -148,6 +154,9 @@
<message name="IDS_AUTOFILL_CARD_SAVED" desc="Title text for the Autofill save card manager bubble when the card has been saved either locally or to Google Payments. Also label for icon animation.">
Card saved
</message>
<message name="IDS_AUTOFILL_CVC_SAVED" desc="Title text for the Autofill save card manager bubble when a CVC has been saved either to a local card or to a server card. Also label for icon animation.">
CVC saved
</message>
<message name="IDS_AUTOFILL_DONE" desc="Text to show for the button in the save card manager bubble when the card has been saved either locally or to Google Payments.">
Done
</message>
@ -337,7 +346,10 @@
<message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_TITLE_SECURITY_CODE" desc="Title for the credit card unmasking dialog, specifically for the virtual card unmasking case.">
Enter your security code for <ph name="CREDIT_CARD">$1<ex>Visa - 5679</ex></ph>
</message>
<message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_TITLE_V2" desc="Title for the credit card unmasking dialog, according to August 2019 UI guidelines.">
<message name="IDS_AUTOFILL_CARD_UNMASK_PROGRESS_DIALOG_TITLE" desc="Title for the progress dialog that occurs during specific card unmasking flows, for example VCN unmasking. It is shown after the user selects a card, and will be dismissed once we receive a server response that denotes we can continue to the next step. The main purpose of the dialog is to inform the user that something is happening in the background, but that task is not done yet.">
Verifying...
</message>
<message name="IDS_AUTOFILL_CARD_UNMASK_VERIFICATION_TITLE" desc="Title for the credit card unmasking progress dialog, also used as the title of challenge option selection dialog when only one challenge option available." formatter_data="android_java">
Verify it's you
</message>
<message name="IDS_AUTOFILL_CARD_UNMASK_PROMPT_EXPIRED_TITLE" desc="Title for the credit card unmasking dialog when the credit card is expired.">
@ -456,13 +468,13 @@
<!-- DeviceAuthentication titles-->
<if expr="is_macosx">
<message name="IDS_PAYMENTS_AUTOFILL_FILLING_MANDATORY_REAUTH" desc="Text that appears in the payments autofill mandatory re-authentication popup, asking the user to authenticate using biometric or device unlock before filling. Please note that on macOS the string 'Thorium is trying to' will always come before this string.">
<message name="IDS_PAYMENTS_AUTOFILL_FILLING_MANDATORY_REAUTH" desc="Text that appears in the payments autofill mandatory re-authentication popup, asking the user to authenticate using biometric or device unlock before filling. Please note that on macOS the string 'Google Thorium is trying to' will always come before this string.">
verify it's you so it can fill in your payment info.
</message>
</if>
<if expr="is_win">
<message name="IDS_PAYMENTS_AUTOFILL_FILLING_MANDATORY_REAUTH" desc="Text that appears in the payments autofill mandatory re-authentication popup, asking the user to authenticate using biometric or device unlock before filling.">
Thorium is trying to verify it's you so it can fill in your payment info.
Google Thorium is trying to verify it's you so it can fill in your payment info.
</message>
</if>
@ -727,11 +739,20 @@
Virtual card turned on
</message>
</if>
<message name="IDS_AUTOFILL_VIRTUAL_CARD_STANDALONE_CVC_SUGGESTION_IPH_BUBBLE_LABEL" desc="Text shown in the IPH bubble for filling in CVC on a virtual card that is saved on file of a merchant website.">
Use CVC for this virtual card
</message>
<message name="IDS_AUTOFILL_VIRTUAL_CARD_STANDALONE_CVC_SUGGESTION_IPH_BUBBLE_LABEL_SCREENREADER" is_accessibility_with_no_ui="true" desc="Screenreader text for the IPH bubble for filling in CVC on a virtual card that is saved on file of a merchant website.">
Fill in CVC for this virtual card
</message>
<message name="IDS_AUTOFILL_VIRTUAL_CARD_STANDALONE_CVC_SUGGESTION_TITLE" desc="Text to be displayed when displaying an Autofill suggestion to fill a standalone CVC for a virtual card on file.">
CVC for virtual card
</message>
<!-- virtual cards related strings - end -->
<message name="IDS_AUTOFILL_CARD_AUTH_SELECTION_DIALOG_TITLE_MULTIPLE_OPTIONS" desc="Title for the credit card unmasking dialog for multiple challenge options. Used in VCN authentication, and once a challenge option is selected a new dialog is rendered where the user authenticates with the selected challenge option." formatter_data="android_java">
Choose how you'll verify it's you
</message>
<message name="IDS_AUTOFILL_CARD_UNMASK_AUTHENTICATION_SELECTION_DIALOG_ISSUER_CONFIRMATION_TEXT" desc="The issuer confirmation text shown in the Autofill card unmask authentication selection dialog on Desktop. This is the header text of the dialog, and it is the text stating that the issuer wants additional authentication. This dialog lets the user choose the method of authentication when unmasking a server card, including a virtual card.">
<message name="IDS_AUTOFILL_CARD_UNMASK_AUTHENTICATION_SELECTION_DIALOG_ISSUER_CONFIRMATION_TEXT" desc="The issuer confirmation text shown in the Autofill card unmask authentication selection dialog on Desktop and Clank. This is the header text of the dialog, and it is the text stating that the issuer wants additional authentication. This dialog lets the user choose the method of authentication when unmasking a server card, including a virtual card." formatter_data="android_java">
Your bank wants to make sure it's you
</message>
<message name="IDS_AUTOFILL_AUTHENTICATION_MODE_SECURITY_CODE" desc="The label for the 3 digit security code authentication option shown in the Autofill card unmask authentication selection dialog on Desktop. Only shown when there are multiple unmask options presented to the user. If selected, the user will be prompted to enter their security code.">
@ -758,7 +779,7 @@
<message name="IDS_AUTOFILL_CARD_UNMASK_AUTHENTICATION_SELECTION_DIALOG_CVC_CHALLENGE_INFO" desc="Text that is shown for the security code challenge option in the Card Unmask Authentication Selection Dialog. This text lets the user know where the location of the security code is on their card. If the user selects this challenge option and then accepts the dialog, the user will be prompted to enter this security code. An example of a security code is the CVC on the back of the user's credit card.">
This is the <ph name="NUMBER_OF_DIGITS">$1<ex>3</ex></ph>-digit code on the <ph name="SIDE_OF_CARD">$2<ex>back of your card</ex></ph>
</message>
<message name="IDS_AUTOFILL_CARD_UNMASK_OTP_INPUT_DIALOG_TITLE" desc="The title for the dialog that lets the user type in the OTP they received on Desktop. This message is shown right next to the logo for the dialog, and it lets the users know the action that is required in this dialog, which is to enter their verification code (OTP).">
<message name="IDS_AUTOFILL_CARD_UNMASK_OTP_INPUT_DIALOG_TITLE" desc="The title for the dialog that lets the user type in the OTP they received on Desktop and Android. This message is shown right next to the logo for the dialog, and it lets the users know the action that is required in this dialog, which is to enter their verification code (OTP)." formatter_data="android_java">
Enter code
</message>
<message name="IDS_AUTOFILL_CARD_UNMASK_OTP_INPUT_DIALOG_FOOTER_MESSAGE" desc="The footer message for the dialog that lets the user type in the OTP they received on Desktop. This message instructs the user on what to do if they can't find their OTP code, for example if the OTP code was sent by email but it never came. It contains a link that comes from IDS_AUTOFILL_CARD_UNMASK_OTP_INPUT_DIALOG_NEW_CODE_MESSAGE which allows them to get a new code sent if clicked.">
@ -846,14 +867,11 @@
</if>
<!-- Autofill Payments OTP verification dialog -->
<message name="IDS_AUTOFILL_PAYMENTS_OTP_VERIFICATION_DIALOG_TITLE" desc="Title of the OTP verification dialog which is shown to the user while unmasking a credit card." formatter_data="android_java">
Enter Verification Code
</message>
<message name="IDS_AUTOFILL_PAYMENTS_OTP_VERIFICATION_DIALOG_CANT_FIND_CODE_MESSAGE" desc="Hint shown to the user in the event they are unable to find the OTP code." formatter_data="android_java">
Can't find your code? <ph name="BEGIN_LINK">&lt;link&gt;</ph>Get new code<ph name="END_LINK">&lt;/link&gt;</ph>
Didn\u2019t receive your code? <ph name="BEGIN_LINK">&lt;link&gt;</ph>Get new code<ph name="END_LINK">&lt;/link&gt;</ph>
</message>
<message name="IDS_AUTOFILL_PAYMENTS_OTP_VERIFICATION_DIALOG_OTP_INPUT_HINT" desc="Hint shown in the OTP input field indicating the number of digits expected for the OTP." formatter_data="android_java">
Enter <ph name="OTP_LENGTH">%1$s<ex>6</ex></ph>-digit code
Enter <ph name="OTP_LENGTH">%1$s<ex>6</ex></ph>-digit verification code
</message>
<message name="IDS_AUTOFILL_PAYMENTS_OTP_VERIFICATION_DIALOG_POSITIVE_BUTTON_LABEL" desc="Positive button label for the OTP verification dialog." formatter_data="android_java">
Confirm
@ -900,7 +918,7 @@
<message name="IDS_AUTOFILL_SETTINGS_PAGE_ENABLE_PAYMENT_METHOD_MANDATORY_REAUTH_LABEL" desc="Label for a settings page toggle that allows users to control whether or not to add mandatory reauth for payment methods filling." formatter_data="android_java">
Always verify when using autofill
</message>
<message name="IDS_AUTOFILL_SETTINGS_PAGE_ENABLE_PAYMENT_METHOD_MANDATORY_REAUTH_SUBLABEL" desc="Sublabel for a setttings page toggle that allows users to control whether or not to add mandatory reauth for payment methods filling." formatter_data="android_java">
<message name="IDS_AUTOFILL_SETTINGS_PAGE_ENABLE_PAYMENT_METHOD_MANDATORY_REAUTH_SUBLABEL" desc="Sublabel for a settings page toggle that allows users to control whether or not to add mandatory reauth for payment methods filling." formatter_data="android_java">
When turned off, you may be asked occasionally to verify for security purposes
</message>
<if expr="is_android">
@ -912,4 +930,23 @@
</message>
</if>
<!-- CVC Storage related strings -->
<if expr="not is_android">
<message name="IDS_AUTOFILL_SETTINGS_PAGE_ENABLE_CVC_STORAGE_LABEL" desc="Label for the payments settings page toggle that enables the user to store and use CVC for payments autofill.">
Save security codes
</message>
<message name="IDS_AUTOFILL_SETTINGS_PAGE_ENABLE_CVC_STORAGE_SUBLABEL" desc="Sublabel for the payments settings page toggle that enables the user to store and use CVC for payments autofill.">
Checkout faster when your CVCs are saved
</message>
<!-- This sublabel has hyperlink encoding present in it. This is to trigger the modal popup which would bulk delete all the CVCs. -->
<message name="IDS_AUTOFILL_SETTINGS_PAGE_ENABLE_CVC_STORAGE_WITH_DELETE_LINK_SUBLABEL" desc="Sublabel for the payments settings page that would bulk delete all the CVCs when clicked on it. that enables the user to store and use CVC for payments autofill. There is also a hyperlinked text which bulk deletes all the CVC data. This sublabel is used when we have CVC data present on the local DB.">
Checkout faster when your CVCs are saved. <ph name="LINK_BEGIN">&lt;a href="#"&gt;</ph>Delete saved security codes<ph name="LINK_END">&lt;/a&gt;</ph>
</message>
<message name="IDS_AUTOFILL_SETTINGS_PAGE_BULK_REMOVE_CVC_TITLE" desc="Title for the modal dialog when the user is trying to bulk remove/delete all the CVCs stored locally and on Google servers.">
Delete saved security codes?
</message>
<message name="IDS_AUTOFILL_SETTINGS_PAGE_BULK_REMOVE_CVC_DESCRIPTION" desc="Description for the modal dialog when the user is trying to bulk remove/delete all the CVCs stored locally and on Google servers.">
All security codes saved on your device and in Google Account will be deleted
</message>
</if>
</grit-part>

View File

@ -12,6 +12,17 @@
</message>
</if>
<if expr="not is_ios">
<message name="IDS_AUTOFILL_UNDO_MENU_ITEM" desc="The entry in the suggestions dropdown that undoes the last filling operation on a field.">
Undo autofill
</message>
</if>
<if expr="is_ios">
<message name="IDS_AUTOFILL_UNDO_MENU_ITEM" desc="iOS: The entry in the suggestions keyboard accessory that undoes the last filling operation on a field. Title-cased.">
Undo Autofill
</message>
</if>
<if expr="is_android or is_ios">
<message name="IDS_AUTOFILL_CLEAR_LOCAL_COPY_BUTTON" desc="The label of the button that clears the local copy of a Wallet Credit Card." formatter_data="android_java">
Clear copy
@ -98,11 +109,37 @@
<message name="IDS_AUTOFILL_A11Y_ANNOUNCE_FILLED_FORM" desc="Screen reader announcement indicating that current form was autofilled.">
The form was filled in
</message>
<!--TODO(crbug.com/1459990): Align with writers about this string and remove translateable=false-->
<message name="IDS_AUTOFILL_A11Y_ANNOUNCE_DELETE_ADDRESS_PROFILE_POPUP_OPTION_SELECTED" desc="Screen reader announcement indicating that delete autofill profile option was selected." translateable="false">
The delete address option was selected
</message>
<message name="IDS_AUTOFILL_A11Y_ANNOUNCE_CLEARED_FORM" desc="Screen reader announcement indicating that current form autofilled values were cleared.">
The autofilled info was cleared from the form
</message>
<!--TODO(crbug.com/1459990): Align with writers about this string and remove translateable=false-->
<message name="IDS_AUTOFILL_A11Y_ANNOUNCE_FILL_ADDRESS_GROUP_POPUP_OPTION_SELECTED" desc="Screen reader announcement indicating that filling address fields option was selected." translateable="false">
The fill address fields option was selected
</message>
<message name="IDS_AUTOFILL_FILL_ADDRESS_GROUP_POPUP_OPTION_SELECTED" desc="The text displayed at one of the autofill submenus options allowing the users to fill all address related fields at once." meaning="Fills all address related fields" translateable="false">
Fill address
</message>
<message name="IDS_AUTOFILL_A11Y_ANNOUNCE_FILL_NAME_GROUP_POPUP_OPTION_SELECTED" desc="Screen reader announcement indicating that filling name fields option was selected." translateable="false">
The fill full name option was selected
</message>
<message name="IDS_AUTOFILL_FILL_NAME_GROUP_POPUP_OPTION_SELECTED" desc="The text displayed at one of the autofill submenus options allowing the users to fill all name related fields at once." meaning="Fills all name related fields" translateable="false">
Fill full name
</message>
<!--TODO(crbug.com/1459990): Align with writers about this string and remove translateable=false-->
<message name="IDS_AUTOFILL_A11Y_ANNOUNCE_FILL_EVERYTHING_FROM_ADDRESS_PROFILE_POPUP_OPTION_SELECTED" desc="Screen reader announcement indicating that the fill everything option was selected." translateable="false">
The fill everything option was selected
</message>
<message name="IDS_AUTOFILL_HIDE_SUGGESTIONS" desc="The text displayed at the Autofill popup to allow the user to hide the suggestions menu." meaning="Hides the suggestion list.">
Hide suggestions
</message>
@ -111,6 +148,14 @@
Manage...
</message>
<message name="IDS_AUTOFILL_DELETE_ADDRESS_PROFILE_POPUP_OPTION_SELECTED" desc="The text displayed at the bottom of the Autofill sub menu to open the delete address profile dialog." meaning="Entry point to address profile deletion." translateable="false">
Delete address
</message>
<message name="IDS_AUTOFILL_FILL_EVERYTHING_FROM_ADDRESS_PROFILE_POPUP_OPTION_SELECTED" desc="The text displayed at the footer of the Autofill sub menu to fill everything from the address profile." meaning="Fill every available information from the address profile." translateable="false">
Fill everything
</message>
<if expr="not use_titlecase">
<message name="IDS_AUTOFILL_MANAGE_ADDRESSES" desc="The text displayed at the bottom of the Autofill popup to allow the user to manage their Autofill preferences for addresses. Imperative. When the user clicks on it, opens the Autofill settings page." meaning="Manage addresses in the user profile that can be used by Thorium Autofill.">
Manage addresses...
@ -314,16 +359,34 @@
</message>
</else>
</if>
<if expr="is_android">
<!-- TODO(crbug.com/1469795): Use finalized string.-->
<message translateable="false" name="IDS_AUTOFILL_THIRD_PARTY_FILLING_DEFAULT" desc="Title of the option to use the default Thorium autofill experience." formatter_data="android_java">
Default
</message>
<!-- TODO(crbug.com/1469795): Use finalized string.-->
<message translateable="false" name="IDS_AUTOFILL_THIRD_PARTY_FILLING_OPT_IN" desc="Title of the option to use third-party autofill in Thorium." formatter_data="android_java">
Use other providers
</message>
<!-- TODO(crbug.com/1469795): Use finalized string.-->
<message translateable="false" name="IDS_AUTOFILL_THIRD_PARTY_FILLING_DEFAULT_DESCRIPTION" desc="Description shown on the option to use the default Thorium autofill experience." formatter_data="android_java">
Use Google Password Manager and Thorium Autofill to save and fill passwords, passkeys, payment methods, and addresses
</message>
<!-- TODO(crbug.com/1469795): Use finalized string.-->
<message translateable="false" name="IDS_AUTOFILL_THIRD_PARTY_FILLING_OPT_IN_DESCRIPTION" desc="Description shown on the option enabling the use of third-party autofill in Thorium." formatter_data="android_java">
Use password managers and autofill services that are turned on in Android Settings
</message>
</if>
<!-- Autofill/Wallet integration preferences -->
<if expr="not is_ios">
<then>
<message name="IDS_AUTOFILL_ENABLE_PAYMENTS_INTEGRATION_CHECKBOX_LABEL" desc="Label for the checkbox that controls the Autofill/Payments integration feature used for Autofill Home. 'Google Pay' should not be translated as it is the product name. Sentence-Cased.">
<message name="IDS_SYNC_DATATYPE_PAYMENTS" desc="Label for the checkbox that controls the Autofill/Payments integration feature used for Autofill Home. 'Google Pay' should not be translated as it is the product name. Sentence-Cased.">
Payment methods, offers, and addresses using Google Pay
</message>
</then>
<else>
<message name="IDS_AUTOFILL_ENABLE_PAYMENTS_INTEGRATION_CHECKBOX_LABEL" desc="Label for the checkbox that controls the Autofill/Payments integration feature used for Autofill Home. 'Google Pay' should not be translated as it is the product name. Title-Cased.">
<message name="IDS_SYNC_DATATYPE_PAYMENTS" desc="Label for the checkbox that controls the Autofill/Payments integration feature used for Autofill Home. 'Google Pay' should not be translated as it is the product name. Title-Cased.">
Payment Methods, Offers, and Addresses Using Google Pay
</message>
</else>

View File

@ -298,7 +298,7 @@
</message>
<if expr="chromeos_ash">
<message name="IDS_VERSION_UI_LICENSE_CHROMIUM" desc="The label below the copyright message, containing the link to the Chromium project.">
<message name="IDS_VERSION_UI_LICENSE_CHROMIUM" desc="The label below the copyright message, containing the link to the Thorium project.">
Thorium is made possible by the <ph name="BEGIN_LINK_CHROMIUM">&lt;a target="_blank" href="$1"&gt;</ph>Chromium<ph name="END_LINK_CHROMIUM">&lt;/a&gt;</ph> open source project.
</message>

View File

@ -37,7 +37,7 @@
<!-- Subtitles of the browser version of the management page -->
<if expr="not chromeos_ash">
<message name="IDS_MANAGEMENT_SUBTITLE" desc="Title of chrome://management page, which shows the administrator's capabilities in a managed environment">
Your browser is managed
Your browser is managed by your organization
</message>
<message name="IDS_MANAGEMENT_SUBTITLE_MANAGED_BY" desc="Title of chrome://management page, which shows the administrator's capabilities in a managed environment. MANAGER can be a domain or an email address.">
Your browser is managed by <ph name="MANAGER">$1<ex>example.com</ex></ph>
@ -48,8 +48,11 @@
<message name="IDS_MANAGEMENT_SUBTITLE_BROWSER_AND_PROFILE_DIFFERENT_MANAGED_BY" desc="Text displayed to inform that the browser is managed by BROWSER_DOMAIN and the profile by PROFILE_DOMAIN.">
Your browser is managed by <ph name="BROWSER_DOMAIN">$1<ex>foo.com</ex></ph> and your profile is managed by <ph name="PROFILE_DOMAIN">$2<ex>bar.com</ex></ph>
</message>
<message name="IDS_MANAGEMENT_SUBTITLE_BROWSER_MANAGED_AND_PROFILE_MANAGED_BY" desc="Text displayed to inform that the browser is managed by an organization and the profile by PROFILE_DOMAIN.">
Your browser is managed by your organization and your profile is managed by <ph name="PROFILE_DOMAIN">$1<ex>bar.com</ex></ph>
</message>
<message name="IDS_MANAGEMENT_SUBTITLE_BROWSER_AND_PROFILE_SAME_MANAGED_BY" desc="Text displayed to inform that the browser and profile are managed by the same DOMAIN.">
Your profile and browser are managed by <ph name="DOMAIN">$1<ex>google.com</ex></ph>
Your browser and profile are managed by <ph name="DOMAIN">$1<ex>google.com</ex></ph>
</message>
<message name="IDS_MANAGEMENT_SUBTITLE_PROFILE_MANAGED_BY" desc="Text displayed to inform the user that the browser is managed by DOMAIN. [iOS only]">
Your profile is managed by <ph name="DOMAIN">$1<ex>google.com</ex></ph>
@ -168,7 +171,7 @@
Device access actions such as logins (including failed login reasons), logouts, locks, and unlocks
</message>
<message name="IDS_MANAGEMENT_REPORT_CRD_SESSIONS" desc="Message stating that administrators can see Thorium Remote Desktop events.">
Chrome Remote Desktop history, including timestamps, hosts and client session ids
Thorium Remote Desktop history, including timestamps, hosts and client session ids
</message>
<message name="IDS_MANAGEMENT_CROSTINI" desc="Message stating that administrators can see Crostini usage">
Linux apps installed and when they were last used
@ -213,6 +216,25 @@
Permissions
</message>
<!-- Strings related to application reporting section of the management page -->
<message name="IDS_MANAGEMENT_APPLICATION_REPORTING" desc="Title of the force installed applications section of the page">
Applications
</message>
<message name="IDS_MANAGEMENT_APPLICATIONS_INSTALLED" desc="Message describing that the administrator has installed some powerful applications on the managed user's browser">
The administrator of this device has installed applications for additional functions. Applications have access to some of your data.
</message>
<message name="IDS_MANAGEMENT_APPLICATIONS_INSTALLED_BY" desc="Message describing that the administrator has installed some powerful applications on the managed user's browser from a specific domain">
<ph name="ENROLLMENT_DOMAIN">$1<ex>example.com</ex></ph> has installed applications for additional functions. Applications have access to some of your data.
</message>
<message name="IDS_MANAGEMENT_APPLICATIONS_NAME" desc="Title of a column of the application table showing the name of the application" meaning="Name of an inanimate object">
Name
</message>
<message name="IDS_MANAGEMENT_APPLICATIONS_PERMISSIONS" desc="Title of a column of the application table showing the permissions of the application">
Permissions
</message> <message name="IDS_MANAGEMENT_APPLICATIONS_RUN_ON_OS_LOGIN" desc="Permission to run on OS login">
Auto-start on your device
</message>
<!-- Strings related to website managed configuration of the management page -->
<message name="IDS_MANAGEMENT_MANAGED_WEBSITES" desc="Title of the configured websites section of the page">
Websites with info from your organization

View File

@ -218,7 +218,7 @@
</message>
<if expr="_google_chrome">
<message name="IDS_REVAMPED_INCOGNITO_NTP_DOES_DESCRIPTION" desc="Paragraph that informs users about Incognito's functionalities: browsing activity, search history and information entered in forms are not saved locally, they are cleared after closing all Incognito tabs. 'Browsing activity' refers to the browsing history (list of visited websites) and the cookies (data saved by websites on the user's device such as: sign-in state, preferences, etc.). 'Search history from this device' means that searches will not be saved locally or used as search suggestions in the future. 'Information entered in forms' refers to names, addresses, passwords etc. that users enter into forms on the web." formatter_data="android_java">
When you close all Chrome Incognito tabs, your activity in those tabs is cleared from this device:
When you close all Thorium Incognito tabs, your activity in those tabs is removed from this device:
<ph name="BEGIN_LIST">&lt;ul&gt;</ph>
<ph name="LIST_ITEM">&lt;li&gt;</ph>Browsing activity<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
<ph name="LIST_ITEM">&lt;li&gt;</ph>Search history<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
@ -228,7 +228,7 @@
</if>
<if expr="not _google_chrome">
<message name="IDS_REVAMPED_INCOGNITO_NTP_DOES_DESCRIPTION" desc="Paragraph that informs users about Incognito's functionalities: browsing activity, search history and information entered in forms are not saved locally, they are cleared after closing all Incognito tabs. 'Browsing activity' refers to the browsing history (list of visited websites) and the cookies (data saved by websites on the user's device such as: sign-in state, preferences, etc.). 'Search history from this device' means that searches will not be saved locally or used as search suggestions in the future. 'Information entered in forms' refers to names, addresses, passwords etc. that users enter into forms on the web." formatter_data="android_java">
When you close all Thorium Incognito tabs, your activity in those tabs is cleared from this device:
When you close all Thorium Incognito tabs, your activity in those tabs is removed from this device:
<ph name="BEGIN_LIST">&lt;ul&gt;</ph>
<ph name="LIST_ITEM">&lt;li&gt;</ph>Browsing activity<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>
<ph name="LIST_ITEM">&lt;li&gt;</ph>Search history<ph name="END_LIST_ITEM">&lt;/li&gt;</ph>

View File

@ -67,9 +67,6 @@
<message name="IDS_PAGE_INFO_SECURE_DETAILS" desc="A short paragraph explaining a secure site to the user.">
Your information (for example, passwords or credit card numbers) is private when it is sent to this site.
</message>
<message name="IDS_PAGE_INFO_SECURE_DETAILS_V2" desc="A short paragraph explaining a secure site to the user.">
The site's connection is secure unless Thorium tells you otherwise.
</message>
<message name="IDS_PAGE_INFO_ADMIN_PROVIDED_CERT_DETAILS" desc="A short paragraph explaining a site using an administrator-provided certificate to the user.">
You have accessed content using an administrator-provided certificate. Data you provide to <ph name="DOMAIN">$1<ex>www.google.com</ex></ph> can be intercepted by your administrator.
</message>
@ -435,8 +432,8 @@
<message name="IDS_PAGE_INFO_USB_DEVICE_ALLOWED_BY_POLICY_LABEL" desc="The label displayed underneath the device name to inform the user that the item listed is refering to a USB device explicitly allowed by the user's enterprise policy.">
USB device allowed by your administrator
</message>
<message name="IDS_PAGE_INFO_DELETE_USB_DEVICE" desc="The tooltip displayed when hovering over the button that will remove permission to access a USB device that the user previously granted to the site.">
Revoke access
<message name="IDS_PAGE_INFO_DELETE_USB_DEVICE_WITH_NAME" desc="The tooltip displayed when hovering over the button that will remove permission to access a USB device that the user previously granted to the site.">
Revoke access for <ph name="DEVICE_NAME">$1<ex>USB Keyboard</ex></ph>
</message>
<message name="IDS_PAGE_INFO_SERIAL_PORT_SECONDARY_LABEL" desc="The label displayed underneath the port name to inform the user that the permission listed refers to a serial port.">
Serial port
@ -444,14 +441,14 @@
<message name="IDS_PAGE_INFO_SERIAL_PORT_ALLOWED_BY_POLICY_LABEL" desc="The label displayed underneath the device name to inform the user that the item listed is refering to a serial port explicitly allowed by the user's enterprise policy.">
Serial port allowed by your administrator
</message>
<message name="IDS_PAGE_INFO_DELETE_SERIAL_PORT" desc="The tooltip displayed when hovering over the button that will remove permission to access a serial port that the user previously granted to the site.">
Revoke access
<message name="IDS_PAGE_INFO_DELETE_SERIAL_PORT_WITH_NAME" desc="The tooltip displayed when hovering over the button that will remove permission to access a serial port that the user previously granted to the site.">
Revoke access for <ph name="PORT_NAME">$1<ex>COM1</ex></ph>
</message>
<message name="IDS_PAGE_INFO_BLUETOOTH_DEVICE_SECONDARY_LABEL" desc="The label displayed underneath the device name to inform the user that the item refers to a Bluetooth device.">
Bluetooth device
</message>
<message name="IDS_PAGE_INFO_DELETE_BLUETOOTH_DEVICE" desc="The tooltip displayed when hovering over the button that will remove permission to access a Bluetooth device that the user previously granted to the site.">
Revoke access
<message name="IDS_PAGE_INFO_DELETE_BLUETOOTH_DEVICE_WITH_NAME" desc="The tooltip displayed when hovering over the button that will remove permission to access a Bluetooth device that the user previously granted to the site.">
Revoke access for <ph name="DEVICE_NAME">$1<ex>Pixel Buds Pro</ex></ph>
</message>
<message name="IDS_PAGE_INFO_HID_DEVICE_SECONDARY_LABEL" desc="The label displayed underneath the device name to inform the user that the permission listed refers to a HID device.">
HID device
@ -459,8 +456,8 @@
<message name="IDS_PAGE_INFO_HID_DEVICE_ALLOWED_BY_POLICY_LABEL" desc="The label displayed underneath the device name to inform the user that the item listed is refering to a HID device explicitly allowed by the user's enterprise policy.">
HID device allowed by your administrator
</message>
<message name="IDS_PAGE_INFO_DELETE_HID_DEVICE" desc="The tooltip displayed when hovering over the button that will remove permission to access a HID device that the user previously granted to the site.">
Revoke access
<message name="IDS_PAGE_INFO_DELETE_HID_DEVICE_WITH_NAME" desc="The tooltip displayed when hovering over the button that will remove permission to access a HID device that the user previously granted to the site.">
Revoke access for <ph name="DEVICE_NAME">$1<ex>Stadia Controller</ex></ph>
</message>
<!-- Site settings link -->
@ -513,6 +510,16 @@
</message>
</if>
<!-- Permission usage strings -->
<message name="IDS_PAGE_INFO_PERMISSION_USING_NOW" desc="The label used underneath a permission listed in the Page Info bubble if a feature gated behind the permission is used by a page.">
Using now
</message>
<message name="IDS_PAGE_INFO_PERMISSION_RECENTLY_USED" desc="The label used underneath a permission listed in the Page Info bubble if a feature gated behind the permission was used less than 1 minute ago.">
Recently used
</message>
<message name="IDS_PAGE_INFO_PERMISSION_USED_TIME_AGO" desc="The label used underneath a permission listed in the Page Info bubble if a feature gated behind the permission was used less than 24 hours ago.">
Last used <ph name="NUM_HOURS_MINUTES_SECONDS">$1<ex>2 minutes</ex></ph> ago
</message>
<!-- Password Protection -->
<if expr="_google_chrome">
<message name="IDS_PAGE_INFO_CHANGE_PASSWORD_DETAILS" desc="A short paragraph explaining to the user that they has reuse their google password on current website.">
@ -656,7 +663,7 @@
Go to permission settings
</message>
<message name="IDS_PAGE_INFO_PERMISSIONS_SUBPAGE_REMEMBER_THIS_SETTING" desc="The text near the checkbox, that controls if user's decision will be remembered for this permission, in permission's subpage in page info bubble.">
Remember this setting
Allow on every visit
</message>
<message name="IDS_PAGE_INFO_RESET_PERMISSIONS" desc="The label of the button to reset permissions for a site.">
{NUM_PERMISSIONS, plural, =1 {Reset permission} other {Reset permissions}}
@ -791,4 +798,45 @@
Manage ad privacy
</message>
<!-- User Bypass strings -->
<message name="IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_TITLE" desc="A heading in the page info bubble guiding the user where to go if the site they're on appears broken because of a third-party cookie dependency">
Site not working?
</message>
<message name="IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_DESCRIPTION_TEMPORARY" desc="Descriptive text in the page info bubble explaining the trade-off of temporarily allowing third-party cookies for this site, a change that will automatically expire in the future.">
Try temporarily allowing third-party cookies, which means less protection but site features are more likely to work
</message>
<message name="IDS_PAGE_INFO_COOKIES_SITE_NOT_WORKING_DESCRIPTION_PERMANENT" desc="Descriptive text in the page info bubble explaining the trade-off of allowing third-party cookies for this site, a change that will not automatically expire in the future.">
Try allowing third-party cookies, which means less protection but site features are more likely to work
</message>
<message name="IDS_PAGE_INFO_COOKIES_THIRD_PARTY_COOKIES_LABEL" desc="A label next to a toggle that allows or blocks third-party cookies. When the toggle is enabled, third party cookies are allowed.">
Third-party cookies
</message>
<message name="IDS_PAGE_INFO_COOKIES_BLOCKING_RESTART_TITLE" desc="Subtitle shown on the page info bubble when cookies are allowed temporarily, indicating how long until they are no longer allowed.">
{COUNT, plural,
=0 {Thorium will block cookies again today}
=1 {Thorium will block cookies again tomorrow}
other {# days until Thorium blocks cookies again}}
</message>
<message name="IDS_PAGE_INFO_COOKIES_BLOCKING_RESTART_DESCRIPTION_TODAY" desc="Descriptive text in the page info bubble after the user has allowed third-party cookies on a site explaining the trade-off of their decision.">
You allowed this site to use third-party cookies. This means that most site features should work, but you have less protection.
</message>
<message name="IDS_PAGE_INFO_COOKIES_PERMANENT_ALLOWED_TITLE" desc="A subtitle in the page info bubble if cookies were allowed by the user and they won't be automatically blocked again the future.">
You allowed third-party cookies for this site
</message>
<message name="IDS_PAGE_INFO_COOKIES_PERMANENT_ALLOWED_DESCRIPTION" desc="Descriptive text in the page info bubble after the user has allowed third-party cookies on a site explaining the trade-off of their decision.">
This means that most site features should work, but you have less protection
</message>
<message name="IDS_PAGE_INFO_COOKIES_THIRD_PARTY_COOKIES_ALLOWED_TOGGLE_A11Y" desc="Accessible name in the page info bubble, for the third-party cookies toggle, if third party cookies are allowed indicating how many third-party sites were allowed to access cookies.">
{NUM_COOKIES, plural,
=0 {Third-party cookies, No sites allowed}
=1 {Third-party cookies, 1 site allowed}
other {Third-party cookies, # sites allowed}}
</message>
<message name="IDS_PAGE_INFO_COOKIES_THIRD_PARTY_COOKIES_BLOCKED_TOGGLE_A11Y" desc="Accessible name in the page info bubble, for the third-party cookies toggle, if third party cookies are blocked indicating how many third-party sites were blocked from accessing cookies.">
{NUM_COOKIES, plural,
=0 {Third-party cookies, No sites blocked}
=1 {Third-party cookies, 1 site blocked}
other {Third-party cookies, # sites blocked}}
</message>
</grit-part>

View File

@ -536,9 +536,13 @@
<message name="IDS_HTTPS_ONLY_MODE_WITH_ADVANCED_PROTECTION_PRIMARY_PARAGRAPH" desc="Main paragraph of the HTTPS-Only Mode warning. This warning is shown when the browser tries to upgrade a navigation to a site to HTTPS but the site does not support HTTPS. The user also has Advanced Protection enabled.">
You are seeing this warning because this site does not support HTTPS and you are under Google's Advanced Protection Program. <ph name="BEGIN_LEARN_MORE_LINK">&lt;a href="#" id="learn-more-link"&gt;</ph>Learn more<ph name="END_LEARN_MORE_LINK">&lt;/a&gt;</ph>
</message>
<message name="IDS_HTTPS_ONLY_MODE_WITH_SITE_ENGAGEMENT_PRIMARY_PARAGRAPH" desc="Main paragraph of the HTTPS-Only Mode warning. This warning is shown when the browser tries to upgrade a navigation to a site to HTTPS but the site does not support HTTPS. The user has previously engaged with the HTTPS version of the site.">
<message name="IDS_HTTPS_ONLY_MODE_WITH_SITE_ENGAGEMENT_PRIMARY_PARAGRAPH" desc="Main paragraph of the HTTPS-Only Mode warning. This warning is shown when the browser tries to upgrade a navigation to a site to HTTPS but the site does not support HTTPS. The user is seeing this warning because they typically visit HTTPS URLs.">
You usually connect to this site securely, but Thorium couldn't use a secure connection this time. An attacker might be trying to eavesdrop or modify your network connection. <ph name="BEGIN_LEARN_MORE_LINK">&lt;a href="#" id="learn-more-link"&gt;</ph>Learn more<ph name="END_LEARN_MORE_LINK">&lt;/a&gt;</ph>
</message>
<message name="IDS_HTTPS_ONLY_MODE_FOR_TYPICALLY_SECURE_BROWSING_PRIMARY_PARAGRAPH" desc="Main paragraph of the HTTPS-Only Mode warning. This warning is shown when the browser tries to upgrade a navigation to a site to HTTPS but the site does not support HTTPS. The user has previously engaged with the HTTPS version of the site.">
You usually connect to sites securely, but Thorium couldn't use a secure connection this time. An attacker might be trying to eavesdrop or modify your network connection. <ph name="BEGIN_LEARN_MORE_LINK">&lt;a href="#" id="learn-more-link"&gt;</ph>Learn more<ph name="END_LEARN_MORE_LINK">&lt;/a&gt;</ph>
</message>
<message name="IDS_HTTPS_ONLY_MODE_BACK_BUTTON" desc="Text for the button in the HTTPS-only mode warning that takes the user back to the previous page">
Go back
</message>

View File

@ -1,4 +1,4 @@
// Copyright 2022 The Chromium Authors and Alex313031 and not-lucky. All rights reserved.
// Copyright 2023 The Chromium Authors and Alex313031 and not-lucky
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

View File

@ -6,6 +6,7 @@
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/features.h"
#include "base/time/time.h"
#include "build/build_config.h"
#include "build/chromecast_buildflags.h"
@ -33,6 +34,11 @@ BASE_FEATURE(kAcceleratedStaticBitmapImageSerialization,
"AcceleratedStaticBitmapImageSerialization",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enable the Protected Audience's reporting with ad macro API.
BASE_FEATURE(kAdAuctionReportingWithMacroApi,
"AdAuctionReportingWithMacroApi",
base::FEATURE_ENABLED_BY_DEFAULT);
// See https://github.com/WICG/turtledove/blob/main/FLEDGE.md
// Changes default Permissions Policy for features join-ad-interest-group and
// run-ad-auction to a more restricted EnableForSelf.
@ -201,6 +207,10 @@ const base::FeatureParam<AutomaticLazyFrameLoadingToEmbedLoadingStrategy>
AutomaticLazyFrameLoadingToEmbedLoadingStrategy::kAllowList,
&kAutomaticLazyFrameLoadingToEmbedLoadingStrategies};
BASE_FEATURE(kAvifGainmapHdrImages,
"AvifGainmapHdrImages",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kBackForwardCacheDWCOnJavaScriptExecution,
"BackForwardCacheDWCOnJavaScriptExecution",
base::FEATURE_DISABLED_BY_DEFAULT);
@ -385,10 +395,6 @@ BASE_FEATURE(kCORSErrorsIssueOnly,
"CORSErrorsIssueOnly",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kCSPWildcardsInPermissionsPolicies,
"CSPWildcardsInPermissionsPolicies",
base::FEATURE_ENABLED_BY_DEFAULT);
// When enabled, code cache is produced asynchronously from the script execution
// (https://crbug.com/1260908).
BASE_FEATURE(kCacheCodeOnIdle,
@ -411,6 +417,12 @@ BASE_FEATURE(kCacheStorageCodeCacheHintHeader,
const base::FeatureParam<std::string> kCacheStorageCodeCacheHintHeaderName{
&kCacheStorageCodeCacheHintHeader, "name", "x-CacheStorageCodeCacheHint"};
// Modifies the logic in `blink::CanChangeToUrlForHistoryApi()` to be more
// spec-compliant.
BASE_FEATURE(kCanChangeToUrlForHistoryApiUpdate,
"CanChangeToUrlForHistoryApiUpdate",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(
kCanvas2DHibernation,
"Canvas2DHibernation",
@ -472,6 +484,11 @@ BASE_FEATURE(kClientHintsDeviceMemory_DEPRECATED,
"ClientHintsDeviceMemory_DEPRECATED",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enable `form-factor` client hint.
BASE_FEATURE(kClientHintsFormFactor,
"ClientHintsFormFactor",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enable `sec-ch-width` client hint.
BASE_FEATURE(kClientHintsResourceWidth,
"ClientHintsResourceWidth",
@ -508,6 +525,12 @@ BASE_FEATURE(kCompressParkableStrings,
"CompressParkableStrings",
base::FEATURE_ENABLED_BY_DEFAULT);
// Limits maximum capacity of disk data allocator per renderer process.
// DiskDataAllocator and its clients(ParkableString, ParkableImage) will try
// to keep the limitation.
const base::FeatureParam<int> kMaxDiskDataAllocatorCapacityMB{
&kCompressParkableStrings, "max_disk_capacity_mb", -1};
// Controls off-thread code cache consumption.
BASE_FEATURE(kConsumeCodeCacheOffThread,
"ConsumeCodeCacheOffThread",
@ -566,7 +589,7 @@ BASE_FEATURE(kDecodeLossyWebPImagesToYUV,
// Has no effect unless viewport handling is enabled.
BASE_FEATURE(kDefaultViewportIsDeviceWidth,
"DefaultViewportIsDeviceWidth",
base::FEATURE_DISABLED_BY_DEFAULT);
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kDelayAsyncScriptExecution,
"DelayAsyncScriptExecution",
@ -714,6 +737,30 @@ BASE_FEATURE(kEventTimingMatchPresentationIndex,
"EventTimingMatchPresentationIndex",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables reporting Event Timing entries with a smaller presentation index on
// resolved painted presentation.
BASE_FEATURE(kEventTimingReportAllEarlyEntriesOnPaintedPresentation,
"EventTimingReportAllEarlyEntriesOnPaintedPresentation",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables unload handler deprecation via Permissions-Policy.
// https://crbug.com/1324111
BASE_FEATURE(kDeprecateUnload,
"DeprecateUnload",
base::FEATURE_DISABLED_BY_DEFAULT);
// If enabled, each user experiences the deprecation on a certain % of origins.
// Which origins varies per user. This has no effect with DeprecateUnload.
BASE_FEATURE(kDeprecateUnloadByUserAndOrigin,
"DeprecateUnloadByUserAndOrigin",
base::FEATURE_DISABLED_BY_DEFAULT);
// This controls what % of origins have the deprecation for this user.
const base::FeatureParam<int> kDeprecateUnloadPercent{
&kDeprecateUnloadByUserAndOrigin, "rollout_percent", 0};
// This buckets users, with users in each bucket having a consistent experience
// of the unload deprecation rollout.
const base::FeatureParam<int> kDeprecateUnloadBucket{
&kDeprecateUnloadByUserAndOrigin, "rollout_bucket", 0};
// Controls whether LCP calculations should exclude low-entropy images. If
// enabled, then the associated parameter sets the cutoff, expressed as the
// minimum number of bits of encoded image data used to encode each rendered
@ -730,10 +777,6 @@ BASE_FEATURE(kExtendScriptResourceLifetime,
"ExtendScriptResourceLifetime",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFastPathPaintPropertyUpdates,
"FastPathPaintPropertyUpdates",
base::FEATURE_ENABLED_BY_DEFAULT);
// Enable the <fencedframe> element; see crbug.com/1123606. Note that enabling
// this feature does not automatically expose this element to the web, it only
// allows the element to be enabled by the runtime enabled feature, for origin
@ -784,6 +827,10 @@ BASE_FEATURE(kFledgeEnforceKAnonymity,
"FledgeEnforceKAnonymity",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFledgePassKAnonStatusToReportWin,
"FledgePassKAnonStatusToReportWin",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kFledgePassRecencyToGenerateBid,
"FledgePassRecencyToGenerateBid",
base::FEATURE_ENABLED_BY_DEFAULT);
@ -893,6 +940,10 @@ BASE_FEATURE(kImageLoadingPrioritizationFix,
"ImageLoadingPrioritizationFix",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kIndexedDBCompressValuesWithSnappy,
"IndexedDBCompressValuesWithSnappy",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kInputPredictorTypeChoice,
"InputPredictorTypeChoice",
base::FEATURE_DISABLED_BY_DEFAULT);
@ -981,6 +1032,27 @@ BASE_FEATURE(kLCPCriticalPathPredictor,
"LCPCriticalPathPredictor",
base::FEATURE_DISABLED_BY_DEFAULT);
const base::FeatureParam<bool> kLCPCriticalPathPredictorDryRun{
&kLCPCriticalPathPredictor, "lcpp_dry_run", false};
const base::FeatureParam<int> kLCPCriticalPathPredictorMaxElementLocatorLength{
&kLCPCriticalPathPredictor, "lcpp_max_element_locator_length", 1024};
const base::FeatureParam<LcppImageLoadPriority>::Option
lcpp_image_load_priorities[] = {
{LcppImageLoadPriority::kMedium, "medium"},
{LcppImageLoadPriority::kHigh, "high"},
{LcppImageLoadPriority::kVeryHigh, "very_high"},
};
const base::FeatureParam<LcppImageLoadPriority>
kLCPCriticalPathPredictorImageLoadPriority{
&kLCPCriticalPathPredictor, "lcpp_image_load_priority",
LcppImageLoadPriority::kVeryHigh, &lcpp_image_load_priorities};
BASE_FEATURE(kLCPScriptObserver,
"LCPScriptObserver",
base::FEATURE_DISABLED_BY_DEFAULT);
// Enables reporting as LCP of the time the first frame of a video was painted.
BASE_FEATURE(kLCPVideoFirstFrame,
"LCPVideoFirstFrame",
@ -996,6 +1068,8 @@ BASE_FEATURE(kLightweightNoStatePrefetch,
#endif
);
BASE_FEATURE(kLinkPreview, "LinkPreview", base::FEATURE_DISABLED_BY_DEFAULT);
// Makes network loading tasks unfreezable so that they can be processed while
// the page is frozen.
BASE_FEATURE(kLoadingTasksUnfreezable,
@ -1129,6 +1203,19 @@ BASE_FEATURE(kPaintHoldingCrossOrigin,
"PaintHoldingCrossOrigin",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kParkableImagesToDisk,
"ParkableImagesToDisk",
base::FEATURE_ENABLED_BY_DEFAULT);
#if BUILDFLAG(IS_ANDROID)
// A parameter to exclude or not exclude CanvasFontCache from
// PartialLowModeOnMidRangeDevices. This is used to see how
// CanvasFontCache affects graphics smoothness and renderer memory usage.
const base::FeatureParam<bool> kPartialLowEndModeExcludeCanvasFontCache{
&base::features::kPartialLowEndModeOnMidRangeDevices,
"exclude-canvas-font-cache", false};
#endif // BUILDFLAG(IS_ANDROID)
// Enables the use of the PaintCache for Path2D objects that are rasterized
// out of process. Has no effect when kCanvasOopRasterization is disabled.
BASE_FEATURE(kPath2DPaintCache,
@ -1277,19 +1364,22 @@ BASE_FEATURE(kPrivateAggregationApi,
base::FEATURE_DISABLED_BY_DEFAULT);
// Selectively allows the JavaScript API to be disabled in just one of the
// contexts.
// contexts. The Protected Audience param's name has not been updated (from
// "fledge") for consistency across versions
constexpr base::FeatureParam<bool> kPrivateAggregationApiEnabledInSharedStorage{
&kPrivateAggregationApi, "enabled_in_shared_storage",
/*default_value=*/true};
constexpr base::FeatureParam<bool> kPrivateAggregationApiEnabledInFledge{
&kPrivateAggregationApi, "enabled_in_fledge",
/*default_value=*/true};
constexpr base::FeatureParam<bool>
kPrivateAggregationApiEnabledInProtectedAudience{&kPrivateAggregationApi,
"enabled_in_fledge",
/*default_value=*/true};
// Selectively allows the Protected Audience-specific extensions to be disabled.
// The name has not been updated (from "fledge") for consistency across versions
constexpr base::FeatureParam<bool>
kPrivateAggregationApiFledgeExtensionsEnabled{&kPrivateAggregationApi,
"fledge_extensions_enabled",
/*default_value=*/true};
kPrivateAggregationApiProtectedAudienceExtensionsEnabled{
&kPrivateAggregationApi, "fledge_extensions_enabled",
/*default_value=*/true};
BASE_FEATURE(kProcessHtmlDataImmediately,
"ProcessHtmlDataImmediately",
@ -1377,6 +1467,10 @@ const base::FeatureParam<int> kMaxFCPDelayMsForRenderBlockingFonts(
"max-fcp-delay",
100);
BASE_FEATURE(kReportVisibleLineBounds,
"ReportVisibleLineBounds",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kResamplingInputEvents,
"ResamplingInputEvents",
base::FEATURE_DISABLED_BY_DEFAULT);
@ -1387,7 +1481,7 @@ BASE_FEATURE(kResamplingScrollEvents,
BASE_FEATURE(kRetriggerPreloadingOnBFCacheRestoration,
"RetriggerPreloadingOnBFCacheRestoration",
base::FEATURE_DISABLED_BY_DEFAULT);
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kRunTextInputUpdatePostLifecycle,
"RunTextInputUpdatePostLifecycle",
@ -1397,6 +1491,11 @@ BASE_FEATURE(kRuntimeFeatureStateControllerApplyFeatureDiff,
"RuntimeFeatureStateControllerApplyFeatureDiff",
base::FEATURE_ENABLED_BY_DEFAULT);
// https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme
BASE_FEATURE(kSafelistFTPToRegisterProtocolHandler,
"SafelistFTPToRegisterProtocolHandler",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kSSVTrailerEnforceExposureAssertion,
"SSVTrailerEnforceExposureAssertion",
base::FEATURE_ENABLED_BY_DEFAULT);
@ -1444,7 +1543,7 @@ BASE_FEATURE(kSendCnameAliasesToSubresourceFilterFromRenderer,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSerializeAccessibilityPostLifecycle,
"SerializeAccessibilityPostLifeycle",
"SerializeAccessibilityPostLifecycle",
base::FEATURE_DISABLED_BY_DEFAULT);
// Experiment of the delay from navigation to starting an update of a service
@ -1517,6 +1616,10 @@ const base::FeatureParam<int>
&kSharedStorageSelectURLLimit,
"SharedStorageSelectURLBitBudgetPerOriginPerPageLoad", 6};
BASE_FEATURE(kSharedStorageAPIM118,
"SharedStorageAPIM118",
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kSimulateClickOnAXFocus,
"SimulateClickOnAXFocus",
base::FEATURE_DISABLED_BY_DEFAULT);
@ -1615,6 +1718,10 @@ const base::FeatureParam<int>
const base::FeatureParam<bool> kSpeculativeServiceWorkerWarmUpOnVisible{
&kSpeculativeServiceWorkerWarmUp, "sw_warm_up_on_visible", true};
// Warms up service workers when the anchor is inserted into DOM.
const base::FeatureParam<bool> kSpeculativeServiceWorkerWarmUpOnInsertedIntoDom{
&kSpeculativeServiceWorkerWarmUp, "sw_warm_up_on_inserted_into_dom", false};
// Warms up service workers when a pointerover event is triggered on an anchor.
const base::FeatureParam<bool> kSpeculativeServiceWorkerWarmUpOnPointerover{
&kSpeculativeServiceWorkerWarmUp, "sw_warm_up_on_pointerover", true};
@ -1657,6 +1764,14 @@ const base::FeatureParam<base::TimeDelta>
kStorageAccessAPITopLevelUserInteractionBound{
&kStorageAccessAPI,
"storage_access_api_top_level_user_interaction_bound", base::Days(30)};
const base::FeatureParam<base::TimeDelta>
kStorageAccessAPIImplicitPermissionLifetime{
&kStorageAccessAPI, "storage_access_api_implicit_permission_lifetime",
base::Hours(24)};
const base::FeatureParam<base::TimeDelta>
kStorageAccessAPIExplicitPermissionLifetime{
&kStorageAccessAPI, "storage_access_api_explicit_permission_lifetime",
base::Days(30)};
BASE_FEATURE(kStylusPointerAdjustment,
"StylusPointerAdjustment",
@ -1723,12 +1838,16 @@ BASE_FEATURE(kUACHOverrideBlank,
BASE_FEATURE(kURLSetPortCheckOverflow,
"URLSetPortCheckOverflow",
base::FEATURE_DISABLED_BY_DEFAULT);
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kUseBlinkSchedulerTaskRunnerWithCustomDeleter,
"UseBlinkSchedulerTaskRunnerWithCustomDeleter",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kEnableFileBackedBlobFactory,
"EnableFileBackedBlobFactory",
base::FEATURE_ENABLED_BY_DEFAULT);
// Whether to use 'TexImage2D' instead of 'TexStorage2DEXT' when creating a
// staging texture for |DrawingBuffer|. This is a killswitch; remove when
// launched.
@ -1757,12 +1876,6 @@ BASE_FEATURE(kUserLevelMemoryPressureSignal,
"UserLevelMemoryPressureSignal",
base::FEATURE_DISABLED_BY_DEFAULT);
// Prevents workers from sending IsolateInBackgroundNotification to V8
// and thus instructs V8 to favor performance over memory on workers.
BASE_FEATURE(kV8OptimizeWorkersForPerformance,
"V8OptimizeWorkersForPerformance",
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kVSyncDecoding,
"VSyncDecoding",
base::FEATURE_DISABLED_BY_DEFAULT);
@ -1773,7 +1886,12 @@ const base::FeatureParam<base::TimeDelta>
// Enable borderless mode for desktop PWAs. go/borderless-mode
BASE_FEATURE(kWebAppBorderless,
"WebAppBorderless",
base::FEATURE_DISABLED_BY_DEFAULT);
#if BUILDFLAG(IS_CHROMEOS)
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
#endif // BUILDFLAG(IS_CHROMEOS)
);
// Controls scope extensions feature in web apps. Controls parsing of
// "scope_extensions" field in web app manifests. See explainer for more
@ -1860,7 +1978,7 @@ BASE_FEATURE(kWebRtcIgnoreUnspecifiedColorSpace,
BASE_FEATURE(kWebRtcInitializeEncoderOnFirstFrame,
"WebRtcInitializeEncoderOnFirstFrame",
base::FEATURE_DISABLED_BY_DEFAULT);
base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kWebRtcMetronome,
"WebRtcMetronome",
@ -1948,6 +2066,10 @@ bool IsParkableStringsToDiskEnabled() {
return base::FeatureList::IsEnabled(kCompressParkableStrings);
}
bool IsParkableImagesToDiskEnabled() {
return base::FeatureList::IsEnabled(kParkableImagesToDisk);
}
bool IsSetTimeoutWithoutClampEnabled() {
return base::FeatureList::IsEnabled(features::kSetTimeoutWithoutClamp);
}

View File

@ -597,19 +597,7 @@ class ParserBase {
private_members(parser->impl()->NewClassPropertyList(4)),
static_elements(parser->impl()->NewClassStaticElementList(4)),
instance_fields(parser->impl()->NewClassPropertyList(4)),
constructor(parser->impl()->NullExpression()),
has_seen_constructor(false),
has_static_computed_names(false),
has_static_elements(false),
has_static_private_methods(false),
has_static_blocks(false),
has_instance_members(false),
requires_brand(false),
is_anonymous(false),
has_private_methods(false),
static_elements_scope(nullptr),
instance_members_scope(nullptr),
computed_field_count(0) {}
constructor(parser->impl()->NullExpression()) {}
ExpressionT extends;
ClassPropertyListT public_members;
ClassPropertyListT private_members;
@ -617,18 +605,18 @@ class ParserBase {
ClassPropertyListT instance_fields;
FunctionLiteralT constructor;
bool has_seen_constructor;
bool has_static_computed_names;
bool has_static_elements;
bool has_static_private_methods;
bool has_static_blocks;
bool has_instance_members;
bool requires_brand;
bool is_anonymous;
bool has_private_methods;
DeclarationScope* static_elements_scope;
DeclarationScope* instance_members_scope;
int computed_field_count;
bool has_seen_constructor = false;
bool has_static_computed_names = false;
bool has_static_elements = false;
bool has_static_private_methods = false;
bool has_static_blocks = false;
bool has_instance_members = false;
bool requires_brand = false;
bool is_anonymous = false;
bool has_private_methods = false;
DeclarationScope* static_elements_scope = nullptr;
DeclarationScope* instance_members_scope = nullptr;
int computed_field_count = 0;
Variable* home_object_variable = nullptr;
Variable* static_home_object_variable = nullptr;
};
@ -1242,6 +1230,9 @@ class ParserBase {
Scanner::Location class_name_location,
bool name_is_strict_reserved,
int class_token_pos);
ExpressionT ParseClassLiteralBody(ClassScope* class_scope,
ClassInfo& class_info, IdentifierT name,
int class_token_pos);
ExpressionT ParseTemplateLiteral(ExpressionT tag, int start, bool tagged);
ExpressionT ParseSuperExpression();
@ -2600,7 +2591,6 @@ typename ParserBase<Impl>::BlockT ParserBase<Impl>::ParseClassStaticBlock(
if (initializer_scope == nullptr) {
initializer_scope =
NewFunctionScope(FunctionKind::kClassStaticInitializerFunction);
initializer_scope->set_start_position(position());
initializer_scope->SetLanguageMode(LanguageMode::kStrict);
class_info->static_elements_scope = initializer_scope;
}
@ -2612,7 +2602,6 @@ typename ParserBase<Impl>::BlockT ParserBase<Impl>::ParseClassStaticBlock(
// block scope instead of using the synthetic members initializer function
// scope.
BlockT static_block = ParseBlock(nullptr, NewVarblockScope());
initializer_scope->set_end_position(end_position());
class_info->has_static_elements = true;
return static_block;
}
@ -3768,7 +3757,9 @@ ParserBase<Impl>::ParseImportExpressions() {
AcceptINScope scope(this, true);
ExpressionT specifier = ParseAssignmentExpressionCoverGrammar();
if (v8_flags.harmony_import_assertions && Check(Token::COMMA)) {
if ((v8_flags.harmony_import_assertions ||
v8_flags.harmony_import_attributes) &&
Check(Token::COMMA)) {
if (Check(Token::RPAREN)) {
// A trailing comma allowed after the specifier.
return factory()->NewImportCallExpression(specifier, pos);
@ -4769,10 +4760,18 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseClassLiteral(
class_info.extends = ParseLeftHandSideExpression();
scope.ValidateExpression();
}
return ParseClassLiteralBody(class_scope, class_info, name, class_token_pos);
}
template <typename Impl>
typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseClassLiteralBody(
ClassScope* class_scope, ClassInfo& class_info, IdentifierT name,
int class_token_pos) {
bool has_extends = !impl()->IsNull(class_info.extends);
Expect(Token::LBRACE);
int start_pos = position();
const bool has_extends = !impl()->IsNull(class_info.extends);
while (peek() != Token::RBRACE) {
if (Check(Token::SEMICOLON)) continue;
@ -4841,13 +4840,13 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseClassLiteral(
if (class_info.static_elements_scope != nullptr) {
// Use the positions of the class body for the static initializer
// function so that we can reparse it later.
class_info.static_elements_scope->set_start_position(class_token_pos);
class_info.static_elements_scope->set_start_position(start_pos);
class_info.static_elements_scope->set_end_position(end_pos);
}
if (class_info.instance_members_scope != nullptr) {
// Use the positions of the class body for the instance initializer
// function so that we can reparse it later.
class_info.instance_members_scope->set_start_position(class_token_pos);
class_info.instance_members_scope->set_start_position(start_pos);
class_info.instance_members_scope->set_end_position(end_pos);
}
@ -4874,7 +4873,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseClassLiteral(
bool should_save_class_variable_index =
class_scope->should_save_class_variable_index();
if (!is_anonymous || should_save_class_variable_index) {
if (!class_info.is_anonymous || should_save_class_variable_index) {
impl()->DeclareClassVariable(class_scope, name, &class_info,
class_token_pos);
if (should_save_class_variable_index) {