diff --git a/infra/DEBUG/debug_args.gn b/infra/DEBUG/debug_args.gn
index 8c824a641..50d51dfea 100644
--- a/infra/DEBUG/debug_args.gn
+++ b/infra/DEBUG/debug_args.gn
@@ -32,6 +32,9 @@ use_icf = true
is_cfi = false
v8_symbol_level = 2
v8_enable_fast_torque = true
+# v8_enable_builtins_optimization = true
+# v8_enable_maglev = true
+# v8_enable_turbofan = true
v8_enable_wasm_simd256_revec = true
use_v8_context_snapshot = true
blink_symbol_level = 2
@@ -62,7 +65,7 @@ enable_cdm_host_verification = false
ignore_missing_widevine_signing_cert = true
enable_media_drm_storage = true
# enable_media_overlay = true
-enable_hangout_services_extension = true
+enable_hangout_services_extension = false
rtc_use_h264 = true
rtc_include_ilbc = true
# rtc_build_with_neon = true
@@ -72,6 +75,7 @@ enable_vr = true
# use_vr_assets_component = true
enable_platform_hevc = true
enable_hevc_parser_and_hw_decoder = true
+platform_has_optional_hevc_support = true
enable_platform_ac3_eac3_audio = true
enable_platform_ac4_audio = false
enable_platform_dolby_vision = true
@@ -83,4 +87,6 @@ use_text_section_splitting = true
use_thin_lto = false
thin_lto_enable_optimizations = false
enable_rust = true
+enable_all_rust_features = true
+# init_stack_vars_zero = true
chrome_pgo_phase = 0
diff --git a/infra/DEBUG/win_debug_args.gn b/infra/DEBUG/win_debug_args.gn
index eb5401ff2..be47cb65d 100644
--- a/infra/DEBUG/win_debug_args.gn
+++ b/infra/DEBUG/win_debug_args.gn
@@ -29,6 +29,9 @@ treat_warnings_as_errors = false
use_lld = true
v8_symbol_level = 2
v8_enable_fast_torque = true
+# v8_enable_builtins_optimization = true
+# v8_enable_maglev = true
+# v8_enable_turbofan = true
v8_enable_wasm_simd256_revec = true
use_v8_context_snapshot = true
blink_symbol_level = 2
@@ -62,7 +65,7 @@ enable_rlz = true
ignore_missing_widevine_signing_cert = true
enable_media_drm_storage = true
# enable_media_overlay = true
-enable_hangout_services_extension = true
+enable_hangout_services_extension = false
rtc_use_h264 = true
rtc_include_ilbc = true
# rtc_build_with_neon = true
@@ -72,6 +75,7 @@ enable_vr = true
# use_vr_assets_component = true
enable_platform_hevc = true
enable_hevc_parser_and_hw_decoder = true
+platform_has_optional_hevc_support = true
enable_platform_ac3_eac3_audio = true
enable_platform_ac4_audio = false
enable_platform_dolby_vision = true
@@ -83,4 +87,6 @@ use_text_section_splitting = true
use_thin_lto = false
thin_lto_enable_optimizations = false
enable_rust = true
+enable_all_rust_features = true
+# init_stack_vars_zero = true
chrome_pgo_phase = 0
diff --git a/infra/THORIUM_DEV_BOOKMARKS.html b/infra/THORIUM_DEV_BOOKMARKS.html
index ccb243e69..ce7c906e6 100644
--- a/infra/THORIUM_DEV_BOOKMARKS.html
+++ b/infra/THORIUM_DEV_BOOKMARKS.html
@@ -206,6 +206,7 @@
Bookmarks
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
diff --git a/other/thorium-2024-ui.patch b/other/thorium-2024-ui.patch
index 4c1dadd5f..0be54ec78 100644
--- a/other/thorium-2024-ui.patch
+++ b/other/thorium-2024-ui.patch
@@ -106,6 +106,23 @@ index d26bc737d3177..f453b459eb3f8 100644
// Padding before the tab title.
TAB_PRE_TITLE_PADDING,
+diff --git a/chrome/browser/ui/tabs/tab_menu_model.cc b/chrome/browser/ui/tabs/tab_menu_model.cc
+index bec499693cd91..52e9c7f245110 100644
+--- a/chrome/browser/ui/tabs/tab_menu_model.cc
++++ b/chrome/browser/ui/tabs/tab_menu_model.cc
+@@ -102,9 +102,9 @@ void TabMenuModel::Build(TabStripModel* tab_strip, int index) {
+ }
+
+ int num_tabs = indices.size();
+- AddItemWithStringId(TabStripModel::CommandNewTabToRight,
+- base::i18n::IsRTL() ? IDS_TAB_CXMENU_NEWTABTOLEFT
+- : IDS_TAB_CXMENU_NEWTABTORIGHT);
++ AddItemWithStringId(TabStripModel::CommandNewTabToRight, IDS_TAB_CXMENU_NEWTABTORIGHT);
++ AddItemWithStringId(TabStripModel::CommandNewTabToLeft, IDS_TAB_CXMENU_NEWTABTOLEFT);
++ AddItemWithStringId(IDC_RESTORE_TAB, IDS_RESTORE_TAB);
+ if (tab_strip->delegate()->SupportsReadLater()) {
+ AddItem(
+ TabStripModel::CommandAddToReadLater,
diff --git a/chrome/browser/ui/tabs/tab_style.cc b/chrome/browser/ui/tabs/tab_style.cc
index aa9cd30374311..5d5a40f92f922 100644
--- a/chrome/browser/ui/tabs/tab_style.cc
diff --git a/src/BUILD.gn b/src/BUILD.gn
index 31c76cfda..8aaf68061 100644
--- a/src/BUILD.gn
+++ b/src/BUILD.gn
@@ -84,6 +84,10 @@ group("thorium") {
if (is_win) {
deps += [ "//chrome:chrome_dll" ]
}
+
+ if (is_linux || is_chromeos) {
+ deps += [ "//sandbox/linux:chrome_sandbox" ]
+ }
}
# Thorium target that builds everything for a release build
diff --git a/src/chrome/browser/ui/tabs/tab_strip_model.cc b/src/chrome/browser/ui/tabs/tab_strip_model.cc
index 9fef79ee6..e756ff882 100644
--- a/src/chrome/browser/ui/tabs/tab_strip_model.cc
+++ b/src/chrome/browser/ui/tabs/tab_strip_model.cc
@@ -1463,6 +1463,7 @@ bool TabStripModel::IsContextMenuCommandEnabled(
ContextMenuCommand command_id) const {
DCHECK(command_id > CommandFirst && command_id < CommandLast);
switch (command_id) {
+ case CommandNewTabToLeft:
case CommandNewTabToRight:
case CommandCloseTab:
return true;
@@ -1574,6 +1575,15 @@ void TabStripModel::ExecuteContextMenuCommand(int context_index,
if (!ContainsIndex(context_index))
return;
switch (command_id) {
+ case CommandNewTabToLeft: {
+ base::RecordAction(UserMetricsAction("TabContextMenu_NewTab"));
+ UMA_HISTOGRAM_ENUMERATION("Tab.NewTab", NewTabTypes::NEW_TAB_CONTEXT_MENU,
+ NewTabTypes::NEW_TAB_ENUM_COUNT);
+ delegate()->AddTabAt(GURL(), context_index - 1, true,
+ GetTabGroupForTab(context_index));
+ break;
+ }
+
case CommandNewTabToRight: {
base::RecordAction(UserMetricsAction("TabContextMenu_NewTab"));
UMA_HISTOGRAM_ENUMERATION("Tab.NewTab", NewTabTypes::NEW_TAB_CONTEXT_MENU,
diff --git a/src/chrome/browser/ui/tabs/tab_strip_model.h b/src/chrome/browser/ui/tabs/tab_strip_model.h
new file mode 100644
index 000000000..56cd9fa21
--- /dev/null
+++ b/src/chrome/browser/ui/tabs/tab_strip_model.h
@@ -0,0 +1,996 @@
+// Copyright 2012 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_TABS_TAB_STRIP_MODEL_H_
+#define CHROME_BROWSER_UI_TABS_TAB_STRIP_MODEL_H_
+
+#include
+#include
+
+#include