Compare commits

...

18 Commits
6723 ... 4664

Author SHA1 Message Date
Marshall Greenblatt
fe551e4054 Update to Chromium version 96.0.4664.110 2021-12-14 16:16:19 +00:00
Marshall Greenblatt
20e2617051 Update to Chromium version 96.0.4664.93 2021-12-07 16:05:52 +00:00
Nicolas Dusart
89c902b54d Fix CefURLRequest crash with failing HEAD requests (fixes issue #3226) 2021-11-23 17:22:29 -05:00
Sarah
099901c122 Prevent possible null dereference in ctocpp_ref_counted.h (fixes issue #3218) 2021-11-23 17:22:29 -05:00
Marshall Greenblatt
28ba5c8f73 Update to Chromium version 96.0.4664.55 2021-11-19 19:12:07 +00:00
Marshall Greenblatt
622afbdebc Update to Chromium version 96.0.4664.45 2021-11-15 20:37:19 +00:00
Marshall Greenblatt
147b5f5532 Trial fix for CORS pre-flight requests missing headers (see issue #3110, see issue #3200) 2021-11-09 14:23:19 -05:00
Marshall Greenblatt
4bd7c35c62 cmake: Require version 3.19 or newer for VS2019 and Xcode 12+ support 2021-11-08 15:29:49 -05:00
Marshall Greenblatt
d4b095e68b Fix writing of files from DevTools (fixes issue #3211) 2021-11-08 15:06:24 -05:00
Marshall Greenblatt
23f5569e69 Linux: Load Ozone EGL binaries from DIR_ASSETS (fixes issue #3213) 2021-11-08 14:30:52 -05:00
Marshall Greenblatt
ad0b71aa5f Windows: Fix crash when |sandbox_info| parameter is nullptr (fixes issue #3210) 2021-11-08 14:20:46 -05:00
Marshall Greenblatt
7a2ffe562f Update to Chromium version 96.0.4664.35 2021-11-05 16:14:04 +00:00
Marshall Greenblatt
4a28bcd532 osr: Fix GPU process crash with SendExternalBeginFrame (see issue #2800)
Fixes the following error:
Check failed: !pending_frame_callback_. Got overlapping IssueExternalBeginFrame

To test:
Run `cefclient --off-screen-rendering-enabled --external-begin-frame-enabled`
on Windows without crashing.
2021-10-28 15:20:45 -04:00
Marshall Greenblatt
7f52c30723 Update to Chromium version 96.0.4664.27 2021-10-28 14:36:24 +00:00
Marshall Greenblatt
c56de64d6b Mac: cefclient: Fix crash when quitting from the top menu (fixes issue #3201) 2021-10-22 18:37:24 -04:00
Marshall Greenblatt
b72460bbe3 Mac: Document Xcode 13.0 support 2021-10-22 18:28:40 -04:00
Marshall Greenblatt
f984bb3127 Windows: Fix cef_sandbox compile error due to missing include. 2021-10-22 17:05:39 -04:00
Marshall Greenblatt
30e2decbac Update to Chromium version 96.0.4664.18 2021-10-21 19:53:33 -04:00
30 changed files with 168 additions and 88 deletions

View File

@@ -7,5 +7,6 @@
# https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding
{
'chromium_checkout': 'refs/tags/96.0.4664.0'
'chromium_checkout': 'refs/tags/96.0.4664.110',
'depot_tools_checkout': 'e023d44820'
}

View File

@@ -12,7 +12,7 @@
# distribution include:
#
# Linux: Ninja, GCC 7.5.0+, Unix Makefiles
# MacOS: Ninja, Xcode 12.2 to 12.5
# MacOS: Ninja, Xcode 12.2 to 13.0
# Windows: Ninja, Visual Studio 2019+
#
# Ninja is a cross-platform open-source tool for running fast builds using
@@ -36,7 +36,7 @@
#
# The below requirements must be met to build this CEF binary distribution.
#
# - CMake version 2.8.12.1 or newer.
# - CMake version 3.19 or newer.
#
# - Linux requirements:
# Currently supported distributions include Debian 10 (Buster), Ubuntu 18
@@ -48,7 +48,7 @@
# libgtk3.0-dev (required by the cefclient target only)
#
# - MacOS requirements:
# Xcode 12.2 to 12.5 building on MacOS 10.15.4 (Catalina) or newer. Only
# Xcode 12.2 to 13.0 building on MacOS 10.15.4 (Catalina) or newer. Only
# 64-bit builds are supported. The Xcode command-line tools must also be
# installed. Newer Xcode versions may not have been been tested and are not
# recommended.
@@ -132,7 +132,8 @@
# Global setup.
#
cmake_minimum_required(VERSION 2.8.12.1)
# For VS2019 and Xcode 12+ support.
cmake_minimum_required(VERSION 3.19)
# Only generate Debug and Release configuration types.
set(CMAKE_CONFIGURATION_TYPES Debug Release)

View File

@@ -534,7 +534,8 @@ void CefDevToolsFrontend::HandleMessageFromDevToolsFrontend(
const std::string* url = params[0].GetIfString();
const std::string* content = params[1].GetIfString();
if (!url || !content)
return file_manager_.AppendToFile(*url, *content);
return;
file_manager_.AppendToFile(*url, *content);
} else {
return;
}

View File

@@ -406,19 +406,24 @@ class CefBrowserURLRequest::Context
DCHECK(CalledOnValidThread());
DCHECK_EQ(status_, UR_IO_PENDING);
response_->SetReadOnly(false);
response_->SetResponseHeaders(*headers);
response_->SetReadOnly(true);
// Match the previous behavior of sending download progress notifications
// for UR_FLAG_NO_DOWNLOAD_DATA requests but not HEAD requests.
if (request_->GetMethod().ToString() != "HEAD") {
download_data_size_ = headers->GetContentLength();
OnDownloadProgress(0);
}
cleanup_immediately_ = true;
OnComplete(true);
if (headers) {
response_->SetReadOnly(false);
response_->SetResponseHeaders(*headers);
response_->SetReadOnly(true);
// Match the previous behavior of sending download progress notifications
// for UR_FLAG_NO_DOWNLOAD_DATA requests but not HEAD requests.
if (request_->GetMethod().ToString() != "HEAD") {
download_data_size_ = headers->GetContentLength();
OnDownloadProgress(0);
}
OnComplete(true);
} else {
OnComplete(false);
}
}
void OnRedirect(const net::RedirectInfo& redirect_info,

View File

@@ -158,13 +158,13 @@ class CorsPreflightRequest : public network::mojom::TrustedHeaderClient {
// mojom::TrustedHeaderClient methods:
void OnBeforeSendHeaders(const net::HttpRequestHeaders& headers,
OnBeforeSendHeadersCallback callback) override {
std::move(callback).Run(net::OK, absl::nullopt);
std::move(callback).Run(net::OK, headers);
}
void OnHeadersReceived(const std::string& headers,
const net::IPEndPoint& remote_endpoint,
OnHeadersReceivedCallback callback) override {
std::move(callback).Run(net::OK, absl::nullopt, GURL());
std::move(callback).Run(net::OK, headers, /*redirect_url=*/GURL());
OnDestroy();
}

View File

@@ -910,7 +910,10 @@ void CefRenderWidgetHostViewOSR::DidNavigate() {
void CefRenderWidgetHostViewOSR::OnFrameComplete(
const viz::BeginFrameAck& ack) {
// TODO(cef): is there something we need to track with this notification?
DCHECK(begin_frame_pending_);
DCHECK_EQ(begin_frame_source_.source_id(), ack.frame_id.source_id);
DCHECK_EQ(begin_frame_number_, ack.frame_id.sequence_number);
begin_frame_pending_ = false;
}
void CefRenderWidgetHostViewOSR::OnRenderFrameMetadataChangedAfterActivation(
@@ -1047,17 +1050,20 @@ void CefRenderWidgetHostViewOSR::Invalidate(
void CefRenderWidgetHostViewOSR::SendExternalBeginFrame() {
DCHECK(external_begin_frame_enabled_);
if (begin_frame_pending_)
return;
begin_frame_pending_ = true;
base::TimeTicks frame_time = base::TimeTicks::Now();
base::TimeTicks deadline = base::TimeTicks();
base::TimeDelta interval = viz::BeginFrameArgs::DefaultInterval();
viz::BeginFrameArgs begin_frame_args = viz::BeginFrameArgs::Create(
BEGINFRAME_FROM_HERE, begin_frame_source_.source_id(),
begin_frame_number_, frame_time, deadline, interval,
++begin_frame_number_, frame_time, deadline, interval,
viz::BeginFrameArgs::NORMAL);
DCHECK(begin_frame_args.IsValid());
begin_frame_number_++;
if (render_widget_host_)
render_widget_host_->ProgressFlingIfNeeded(frame_time);
@@ -1067,6 +1073,8 @@ void CefRenderWidgetHostViewOSR::SendExternalBeginFrame() {
begin_frame_args, /* force= */ true,
base::BindOnce(&CefRenderWidgetHostViewOSR::OnFrameComplete,
weak_ptr_factory_.GetWeakPtr()));
} else {
begin_frame_pending_ = false;
}
if (!IsPopupWidget() && popup_host_view_) {

View File

@@ -355,6 +355,7 @@ class CefRenderWidgetHostViewOSR
// Provides |source_id| for BeginFrameArgs that we create.
viz::StubBeginFrameSource begin_frame_source_;
uint64_t begin_frame_number_ = viz::BeginFrameArgs::kStartingFrameNumber;
bool begin_frame_pending_ = false;
bool sync_frame_rate_ = false;
bool external_begin_frame_enabled_ = false;

View File

@@ -89,7 +89,7 @@ class CefCToCppRefCounted : public BaseName {
bool UnderlyingHasAtLeastOneRef() const {
cef_base_ref_counted_t* base =
reinterpret_cast<cef_base_ref_counted_t*>(GetStruct());
if (!base->has_one_ref)
if (!base->has_at_least_one_ref)
return false;
return base->has_at_least_one_ref(base) ? true : false;
}

View File

@@ -538,6 +538,12 @@ patches = [
# https://bitbucket.org/chromiumembedded/cef/issues/2969
'name': 'chrome_browser_background_mode_1100085',
},
{
# Windows: Fix cef_sandbox compile error due to missing include.
# https://bugs.chromium.org/p/chromium/issues/detail?id=1049498#c14
# https://chromium-review.googlesource.com/c/chromium/src/+/3238990/
'name': 'base_string_piece_1049498',
},
{
# Linux: Fix ATK assertion error when generating ARM build config.
# https://bugs.chromium.org/p/chromium/issues/detail?id=1123214
@@ -553,5 +559,10 @@ patches = [
# declared with 'nodiscard' attribute [-Werror,-Wunused-result]
# https://chromium-review.googlesource.com/c/chromium/src/+/3237648
'name': 'base_thread_restrictions_3237648',
},
{
# Windows: Fix crash when |sandbox_info| parameter is nullptr.
# https://bitbucket.org/chromiumembedded/cef/issues/3210
'name': 'win_sandbox_3210',
}
]

View File

@@ -0,0 +1,12 @@
diff --git base/strings/string_piece.h base/strings/string_piece.h
index 5ceb3a40eb01b..89476bfa41e9b 100644
--- base/strings/string_piece.h
+++ base/strings/string_piece.h
@@ -23,6 +23,7 @@
#include <stddef.h>
+#include <algorithm>
#include <iosfwd>
#include <limits>
#include <string>

View File

@@ -1,8 +1,8 @@
diff --git content/browser/scheduler/browser_task_executor.cc content/browser/scheduler/browser_task_executor.cc
index 3d56ff6e97575..1af9338f883fb 100644
index 0cf2b0daa0a56..3778e8e7a7711 100644
--- content/browser/scheduler/browser_task_executor.cc
+++ content/browser/scheduler/browser_task_executor.cc
@@ -285,7 +285,7 @@ BrowserTaskExecutor::OnUserInputStart() {
@@ -315,7 +315,7 @@ BrowserTaskExecutor::OnUserInputStart() {
// static
void BrowserTaskExecutor::Shutdown() {

View File

@@ -20,10 +20,10 @@ index 4801a199a29d3..11a1d3b328142 100644
// TODO(wjmaclean): We should update the ProcessLock comparison API
diff --git content/browser/renderer_host/navigation_request.cc content/browser/renderer_host/navigation_request.cc
index 50bdac2c30caa..2546c845e756a 100644
index 73aff501bf401..1ed61b3e455f2 100644
--- content/browser/renderer_host/navigation_request.cc
+++ content/browser/renderer_host/navigation_request.cc
@@ -5737,6 +5737,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithoutFinalFrameHost(
@@ -5769,6 +5769,12 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithoutFinalFrameHost(
network::mojom::WebSandboxFlags sandbox_flags) {
// Calculate an approximation of the origin. The sandbox/csp are ignored.
url::Origin origin = GetOriginForURLLoaderFactoryUnchecked(this);
@@ -36,7 +36,7 @@ index 50bdac2c30caa..2546c845e756a 100644
// Apply sandbox flags.
// See https://html.spec.whatwg.org/#sandboxed-origin-browsing-context-flag
@@ -5770,6 +5776,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithFinalFrameHost() {
@@ -5802,6 +5808,15 @@ NavigationRequest::GetOriginForURLLoaderFactoryWithFinalFrameHost() {
if (IsSameDocument() || IsPageActivation())
return GetRenderFrameHost()->GetLastCommittedOrigin();

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/BUILD.gn chrome/browser/BUILD.gn
index 1f848e0760118..29bfa6e602430 100644
index 9572c236c2db5..60c0a8838cfe4 100644
--- chrome/browser/BUILD.gn
+++ chrome/browser/BUILD.gn
@@ -13,6 +13,7 @@ import("//build/config/features.gni")

View File

@@ -1,8 +1,8 @@
diff --git chrome/browser/renderer_context_menu/render_view_context_menu.cc chrome/browser/renderer_context_menu/render_view_context_menu.cc
index fa211d7a0d997..cea251366f5d9 100644
index 901a0baaca6cf..ca05eefd2232b 100644
--- chrome/browser/renderer_context_menu/render_view_context_menu.cc
+++ chrome/browser/renderer_context_menu/render_view_context_menu.cc
@@ -278,6 +278,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
@@ -283,6 +283,13 @@ base::OnceCallback<void(RenderViewContextMenu*)>* GetMenuShownCallback() {
return callback.get();
}
@@ -16,7 +16,7 @@ index fa211d7a0d997..cea251366f5d9 100644
enum class UmaEnumIdLookupType {
GeneralEnumId,
ContextSpecificEnumId,
@@ -491,6 +498,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
@@ -496,6 +503,10 @@ int FindUMAEnumValueForCommand(int id, UmaEnumIdLookupType type) {
if (ContextMenuMatcher::IsExtensionsCustomCommandId(id))
return 1;
@@ -27,7 +27,7 @@ index fa211d7a0d997..cea251366f5d9 100644
id = CollapseCommandsForUMA(id);
const auto& map = GetIdcToUmaMap(type);
auto it = map.find(id);
@@ -673,6 +684,14 @@ RenderViewContextMenu::RenderViewContextMenu(
@@ -678,6 +689,14 @@ RenderViewContextMenu::RenderViewContextMenu(
system_app_ = GetBrowser() && GetBrowser()->app_controller()
? GetBrowser()->app_controller()->system_app()
: nullptr;
@@ -42,7 +42,7 @@ index fa211d7a0d997..cea251366f5d9 100644
}
RenderViewContextMenu::~RenderViewContextMenu() = default;
@@ -1031,6 +1050,12 @@ void RenderViewContextMenu::InitMenu() {
@@ -1036,6 +1055,12 @@ void RenderViewContextMenu::InitMenu() {
// menu, meaning that each menu item added/removed in this function will cause
// it to visibly jump on the screen (see b/173569669).
AppendQuickAnswersItems();
@@ -55,7 +55,7 @@ index fa211d7a0d997..cea251366f5d9 100644
}
Profile* RenderViewContextMenu::GetProfile() const {
@@ -2849,6 +2874,12 @@ void RenderViewContextMenu::RegisterMenuShownCallbackForTesting(
@@ -2860,6 +2885,12 @@ void RenderViewContextMenu::RegisterMenuShownCallbackForTesting(
*GetMenuShownCallback() = std::move(cb);
}

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/ui/BUILD.gn chrome/browser/ui/BUILD.gn
index e9a748c91f743..1b4cc72352e67 100644
index 7a4cce3c457b4..7a62dbaff65fa 100644
--- chrome/browser/ui/BUILD.gn
+++ chrome/browser/ui/BUILD.gn
@@ -11,6 +11,7 @@ import("//build/config/features.gni")
@@ -10,7 +10,7 @@ index e9a748c91f743..1b4cc72352e67 100644
import("//chrome/browser/buildflags.gni")
import("//chrome/common/features.gni")
import("//chromeos/assistant/assistant.gni")
@@ -357,6 +358,10 @@ static_library("ui") {
@@ -365,6 +366,10 @@ static_library("ui") {
"//build/config/compiler:wexit_time_destructors",
]
@@ -21,7 +21,7 @@ index e9a748c91f743..1b4cc72352e67 100644
# Since browser and browser_ui actually depend on each other,
# we must omit the dependency from browser_ui to browser.
# However, this means browser_ui and browser should more or less
@@ -379,6 +384,7 @@ static_library("ui") {
@@ -387,6 +392,7 @@ static_library("ui") {
"//build:branding_buildflags",
"//build:chromeos_buildflags",
"//cc/paint",
@@ -29,7 +29,7 @@ index e9a748c91f743..1b4cc72352e67 100644
"//chrome:extra_resources",
"//chrome:resources",
"//chrome:strings",
@@ -5053,6 +5059,7 @@ static_library("ui") {
@@ -5056,6 +5062,7 @@ static_library("ui") {
if (enable_basic_printing) {
deps += [
"//components/printing/browser",

View File

@@ -186,10 +186,10 @@ index 8c2547056ec26..2ab3252dca708 100644
// that the X-Frame-Options protection mechanism is set to either DENY or
// SAMEORIGIN.
diff --git chrome/renderer/chrome_content_renderer_client.cc chrome/renderer/chrome_content_renderer_client.cc
index 5ff5939031672..01742ddfef449 100644
index b1753145c4c82..cb01f2e43b7fe 100644
--- chrome/renderer/chrome_content_renderer_client.cc
+++ chrome/renderer/chrome_content_renderer_client.cc
@@ -943,6 +943,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -946,6 +946,7 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
if ((status == chrome::mojom::PluginStatus::kUnauthorized ||
status == chrome::mojom::PluginStatus::kBlocked) &&
@@ -197,7 +197,7 @@ index 5ff5939031672..01742ddfef449 100644
content_settings_agent_delegate->IsPluginTemporarilyAllowed(
identifier)) {
status = chrome::mojom::PluginStatus::kAllowed;
@@ -1144,7 +1145,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1147,7 +1148,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
render_frame->GetRemoteAssociatedInterfaces()->GetInterface(
plugin_auth_host.BindNewEndpointAndPassReceiver());
plugin_auth_host->BlockedUnauthorizedPlugin(group_name, identifier);
@@ -207,7 +207,7 @@ index 5ff5939031672..01742ddfef449 100644
break;
}
case chrome::mojom::PluginStatus::kBlocked: {
@@ -1153,7 +1155,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1156,7 +1158,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED, group_name));
placeholder->AllowLoading();
RenderThread::Get()->RecordAction(UserMetricsAction("Plugin_Blocked"));
@@ -217,7 +217,7 @@ index 5ff5939031672..01742ddfef449 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedByPolicy: {
@@ -1163,7 +1166,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1166,7 +1169,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
group_name));
RenderThread::Get()->RecordAction(
UserMetricsAction("Plugin_BlockedByPolicy"));
@@ -227,7 +227,7 @@ index 5ff5939031672..01742ddfef449 100644
break;
}
case chrome::mojom::PluginStatus::kBlockedNoLoading: {
@@ -1171,7 +1175,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
@@ -1174,7 +1178,8 @@ WebPlugin* ChromeContentRendererClient::CreatePlugin(
IDR_BLOCKED_PLUGIN_HTML,
l10n_util::GetStringFUTF16(IDS_PLUGIN_BLOCKED_NO_LOADING,
group_name));

View File

@@ -1,5 +1,5 @@
diff --git chrome/renderer/BUILD.gn chrome/renderer/BUILD.gn
index 0d6bbf294add1..8b438ff31e2a6 100644
index 7886a0d86b243..6e5d0f6d26f88 100644
--- chrome/renderer/BUILD.gn
+++ chrome/renderer/BUILD.gn
@@ -5,6 +5,7 @@

View File

@@ -211,7 +211,7 @@ index 0c8939e57e814..25c0a2acff7dd 100644
bool in_memory,
const base::FilePath& relative_partition_path,
diff --git chrome/browser/prefs/browser_prefs.cc chrome/browser/prefs/browser_prefs.cc
index d5ed8faa24cfb..a30a0eed11278 100644
index 77e924414c443..4bc52e14a9722 100644
--- chrome/browser/prefs/browser_prefs.cc
+++ chrome/browser/prefs/browser_prefs.cc
@@ -11,6 +11,7 @@
@@ -222,7 +222,7 @@ index d5ed8faa24cfb..a30a0eed11278 100644
#include "chrome/browser/about_flags.h"
#include "chrome/browser/accessibility/accessibility_labels_service.h"
#include "chrome/browser/accessibility/accessibility_ui.h"
@@ -167,6 +168,10 @@
@@ -168,6 +169,10 @@
#include "chrome/browser/background/background_mode_manager.h"
#endif
@@ -233,7 +233,7 @@ index d5ed8faa24cfb..a30a0eed11278 100644
#if BUILDFLAG(ENABLE_EXTENSIONS)
#include "chrome/browser/accessibility/animation_policy_prefs.h"
#include "chrome/browser/apps/platform_apps/shortcut_manager.h"
@@ -1195,6 +1200,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
@@ -1197,6 +1202,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
SessionDataService::RegisterProfilePrefs(registry);
#endif

View File

@@ -1,5 +1,5 @@
diff --git chrome/browser/ui/browser_command_controller.cc chrome/browser/ui/browser_command_controller.cc
index 12c161774914c..c681383e3a947 100644
index 648ddac00186a..cbf25d45ddeef 100644
--- chrome/browser/ui/browser_command_controller.cc
+++ chrome/browser/ui/browser_command_controller.cc
@@ -351,8 +351,10 @@ bool BrowserCommandController::ExecuteCommandWithDisposition(
@@ -377,10 +377,10 @@ index 140c0df49ea46..7d4ac470dcc9a 100644
}
diff --git chrome/browser/ui/views/toolbar/toolbar_view.cc chrome/browser/ui/views/toolbar/toolbar_view.cc
index 31e062d75daeb..c6d700e702e56 100644
index f887f0fd2db37..5b9a7fa0d2ee6 100644
--- chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ chrome/browser/ui/views/toolbar/toolbar_view.cc
@@ -167,12 +167,13 @@ auto& GetViewCommandMap() {
@@ -166,12 +166,13 @@ auto& GetViewCommandMap() {
////////////////////////////////////////////////////////////////////////////////
// ToolbarView, public:
@@ -396,7 +396,7 @@ index 31e062d75daeb..c6d700e702e56 100644
SetID(VIEW_ID_TOOLBAR);
UpgradeDetector::GetInstance()->AddObserver(this);
@@ -207,7 +208,7 @@ void ToolbarView::Init() {
@@ -206,7 +207,7 @@ void ToolbarView::Init() {
#endif
auto location_bar = std::make_unique<LocationBarView>(
browser_, browser_->profile(), browser_->command_controller(), this,

View File

@@ -1,8 +1,8 @@
diff --git content/browser/devtools/devtools_instrumentation.h content/browser/devtools/devtools_instrumentation.h
index 6aa16d20faa3b..5c4fd217ae936 100644
index a46c99b6230b4..dfcdb58449aac 100644
--- content/browser/devtools/devtools_instrumentation.h
+++ content/browser/devtools/devtools_instrumentation.h
@@ -90,7 +90,7 @@ bool ApplyUserAgentMetadataOverrides(
@@ -94,7 +94,7 @@ bool ApplyUserAgentMetadataOverrides(
FrameTreeNode* frame_tree_node,
absl::optional<blink::UserAgentMetadata>* override_out);

View File

@@ -75,10 +75,10 @@ index 18b58f53a9df7..80452f68f24fb 100644
GetContentClient()->browser()->GetUserAgent());
version.SetString("V8-Version", V8_VERSION_STRING);
diff --git content/browser/loader/navigation_url_loader_impl.cc content/browser/loader/navigation_url_loader_impl.cc
index 06517d7afaaa2..e368b300c5e30 100644
index 0cb9f2d42ed76..00cb95ee7702a 100644
--- content/browser/loader/navigation_url_loader_impl.cc
+++ content/browser/loader/navigation_url_loader_impl.cc
@@ -670,6 +670,13 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest(
@@ -677,6 +677,13 @@ NavigationURLLoaderImpl::PrepareForNonInterceptedRequest(
resource_request_->has_user_gesture, initiating_origin,
&loader_factory);
@@ -92,7 +92,7 @@ index 06517d7afaaa2..e368b300c5e30 100644
if (loader_factory) {
factory = base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>(
std::move(loader_factory));
@@ -838,7 +845,7 @@ void NavigationURLLoaderImpl::CheckPluginAndContinueOnReceiveResponse(
@@ -845,7 +852,7 @@ void NavigationURLLoaderImpl::CheckPluginAndContinueOnReceiveResponse(
frame_tree_node->current_frame_host()->GetProcess()->GetID();
int routing_id = frame_tree_node->current_frame_host()->GetRoutingID();
bool has_plugin = PluginService::GetInstance()->GetPluginInfo(
@@ -188,10 +188,10 @@ index 632ae86c6fd69..55b749ec12421 100644
const std::vector<WebPluginInfo>& all_plugins);
diff --git content/browser/renderer_host/render_frame_host_impl.cc content/browser/renderer_host/render_frame_host_impl.cc
index 6520b9b7e90aa..60af548b678cc 100644
index 193bfd1abc5f9..e5480792fdf56 100644
--- content/browser/renderer_host/render_frame_host_impl.cc
+++ content/browser/renderer_host/render_frame_host_impl.cc
@@ -12341,6 +12341,7 @@ void RenderFrameHostImpl::BindHungDetectorHost(
@@ -12366,6 +12366,7 @@ void RenderFrameHostImpl::BindHungDetectorHost(
}
void RenderFrameHostImpl::GetPluginInfo(const GURL& url,
@@ -199,7 +199,7 @@ index 6520b9b7e90aa..60af548b678cc 100644
const url::Origin& main_frame_origin,
const std::string& mime_type,
GetPluginInfoCallback callback) {
@@ -12348,7 +12349,8 @@ void RenderFrameHostImpl::GetPluginInfo(const GURL& url,
@@ -12373,7 +12374,8 @@ void RenderFrameHostImpl::GetPluginInfo(const GURL& url,
WebPluginInfo info;
std::string actual_mime_type;
bool found = PluginServiceImpl::GetInstance()->GetPluginInfo(
@@ -210,10 +210,10 @@ index 6520b9b7e90aa..60af548b678cc 100644
std::move(callback).Run(found, info, actual_mime_type);
}
diff --git content/browser/renderer_host/render_frame_host_impl.h content/browser/renderer_host/render_frame_host_impl.h
index 86666516a0131..c1e11fbfda6fb 100644
index e324c9c06e4ee..8dd3f6f10ed6e 100644
--- content/browser/renderer_host/render_frame_host_impl.h
+++ content/browser/renderer_host/render_frame_host_impl.h
@@ -2614,6 +2614,7 @@ class CONTENT_EXPORT RenderFrameHostImpl
@@ -2617,6 +2617,7 @@ class CONTENT_EXPORT RenderFrameHostImpl
int32_t plugin_child_id,
const base::FilePath& path) override;
void GetPluginInfo(const GURL& url,

View File

@@ -1,5 +1,5 @@
diff --git components/embedder_support/user_agent_utils.cc components/embedder_support/user_agent_utils.cc
index 516504c2ce442..60899c8e4f7bf 100644
index da052d0533802..543057ccb86bf 100644
--- components/embedder_support/user_agent_utils.cc
+++ components/embedder_support/user_agent_utils.cc
@@ -14,6 +14,7 @@

View File

@@ -46,3 +46,25 @@ index 016046d6caa4f..116e4919cda08 100644
return false;
const char kGLESv2ANGLELibraryName[] = "libGLESv2.so";
diff --git ui/ozone/common/egl_util.cc ui/ozone/common/egl_util.cc
index e028d8cf8dec6..d172832589534 100644
--- ui/ozone/common/egl_util.cc
+++ ui/ozone/common/egl_util.cc
@@ -158,7 +158,7 @@ bool LoadDefaultEGLGLES2Bindings(
#if BUILDFLAG(ENABLE_SWIFTSHADER)
base::FilePath module_path;
#if !defined(OS_FUCHSIA)
- if (!base::PathService::Get(base::DIR_MODULE, &module_path))
+ if (!base::PathService::Get(base::DIR_ASSETS, &module_path))
return false;
module_path = module_path.Append(FILE_PATH_LITERAL("swiftshader/"));
#endif
@@ -171,7 +171,7 @@ bool LoadDefaultEGLGLES2Bindings(
} else if (implementation.gl == gl::kGLImplementationEGLANGLE) {
base::FilePath module_path;
#if !defined(OS_FUCHSIA)
- if (!base::PathService::Get(base::DIR_MODULE, &module_path))
+ if (!base::PathService::Get(base::DIR_ASSETS, &module_path))
return false;
#endif

View File

@@ -314,10 +314,10 @@ index b3a6eaa270877..aa4e84fea1387 100644
base::FilePath GetSaveLocation() const;
diff --git chrome/browser/ui/webui/print_preview/print_preview_ui.cc chrome/browser/ui/webui/print_preview/print_preview_ui.cc
index 7695cf2a3a2e2..887e047b83b72 100644
index a72645a12ac07..bfe1e2dce3662 100644
--- chrome/browser/ui/webui/print_preview/print_preview_ui.cc
+++ chrome/browser/ui/webui/print_preview/print_preview_ui.cc
@@ -29,6 +29,7 @@
@@ -23,6 +23,7 @@
#include "base/values.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
@@ -325,7 +325,7 @@ index 7695cf2a3a2e2..887e047b83b72 100644
#include "chrome/browser/browser_process.h"
#include "chrome/browser/pdf/pdf_extension_util.h"
#include "chrome/browser/printing/background_printing_manager.h"
@@ -102,6 +103,13 @@ const char16_t kBasicPrintShortcut[] = u"\u0028\u21e7\u2318\u0050\u0029";
@@ -98,6 +99,13 @@ const char16_t kBasicPrintShortcut[] = u"\u0028\u21e7\u2318\u0050\u0029";
const char16_t kBasicPrintShortcut[] = u"(Ctrl+Shift+P)";
#endif
@@ -339,7 +339,7 @@ index 7695cf2a3a2e2..887e047b83b72 100644
constexpr char kInvalidArgsForDidStartPreview[] =
"Invalid arguments for DidStartPreview";
constexpr char kInvalidPageNumberForDidPreviewPage[] =
@@ -391,7 +399,7 @@ void AddPrintPreviewStrings(content::WebUIDataSource* source) {
@@ -344,7 +352,7 @@ void AddPrintPreviewStrings(content::WebUIDataSource* source) {
chrome::kCloudPrintCertificateErrorLearnMoreURL);
#if !defined(OS_CHROMEOS)

View File

@@ -238,10 +238,10 @@ index 049983a12312c..7c0cb56ab627e 100644
std::unique_ptr<SelectionController> selection_controller_;
diff --git ui/views/controls/menu/menu_controller.cc ui/views/controls/menu/menu_controller.cc
index 5a554d16234e5..eb7b21c2cc2ce 100644
index f056f201b6313..08fc4e376b2e7 100644
--- ui/views/controls/menu/menu_controller.cc
+++ ui/views/controls/menu/menu_controller.cc
@@ -2854,8 +2854,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem(
@@ -2879,8 +2879,13 @@ MenuItemView* MenuController::FindNextSelectableMenuItem(
void MenuController::OpenSubmenuChangeSelectionIfCan() {
MenuItemView* item = pending_state_.item;
@@ -256,7 +256,7 @@ index 5a554d16234e5..eb7b21c2cc2ce 100644
MenuItemView* to_select = nullptr;
if (!item->GetSubmenu()->GetMenuItems().empty())
to_select = FindInitialSelectableMenuItem(item, INCREMENT_SELECTION_DOWN);
@@ -2874,8 +2879,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
@@ -2899,8 +2904,10 @@ void MenuController::OpenSubmenuChangeSelectionIfCan() {
void MenuController::CloseSubmenu() {
MenuItemView* item = state_.item;
DCHECK(item);

View File

@@ -1,8 +1,8 @@
diff --git content/browser/renderer_host/render_widget_host_view_base.cc content/browser/renderer_host/render_widget_host_view_base.cc
index 9cddf7c7ba6c9..6fd98d5717daa 100644
index 97e76d6be1ccf..809fe0069e261 100644
--- content/browser/renderer_host/render_widget_host_view_base.cc
+++ content/browser/renderer_host/render_widget_host_view_base.cc
@@ -623,6 +623,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() {
@@ -630,6 +630,14 @@ float RenderWidgetHostViewBase::GetDeviceScaleFactor() {
return screen_info.device_scale_factor;
}
@@ -130,10 +130,10 @@ index 0cad4e1f9731b..94d9e189661af 100644
// Set the view's active state (i.e., tint state of controls).
virtual void SetActive(bool active) = 0;
diff --git ui/platform_window/x11/x11_window.cc ui/platform_window/x11/x11_window.cc
index fc0efff4de309..dfe777e029869 100644
index c3b68a6421b09..c6511f90f295f 100644
--- ui/platform_window/x11/x11_window.cc
+++ ui/platform_window/x11/x11_window.cc
@@ -1680,7 +1680,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
@@ -1719,7 +1719,8 @@ void X11Window::CreateXWindow(const PlatformWindowInitProperties& properties) {
req.border_pixel = 0;
bounds_in_pixels_ = SanitizeBounds(bounds);
@@ -157,7 +157,7 @@ index 7c352dd0d992d..516623a91b0e1 100644
return host ? host->GetAcceleratedWidget() : nullptr;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
index 9c3dec8dfdd32..a523cceb5aed3 100644
index 80d1019a5661b..48073dd9540e4 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.cc
@@ -231,6 +231,18 @@ Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop(
@@ -189,7 +189,7 @@ index 9c3dec8dfdd32..a523cceb5aed3 100644
properties->x11_extension_delegate = this;
}
diff --git ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h
index 5ac7051b4a002..84b8ceb053e75 100644
index 35caab2f2f06a..f372ad1e4c672 100644
--- ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h
+++ ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h
@@ -87,6 +87,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux
@@ -210,7 +210,7 @@ index 5ac7051b4a002..84b8ceb053e75 100644
// PlatformWindowDelegate:
void DispatchEvent(ui::Event* event) override;
@@ -152,6 +156,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux
@@ -153,6 +157,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostLinux
// destroyed.
static std::list<gfx::AcceleratedWidget>* open_windows_;

View File

@@ -1,8 +1,8 @@
diff --git content/browser/web_contents/web_contents_impl.cc content/browser/web_contents/web_contents_impl.cc
index e7e2e3d3163bb..e12381457f0bb 100644
index 818585d3aca6d..693fe42f3894b 100644
--- content/browser/web_contents/web_contents_impl.cc
+++ content/browser/web_contents/web_contents_impl.cc
@@ -2899,6 +2899,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -2900,6 +2900,12 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
frame_tree_.Init(site_instance.get(), params.renderer_initiated_creation,
params.main_frame_name);
@@ -15,7 +15,7 @@ index e7e2e3d3163bb..e12381457f0bb 100644
WebContentsViewDelegate* delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -2909,6 +2915,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
@@ -2910,6 +2916,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) {
view_.reset(CreateWebContentsView(this, delegate,
&render_view_host_delegate_view_));
}
@@ -23,7 +23,7 @@ index e7e2e3d3163bb..e12381457f0bb 100644
CHECK(render_view_host_delegate_view_);
CHECK(view_.get());
@@ -3739,6 +3746,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -3743,6 +3750,15 @@ FrameTree* WebContentsImpl::CreateNewWindow(
// objects.
create_params.renderer_initiated_creation = !is_new_browsing_instance;
@@ -39,7 +39,7 @@ index e7e2e3d3163bb..e12381457f0bb 100644
std::unique_ptr<WebContentsImpl> new_contents;
if (!is_guest) {
create_params.context = view_->GetNativeView();
@@ -7526,6 +7542,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
@@ -7530,6 +7546,9 @@ void WebContentsImpl::SetFocusedFrame(FrameTreeNode* node,
// This is an outermost WebContents.
SetAsFocusedWebContentsIfNecessary();
}
@@ -62,7 +62,7 @@ index c7302d7af6d8b..d19be54f36d39 100644
creator_location(creator_location) {}
diff --git content/public/browser/web_contents.h content/public/browser/web_contents.h
index bfa0e468e11e6..31061d5821e60 100644
index 370d9e11c78e7..7153d479b9f19 100644
--- content/public/browser/web_contents.h
+++ content/public/browser/web_contents.h
@@ -88,10 +88,12 @@ class BrowserContext;

View File

@@ -1,8 +1,8 @@
diff --git chrome/app/generated_resources.grd chrome/app/generated_resources.grd
index 84a68402edbd8..8545827ce5682 100644
index 48174dff2344d..64073cc402e6f 100644
--- chrome/app/generated_resources.grd
+++ chrome/app/generated_resources.grd
@@ -5372,7 +5372,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
@@ -5384,7 +5384,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
</message>
</if>
<message name="IDS_PLUGIN_BLOCKED_BY_POLICY" desc="The placeholder text for a plugin blocked by enterprise policy.">

View File

@@ -0,0 +1,18 @@
diff --git sandbox/policy/win/sandbox_win.cc sandbox/policy/win/sandbox_win.cc
index f4f23deab53f0..d1a5739983024 100644
--- sandbox/policy/win/sandbox_win.cc
+++ sandbox/policy/win/sandbox_win.cc
@@ -1148,6 +1148,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
const base::HandlesToInheritVector& handles_to_inherit,
SandboxDelegate* delegate,
base::Process* process) {
+ // Will be nullptr if SandboxInterfaceInfo was not initialized by the CEF
+ // client, meaning that the sandbox is implicitly disabled.
+ if (!g_broker_services) {
+ return LaunchWithoutSandbox(cmd_line, handles_to_inherit, delegate,
+ process);
+ }
+
scoped_refptr<TargetPolicy> policy = g_broker_services->CreatePolicy();
ResultCode result = GeneratePolicyForSandboxedProcess(
cmd_line, process_type, handles_to_inherit, delegate, policy);

View File

@@ -251,7 +251,7 @@ void RootWindowManager::CloseAllWindows(bool force) {
// in OnRootWindowDestroyed while iterating.
RootWindowSet root_windows = root_windows_;
for (auto root_window : root_windows_) {
for (auto root_window : root_windows) {
root_window->Close(force);
}
}