Update to Chromium version 123.0.6312.0 (#1262506)

- MacOS ARM64 Official builds are currently failing due to
  https://issues.chromium.org/issues/326898585
This commit is contained in:
Marshall Greenblatt
2024-02-22 13:36:15 -05:00
parent 2c5dd120c7
commit d4cf19db29
100 changed files with 837 additions and 799 deletions

View File

@@ -91,7 +91,7 @@
#include "components/pdf/browser/pdf_document_helper.h"
#include "components/pdf/browser/pdf_navigation_throttle.h"
#include "components/pdf/browser/pdf_url_loader_request_interceptor.h"
#include "components/pdf/common/internal_plugin_helpers.h"
#include "components/pdf/common/constants.h"
#include "components/policy/core/common/policy_pref_names.h"
#include "components/spellcheck/common/spellcheck.mojom.h"
#include "components/version_info/version_info.h"
@@ -118,7 +118,6 @@
#include "extensions/browser/api/automation_internal/automation_event_router.h"
#include "extensions/browser/api/mime_handler_private/mime_handler_private.h"
#include "extensions/browser/event_router.h"
#include "extensions/browser/extension_message_filter.h"
#include "extensions/browser/extension_protocols.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_web_contents_observer.h"
@@ -397,13 +396,6 @@ void AlloyContentBrowserClient::RenderProcessWillLaunch(
content::RenderProcessHost* host) {
Profile* profile = Profile::FromBrowserContext(host->GetBrowserContext());
#if BUILDFLAG(ENABLE_EXTENSIONS_LEGACY_IPC)
if (extensions::ExtensionsEnabled()) {
host->AddFilter(
new extensions::ExtensionMessageFilter(host->GetID(), profile));
}
#endif
// If the renderer process crashes then the host may already have
// CefBrowserInfoManager as an observer. Try to remove it first before adding
// to avoid DCHECKs.
@@ -881,19 +873,6 @@ void AlloyContentBrowserClient::ExposeInterfacesToRenderer(
associated_registry->AddInterface<extensions::mojom::RendererHost>(
base::BindRepeating(&extensions::RendererStartupHelper::BindForRenderer,
render_process_host->GetID()));
#if BUILDFLAG(ENABLE_EXTENSIONS_LEGACY_IPC)
associated_registry->AddInterface<extensions::mojom::EventRouter>(
base::BindRepeating(&extensions::EventRouter::BindForRenderer,
host->GetID()));
associated_registry->AddInterface<extensions::mojom::ServiceWorkerHost>(
base::BindRepeating(&extensions::ServiceWorkerHost::BindReceiver,
host->GetID()));
associated_registry
->AddInterface<extensions::mojom::RendererAutomationRegistry>(
base::BindRepeating(
&extensions::AutomationEventRouter::BindForRenderer,
host->GetID()));
#endif
}
}
@@ -910,7 +889,6 @@ void AlloyContentBrowserClient::
associated_registry.AddInterface<extensions::mojom::RendererHost>(
base::BindRepeating(&extensions::RendererStartupHelper::BindForRenderer,
service_worker_version_info.process_id));
#if !BUILDFLAG(ENABLE_EXTENSIONS_LEGACY_IPC)
associated_registry.AddInterface<extensions::mojom::ServiceWorkerHost>(
base::BindRepeating(&extensions::ServiceWorkerHost::BindReceiver,
service_worker_version_info.process_id));
@@ -922,7 +900,6 @@ void AlloyContentBrowserClient::
associated_registry.AddInterface<extensions::mojom::EventRouter>(
base::BindRepeating(&extensions::EventRouter::BindForRenderer,
service_worker_version_info.process_id));
#endif
}
}
@@ -1196,7 +1173,7 @@ void AlloyContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories(
}
}
bool AlloyContentBrowserClient::WillCreateURLLoaderFactory(
void AlloyContentBrowserClient::WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,
int render_process_id,
@@ -1204,7 +1181,7 @@ bool AlloyContentBrowserClient::WillCreateURLLoaderFactory(
const url::Origin& request_initiator,
std::optional<int64_t> navigation_id,
ukm::SourceIdObj ukm_source_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
bool* bypass_redirect_checks,
@@ -1217,9 +1194,8 @@ bool AlloyContentBrowserClient::WillCreateURLLoaderFactory(
type == URLLoaderFactoryType::kDownload, request_initiator);
net_service::ProxyURLLoaderFactory::CreateProxy(
browser_context, factory_receiver, header_client,
browser_context, factory_builder, header_client,
std::move(request_handler));
return true;
}
void AlloyContentBrowserClient::OnNetworkServiceCreated(

View File

@@ -179,7 +179,7 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient {
int render_frame_id,
const std::optional<url::Origin>& request_initiator_origin,
NonNetworkURLLoaderFactoryMap* factories) override;
bool WillCreateURLLoaderFactory(
void WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,
int render_process_id,
@@ -187,7 +187,7 @@ class AlloyContentBrowserClient : public content::ContentBrowserClient {
const url::Origin& request_initiator,
std::optional<int64_t> navigation_id,
ukm::SourceIdObj ukm_source_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
bool* bypass_redirect_checks,

View File

@@ -226,7 +226,7 @@ void ChromeContentBrowserClientCef::OverrideWebkitPrefs(
web_contents->SetPageBaseBackgroundColor(base_background_color);
}
bool ChromeContentBrowserClientCef::WillCreateURLLoaderFactory(
void ChromeContentBrowserClientCef::WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,
int render_process_id,
@@ -234,7 +234,7 @@ bool ChromeContentBrowserClientCef::WillCreateURLLoaderFactory(
const url::Origin& request_initiator,
std::optional<int64_t> navigation_id,
ukm::SourceIdObj ukm_source_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
bool* bypass_redirect_checks,
@@ -246,15 +246,16 @@ bool ChromeContentBrowserClientCef::WillCreateURLLoaderFactory(
// profiles::CreateSystemProfileForUserManager.
auto profile = Profile::FromBrowserContext(browser_context);
if (!CefBrowserContext::FromProfile(profile)) {
return ChromeContentBrowserClient::WillCreateURLLoaderFactory(
ChromeContentBrowserClient::WillCreateURLLoaderFactory(
browser_context, frame, render_process_id, type, request_initiator,
navigation_id, ukm_source_id, factory_receiver, header_client,
navigation_id, ukm_source_id, factory_builder, header_client,
bypass_redirect_checks, disable_secure_dns, factory_override,
navigation_response_task_runner);
return;
}
// Based on content/browser/devtools/devtools_instrumentation.cc
// WillCreateURLLoaderFactoryInternal.
// WillCreateURLLoaderFactoryParams::Run.
network::mojom::URLLoaderFactoryOverridePtr cef_override(
network::mojom::URLLoaderFactoryOverride::New());
// If caller passed some existing overrides, use those.
@@ -276,32 +277,31 @@ bool ChromeContentBrowserClientCef::WillCreateURLLoaderFactory(
}
// TODO(chrome): Is it necessary to proxy |header_client| callbacks?
bool use_proxy = ChromeContentBrowserClient::WillCreateURLLoaderFactory(
ChromeContentBrowserClient::WillCreateURLLoaderFactory(
browser_context, frame, render_process_id, type, request_initiator,
navigation_id, ukm_source_id,
&(intercepting_factory->overridden_factory_receiver),
navigation_id, ukm_source_id, factory_builder,
/*header_client=*/nullptr, bypass_redirect_checks, disable_secure_dns,
handler_override, navigation_response_task_runner);
if (use_proxy) {
DCHECK(intercepting_factory->overriding_factory);
DCHECK(intercepting_factory->overridden_factory_receiver);
if (!factory_override) {
// Not a subresource navigation, so just override the target receiver.
mojo::FusePipes(std::move(*factory_receiver),
std::move(cef_override->overriding_factory));
*factory_receiver = std::move(cef_override->overridden_factory_receiver);
} else if (!*factory_override) {
// No other overrides, so just returns ours as is.
*factory_override = network::mojom::URLLoaderFactoryOverride::New(
std::move(cef_override->overriding_factory),
std::move(cef_override->overridden_factory_receiver), false);
}
// ... else things are already taken care of, as handler_override was
// pointing to factory override and we've done all magic in-place.
DCHECK(!cef_override->overriding_factory);
DCHECK(!cef_override->overridden_factory_receiver);
DCHECK(intercepting_factory->overriding_factory);
DCHECK(intercepting_factory->overridden_factory_receiver);
if (!factory_override) {
// Not a subresource navigation, so just override the target receiver.
auto [receiver, remote] = factory_builder.Append();
mojo::FusePipes(std::move(receiver),
std::move(cef_override->overriding_factory));
mojo::FusePipes(std::move(cef_override->overridden_factory_receiver),
std::move(remote));
} else if (!*factory_override) {
// No other overrides, so just returns ours as is.
*factory_override = network::mojom::URLLoaderFactoryOverride::New(
std::move(cef_override->overriding_factory),
std::move(cef_override->overridden_factory_receiver), false);
}
// ... else things are already taken care of, as handler_override was
// pointing to factory override and we've done all magic in-place.
DCHECK(!cef_override->overriding_factory);
DCHECK(!cef_override->overridden_factory_receiver);
auto request_handler = net_service::CreateInterceptedRequestHandler(
browser_context, frame, render_process_id,
@@ -309,10 +309,8 @@ bool ChromeContentBrowserClientCef::WillCreateURLLoaderFactory(
type == URLLoaderFactoryType::kDownload, request_initiator);
net_service::ProxyURLLoaderFactory::CreateProxy(
browser_context, factory_receiver, header_client,
browser_context, factory_builder, header_client,
std::move(request_handler));
return true;
}
bool ChromeContentBrowserClientCef::HandleExternalProtocol(

View File

@@ -55,7 +55,7 @@ class ChromeContentBrowserClientCef : public ChromeContentBrowserClient {
bool* no_javascript_access) override;
void OverrideWebkitPrefs(content::WebContents* web_contents,
blink::web_pref::WebPreferences* prefs) override;
bool WillCreateURLLoaderFactory(
void WillCreateURLLoaderFactory(
content::BrowserContext* browser_context,
content::RenderFrameHost* frame,
int render_process_id,
@@ -63,7 +63,7 @@ class ChromeContentBrowserClientCef : public ChromeContentBrowserClient {
const url::Origin& request_initiator,
std::optional<int64_t> navigation_id,
ukm::SourceIdObj ukm_source_id,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
bool* bypass_redirect_checks,

View File

@@ -205,9 +205,7 @@ class CefDevToolsFrontend::NetworkResourceLoader
bool encoded = !base::IsStringUTF8(chunk);
if (encoded) {
std::string encoded_string;
base::Base64Encode(chunk, &encoded_string);
chunkValue = base::Value(std::move(encoded_string));
chunkValue = base::Value(base::Base64Encode(chunk));
} else {
chunkValue = base::Value(chunk);
}

View File

@@ -61,7 +61,7 @@ bool CefComponentExtensionResourceManager::IsComponentExtensionResource(
const ui::TemplateReplacements*
CefComponentExtensionResourceManager::GetTemplateReplacementsForExtension(
const std::string& extension_id) const {
const ExtensionId& extension_id) const {
auto it = template_replacements_.find(extension_id);
return it != template_replacements_.end() ? &it->second : nullptr;
}

View File

@@ -9,6 +9,7 @@
#include "base/files/file_path.h"
#include "extensions/browser/component_extension_resource_manager.h"
#include "extensions/common/extension_id.h"
namespace webui {
struct ResourcePath;
@@ -33,7 +34,7 @@ class CefComponentExtensionResourceManager
const base::FilePath& resource_path,
int* resource_id) const override;
const ui::TemplateReplacements* GetTemplateReplacementsForExtension(
const std::string& extension_id) const override;
const ExtensionId& extension_id) const override;
private:
void AddComponentResourceEntries(const webui::ResourcePath* entries,
@@ -45,7 +46,7 @@ class CefComponentExtensionResourceManager
// A map from an extension ID to its i18n template replacements.
using TemplateReplacementMap =
std::map<std::string, ui::TemplateReplacements>;
std::map<ExtensionId, ui::TemplateReplacements>;
TemplateReplacementMap template_replacements_;
};

View File

@@ -33,6 +33,7 @@
#include "content/public/browser/notification_source.h"
#include "content/public/browser/plugin_service.h"
#include "content/public/browser/render_process_host.h"
#include "content/public/common/webplugininfo.h"
#include "extensions/browser/api/app_runtime/app_runtime_api.h"
#include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registry.h"
@@ -44,7 +45,6 @@
#include "extensions/browser/unloaded_extension_reason.h"
#include "extensions/browser/user_script_manager.h"
#include "extensions/common/constants.h"
#include "extensions/common/extension_messages.h"
#include "extensions/common/file_util.h"
#include "extensions/common/manifest_constants.h"
#include "extensions/common/manifest_handlers/mime_types_handler.h"

View File

@@ -131,18 +131,24 @@ class CefMediaAccessQuery {
blink::MediaStreamDevices audio_devices;
blink::MediaStreamDevices video_devices;
if (device_audio_requested()) {
if (device_audio_requested() &&
!request_.requested_audio_device_ids.empty() &&
!request_.requested_audio_device_ids.front().empty()) {
// Pick the desired device or fall back to the first available of the
// given type.
CefMediaCaptureDevicesDispatcher::GetInstance()->GetRequestedDevice(
request_.requested_audio_device_id, true, false, &audio_devices);
request_.requested_audio_device_ids.front(), true, false,
&audio_devices);
}
if (device_video_requested()) {
if (device_video_requested() &&
!request_.requested_video_device_ids.empty() &&
!request_.requested_video_device_ids.front().empty()) {
// Pick the desired device or fall back to the first available of the
// given type.
CefMediaCaptureDevicesDispatcher::GetInstance()->GetRequestedDevice(
request_.requested_video_device_id, false, true, &video_devices);
request_.requested_video_device_ids.front(), false, true,
&video_devices);
}
if (desktop_audio_requested()) {
@@ -152,13 +158,14 @@ class CefMediaAccessQuery {
if (desktop_video_requested()) {
content::DesktopMediaID media_id;
if (request_.requested_video_device_id.empty()) {
if (!request_.requested_video_device_ids.empty() &&
!request_.requested_video_device_ids.front().empty()) {
media_id = content::DesktopMediaID::Parse(
request_.requested_video_device_ids.front());
} else {
media_id =
content::DesktopMediaID(content::DesktopMediaID::TYPE_SCREEN,
-1 /* webrtc::kFullDesktopScreenId */);
} else {
media_id =
content::DesktopMediaID::Parse(request_.requested_video_device_id);
}
video_devices.emplace_back(request_.video_type, media_id.ToString(),
"Screen");

View File

@@ -1349,16 +1349,14 @@ void ProxyURLLoaderFactory::SetDisconnectCallback(
// static
void ProxyURLLoaderFactory::CreateProxy(
content::BrowserContext* browser_context,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
std::unique_ptr<InterceptedRequestHandler> request_handler) {
CEF_REQUIRE_UIT();
DCHECK(request_handler);
auto proxied_receiver = std::move(*factory_receiver);
mojo::PendingRemote<network::mojom::URLLoaderFactory> target_factory_remote;
*factory_receiver = target_factory_remote.InitWithNewPipeAndPassReceiver();
auto [factory_receiver, target_factory_remote] = factory_builder.Append();
mojo::PendingReceiver<network::mojom::TrustedURLLoaderHeaderClient>
header_client_receiver;
@@ -1373,7 +1371,7 @@ void ProxyURLLoaderFactory::CreateProxy(
CEF_POST_TASK(
CEF_IOT,
base::BindOnce(
&ProxyURLLoaderFactory::CreateOnIOThread, std::move(proxied_receiver),
&ProxyURLLoaderFactory::CreateOnIOThread, std::move(factory_receiver),
std::move(target_factory_remote), std::move(header_client_receiver),
base::Unretained(resource_context), std::move(request_handler)));
}

View File

@@ -16,6 +16,7 @@
#include "content/public/browser/web_contents.h"
#include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/network/public/cpp/url_loader_factory_builder.h"
#include "services/network/public/mojom/network_context.mojom.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
@@ -146,7 +147,7 @@ class ProxyURLLoaderFactory
// Create a proxy object on the UI thread.
static void CreateProxy(
content::BrowserContext* browser_context,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>* factory_receiver,
network::URLLoaderFactoryBuilder& factory_builder,
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
header_client,
std::unique_ptr<InterceptedRequestHandler> request_handler);

View File

@@ -35,54 +35,34 @@ scoped_refptr<URLLoaderFactoryGetter> URLLoaderFactoryGetter::Create(
auto loader_factory = browser_context->GetDefaultStoragePartition()
->GetURLLoaderFactoryForBrowserProcess();
mojo::PendingRemote<network::mojom::URLLoaderFactory> proxy_factory_remote;
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver;
network::URLLoaderFactoryBuilder factory_builder;
// Create an intermediate pipe that can be used to proxy the request's
// URLLoaderFactory.
mojo::PendingRemote<network::mojom::URLLoaderFactory>
maybe_proxy_factory_remote;
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
maybe_proxy_factory_receiver =
maybe_proxy_factory_remote.InitWithNewPipeAndPassReceiver();
bool should_proxy = false;
int render_process_id = -1;
if (render_frame_host) {
render_process_id = render_frame_host->GetProcess()->GetID();
// Allow DevTools to potentially inject itself into the proxy pipe.
should_proxy =
content::devtools_instrumentation::WillCreateURLLoaderFactory(
static_cast<content::RenderFrameHostImpl*>(render_frame_host),
false /* is_navigation */, false /* is_download */,
&maybe_proxy_factory_receiver, nullptr /* factory_override */);
content::devtools_instrumentation::WillCreateURLLoaderFactoryParams::
ForFrame(static_cast<content::RenderFrameHostImpl*>(render_frame_host))
.Run(false /* is_navigation */, false /* is_download */,
factory_builder, nullptr /* factory_override */);
}
auto browser_client = CefAppManager::Get()->GetContentClient()->browser();
// Allow the Content embedder to inject itself if it wants to.
should_proxy |= browser_client->WillCreateURLLoaderFactory(
browser_client->WillCreateURLLoaderFactory(
browser_context, render_frame_host, render_process_id,
content::ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource,
url::Origin(), absl::nullopt /* navigation_id */, ukm::SourceIdObj(),
&maybe_proxy_factory_receiver, nullptr /* header_client */,
factory_builder, nullptr /* header_client */,
nullptr /* bypass_redirect_checks */, nullptr /* disable_secure_dns */,
nullptr /* factory_override */,
nullptr /* navigation_response_task_runner */);
// If anyone above indicated that they care about proxying, pass the
// intermediate pipe along to the URLLoaderFactoryGetter.
if (should_proxy) {
proxy_factory_remote = std::move(maybe_proxy_factory_remote);
proxy_factory_receiver = std::move(maybe_proxy_factory_receiver);
}
return base::WrapRefCounted(new URLLoaderFactoryGetter(
loader_factory->Clone(), std::move(proxy_factory_remote),
std::move(proxy_factory_receiver)));
loader_factory->Clone(), std::move(factory_builder)));
}
// Based on CreateFactory from
@@ -104,25 +84,15 @@ URLLoaderFactoryGetter::GetURLLoaderFactory() {
auto loader_factory =
network::SharedURLLoaderFactory::Create(std::move(loader_factory_info_));
if (proxy_factory_receiver_.is_valid()) {
loader_factory->Clone(std::move(proxy_factory_receiver_));
lazy_factory_ =
base::MakeRefCounted<network::WrapperSharedURLLoaderFactory>(
std::move(proxy_factory_remote_));
} else {
lazy_factory_ = loader_factory;
}
lazy_factory_ = std::move(factory_builder_).Finish(loader_factory);
return lazy_factory_;
}
URLLoaderFactoryGetter::URLLoaderFactoryGetter(
std::unique_ptr<network::PendingSharedURLLoaderFactory> loader_factory_info,
mojo::PendingRemote<network::mojom::URLLoaderFactory> proxy_factory_remote,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver)
network::URLLoaderFactoryBuilder factory_builder)
: loader_factory_info_(std::move(loader_factory_info)),
proxy_factory_remote_(std::move(proxy_factory_remote)),
proxy_factory_receiver_(std::move(proxy_factory_receiver)) {}
factory_builder_(std::move(factory_builder)) {}
URLLoaderFactoryGetter::~URLLoaderFactoryGetter() = default;

View File

@@ -9,6 +9,7 @@
#include "base/memory/ref_counted.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/sequenced_task_runner_helpers.h"
#include "services/network/public/cpp/url_loader_factory_builder.h"
#include "services/network/public/mojom/url_loader_factory.mojom.h"
namespace content {
@@ -52,19 +53,14 @@ class URLLoaderFactoryGetter
URLLoaderFactoryGetter(std::unique_ptr<network::PendingSharedURLLoaderFactory>
loader_factory_info,
mojo::PendingRemote<network::mojom::URLLoaderFactory>
proxy_factory_remote,
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver);
network::URLLoaderFactoryBuilder factory_builder);
~URLLoaderFactoryGetter();
void DeleteOnCorrectThread() const;
std::unique_ptr<network::PendingSharedURLLoaderFactory> loader_factory_info_;
scoped_refptr<network::SharedURLLoaderFactory> lazy_factory_;
mojo::PendingRemote<network::mojom::URLLoaderFactory> proxy_factory_remote_;
mojo::PendingReceiver<network::mojom::URLLoaderFactory>
proxy_factory_receiver_;
network::URLLoaderFactoryBuilder factory_builder_;
scoped_refptr<base::SequencedTaskRunner> task_runner_;
};

View File

@@ -145,7 +145,7 @@ void CefHostDisplayClientOSR::CreateLayeredWindowUpdater(
layered_window_updater_->SetActive(active_);
}
#if BUILDFLAG(IS_LINUX)
#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
void CefHostDisplayClientOSR::DidCompleteSwapWithNewSize(
const gfx::Size& size) {}
#endif

View File

@@ -37,7 +37,7 @@ class CefHostDisplayClientOSR : public viz::HostDisplayClient {
mojo::PendingReceiver<viz::mojom::LayeredWindowUpdater> receiver)
override;
#if BUILDFLAG(IS_LINUX)
#if BUILDFLAG(IS_LINUX) && BUILDFLAG(IS_OZONE_X11)
void DidCompleteSwapWithNewSize(const gfx::Size& size) override;
#endif

View File

@@ -488,17 +488,17 @@ void CefRenderWidgetHostViewOSR::SetDisplayFeatureForTesting(
DCHECK(false);
}
blink::mojom::PointerLockResult CefRenderWidgetHostViewOSR::LockMouse(
blink::mojom::PointerLockResult CefRenderWidgetHostViewOSR::LockPointer(
bool request_unadjusted_movement) {
return blink::mojom::PointerLockResult::kPermissionDenied;
}
blink::mojom::PointerLockResult CefRenderWidgetHostViewOSR::ChangeMouseLock(
blink::mojom::PointerLockResult CefRenderWidgetHostViewOSR::ChangePointerLock(
bool request_unadjusted_movement) {
return blink::mojom::PointerLockResult::kPermissionDenied;
}
void CefRenderWidgetHostViewOSR::UnlockMouse() {}
void CefRenderWidgetHostViewOSR::UnlockPointer() {}
void CefRenderWidgetHostViewOSR::TakeFallbackContentFrom(
content::RenderWidgetHostView* view) {
@@ -1549,6 +1549,10 @@ void CefRenderWidgetHostViewOSR::ShowSharePicker(
blink::mojom::ShareService::ShareCallback callback) {
std::move(callback).Run(blink::mojom::ShareError::INTERNAL_ERROR);
}
uint64_t CefRenderWidgetHostViewOSR::GetNSViewId() const {
return 0;
}
#endif // BUILDFLAG(IS_MAC)
void CefRenderWidgetHostViewOSR::OnPaint(const gfx::Rect& damage_rect,

View File

@@ -133,11 +133,11 @@ class CefRenderWidgetHostViewOSR
std::optional<content::DisplayFeature> GetDisplayFeature() override;
void SetDisplayFeatureForTesting(
const content::DisplayFeature* display_feature) override;
blink::mojom::PointerLockResult LockMouse(
blink::mojom::PointerLockResult LockPointer(
bool request_unadjusted_movement) override;
blink::mojom::PointerLockResult ChangeMouseLock(
blink::mojom::PointerLockResult ChangePointerLock(
bool request_unadjusted_movement) override;
void UnlockMouse() override;
void UnlockPointer() override;
void TakeFallbackContentFrom(content::RenderWidgetHostView* view) override;
#if BUILDFLAG(IS_MAC)
@@ -151,6 +151,7 @@ class CefRenderWidgetHostViewOSR
const std::string& url,
const std::vector<std::string>& file_paths,
blink::mojom::ShareService::ShareCallback callback) override;
uint64_t GetNSViewId() const override;
#endif // BUILDFLAG(IS_MAC)
// RenderWidgetHostViewBase implementation.

View File

@@ -67,6 +67,10 @@ class CefWebContentsViewOSR : public content::WebContentsView,
void OnCapturerCountChanged() override {}
void UpdateWindowControlsOverlay(const gfx::Rect& bounding_rect) override {}
void TransferDragSecurityInfo(content::WebContentsView* view) override {}
content::BackForwardTransitionAnimationManager*
GetBackForwardTransitionAnimationManager() override {
return nullptr;
}
#if BUILDFLAG(IS_MAC)
bool CloseTabAfterEventTrackingIfNeeded() override { return false; }

View File

@@ -18,7 +18,6 @@
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool.h"
#include "base/values.h"
#include "chrome/browser/accessibility/accessibility_ui.h"
#include "chrome/browser/download/download_prefs.h"
#include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h"
#include "chrome/browser/media/router/media_router_feature.h"
@@ -31,6 +30,7 @@
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ssl/ssl_config_service_manager.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/ui/webui/accessibility/accessibility_ui.h"
#include "chrome/browser/ui/webui/print_preview/policy_settings.h"
#include "chrome/common/buildflags.h"
#include "chrome/common/chrome_switches.h"

View File

@@ -104,7 +104,7 @@ CEF_PANEL_IMPL_T CefRefPtr<CefLayout> CEF_PANEL_IMPL_D::GetLayout() {
CEF_PANEL_IMPL_T void CEF_PANEL_IMPL_D::Layout() {
CEF_REQUIRE_VALID_RETURN_VOID();
return ParentClass::root_view()->Layout();
ParentClass::root_view()->DeprecatedLayoutImmediately();
}
CEF_PANEL_IMPL_T void CEF_PANEL_IMPL_D::AddChildView(CefRefPtr<CefView> view) {

View File

@@ -73,7 +73,7 @@ CEF_VIEW_VIEW_T class CefViewView : public ViewsViewClass {
gfx::Size GetMinimumSize() const override;
gfx::Size GetMaximumSize() const override;
int GetHeightForWidth(int w) const override;
void Layout() override;
void Layout(views::View::PassKey) override;
void ViewHierarchyChanged(
const views::ViewHierarchyChangedDetails& details) override;
void AddedToWidget() override;
@@ -163,8 +163,8 @@ CEF_VIEW_VIEW_T int CEF_VIEW_VIEW_D::GetHeightForWidth(int w) const {
return result;
}
CEF_VIEW_VIEW_T void CEF_VIEW_VIEW_D::Layout() {
ParentClass::Layout();
CEF_VIEW_VIEW_T void CEF_VIEW_VIEW_D::Layout(views::View::PassKey) {
ParentClass::template LayoutSuperclass<ParentClass>(this);
// If Layout() did not provide a size then use the preferred size.
if (ParentClass::size().IsEmpty()) {

View File

@@ -264,9 +264,9 @@ class CaptionlessFrameView : public views::NonClientFrameView {
// Nothing to do here.
}
void Layout() override {
void Layout(views::View::PassKey) override {
client_view_bounds_.SetRect(0, 0, width(), height());
views::NonClientFrameView::Layout();
LayoutSuperclass<views::NonClientFrameView>(this);
}
gfx::Size CalculatePreferredSize() const override {

View File

@@ -28,7 +28,7 @@
#include "chrome/common/chrome_paths.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/media/cdm_registration.h"
#include "components/pdf/common/internal_plugin_helpers.h"
#include "components/pdf/common/constants.h"
#include "content/public/common/cdm_info.h"
#include "content/public/common/content_constants.h"
#include "content/public/common/content_plugin_info.h"

View File

@@ -192,13 +192,7 @@ bool SetCrashKeyValue(const base::StringPiece& key,
#if BUILDFLAG(IS_POSIX)
// Be aware that logging is not initialized at the time this method is called.
void BasicStartupComplete(base::CommandLine* command_line) {
CefCrashReporterClient* crash_client = g_crash_reporter_client.Pointer();
if (crash_client->ReadCrashConfigFile()) {
#if !BUILDFLAG(IS_MAC)
// Crashpad requires this switch on Linux.
command_line->AppendSwitch(switches::kEnableCrashpad);
#endif
}
g_crash_reporter_client.Pointer()->ReadCrashConfigFile();
}
#endif
@@ -227,12 +221,6 @@ void PreSandboxStartup(const base::CommandLine& command_line,
#if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_MAC)
void ZygoteForked(base::CommandLine* command_line,
const std::string& process_type) {
CefCrashReporterClient* crash_client = g_crash_reporter_client.Pointer();
if (crash_client->HasCrashConfigFile()) {
// Crashpad requires this switch on Linux.
command_line->AppendSwitch(switches::kEnableCrashpad);
}
InitCrashReporter(*command_line, process_type);
if (g_crash_reporting_enabled) {

View File

@@ -228,7 +228,7 @@ bool MakeCefCookie(const net::CanonicalCookie& cc, CefCookie& cookie) {
CefString(&cookie.value).FromString(cc.Value());
CefString(&cookie.domain).FromString(cc.Domain());
CefString(&cookie.path).FromString(cc.Path());
cookie.secure = cc.IsSecure();
cookie.secure = cc.SecureAttribute();
cookie.httponly = cc.IsHttpOnly();
cookie.creation = CefBaseTime(cc.CreationDate());
cookie.last_access = CefBaseTime(cc.LastAccessDate());
@@ -284,4 +284,4 @@ bool MakeCefCookie(const GURL& url,
return true;
}
} // namespace net_service
} // namespace net_service

View File

@@ -133,9 +133,7 @@ CefString CefBase64Encode(const void* data, size_t data_size) {
}
base::StringPiece input(static_cast<const char*>(data), data_size);
std::string output;
base::Base64Encode(input, &output);
return output;
return base::Base64Encode(input);
}
CefRefPtr<CefBinaryValue> CefBase64Decode(const CefString& data) {

View File

@@ -58,7 +58,7 @@
#include "chrome/renderer/plugins/chrome_plugin_placeholder.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/nacl/common/nacl_constants.h"
#include "components/pdf/common/internal_plugin_helpers.h"
#include "components/pdf/common/constants.h"
#include "components/pdf/renderer/internal_plugin_renderer_helpers.h"
#include "components/printing/renderer/print_render_frame_helper.h"
#include "components/spellcheck/renderer/spellcheck.h"

View File

@@ -44,6 +44,8 @@ cef_dom_form_control_type_t GetCefFormControlType(FormControlType type) {
return DOM_FORM_CONTROL_TYPE_BUTTON_RESET;
case FormControlType::kButtonSelectList:
return DOM_FORM_CONTROL_TYPE_BUTTON_SELECT_LIST;
case FormControlType::kButtonPopover:
return DOM_FORM_CONTROL_TYPE_BUTTON_POPOVER;
case FormControlType::kFieldset:
return DOM_FORM_CONTROL_TYPE_FIELDSET;
case FormControlType::kInputButton:

View File

@@ -37,6 +37,7 @@
#include "content/renderer/render_frame_impl.h"
#include "third_party/blink/public/mojom/frame/frame.mojom-blink.h"
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
#include "third_party/blink/public/platform/scheduler/web_agent_group_scheduler.h"
#include "third_party/blink/public/platform/web_data.h"
#include "third_party/blink/public/platform/web_string.h"
#include "third_party/blink/public/platform/web_url.h"
@@ -65,6 +66,10 @@ std::string GetDebugString(blink::WebLocalFrame* frame) {
return "frame " + render_frame_util::GetIdentifier(frame);
}
v8::Isolate* GetFrameIsolate(blink::WebLocalFrame* frame) {
return frame->GetAgentGroupScheduler()->Isolate();
}
} // namespace
CefFrameImpl::CefFrameImpl(CefBrowserImpl* browser, blink::WebLocalFrame* frame)
@@ -233,7 +238,7 @@ CefRefPtr<CefV8Context> CefFrameImpl::GetV8Context() {
CEF_REQUIRE_RT_RETURN(nullptr);
if (frame_) {
v8::Isolate* isolate = blink::MainThreadIsolate();
v8::Isolate* isolate = GetFrameIsolate(frame_);
v8::HandleScope handle_scope(isolate);
return new CefV8ContextImpl(isolate, frame_->MainWorldScriptContext());
} else {
@@ -661,7 +666,7 @@ void CefFrameImpl::MaybeInitializeScriptContext() {
// via DidCommitProvisionalLoad prior to https://crrev.com/5150754880a.
// Otherwise, a script context may never be created for a frame that doesn't
// contain JS code.
v8::HandleScope handle_scope(blink::MainThreadIsolate());
v8::HandleScope handle_scope(GetFrameIsolate(frame_));
frame_->MainWorldScriptContext();
}

View File

@@ -147,7 +147,7 @@ void CefRenderFrameObserver::DidCreateScriptContext(
CefRefPtr<CefFrameImpl> framePtr = browserPtr->GetWebFrameImpl(frame);
if (handler) {
v8::Isolate* isolate = blink::MainThreadIsolate();
v8::Isolate* isolate = context->GetIsolate();
v8::HandleScope handle_scope(isolate);
v8::Context::Scope scope(context);
v8::MicrotasksScope microtasks_scope(isolate,
@@ -181,7 +181,7 @@ void CefRenderFrameObserver::WillReleaseScriptContext(
CefRefPtr<CefFrameImpl> framePtr = browserPtr->GetWebFrameImpl(frame);
if (handler) {
v8::Isolate* isolate = blink::MainThreadIsolate();
v8::Isolate* isolate = context->GetIsolate();
v8::HandleScope handle_scope(isolate);
// The released context should not be used for script execution.