chore: bump chromium to 279aeeec3c9fe2237bc31f776f269 (master) (#21521)
* chore: bump chromium in DEPS to 46d2d82e84d73806da623c5333dae4dd218172df * chore: bump chromium in DEPS to cbafe74731a5d1e59844ca59e0fc28f4a5f80a33 * chore: bump chromium in DEPS to d5dcd6b5cc76f4e1732083d775cdd7b533f0abe9 * Update patches * update for lint * Fix compilation errors * chore: bump chromium in DEPS to 1c19360fdaaf65d4ed006736c7f9804104095990 * Replace removed constant * chore: bump chromium in DEPS to 3b6639f5da26c1772c5d4f3ba634aca65df75fec * chore: bump chromium in DEPS to cc6b1b930d4b5eca06701820dac54fa0f41e8999 * chore: bump chromium in DEPS to 7d1445641ad1032c67f731ba6ff7798f29349ade * chore: bump chromium in DEPS to 6f7e5e79cefe982ad84a88927565a88db2e592be * chore: bump chromium in DEPS to bfb25dafff19cb41bf9781331d19ef0be819d1e4 * chore: bump chromium in DEPS to 1a8196b39f0e0cdc4935fd122fff5625d5fab06e * chore: bump chromium in DEPS to 9a03d8d2bb38ad8c0cbb9550ca81b2f94ff60c15 * chore: bump chromium in DEPS to 4c67f3505dab2d5457adb418cd3270a4f3236fd0 * chore: bump chromium in DEPS to 652394e7626fc1ae895a53fb34c64070494e648e * chore: bump chromium in DEPS to 07653652c58cc019af7f833bd63eb0c2eceaab5e * chore: bump chromium in DEPS to 451a1c5fec1fb073a5bae12a033bb342c72c905f * chore: bump chromium in DEPS to 86cdba00e233899a232868b412b333d08db63478 * chore: bump chromium in DEPS to 7c322faad1aee8abef2330d74aabf09ecf8c11af * Update patches * chore: bump chromium in DEPS to d0044fae7efc29eb201cfdd5fdbed77d48aba212 * Replace IsProcessingUserGesture with HasTransientUserActivation4baa9a6e85
* Fix 10.15 sdk build0eaa6db358
* Remove CancelPrerender5eb3329719
* Remove no longer used WebFloatPoint43ab96ce6b
* Use base::span<const uint8_t> for devtools messages in content/public21e19401af
* Update renamed header files * TODO: update with upstream changes This code needs to be updated to handle the changes made in:19be6547a9
* chore: bump chromium in DEPS to 82e5a2c6bd33c2e53634a09fbcbc9fcac1e7ff93 * chore: bump chromium in DEPS to 91f877cadd2995201c276e952b3bf2c60b226c64 * chore: bump chromium in DEPS to 43fcd2ab2677a06d38246b42761dc5b40cf87177 * chore: bump chromium in DEPS to e30957dcb710c0977a7ff95b8d3cf65843df12ca * chore: bump chromium in DEPS to 6a8335a56db12aae2fd06296f82579d804d92217 * chore: bump chromium in DEPS to a4a436cbc28ace88d71752f8f479e59559e54e46 * chore: bump chromium in DEPS to 982bbd0e4b2e1d57d515f384f6483ffc0d7073ad * chore: bump chromium in DEPS to 92bb7a99f84ffcdf41d4edca57e90b1f0c7c6c8b * update patches * add checkout_google_benchmark gclient var * FIXME: workaround grit bug * chore: bump chromium in DEPS to d3623fc53615739e6b59340a5d349e4b397cb7c5 * update patches * Remove color arg from DidChangeThemeColor().1982623
* update CreateFileURLLoader with new suffix CL:1981414
* add node patch for removal of task API in v8 CL:1868620
* add disable_secure_dns param for WillCreateURLLoaderFactory CL:1888099
* switch to mojo-ified PrintMsg_PrintPreview CL:1972307
* chore: bump chromium in DEPS to e7a6d173632660b6aeb9806e9132c34a315331c2 * update missing chrome/browser/ssl:proto dependency after chrome removal CL:1986082
* chore: add libvulkan.so to the linux manifest CL:1973042
* revert DidChangeThemeColor ternary change due to templates * match Chrome's mojo-ified implementation in geolocation_permission_context.cc CL:1963371
* add vulkan-1.dll to zips2d6f74c6d4
* add bug link to fixme_grit_conflicts.patch * Introduce device.mojom.DeviceService1956277
* PDF Compositor rename to Print Compositor1981135
* chore: bump chromium_version 00362ea584735b4acf4c5a0e1912d7987f8645ab * chore: update patches * Use a virtual base class to provide GetWidget().1996948
* [base] Remove usage of base::CurrentThread1962019
* chore: gn format * Revert "ci: Use Visual Studio Build Tools instead of VS Studio (#21771)" This reverts commit9c1310dadc
. * fix: trigger resize when iframe requests fullscreen * fix: Locking scheme registry is not necessary1973198
* chore: bump chromium f707f1d6d428f84cf14b64bc2ca74372e25c6ce7 * chore: update patches * ui/base/clipboard: Remove redundant ANSI format functions1992015
* [base] Prepare //chrome for Value::GetList() switch1962255
Co-authored-by: John Kleinschmidt <jkleinsc@github.com> Co-authored-by: loc <andy@slack-corp.com> Co-authored-by: Jeremy Apthorp <nornagon@nornagon.net> Co-authored-by: Robo <hop2deep@gmail.com>
This commit is contained in:
parent
5c6f9a6947
commit
bf6e4b1247
115 changed files with 646 additions and 738 deletions
|
@ -38,14 +38,17 @@ void Debugger::AgentHostClosed(DevToolsAgentHost* agent_host) {
|
|||
}
|
||||
|
||||
void Debugger::DispatchProtocolMessage(DevToolsAgentHost* agent_host,
|
||||
const std::string& message) {
|
||||
base::span<const uint8_t> message) {
|
||||
DCHECK(agent_host == agent_host_);
|
||||
|
||||
v8::Locker locker(isolate());
|
||||
v8::HandleScope handle_scope(isolate());
|
||||
|
||||
base::StringPiece message_str(reinterpret_cast<const char*>(message.data()),
|
||||
message.size());
|
||||
std::unique_ptr<base::Value> parsed_message =
|
||||
base::JSONReader::ReadDeprecated(message);
|
||||
base::JSONReader::ReadDeprecated(message_str,
|
||||
base::JSON_REPLACE_INVALID_CHARACTERS);
|
||||
if (!parsed_message || !parsed_message->is_dict())
|
||||
return;
|
||||
base::DictionaryValue* dict =
|
||||
|
@ -157,7 +160,8 @@ v8::Local<v8::Promise> Debugger::SendCommand(gin_helper::Arguments* args) {
|
|||
|
||||
std::string json_args;
|
||||
base::JSONWriter::Write(request, &json_args);
|
||||
agent_host_->DispatchProtocolMessage(this, json_args);
|
||||
agent_host_->DispatchProtocolMessage(
|
||||
this, base::as_bytes(base::make_span(json_args)));
|
||||
|
||||
return handle;
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ class Debugger : public gin_helper::TrackableObject<Debugger>,
|
|||
// content::DevToolsAgentHostClient:
|
||||
void AgentHostClosed(content::DevToolsAgentHost* agent_host) override;
|
||||
void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host,
|
||||
const std::string& message) override;
|
||||
base::span<const uint8_t> message) override;
|
||||
|
||||
// content::WebContentsObserver:
|
||||
void RenderFrameHostChanged(content::RenderFrameHost* old_rfh,
|
||||
|
|
|
@ -9,10 +9,9 @@
|
|||
#include "base/bind_helpers.h"
|
||||
#include "base/task/post_task.h"
|
||||
#include "base/threading/thread_task_runner_handle.h"
|
||||
#include "content/public/browser/system_connector.h"
|
||||
#include "content/public/browser/device_service.h"
|
||||
#include "gin/dictionary.h"
|
||||
#include "gin/function_template.h"
|
||||
#include "services/device/public/mojom/constants.mojom.h"
|
||||
#include "services/device/public/mojom/wake_lock_provider.mojom.h"
|
||||
#include "services/service_manager/public/cpp/connector.h"
|
||||
#include "shell/common/node_includes.h"
|
||||
|
@ -88,9 +87,7 @@ void PowerSaveBlocker::UpdatePowerSaveBlocker() {
|
|||
device::mojom::WakeLock* PowerSaveBlocker::GetWakeLock() {
|
||||
if (!wake_lock_) {
|
||||
mojo::Remote<device::mojom::WakeLockProvider> wake_lock_provider;
|
||||
DCHECK(content::GetSystemConnector());
|
||||
content::GetSystemConnector()->Connect(
|
||||
device::mojom::kServiceName,
|
||||
content::GetDeviceService().BindWakeLockProvider(
|
||||
wake_lock_provider.BindNewPipeAndPassReceiver());
|
||||
|
||||
wake_lock_provider->GetWakeLockWithoutContext(
|
||||
|
|
|
@ -85,11 +85,11 @@
|
|||
#include "shell/common/node_includes.h"
|
||||
#include "shell/common/options_switches.h"
|
||||
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
|
||||
#include "third_party/blink/public/common/input/web_input_event.h"
|
||||
#include "third_party/blink/public/common/page/page_zoom.h"
|
||||
#include "third_party/blink/public/mojom/frame/find_in_page.mojom.h"
|
||||
#include "third_party/blink/public/mojom/frame/fullscreen.mojom.h"
|
||||
#include "third_party/blink/public/platform/web_cursor_info.h"
|
||||
#include "third_party/blink/public/platform/web_input_event.h"
|
||||
#include "ui/display/screen.h"
|
||||
#include "ui/events/base_event_utils.h"
|
||||
|
||||
|
@ -939,7 +939,8 @@ void WebContents::MediaStoppedPlaying(
|
|||
Emit("media-paused");
|
||||
}
|
||||
|
||||
void WebContents::DidChangeThemeColor(base::Optional<SkColor> theme_color) {
|
||||
void WebContents::DidChangeThemeColor() {
|
||||
auto theme_color = web_contents()->GetThemeColor();
|
||||
if (theme_color) {
|
||||
Emit("did-change-theme-color", electron::ToRGBHex(theme_color.value()));
|
||||
} else {
|
||||
|
|
|
@ -468,7 +468,7 @@ class WebContents : public gin_helper::TrackableObject<WebContents>,
|
|||
const MediaPlayerInfo& video_type,
|
||||
const content::MediaPlayerId& id,
|
||||
content::WebContentsObserver::MediaStoppedReason reason) override;
|
||||
void DidChangeThemeColor(base::Optional<SkColor> theme_color) override;
|
||||
void DidChangeThemeColor() override;
|
||||
void OnInterfaceRequestFromFrame(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
const std::string& interface_name,
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
#include "content/browser/frame_host/frame_tree.h" // nogncheck
|
||||
#include "content/browser/frame_host/frame_tree_node.h" // nogncheck
|
||||
#include "content/browser/web_contents/web_contents_impl.h" // nogncheck
|
||||
#include "content/public/browser/guest_mode.h"
|
||||
|
||||
#if BUILDFLAG(ENABLE_OSR)
|
||||
#include "shell/browser/osr/osr_render_widget_host_view.h"
|
||||
|
@ -24,7 +23,6 @@ namespace api {
|
|||
|
||||
void WebContents::DetachFromOuterFrame() {
|
||||
// See detach_webview_frame.patch on how to detach.
|
||||
DCHECK(content::GuestMode::IsCrossProcessFrameGuest(web_contents()));
|
||||
int frame_tree_node_id =
|
||||
static_cast<content::WebContentsImpl*>(web_contents())
|
||||
->GetOuterDelegateFrameTreeNodeId();
|
||||
|
|
|
@ -116,7 +116,7 @@ v8::Local<v8::Value> HttpResponseHeadersToV8(
|
|||
base::Value* values = response_headers.FindListKey(key);
|
||||
if (!values)
|
||||
values = response_headers.SetKey(key, base::ListValue());
|
||||
values->GetList().emplace_back(value);
|
||||
values->Append(value);
|
||||
}
|
||||
}
|
||||
return gin::ConvertToV8(v8::Isolate::GetCurrent(), response_headers);
|
||||
|
|
|
@ -1080,6 +1080,7 @@ bool AtomBrowserClient::WillCreateURLLoaderFactory(
|
|||
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
|
||||
header_client,
|
||||
bool* bypass_redirect_checks,
|
||||
bool* disable_secure_dns,
|
||||
network::mojom::URLLoaderFactoryOverridePtr* factory_override) {
|
||||
v8::Isolate* isolate = v8::Isolate::GetCurrent();
|
||||
api::Protocol* protocol =
|
||||
|
|
|
@ -184,6 +184,7 @@ class AtomBrowserClient : public content::ContentBrowserClient,
|
|||
mojo::PendingRemote<network::mojom::TrustedURLLoaderHeaderClient>*
|
||||
header_client,
|
||||
bool* bypass_redirect_checks,
|
||||
bool* disable_secure_dns,
|
||||
network::mojom::URLLoaderFactoryOverridePtr* factory_override) override;
|
||||
void OverrideURLLoaderFactoryParams(
|
||||
content::BrowserContext* browser_context,
|
||||
|
|
|
@ -322,7 +322,7 @@ AtomBrowserContext::GetURLLoaderFactory() {
|
|||
this, nullptr, -1,
|
||||
content::ContentBrowserClient::URLLoaderFactoryType::kNavigation,
|
||||
url::Origin(), base::nullopt, &factory_receiver, &header_client,
|
||||
nullptr, nullptr);
|
||||
nullptr, nullptr, nullptr);
|
||||
|
||||
network::mojom::URLLoaderFactoryParamsPtr params =
|
||||
network::mojom::URLLoaderFactoryParams::New();
|
||||
|
|
|
@ -22,16 +22,14 @@
|
|||
#include "chrome/browser/icon_manager.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/child_process_security_policy.h"
|
||||
#include "content/public/browser/system_connector.h"
|
||||
#include "content/public/browser/device_service.h"
|
||||
#include "content/public/browser/web_ui_controller_factory.h"
|
||||
#include "content/public/common/content_features.h"
|
||||
#include "content/public/common/content_switches.h"
|
||||
#include "content/public/common/result_codes.h"
|
||||
#include "electron/buildflags/buildflags.h"
|
||||
#include "media/base/localized_strings.h"
|
||||
#include "services/device/public/mojom/constants.mojom.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/service_manager/public/cpp/connector.h"
|
||||
#include "services/tracing/public/cpp/stack_sampling/tracing_sampler_profiler.h"
|
||||
#include "shell/app/atom_main_delegate.h"
|
||||
#include "shell/browser/api/atom_api_app.h"
|
||||
|
@ -454,9 +452,6 @@ void AtomBrowserMainParts::PreMainMessageLoopRun() {
|
|||
SpellcheckServiceFactory::GetInstance();
|
||||
#endif
|
||||
|
||||
// url::Add*Scheme are not threadsafe, this helps prevent data races.
|
||||
url::LockSchemeRegistries();
|
||||
|
||||
#if defined(USE_X11)
|
||||
ui::TouchFactory::SetTouchDeviceListFromCommandLine();
|
||||
#endif
|
||||
|
@ -556,13 +551,10 @@ void AtomBrowserMainParts::PreMainMessageLoopStartCommon() {
|
|||
|
||||
device::mojom::GeolocationControl*
|
||||
AtomBrowserMainParts::GetGeolocationControl() {
|
||||
if (geolocation_control_)
|
||||
return geolocation_control_.get();
|
||||
|
||||
auto receiver = geolocation_control_.BindNewPipeAndPassReceiver();
|
||||
service_manager::Connector* connector = content::GetSystemConnector();
|
||||
if (connector)
|
||||
connector->Connect(device::mojom::kServiceName, std::move(receiver));
|
||||
if (!geolocation_control_) {
|
||||
content::GetDeviceService().BindGeolocationControl(
|
||||
geolocation_control_.BindNewPipeAndPassReceiver());
|
||||
}
|
||||
return geolocation_control_.get();
|
||||
}
|
||||
|
||||
|
|
|
@ -347,6 +347,12 @@ void CommonWebContentsDelegate::EnterFullscreenModeForTab(
|
|||
}
|
||||
SetHtmlApiFullscreen(true);
|
||||
owner_window_->NotifyWindowEnterHtmlFullScreen();
|
||||
|
||||
if (native_fullscreen_) {
|
||||
// Explicitly trigger a view resize, as the size is not actually changing if
|
||||
// the browser is fullscreened, too.
|
||||
source->GetRenderViewHost()->GetWidget()->SynchronizeVisualProperties();
|
||||
}
|
||||
}
|
||||
|
||||
void CommonWebContentsDelegate::ExitFullscreenModeForTab(
|
||||
|
@ -534,9 +540,7 @@ void CommonWebContentsDelegate::DevToolsIndexPath(
|
|||
std::unique_ptr<base::Value> parsed_excluded_folders =
|
||||
base::JSONReader::ReadDeprecated(excluded_folders_message);
|
||||
if (parsed_excluded_folders && parsed_excluded_folders->is_list()) {
|
||||
const std::vector<base::Value>& folder_paths =
|
||||
parsed_excluded_folders->GetList();
|
||||
for (const base::Value& folder_path : folder_paths) {
|
||||
for (const base::Value& folder_path : parsed_excluded_folders->GetList()) {
|
||||
if (folder_path.is_string())
|
||||
excluded_folders.push_back(folder_path.GetString());
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include "base/callback.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "base/threading/sequenced_task_runner_handle.h"
|
||||
#include "gin/arguments.h"
|
||||
#include "gin/dictionary.h"
|
||||
#include "shell/browser/api/atom_api_web_contents.h"
|
||||
|
@ -36,8 +37,8 @@ LoginHandler::LoginHandler(
|
|||
auth_required_callback_(std::move(auth_required_callback)) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
|
||||
base::PostTask(
|
||||
FROM_HERE, {base::CurrentThread()},
|
||||
base::SequencedTaskRunnerHandle::Get()->PostTask(
|
||||
FROM_HERE,
|
||||
base::BindOnce(&LoginHandler::EmitEvent, weak_factory_.GetWeakPtr(),
|
||||
auth_info, is_main_frame, url, response_headers,
|
||||
first_auth_attempt));
|
||||
|
|
|
@ -33,8 +33,9 @@ static base::mac::ScopedObjCClassSwizzler* g_swizzle_imk_input_session;
|
|||
// not have fatal OOM occur while this method executes, but it is better
|
||||
// than crashing when using IME.
|
||||
base::allocator::SetCallNewHandlerOnMallocFailure(false);
|
||||
g_swizzle_imk_input_session->GetOriginalImplementation()(self, _cmd, range,
|
||||
attributes, block);
|
||||
g_swizzle_imk_input_session
|
||||
->InvokeOriginal<void, NSRange, long long, void (^)(void)>(
|
||||
self, _cmd, range, attributes, block);
|
||||
base::allocator::SetCallNewHandlerOnMallocFailure(true);
|
||||
}
|
||||
@end
|
||||
|
|
|
@ -577,11 +577,7 @@ void NativeWindow::NotifyWindowMessage(UINT message,
|
|||
}
|
||||
#endif
|
||||
|
||||
views::Widget* NativeWindow::GetWidget() {
|
||||
return widget();
|
||||
}
|
||||
|
||||
const views::Widget* NativeWindow::GetWidget() const {
|
||||
const views::Widget* NativeWindow::GetWidgetImpl() const {
|
||||
return widget();
|
||||
}
|
||||
|
||||
|
|
|
@ -306,8 +306,7 @@ class NativeWindow : public base::SupportsUserData,
|
|||
NativeWindow(const gin_helper::Dictionary& options, NativeWindow* parent);
|
||||
|
||||
// views::WidgetDelegate:
|
||||
views::Widget* GetWidget() override;
|
||||
const views::Widget* GetWidget() const override;
|
||||
const views::Widget* GetWidgetImpl() const override;
|
||||
base::string16 GetAccessibleWindowTitle() const override;
|
||||
|
||||
void set_content_view(views::View* view) { content_view_ = view; }
|
||||
|
|
|
@ -105,9 +105,9 @@ class AsarURLLoader : public network::mojom::URLLoader {
|
|||
// Determine whether it is an asar file.
|
||||
base::FilePath asar_path, relative_path;
|
||||
if (!GetAsarArchivePath(path, &asar_path, &relative_path)) {
|
||||
content::CreateFileURLLoader(request, std::move(loader),
|
||||
std::move(client), nullptr, false,
|
||||
extra_response_headers);
|
||||
content::CreateFileURLLoaderBypassingSecurityChecks(
|
||||
request, std::move(loader), std::move(client), nullptr, false,
|
||||
extra_response_headers);
|
||||
MaybeDeleteSelf();
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -503,7 +503,7 @@ void ProxyingURLLoaderFactory::InProgressRequest::ContinueToResponseStarted(
|
|||
redirect_info.status_code = override_headers_->response_code();
|
||||
redirect_info.new_method = request_.method;
|
||||
redirect_info.new_url = new_url;
|
||||
redirect_info.new_site_for_cookies = new_url;
|
||||
redirect_info.new_site_for_cookies = net::SiteForCookies::FromUrl(new_url);
|
||||
|
||||
// These will get re-bound if a new request is initiated by
|
||||
// |FollowRedirect()|.
|
||||
|
@ -575,7 +575,8 @@ void ProxyingURLLoaderFactory::InProgressRequest::
|
|||
redirect_info.status_code = kInternalRedirectStatusCode;
|
||||
redirect_info.new_method = request_.method;
|
||||
redirect_info.new_url = redirect_url_;
|
||||
redirect_info.new_site_for_cookies = redirect_url_;
|
||||
redirect_info.new_site_for_cookies =
|
||||
net::SiteForCookies::FromUrl(redirect_url_);
|
||||
|
||||
auto head = network::mojom::URLResponseHead::New();
|
||||
std::string headers = base::StringPrintf(
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#include "content/public/browser/gpu_data_manager.h"
|
||||
#include "content/public/browser/render_process_host.h"
|
||||
#include "media/base/video_frame.h"
|
||||
#include "third_party/blink/public/platform/web_input_event.h"
|
||||
#include "third_party/blink/public/common/input/web_input_event.h"
|
||||
#include "third_party/skia/include/core/SkCanvas.h"
|
||||
#include "ui/compositor/compositor.h"
|
||||
#include "ui/compositor/layer.h"
|
||||
|
|
|
@ -18,12 +18,13 @@
|
|||
#include "components/printing/browser/print_composite_client.h"
|
||||
#include "components/printing/browser/print_manager_utils.h"
|
||||
#include "components/printing/common/print_messages.h"
|
||||
#include "components/services/pdf_compositor/public/cpp/pdf_service_mojo_types.h"
|
||||
#include "components/services/print_compositor/public/cpp/print_service_mojo_types.h"
|
||||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "shell/common/gin_helper/locker.h"
|
||||
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
|
||||
|
||||
#include "shell/common/node_includes.h"
|
||||
|
||||
|
@ -111,11 +112,11 @@ void PrintPreviewMessageHandler::OnMetafileReadyForPrinting(
|
|||
|
||||
void PrintPreviewMessageHandler::OnCompositePdfDocumentDone(
|
||||
const PrintHostMsg_PreviewIds& ids,
|
||||
printing::mojom::PdfCompositor::Status status,
|
||||
printing::mojom::PrintCompositor::Status status,
|
||||
base::ReadOnlySharedMemoryRegion region) {
|
||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
||||
|
||||
if (status != printing::mojom::PdfCompositor::Status::kSuccess) {
|
||||
if (status != printing::mojom::PrintCompositor::Status::kSuccess) {
|
||||
DLOG(ERROR) << "Compositing pdf failed with error " << status;
|
||||
RejectPromise(ids.request_id);
|
||||
return;
|
||||
|
@ -153,7 +154,10 @@ void PrintPreviewMessageHandler::PrintToPDF(
|
|||
auto* rfh = focused_frame && focused_frame->HasSelection()
|
||||
? focused_frame
|
||||
: web_contents()->GetMainFrame();
|
||||
rfh->Send(new PrintMsg_PrintPreview(rfh->GetRoutingID(), options));
|
||||
|
||||
if (!print_render_frame_.is_bound())
|
||||
rfh->GetRemoteAssociatedInterfaces()->GetInterface(&print_render_frame_);
|
||||
print_render_frame_->PrintPreview(options.Clone());
|
||||
}
|
||||
|
||||
gin_helper::Promise<v8::Local<v8::Value>>
|
||||
|
|
|
@ -9,9 +9,11 @@
|
|||
|
||||
#include "base/memory/ref_counted_memory.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
#include "components/services/pdf_compositor/public/mojom/pdf_compositor.mojom.h"
|
||||
#include "components/printing/common/print.mojom.h"
|
||||
#include "components/services/print_compositor/public/mojom/print_compositor.mojom.h"
|
||||
#include "content/public/browser/web_contents_observer.h"
|
||||
#include "content/public/browser/web_contents_user_data.h"
|
||||
#include "mojo/public/cpp/bindings/associated_remote.h"
|
||||
#include "shell/common/gin_helper/promise.h"
|
||||
#include "v8/include/v8.h"
|
||||
|
||||
|
@ -48,9 +50,10 @@ class PrintPreviewMessageHandler
|
|||
content::RenderFrameHost* render_frame_host,
|
||||
const PrintHostMsg_DidPreviewDocument_Params& params,
|
||||
const PrintHostMsg_PreviewIds& ids);
|
||||
void OnCompositePdfDocumentDone(const PrintHostMsg_PreviewIds& ids,
|
||||
printing::mojom::PdfCompositor::Status status,
|
||||
base::ReadOnlySharedMemoryRegion region);
|
||||
void OnCompositePdfDocumentDone(
|
||||
const PrintHostMsg_PreviewIds& ids,
|
||||
printing::mojom::PrintCompositor::Status status,
|
||||
base::ReadOnlySharedMemoryRegion region);
|
||||
void OnPrintPreviewFailed(int document_cookie,
|
||||
const PrintHostMsg_PreviewIds& ids);
|
||||
void OnPrintPreviewCancelled(int document_cookie,
|
||||
|
@ -65,6 +68,8 @@ class PrintPreviewMessageHandler
|
|||
using PromiseMap = std::map<int, gin_helper::Promise<v8::Local<v8::Value>>>;
|
||||
PromiseMap promise_map_;
|
||||
|
||||
mojo::AssociatedRemote<printing::mojom::PrintRenderFrame> print_render_frame_;
|
||||
|
||||
base::WeakPtrFactory<PrintPreviewMessageHandler> weak_ptr_factory_;
|
||||
|
||||
WEB_CONTENTS_USER_DATA_KEY_DECL();
|
||||
|
|
|
@ -102,7 +102,7 @@ void DevToolsManagerDelegate::HandleCommand(
|
|||
content::DevToolsAgentHost* agent_host,
|
||||
content::DevToolsAgentHostClient* client,
|
||||
const std::string& method,
|
||||
const std::string& message,
|
||||
base::span<const uint8_t> message,
|
||||
NotHandledCallback callback) {
|
||||
std::move(callback).Run(message);
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ class DevToolsManagerDelegate : public content::DevToolsManagerDelegate {
|
|||
void HandleCommand(content::DevToolsAgentHost* agent_host,
|
||||
content::DevToolsAgentHostClient* client,
|
||||
const std::string& method,
|
||||
const std::string& message,
|
||||
base::span<const uint8_t> message,
|
||||
NotHandledCallback callback) override;
|
||||
scoped_refptr<content::DevToolsAgentHost> CreateNewTarget(
|
||||
const GURL& url) override;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "base/guid.h"
|
||||
#include "base/json/json_reader.h"
|
||||
#include "base/json/json_writer.h"
|
||||
#include "base/json/string_escape.h"
|
||||
#include "base/metrics/histogram.h"
|
||||
#include "base/stl_util.h"
|
||||
#include "base/strings/pattern.h"
|
||||
|
@ -679,7 +680,7 @@ void InspectableWebContentsImpl::LoadNetworkResource(
|
|||
|
||||
network::ResourceRequest resource_request;
|
||||
resource_request.url = gurl;
|
||||
resource_request.site_for_cookies = gurl;
|
||||
resource_request.site_for_cookies = net::SiteForCookies::FromUrl(gurl);
|
||||
resource_request.headers.AddHeadersFromString(headers);
|
||||
|
||||
NetworkResourceLoader::URLLoaderFactoryHolder url_loader_factory;
|
||||
|
@ -830,7 +831,8 @@ void InspectableWebContentsImpl::DispatchProtocolMessageFromDevToolsFrontend(
|
|||
}
|
||||
|
||||
if (agent_host_)
|
||||
agent_host_->DispatchProtocolMessage(this, message);
|
||||
agent_host_->DispatchProtocolMessage(
|
||||
this, base::as_bytes(base::make_span(message)));
|
||||
}
|
||||
|
||||
void InspectableWebContentsImpl::SendJsonRequest(
|
||||
|
@ -902,21 +904,26 @@ void InspectableWebContentsImpl::HandleMessageFromDevToolsFrontend(
|
|||
|
||||
void InspectableWebContentsImpl::DispatchProtocolMessage(
|
||||
content::DevToolsAgentHost* agent_host,
|
||||
const std::string& message) {
|
||||
base::span<const uint8_t> message) {
|
||||
if (!frontend_loaded_)
|
||||
return;
|
||||
|
||||
if (message.length() < kMaxMessageChunkSize) {
|
||||
base::StringPiece str_message(reinterpret_cast<const char*>(message.data()),
|
||||
message.size());
|
||||
if (str_message.size() < kMaxMessageChunkSize) {
|
||||
std::string param;
|
||||
base::EscapeJSONString(str_message, true, ¶m);
|
||||
base::string16 javascript =
|
||||
base::UTF8ToUTF16("DevToolsAPI.dispatchMessage(" + message + ");");
|
||||
base::UTF8ToUTF16("DevToolsAPI.dispatchMessage(" + param + ");");
|
||||
GetDevToolsWebContents()->GetMainFrame()->ExecuteJavaScript(
|
||||
javascript, base::NullCallback());
|
||||
return;
|
||||
}
|
||||
|
||||
base::Value total_size(static_cast<int>(message.length()));
|
||||
for (size_t pos = 0; pos < message.length(); pos += kMaxMessageChunkSize) {
|
||||
base::Value message_value(message.substr(pos, kMaxMessageChunkSize));
|
||||
base::Value total_size(static_cast<int>(str_message.length()));
|
||||
for (size_t pos = 0; pos < str_message.length();
|
||||
pos += kMaxMessageChunkSize) {
|
||||
base::Value message_value(str_message.substr(pos, kMaxMessageChunkSize));
|
||||
CallClientFunction("DevToolsAPI.dispatchMessageChunk", &message_value,
|
||||
pos ? nullptr : &total_size, nullptr);
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "base/containers/span.h"
|
||||
#include "base/containers/unique_ptr_adapters.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
#include "chrome/browser/devtools/devtools_contents_resizing_strategy.h"
|
||||
|
@ -157,7 +158,7 @@ class InspectableWebContentsImpl
|
|||
|
||||
// content::DevToolsAgentHostClient:
|
||||
void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host,
|
||||
const std::string& message) override;
|
||||
base::span<const uint8_t> message) override;
|
||||
void AgentHostClosed(content::DevToolsAgentHost* agent_host) override;
|
||||
|
||||
// content::WebContentsObserver:
|
||||
|
|
|
@ -49,8 +49,7 @@ class DevToolsWindowDelegate : public views::ClientView,
|
|||
base::string16 GetWindowTitle() const override { return shell_->GetTitle(); }
|
||||
gfx::ImageSkia GetWindowAppIcon() override { return GetWindowIcon(); }
|
||||
gfx::ImageSkia GetWindowIcon() override { return icon_; }
|
||||
views::Widget* GetWidget() override { return widget_; }
|
||||
const views::Widget* GetWidget() const override { return widget_; }
|
||||
const views::Widget* GetWidgetImpl() const override { return widget_; }
|
||||
views::View* GetContentsView() override { return view_; }
|
||||
views::ClientView* CreateClientView(views::Widget* widget) override {
|
||||
return this;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue