diff --git a/docs/FEATURES.md b/docs/FEATURES.md
index 09398963..13989ed5 100644
--- a/docs/FEATURES.md
+++ b/docs/FEATURES.md
@@ -1,4 +1,4 @@
-
+
## List of user-facing features included in Thorium :
diff --git a/infra/THORIUM_DEV_BOOKMARKS.html b/infra/THORIUM_DEV_BOOKMARKS.html
index e418b084..ef6a89d0 100644
--- a/infra/THORIUM_DEV_BOOKMARKS.html
+++ b/infra/THORIUM_DEV_BOOKMARKS.html
@@ -13,232 +13,232 @@
-
- tab.cc - Chromium Code Search
-
- tab_strip.cc - Chromium Code Search
-
- tab_style_views.cc - Chromium Code Search
-
- tab_style_views.h - Chromium Code Search
-
- tab_strip_model.cc - Chromium Code Search
-
- tab_strip_model.h - Chromium Code Search
-
- history_backend.cc - Chromium Code Search
-
- browser_root_view.h - Chromium Code Search
-
- browser_root_view.cc - Chromium Code Search
-
- new_tab_page_feed_v2_expandable_header.xml - Chromium Code Search
-
- new_tab_page_multi_feed_header.xml - Chromium Code Search
-
- pref_names.cc - Chromium Code Search
-
- theme_helper_win.cc - Chromium Code Search
-
- obsolete_system_linux.cc - Chromium Code Search
-
- insecure_download_blocking.cc - Chromium Code Search
-
- download_target_determiner.cc - Chromium Code Search
-
- feature_promo_controller.cc - Chromium Code Search
-
- gpu_pre_sandbox_hook_linux.cc - Chromium Code Search
-
- download_bubble_prefs.cc - Chromium Code Search
-
- accelerators.cc - Chromium Code Search
-
- profile_network_context_service.cc - Chromium Code Search
-
- whats_new_util.cc - Chromium Code Search
-
- chrome_download_manager_delegate.cc - Chromium Code Search
-
- libaom - Chromium Code Search
-
- libvpx - Chromium Code Search
-
- xnnpack - Chromium Code Search
-
- extension_prefs.cc - Chromium Code Search
-
- extension.cc - Chromium Code Search
-
- tab_search_bubble_host.cc - Chromium Code Search
+
- tab.cc - Chromium Code Search
+
- tab_strip.cc - Chromium Code Search
+
- tab_style_views.cc - Chromium Code Search
+
- tab_style_views.h - Chromium Code Search
+
- tab_strip_model.cc - Chromium Code Search
+
- tab_strip_model.h - Chromium Code Search
+
- history_backend.cc - Chromium Code Search
+
- browser_root_view.h - Chromium Code Search
+
- browser_root_view.cc - Chromium Code Search
+
- new_tab_page_feed_v2_expandable_header.xml - Chromium Code Search
+
- new_tab_page_multi_feed_header.xml - Chromium Code Search
+
- pref_names.cc - Chromium Code Search
+
- theme_helper_win.cc - Chromium Code Search
+
- obsolete_system_linux.cc - Chromium Code Search
+
- insecure_download_blocking.cc - Chromium Code Search
+
- download_target_determiner.cc - Chromium Code Search
+
- feature_promo_controller.cc - Chromium Code Search
+
- gpu_pre_sandbox_hook_linux.cc - Chromium Code Search
+
- download_bubble_prefs.cc - Chromium Code Search
+
- accelerators.cc - Chromium Code Search
+
- profile_network_context_service.cc - Chromium Code Search
+
- whats_new_util.cc - Chromium Code Search
+
- chrome_download_manager_delegate.cc - Chromium Code Search
+
- libaom - Chromium Code Search
+
- libvpx - Chromium Code Search
+
- xnnpack - Chromium Code Search
+
- extension_prefs.cc - Chromium Code Search
+
- extension.cc - Chromium Code Search
+
- tab_search_bubble_host.cc - Chromium Code Search
VectorIcons
-
- BUILD.gn - Chromium Code Search
-
- BUILD.gn - Chromium Code Search
-
- browser_app_menu_button.cc - Chromium Code Search
-
- chrome_labs_button.cc - Chromium Code Search
-
- home_button.cc - Chromium Code Search
-
- side_panel_toolbar_button.cc - Chromium Code Search
-
- ui_base_features.cc - Chromium Code Search
+
- BUILD.gn - Chromium Code Search
+
- BUILD.gn - Chromium Code Search
+
- browser_app_menu_button.cc - Chromium Code Search
+
- chrome_labs_button.cc - Chromium Code Search
+
- home_button.cc - Chromium Code Search
+
- side_panel_toolbar_button.cc - Chromium Code Search
+
- ui_base_features.cc - Chromium Code Search
- extension_management_internal.h - Chromium Code Search
- allowlist.cc - Chromium Code Search
diff --git a/infra/portable/THORIUM_SHELL.BAT b/infra/portable/THORIUM_SHELL.BAT
index 175a03c8..42e5b1d1 100644
--- a/infra/portable/THORIUM_SHELL.BAT
+++ b/infra/portable/THORIUM_SHELL.BAT
@@ -1 +1 @@
-START "" "%cd%\BIN\126.0.6478.251\thorium_shell.exe" --user-data-dir="%~dp0%\USER_DATA\thorium_shell" --allow-outdated-plugins --disable-logging --disable-breakpad --enable-experimental-web-platform-features --disable-encryption --disable-machine-id
+START "" "%cd%\BIN\128.0.6613.163\thorium_shell.exe" --user-data-dir="%~dp0%\USER_DATA\thorium_shell" --allow-outdated-plugins --disable-logging --disable-breakpad --enable-experimental-web-platform-features --disable-encryption --disable-machine-id
diff --git a/other/thorium-2024-ui.patch b/other/thorium-2024-ui.patch
index 84ddbc45..89d02989 100644
--- a/other/thorium-2024-ui.patch
+++ b/other/thorium-2024-ui.patch
@@ -38,7 +38,7 @@ index 49fd0b0f7a21c..c91d24529eb75 100644
registry->RegisterIntegerPref(prefs::kSystemTheme,
static_cast(default_system_theme));
diff --git a/chrome/browser/ui/layout_constants.cc b/chrome/browser/ui/layout_constants.cc
-index bba403a7e5068..dae26bd577dcb 100644
+index bba403a7e5068..351e081441698 100644
--- a/chrome/browser/ui/layout_constants.cc
+++ b/chrome/browser/ui/layout_constants.cc
@@ -1,12 +1,14 @@
@@ -89,22 +89,31 @@ index bba403a7e5068..dae26bd577dcb 100644
case BOOKMARK_BAR_BUTTON_IMAGE_LABEL_PADDING:
return features::IsChromeRefresh2023() ? 6 : 8;
case WEB_APP_MENU_BUTTON_SIZE:
-@@ -97,7 +103,13 @@ int GetLayoutConstant(LayoutConstant constant) {
+@@ -83,6 +89,8 @@ int GetLayoutConstant(LayoutConstant constant) {
+ return 16;
+ case TAB_ALERT_INDICATOR_ICON_WIDTH:
+ return touch_ui ? 12 : 16;
++ case TAB_BUTTON_OFFSET:
++ return features::IsThorium2024() ? -1 : 0;
+ case TAB_CLOSE_BUTTON_SIZE:
+ return touch_ui ? 24 : 16;
+ case TAB_HEIGHT: {
+@@ -97,7 +105,13 @@ int GetLayoutConstant(LayoutConstant constant) {
return GetLayoutConstant(TAB_HEIGHT) +
GetLayoutConstant(TAB_STRIP_PADDING);
case TAB_STRIP_PADDING:
- return features::IsChromeRefresh2023() ? 6 : 0;
+ return features::IsThorium2024() ? 0 : 6;
+ case TAB_MARGIN:
-+ return features::IsThorium2024() ? 6 : GetLayoutConstant(TAB_STRIP_PADDING);
++ return features::IsThorium2024() ? 6 : 6;
+ case TAB_INACTIVE_PADDING:
-+ return features::IsThorium2024() ? 3 : GetLayoutConstant(TAB_STRIP_PADDING);
++ return features::IsThorium2024() ? 3 : 6;
+ case TAB_SEARCH_PADDING:
-+ return features::IsThorium2024() ? 4 : 0;
++ return features::IsThorium2024() ? 3 : 6;
case TAB_SEPARATOR_HEIGHT:
// TODO (crbug.com/1451400): ChromeRefresh2023 needs different values for
// this constant.
-@@ -125,9 +137,13 @@ int GetLayoutConstant(LayoutConstant constant) {
+@@ -125,9 +139,13 @@ int GetLayoutConstant(LayoutConstant constant) {
case TOOLBAR_DIVIDER_CORNER_RADIUS:
return 1;
case TOOLBAR_DIVIDER_HEIGHT:
@@ -120,7 +129,7 @@ index bba403a7e5068..dae26bd577dcb 100644
case TOOLBAR_DIVIDER_WIDTH:
return 2;
case TOOLBAR_ELEMENT_PADDING:
-@@ -139,17 +155,17 @@ int GetLayoutConstant(LayoutConstant constant) {
+@@ -139,17 +157,17 @@ int GetLayoutConstant(LayoutConstant constant) {
return GetLayoutConstant(TOOLBAR_ELEMENT_PADDING);
}
case TOOLBAR_STANDARD_SPACING:
@@ -142,7 +151,7 @@ index bba403a7e5068..dae26bd577dcb 100644
break;
}
diff --git a/chrome/browser/ui/layout_constants.h b/chrome/browser/ui/layout_constants.h
-index d26bc737d3177..f453b459eb3f8 100644
+index d26bc737d3177..d1cab25f32356 100644
--- a/chrome/browser/ui/layout_constants.h
+++ b/chrome/browser/ui/layout_constants.h
@@ -1,4 +1,4 @@
@@ -151,7 +160,7 @@ index d26bc737d3177..f453b459eb3f8 100644
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-@@ -119,9 +119,18 @@ enum LayoutConstant {
+@@ -119,9 +119,21 @@ enum LayoutConstant {
// detached tab, and on all sides of the controls padding.
TAB_STRIP_PADDING,
@@ -166,6 +175,9 @@ index d26bc737d3177..f453b459eb3f8 100644
+ // Padding for the tab search button
+ TAB_SEARCH_PADDING,
++
++ // Offset y for new tab button
++ TAB_BUTTON_OFFSET,
+
// Padding before the tab title.
TAB_PRE_TITLE_PADDING,
@@ -186,7 +198,7 @@ index bec499693cd91..404316da5bcd2 100644
AddItem(
TabStripModel::CommandAddToReadLater,
diff --git a/chrome/browser/ui/tabs/tab_style.cc b/chrome/browser/ui/tabs/tab_style.cc
-index aa9cd30374311..4bf9ac819a508 100644
+index aa9cd30374311..120bb7d61df54 100644
--- a/chrome/browser/ui/tabs/tab_style.cc
+++ b/chrome/browser/ui/tabs/tab_style.cc
@@ -1,27 +1,32 @@
@@ -211,7 +223,7 @@ index aa9cd30374311..4bf9ac819a508 100644
constexpr int kGM2SeparatorThickness = 1;
+constexpr int kThoriumSeparatorThickness = 1;
constexpr int kChromeRefreshSeparatorThickness = 2;
-+constexpr int kThoriumSeparatorHorizontalMargin = 1;
++constexpr int kThoriumSeparatorHorizontalMargin = 0;
constexpr int kChromeRefreshSeparatorHorizontalMargin = 2;
// TODO (crbug.com/1451400): This constant should be in LayoutConstants.
+constexpr int kThoriumSeparatorHeight = 20;
@@ -252,7 +264,7 @@ index aa9cd30374311..4bf9ac819a508 100644
// The overlap includes one separator, so subtract it here.
return kTabWidth + GetTabOverlap() - GetSeparatorSize().width();
}
-@@ -197,11 +220,27 @@ float GM2TabStyle::GetSelectedTabOpacity() const {
+@@ -197,47 +220,93 @@ float GM2TabStyle::GetSelectedTabOpacity() const {
}
int ChromeRefresh2023TabStyle::GetTopCornerRadius() const {
@@ -282,7 +294,22 @@ index aa9cd30374311..4bf9ac819a508 100644
}
int ChromeRefresh2023TabStyle::GetTabOverlap() const {
-@@ -213,23 +252,43 @@ int ChromeRefresh2023TabStyle::GetTabOverlap() const {
+- // The overlap removes the width and the margins of the separator.
+- const float total_separator_width = GetSeparatorMargins().left() +
+- GetSeparatorSize().width() +
+- GetSeparatorMargins().right();
+- return 2 * GetBottomCornerRadius() - total_separator_width;
++ if (features::IsThorium2024()) {
++ const float total_separator_width = GetSeparatorSize().width() +
++ GetSeparatorSize().width();
++ return 2 * GetBottomCornerRadius() - total_separator_width;
++ } else {
++ // The overlap removes the width and the margins of the separator.
++ const float total_separator_width = GetSeparatorMargins().left() +
++ GetSeparatorSize().width() +
++ GetSeparatorMargins().right();
++ return 2 * GetBottomCornerRadius() - total_separator_width;
++ }
}
gfx::Size ChromeRefresh2023TabStyle::GetSeparatorSize() const {
@@ -337,6 +364,20 @@ index aa9cd30374311..4bf9ac819a508 100644
}
int ChromeRefresh2023TabStyle::GetSeparatorCornerRadius() const {
+- return GetSeparatorSize().width() / 2;
++ if (features::IsThorium2024()) {
++ return 0;
++ } else {
++ return GetSeparatorSize().width() / 2;
++ }
+ }
+
+ int ChromeRefresh2023TabStyle::GetDragHandleExtension(int height) const {
+- return 6;
++ return 12;
+ }
+
+ SkColor ChromeRefresh2023TabStyle::GetTabBackgroundColor(
diff --git a/chrome/browser/ui/thorium_2024.h b/chrome/browser/ui/thorium_2024.h
new file mode 100644
index 0000000000000..de40b42fcc722
@@ -358,7 +399,7 @@ index 0000000000000..de40b42fcc722
+
+#endif // CHROME_BROWSER_UI_THORIUM_2024_UI_H_
diff --git a/chrome/browser/ui/views/chrome_layout_provider.cc b/chrome/browser/ui/views/chrome_layout_provider.cc
-index efe87aa6d6dd6..be18a870f0217 100644
+index efe87aa6d6dd6..600a4c7aeb05f 100644
--- a/chrome/browser/ui/views/chrome_layout_provider.cc
+++ b/chrome/browser/ui/views/chrome_layout_provider.cc
@@ -1,4 +1,4 @@
@@ -377,7 +418,7 @@ index efe87aa6d6dd6..be18a870f0217 100644
return features::IsChromeRefresh2023()
? 8
diff --git a/chrome/browser/ui/views/frame/tab_strip_region_view.cc b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
-index f534d7e925b86..2d2e7812ef123 100644
+index f534d7e925b86..53a9741048850 100644
--- a/chrome/browser/ui/views/frame/tab_strip_region_view.cc
+++ b/chrome/browser/ui/views/frame/tab_strip_region_view.cc
@@ -1,4 +1,4 @@
@@ -395,25 +436,39 @@ index f534d7e925b86..2d2e7812ef123 100644
} else {
const gfx::Insets control_padding = gfx::Insets::TLBR(
0, 0, 0, GetLayoutConstant(TABSTRIP_REGION_VIEW_CONTROL_PADDING));
-@@ -357,7 +357,7 @@ void TabStripRegionView::Layout(PassKey) {
+@@ -357,7 +357,8 @@ void TabStripRegionView::Layout(PassKey) {
int product_specifications_button_width =
product_specifications_button_
? product_specifications_button_->GetPreferredSize().width()
- : 0;
-+ : GetLayoutConstant(TAB_SEARCH_PADDING);
++ : features::IsThorium2024() ? GetLayoutConstant(TAB_SEARCH_PADDING)
++ : 0;
AdjustViewBoundsRect(tab_search_container_,
product_specifications_button_width);
}
-@@ -372,7 +372,7 @@ void TabStripRegionView::Layout(PassKey) {
+@@ -372,8 +373,8 @@ void TabStripRegionView::Layout(PassKey) {
gfx::Point new_tab_button_new_position =
gfx::Point(tab_strip_container_->bounds().right() -
TabStyle::Get()->GetBottomCornerRadius() +
- GetLayoutConstant(TAB_STRIP_PADDING),
+- 0);
+ GetLayoutConstant(TAB_MARGIN),
- 0);
++ GetLayoutConstant(TAB_BUTTON_OFFSET));
gfx::Rect new_tab_button_new_bounds =
-@@ -502,7 +502,7 @@ void TabStripRegionView::UpdateTabStripMargin() {
+ gfx::Rect(new_tab_button_new_position, new_tab_button_size);
+@@ -476,7 +477,9 @@ void TabStripRegionView::UpdateButtonBorders() {
+ // definitely isn't what we want in the scrolling case, so this naive approach
+ // should be improved, likely by taking the scroll state of the tabstrip into
+ // account.
+- const auto border_insets = gfx::Insets::TLBR(top_inset, 0, bottom_inset, 0);
++ const auto border_insets =
++ gfx::Insets::TLBR(top_inset, 0, bottom_inset,
++ features::IsThorium2024() ? 8 : 0);
+ if (new_tab_button_) {
+ new_tab_button_->SetBorder(views::CreateEmptyBorder(border_insets));
+ }
+@@ -502,7 +505,7 @@ void TabStripRegionView::UpdateTabStripMargin() {
new_tab_button_->SetProperty(views::kViewIgnoredByLayoutKey, true);
tab_strip_right_margin = new_tab_button_->GetPreferredSize().width() +
@@ -422,7 +477,7 @@ index f534d7e925b86..2d2e7812ef123 100644
}
// If the tab search button is before the tab strip, it also overlaps the
-@@ -528,8 +528,8 @@ void TabStripRegionView::UpdateTabStripMargin() {
+@@ -528,8 +531,8 @@ void TabStripRegionView::UpdateTabStripMargin() {
// should have 6 px of padding between it and the tab_search button (not
// including the corner radius).
tab_strip_left_margin = tab_strip_left_margin.value() +
diff --git a/setup.sh b/setup.sh
index bf148ccc..0f5bae88 100755
--- a/setup.sh
+++ b/setup.sh
@@ -19,26 +19,30 @@ try() { "$@" || die "${RED}Failed $*"; }
displayHelp () {
printf "\n" &&
printf "${bold}${GRE}Script to copy Thorium source files over the Chromium source tree.${c0}\n" &&
- printf "${bold}${YEL}Use the --mac flag for MacOS builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --raspi flag for Raspberry Pi builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --woa flag for Windows on ARM builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --avx512 flag for AVX-512 Builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --avx2 flag for AVX2 Builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --sse4 flag for SSE4.1 Builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --sse3 flag for SSE3 Builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --sse2 flag for 32 bit SSE2 Builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --android flag for Android Builds.${c0}\n" &&
- printf "${bold}${YEL}Use the --cros flag for ChromiumOS Builds.${c0}\n" &&
- printf "${bold}${YEL}IMPORTANT: For Polly builds, first run build_polly.sh in ./infra before building.${c0}\n" &&
- printf "${bold}${YEL} This should be done AFTER running this setup.sh script!${c0}\n" &&
+ printf "${bold}${YEL} Use the --mac flag for MacOS builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --raspi or --arm64 flag for Raspberry Pi builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --woa flag for Windows on ARM builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --avx512 flag for AVX-512 Builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --avx2 flag for AVX2 Builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --sse4 flag for SSE4.1 Builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --sse3 flag for SSE3 Builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --sse2 flag for 32 bit SSE2 Builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --android flag for Android Builds.${c0}\n" &&
+ printf "${bold}${YEL} Use the --cros flag for ChromiumOS Builds.${c0}\n" &&
+ printf "${bold}${YEL} --help or -h shows this help.${c0}\n" &&
+ printf "${bold}${YEL} IMPORTANT: For Polly builds, first run build_polly.sh in ./infra before building.${c0}\n" &&
+ printf "${bold}${YEL} This should be done AFTER running this setup.sh script!${c0}\n" &&
printf "\n"
- printf "${bold}${YEL}NOTE: The \`CR_DIR\` env variable can be used to override the location of \"chromium/src\".${c0}\n" &&
- printf "${bold}${YEL} The default is $HOME/chromium/src${c0}\n" &&
+ printf "${bold}${YEL} NOTE: The \`CR_DIR\` env variable can be used to override the location of \"chromium/src\".${c0}\n" &&
+ printf "${bold}${YEL} The default is $HOME/chromium/src${c0}\n" &&
printf "\n"
}
case $1 in
--help) displayHelp; exit 0;;
esac
+case $1 in
+ -h) displayHelp; exit 0;;
+esac
# chromium/src dir env variable
if [ -z "${CR_DIR}" ]; then
@@ -168,6 +172,9 @@ copyRaspi () {
case $1 in
--raspi) copyRaspi;
esac
+case $1 in
+ --arm64) copyRaspi;
+esac
# Windows on ARM64 files
copyWOA () {
diff --git a/thorium-libjxl b/thorium-libjxl
index 96223914..56abd303 160000
--- a/thorium-libjxl
+++ b/thorium-libjxl
@@ -1 +1 @@
-Subproject commit 962239146a78cecae324e4511442b19533d9c868
+Subproject commit 56abd303a5cae4a579e84c16e3affca46e32a5b3
diff --git a/upstream_version.sh b/upstream_version.sh
index 405daed2..553c011a 100755
--- a/upstream_version.sh
+++ b/upstream_version.sh
@@ -36,7 +36,7 @@ else
export CR_SRC_DIR
fi
-CR_VER="126.0.6478.251"
+CR_VER="128.0.6613.164"
export CR_VER &&
diff --git a/version.sh b/version.sh
index e105348e..9e7df251 100755
--- a/version.sh
+++ b/version.sh
@@ -36,7 +36,7 @@ else
export CR_SRC_DIR
fi
-THOR_VER="126.0.6478.251"
+THOR_VER="128.0.6613.164"
export THOR_VER &&