chore: bump chromium to 90.0.4415.0 (master) (#27694)
* chore: bump chromium in DEPS to 520c02b46668fc608927e0fcd79b6a90885a48bf * chore: bump chromium in DEPS to 90.0.4414.0 * resolve chromium conflicts * resolve v8 conflicts * fix node gn files * 2673502: Remove RenderViewCreated use from ExtensionHost.2673502
* 2676903: [mojo] Remove most legacy Binding classes.2676903
* 2644847: Move self-deleting URLLoaderFactory base into //services/network.2644847
* 2664006: Remove from mojo::DataPipe.2664006
* 2674530: Remove CertVerifierService feature2674530
* 2668748: Move OnSSLCertificateError to a new interface.2668748
* 2672923: Remove RAPPOR reporting infrastructure.2672923
* 2673502: Remove RenderViewCreated use from ExtensionHost.2673502
* 2655126: Convert FrameHostMsg_ContextMenu and FrameMsg_ContextMenuClosed|CustomContextMenuAction to Mojo2655126
* 2628705: Window Placement: Implement screen.isExtended and change event2628705
* 2643161: Refactor storage::kFileSystem*Native*2643161
* fix build * only remove the biggest subdir of //ios * chore: bump chromium in DEPS to 90.0.4415.0 * update patches * update sysroots * 2686147: Remove WebContentsObserver::RenderViewCreated().2686147
* 2596429: Fixing how extension's split and spanning modes affect OriginAccessList.2596429
* 2686026: [mojo] Delete AssociatedInterfacePtr (replaced by AssociatedRemote)2686026
* 2651705: Move ui/base/dragdrop/file_info to ui/base/clipboard2651705
* 358217: drawBitmap is deprecated https://skia-review.googlesource.com/c/skia/+/358217 * fix gn check * 2678098: Use gen/front_end as input to generate_devtools_grd2678098
* 2674530: Remove CertVerifierService feature2674530
* fixup 2664006: Remove from mojo::DataPipe.2664006
* fixup build_add_electron_tracing_category.patch * 2673415: [base] Prepare CrashReporterClient for string16 switch2673415
* 2673413: Add CursorFactoryWin to handle Cursors on Windows2673413
* 2668748: Move OnSSLCertificateError to a new interface.2668748
* fix mas gn check * update patch after merge * Update node for .mjs files * build: load v8_prof_processor dependencies as ESM * chore: add patch to fix linux 32bit Co-authored-by: Jeremy Rose <nornagon@nornagon.net> Co-authored-by: Jeremy Rose <jeremya@chromium.org> Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org> Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com> Co-authored-by: Samuel Attard <samuel.r.attard@gmail.com>
This commit is contained in:
parent
0b042d3b1c
commit
ca75bca667
119 changed files with 746 additions and 633 deletions
|
@ -133,14 +133,14 @@ void BrowserWindow::RenderViewHostChanged(content::RenderViewHost* old_host,
|
|||
new_host->GetWidget()->AddInputEventObserver(this);
|
||||
}
|
||||
|
||||
void BrowserWindow::RenderViewCreated(
|
||||
content::RenderViewHost* render_view_host) {
|
||||
void BrowserWindow::RenderFrameCreated(
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
if (!window()->transparent())
|
||||
return;
|
||||
|
||||
content::RenderWidgetHostImpl* impl = content::RenderWidgetHostImpl::FromID(
|
||||
render_view_host->GetProcess()->GetID(),
|
||||
render_view_host->GetRoutingID());
|
||||
render_frame_host->GetProcess()->GetID(),
|
||||
render_frame_host->GetRoutingID());
|
||||
if (impl)
|
||||
impl->owner_delegate()->SetBackgroundOpaque(false);
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ class BrowserWindow : public BaseWindow,
|
|||
// content::WebContentsObserver:
|
||||
void RenderViewHostChanged(content::RenderViewHost* old_host,
|
||||
content::RenderViewHost* new_host) override;
|
||||
void RenderViewCreated(content::RenderViewHost* render_view_host) override;
|
||||
void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override;
|
||||
void DidFirstVisuallyNonEmptyPaint() override;
|
||||
void BeforeUnloadDialogCancelled() override;
|
||||
void OnRendererUnresponsive(content::RenderProcessHost*) override;
|
||||
|
|
|
@ -30,8 +30,8 @@
|
|||
#include "shell/common/node_includes.h"
|
||||
|
||||
#if !defined(MAS_BUILD)
|
||||
#include "chrome/browser/crash_upload_list/crash_upload_list_crashpad.h"
|
||||
#include "components/crash/core/app/crashpad.h" // nogncheck
|
||||
#include "components/crash/core/browser/crash_upload_list_crashpad.h" // nogncheck
|
||||
#include "components/crash/core/common/crash_key.h"
|
||||
#include "shell/app/electron_crash_reporter_client.h"
|
||||
#include "shell/common/crash_keys.h"
|
||||
|
|
|
@ -44,11 +44,12 @@ class DataPipeReader {
|
|||
mojo::SimpleWatcher::ArmingPolicy::MANUAL,
|
||||
base::SequencedTaskRunnerHandle::Get()) {
|
||||
// Get a new data pipe and start.
|
||||
mojo::DataPipe data_pipe;
|
||||
data_pipe_getter_->Read(std::move(data_pipe.producer_handle),
|
||||
mojo::ScopedDataPipeProducerHandle producer_handle;
|
||||
CHECK_EQ(mojo::CreateDataPipe(nullptr, producer_handle, data_pipe_),
|
||||
MOJO_RESULT_OK);
|
||||
data_pipe_getter_->Read(std::move(producer_handle),
|
||||
base::BindOnce(&DataPipeReader::ReadCallback,
|
||||
weak_factory_.GetWeakPtr()));
|
||||
data_pipe_ = std::move(data_pipe.consumer_handle);
|
||||
handle_watcher_.Watch(data_pipe_.get(), MOJO_HANDLE_SIGNAL_READABLE,
|
||||
base::BindRepeating(&DataPipeReader::OnHandleReadable,
|
||||
weak_factory_.GetWeakPtr()));
|
||||
|
|
|
@ -503,7 +503,7 @@ std::string RegisterFileSystem(content::WebContents* web_contents,
|
|||
std::string root_name(kRootName);
|
||||
storage::IsolatedContext::ScopedFSHandle file_system =
|
||||
isolated_context->RegisterFileSystemForPath(
|
||||
storage::kFileSystemTypeNativeLocal, std::string(), path, &root_name);
|
||||
storage::kFileSystemTypeLocal, std::string(), path, &root_name);
|
||||
|
||||
content::ChildProcessSecurityPolicy* policy =
|
||||
content::ChildProcessSecurityPolicy::GetInstance();
|
||||
|
@ -1273,14 +1273,7 @@ void WebContents::RendererResponsive(
|
|||
|
||||
bool WebContents::HandleContextMenu(content::RenderFrameHost* render_frame_host,
|
||||
const content::ContextMenuParams& params) {
|
||||
if (params.custom_context.is_pepper_menu) {
|
||||
Emit("pepper-context-menu", std::make_pair(params, web_contents()),
|
||||
base::BindOnce(&content::WebContents::NotifyContextMenuClosed,
|
||||
base::Unretained(web_contents()),
|
||||
params.custom_context));
|
||||
} else {
|
||||
Emit("context-menu", std::make_pair(params, web_contents()));
|
||||
}
|
||||
Emit("context-menu", std::make_pair(params, web_contents()));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -1357,30 +1350,27 @@ void WebContents::BeforeUnloadFired(bool proceed,
|
|||
// there are two virtual functions named BeforeUnloadFired.
|
||||
}
|
||||
|
||||
void WebContents::RenderViewCreated(content::RenderViewHost* render_view_host) {
|
||||
if (!background_throttling_)
|
||||
render_view_host->SetSchedulerThrottling(false);
|
||||
|
||||
// Set the background color of RenderWidgetHostView.
|
||||
auto* const view = web_contents()->GetRenderWidgetHostView();
|
||||
auto* web_preferences = WebContentsPreferences::From(web_contents());
|
||||
if (view && web_preferences) {
|
||||
std::string color_name;
|
||||
if (web_preferences->GetPreference(options::kBackgroundColor,
|
||||
&color_name)) {
|
||||
view->SetBackgroundColor(ParseHexColor(color_name));
|
||||
} else {
|
||||
view->SetBackgroundColor(SK_ColorTRANSPARENT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WebContents::RenderFrameCreated(
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
auto* rwhv = render_frame_host->GetView();
|
||||
if (!rwhv)
|
||||
return;
|
||||
|
||||
// Set the background color of RenderWidgetHostView.
|
||||
auto* web_preferences = WebContentsPreferences::From(web_contents());
|
||||
if (web_preferences) {
|
||||
std::string color_name;
|
||||
if (web_preferences->GetPreference(options::kBackgroundColor,
|
||||
&color_name)) {
|
||||
rwhv->SetBackgroundColor(ParseHexColor(color_name));
|
||||
} else {
|
||||
rwhv->SetBackgroundColor(SK_ColorTRANSPARENT);
|
||||
}
|
||||
}
|
||||
|
||||
if (!background_throttling_)
|
||||
render_frame_host->GetRenderViewHost()->SetSchedulerThrottling(false);
|
||||
|
||||
auto* rwh_impl =
|
||||
static_cast<content::RenderWidgetHostImpl*>(rwhv->GetRenderWidgetHost());
|
||||
if (rwh_impl)
|
||||
|
|
|
@ -549,7 +549,6 @@ class WebContents : public gin::Wrappable<WebContents>,
|
|||
// content::WebContentsObserver:
|
||||
void BeforeUnloadFired(bool proceed,
|
||||
const base::TimeTicks& proceed_time) override;
|
||||
void RenderViewCreated(content::RenderViewHost* render_view_host) override;
|
||||
void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override;
|
||||
void RenderViewDeleted(content::RenderViewHost*) override;
|
||||
void RenderProcessGone(base::TerminationStatus status) override;
|
||||
|
|
|
@ -62,9 +62,10 @@ void FrameSubscriber::DetachFromHost() {
|
|||
host_ = nullptr;
|
||||
}
|
||||
|
||||
void FrameSubscriber::RenderViewCreated(content::RenderViewHost* host) {
|
||||
void FrameSubscriber::RenderFrameCreated(
|
||||
content::RenderFrameHost* render_frame_host) {
|
||||
if (!host_)
|
||||
AttachToHost(host->GetWidget());
|
||||
AttachToHost(render_frame_host->GetRenderWidgetHost());
|
||||
}
|
||||
|
||||
void FrameSubscriber::RenderViewDeleted(content::RenderViewHost* host) {
|
||||
|
|
|
@ -41,7 +41,7 @@ class FrameSubscriber : public content::WebContentsObserver,
|
|||
void AttachToHost(content::RenderWidgetHost* host);
|
||||
void DetachFromHost();
|
||||
|
||||
void RenderViewCreated(content::RenderViewHost* host) override;
|
||||
void RenderFrameCreated(content::RenderFrameHost* render_frame_host) override;
|
||||
void RenderViewDeleted(content::RenderViewHost* host) override;
|
||||
void RenderViewHostChanged(content::RenderViewHost* old_host,
|
||||
content::RenderViewHost* new_host) override;
|
||||
|
|
|
@ -128,10 +128,6 @@ metrics::MetricsService* BrowserProcessImpl::metrics_service() {
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
rappor::RapporServiceImpl* BrowserProcessImpl::rappor_service() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ProfileManager* BrowserProcessImpl::profile_manager() {
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -51,7 +51,6 @@ class BrowserProcessImpl : public BrowserProcess {
|
|||
metrics_services_manager::MetricsServicesManager* GetMetricsServicesManager()
|
||||
override;
|
||||
metrics::MetricsService* metrics_service() override;
|
||||
rappor::RapporServiceImpl* rappor_service() override;
|
||||
ProfileManager* profile_manager() override;
|
||||
PrefService* local_state() override;
|
||||
scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory()
|
||||
|
|
|
@ -17,10 +17,10 @@ namespace electron {
|
|||
|
||||
AutofillDriver::AutofillDriver(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
mojom::ElectronAutofillDriverAssociatedRequest request)
|
||||
: render_frame_host_(render_frame_host), binding_(this) {
|
||||
mojo::PendingAssociatedReceiver<mojom::ElectronAutofillDriver> request)
|
||||
: render_frame_host_(render_frame_host),
|
||||
receiver_(this, std::move(request)) {
|
||||
autofill_popup_ = std::make_unique<AutofillPopup>();
|
||||
binding_.Bind(std::move(request));
|
||||
}
|
||||
|
||||
AutofillDriver::~AutofillDriver() = default;
|
||||
|
|
|
@ -12,15 +12,17 @@
|
|||
#include "shell/browser/ui/autofill_popup.h"
|
||||
#endif
|
||||
|
||||
#include "mojo/public/cpp/bindings/associated_binding.h"
|
||||
#include "mojo/public/cpp/bindings/associated_receiver.h"
|
||||
#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
|
||||
#include "shell/common/api/api.mojom.h"
|
||||
|
||||
namespace electron {
|
||||
|
||||
class AutofillDriver : public mojom::ElectronAutofillDriver {
|
||||
public:
|
||||
AutofillDriver(content::RenderFrameHost* render_frame_host,
|
||||
mojom::ElectronAutofillDriverAssociatedRequest request);
|
||||
AutofillDriver(
|
||||
content::RenderFrameHost* render_frame_host,
|
||||
mojo::PendingAssociatedReceiver<mojom::ElectronAutofillDriver> request);
|
||||
|
||||
~AutofillDriver() override;
|
||||
|
||||
|
@ -36,7 +38,7 @@ class AutofillDriver : public mojom::ElectronAutofillDriver {
|
|||
std::unique_ptr<AutofillPopup> autofill_popup_;
|
||||
#endif
|
||||
|
||||
mojo::AssociatedBinding<mojom::ElectronAutofillDriver> binding_;
|
||||
mojo::AssociatedReceiver<mojom::ElectronAutofillDriver> receiver_;
|
||||
};
|
||||
|
||||
} // namespace electron
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include "content/public/browser/browser_task_traits.h"
|
||||
#include "content/public/browser/client_certificate_delegate.h"
|
||||
#include "content/public/browser/login_delegate.h"
|
||||
#include "content/public/browser/non_network_url_loader_factory_base.h"
|
||||
#include "content/public/browser/overlay_window.h"
|
||||
#include "content/public/browser/render_frame_host.h"
|
||||
#include "content/public/browser/render_process_host.h"
|
||||
|
@ -59,6 +58,7 @@
|
|||
#include "services/device/public/cpp/geolocation/location_provider.h"
|
||||
#include "services/network/public/cpp/features.h"
|
||||
#include "services/network/public/cpp/resource_request_body.h"
|
||||
#include "services/network/public/cpp/self_deleting_url_loader_factory.h"
|
||||
#include "shell/app/electron_crash_reporter_client.h"
|
||||
#include "shell/browser/api/electron_api_app.h"
|
||||
#include "shell/browser/api/electron_api_crash_reporter.h"
|
||||
|
@ -1295,7 +1295,7 @@ namespace {
|
|||
|
||||
// The FileURLLoaderFactory provided to the extension background pages.
|
||||
// Checks with the ChildProcessSecurityPolicy to validate the file access.
|
||||
class FileURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase {
|
||||
class FileURLLoaderFactory : public network::SelfDeletingURLLoaderFactory {
|
||||
public:
|
||||
static mojo::PendingRemote<network::mojom::URLLoaderFactory> Create(
|
||||
int child_id) {
|
||||
|
@ -1313,7 +1313,7 @@ class FileURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase {
|
|||
explicit FileURLLoaderFactory(
|
||||
int child_id,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> factory_receiver)
|
||||
: content::NonNetworkURLLoaderFactoryBase(std::move(factory_receiver)),
|
||||
: network::SelfDeletingURLLoaderFactory(std::move(factory_receiver)),
|
||||
child_id_(child_id) {}
|
||||
~FileURLLoaderFactory() override = default;
|
||||
|
||||
|
|
|
@ -354,6 +354,8 @@ ElectronBrowserContext::GetURLLoaderFactory() {
|
|||
|
||||
auto* storage_partition =
|
||||
content::BrowserContext::GetDefaultStoragePartition(this);
|
||||
params->auth_cert_observer =
|
||||
storage_partition->CreateAuthAndCertObserverForNavigationRequest(-1);
|
||||
storage_partition->GetNetworkContext()->CreateURLLoaderFactory(
|
||||
std::move(factory_receiver), std::move(params));
|
||||
url_loader_factory_ =
|
||||
|
@ -432,28 +434,23 @@ ElectronBrowserContext::GetStorageNotificationService() {
|
|||
}
|
||||
|
||||
void ElectronBrowserContext::SetCorsOriginAccessListForOrigin(
|
||||
TargetBrowserContexts target_mode,
|
||||
const url::Origin& source_origin,
|
||||
std::vector<network::mojom::CorsOriginPatternPtr> allow_patterns,
|
||||
std::vector<network::mojom::CorsOriginPatternPtr> block_patterns,
|
||||
base::OnceClosure closure) {
|
||||
auto& context_map = ElectronBrowserContext::browser_context_map();
|
||||
auto barrier_closure =
|
||||
BarrierClosure(1 + context_map.size(), std::move(closure));
|
||||
|
||||
for (auto& iter : context_map) {
|
||||
if (iter.second) {
|
||||
auto bc_setter = base::MakeRefCounted<content::CorsOriginPatternSetter>(
|
||||
source_origin,
|
||||
content::CorsOriginPatternSetter::ClonePatterns(allow_patterns),
|
||||
content::CorsOriginPatternSetter::ClonePatterns(block_patterns),
|
||||
barrier_closure);
|
||||
ForEachStoragePartition(
|
||||
std::move(iter.second.get()),
|
||||
base::BindRepeating(&content::CorsOriginPatternSetter::SetLists,
|
||||
base::RetainedRef(bc_setter.get())));
|
||||
}
|
||||
}
|
||||
using content::CorsOriginPatternSetter;
|
||||
// We ignore target_mode because we don't support extensions in in-memory
|
||||
// sessions.
|
||||
auto barrier_closure = BarrierClosure(2, std::move(closure));
|
||||
base::MakeRefCounted<CorsOriginPatternSetter>(
|
||||
source_origin, CorsOriginPatternSetter::ClonePatterns(allow_patterns),
|
||||
CorsOriginPatternSetter::ClonePatterns(block_patterns), barrier_closure)
|
||||
->ApplyToEachStoragePartition(this);
|
||||
|
||||
// Keep the per-profile access list up to date so that we can use this to
|
||||
// restore NetworkContext settings at anytime, e.g. on restarting the
|
||||
// network service.
|
||||
shared_cors_origin_access_list_->SetForOrigin(
|
||||
source_origin, std::move(allow_patterns), std::move(block_patterns),
|
||||
barrier_closure);
|
||||
|
|
|
@ -115,6 +115,7 @@ class ElectronBrowserContext
|
|||
|
||||
// extensions deps
|
||||
void SetCorsOriginAccessListForOrigin(
|
||||
TargetBrowserContexts target_mode,
|
||||
const url::Origin& source_origin,
|
||||
std::vector<network::mojom::CorsOriginPatternPtr> allow_patterns,
|
||||
std::vector<network::mojom::CorsOriginPatternPtr> block_patterns,
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
#endif
|
||||
|
||||
#if defined(OS_WIN)
|
||||
#include "ui/base/cursor/cursor_loader_win.h"
|
||||
#include "ui/base/cursor/win/win_cursor_factory.h"
|
||||
#include "ui/base/l10n/l10n_util_win.h"
|
||||
#include "ui/display/win/dpi.h"
|
||||
#include "ui/gfx/system_fonts_win.h"
|
||||
|
@ -408,7 +408,7 @@ void ElectronBrowserMainParts::ToolkitInitialized() {
|
|||
|
||||
wchar_t module_name[MAX_PATH] = {0};
|
||||
if (GetModuleFileName(NULL, module_name, base::size(module_name)))
|
||||
ui::CursorLoaderWin::SetCursorResourceModule(module_name);
|
||||
ui::SetCursorResourceModule(module_name);
|
||||
#endif
|
||||
|
||||
#if defined(OS_MAC)
|
||||
|
|
|
@ -24,7 +24,7 @@ void ElectronExtensionHostDelegate::OnExtensionHostCreated(
|
|||
ElectronExtensionWebContentsObserver::CreateForWebContents(web_contents);
|
||||
}
|
||||
|
||||
void ElectronExtensionHostDelegate::OnRenderViewCreatedForBackgroundPage(
|
||||
void ElectronExtensionHostDelegate::OnMainFrameCreatedForBackgroundPage(
|
||||
ExtensionHost* host) {}
|
||||
|
||||
content::JavaScriptDialogManager*
|
||||
|
|
|
@ -21,7 +21,7 @@ class ElectronExtensionHostDelegate : public ExtensionHostDelegate {
|
|||
|
||||
// ExtensionHostDelegate implementation.
|
||||
void OnExtensionHostCreated(content::WebContents* web_contents) override;
|
||||
void OnRenderViewCreatedForBackgroundPage(ExtensionHost* host) override;
|
||||
void OnMainFrameCreatedForBackgroundPage(ExtensionHost* host) override;
|
||||
content::JavaScriptDialogManager* GetJavaScriptDialogManager() override;
|
||||
void CreateTab(std::unique_ptr<content::WebContents> web_contents,
|
||||
const std::string& extension_id,
|
||||
|
|
|
@ -35,8 +35,7 @@ void InitializeFeatureList() {
|
|||
// https://groups.google.com/a/chromium.org/g/embedder-dev/c/4yJi4Twj2NM/m/9bhpWureCAAJ
|
||||
std::string(",") + net::features::kSameSiteByDefaultCookies.name +
|
||||
std::string(",") +
|
||||
net::features::kCookiesWithoutSameSiteMustBeSecure.name +
|
||||
std::string(",") + network::features::kCertVerifierService.name;
|
||||
net::features::kCookiesWithoutSameSiteMustBeSecure.name;
|
||||
|
||||
// https://www.polymer-project.org/blog/2018-10-02-webcomponents-v0-deprecations
|
||||
// https://chromium-review.googlesource.com/c/chromium/src/+/1869562
|
||||
|
|
|
@ -135,8 +135,10 @@ class AsarURLLoader : public network::mojom::URLLoader {
|
|||
info.offset = 0;
|
||||
}
|
||||
|
||||
mojo::DataPipe pipe(kDefaultFileUrlPipeSize);
|
||||
if (!pipe.consumer_handle.is_valid()) {
|
||||
mojo::ScopedDataPipeProducerHandle producer_handle;
|
||||
mojo::ScopedDataPipeConsumerHandle consumer_handle;
|
||||
if (mojo::CreateDataPipe(kDefaultFileUrlPipeSize, producer_handle,
|
||||
consumer_handle) != MOJO_RESULT_OK) {
|
||||
OnClientComplete(net::ERR_FAILED);
|
||||
return;
|
||||
}
|
||||
|
@ -201,9 +203,9 @@ class AsarURLLoader : public network::mojom::URLLoader {
|
|||
static_cast<uint32_t>(read_result.bytes_read - first_byte_to_send),
|
||||
static_cast<uint32_t>(total_bytes_to_send));
|
||||
const uint32_t expected_write_size = write_size;
|
||||
MojoResult result = pipe.producer_handle->WriteData(
|
||||
&initial_read_buffer[first_byte_to_send], &write_size,
|
||||
MOJO_WRITE_DATA_FLAG_NONE);
|
||||
MojoResult result =
|
||||
producer_handle->WriteData(&initial_read_buffer[first_byte_to_send],
|
||||
&write_size, MOJO_WRITE_DATA_FLAG_NONE);
|
||||
if (result != MOJO_RESULT_OK || write_size != expected_write_size) {
|
||||
OnFileWritten(result);
|
||||
return;
|
||||
|
@ -228,7 +230,7 @@ class AsarURLLoader : public network::mojom::URLLoader {
|
|||
head->mime_type.c_str());
|
||||
}
|
||||
client_->OnReceiveResponse(std::move(head));
|
||||
client_->OnStartLoadingResponseBody(std::move(pipe.consumer_handle));
|
||||
client_->OnStartLoadingResponseBody(std::move(consumer_handle));
|
||||
|
||||
if (total_bytes_to_send == 0) {
|
||||
// There's definitely no more data, so we're already done.
|
||||
|
@ -245,8 +247,8 @@ class AsarURLLoader : public network::mojom::URLLoader {
|
|||
first_byte_to_send + info.offset,
|
||||
first_byte_to_send + info.offset + total_bytes_to_send);
|
||||
|
||||
data_producer_ = std::make_unique<mojo::DataPipeProducer>(
|
||||
std::move(pipe.producer_handle));
|
||||
data_producer_ =
|
||||
std::make_unique<mojo::DataPipeProducer>(std::move(producer_handle));
|
||||
data_producer_->Write(
|
||||
std::move(file_data_source),
|
||||
base::BindOnce(&AsarURLLoader::OnFileWritten, base::Unretained(this)));
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "base/strings/string_number_conversions.h"
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/storage_partition.h"
|
||||
#include "mojo/public/cpp/bindings/binding.h"
|
||||
#include "mojo/public/cpp/system/data_pipe_producer.h"
|
||||
#include "mojo/public/cpp/system/string_data_source.h"
|
||||
#include "net/base/filename_util.h"
|
||||
|
@ -185,7 +184,7 @@ ElectronURLLoaderFactory::ElectronURLLoaderFactory(
|
|||
ProtocolType type,
|
||||
const ProtocolHandler& handler,
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> factory_receiver)
|
||||
: content::NonNetworkURLLoaderFactoryBase(std::move(factory_receiver)),
|
||||
: network::SelfDeletingURLLoaderFactory(std::move(factory_receiver)),
|
||||
type_(type),
|
||||
handler_(handler) {}
|
||||
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
#include "content/public/browser/non_network_url_loader_factory_base.h"
|
||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||
#include "mojo/public/cpp/bindings/pending_remote.h"
|
||||
#include "mojo/public/cpp/bindings/receiver_set.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "net/url_request/url_request_job_factory.h"
|
||||
#include "services/network/public/cpp/self_deleting_url_loader_factory.h"
|
||||
#include "services/network/public/mojom/url_loader_factory.mojom.h"
|
||||
#include "services/network/public/mojom/url_response_head.mojom.h"
|
||||
#include "shell/common/gin_helper/dictionary.h"
|
||||
|
@ -40,8 +40,7 @@ using HandlersMap =
|
|||
std::map<std::string, std::pair<ProtocolType, ProtocolHandler>>;
|
||||
|
||||
// Implementation of URLLoaderFactory.
|
||||
class ElectronURLLoaderFactory
|
||||
: public content::NonNetworkURLLoaderFactoryBase {
|
||||
class ElectronURLLoaderFactory : public network::SelfDeletingURLLoaderFactory {
|
||||
public:
|
||||
static mojo::PendingRemote<network::mojom::URLLoaderFactory> Create(
|
||||
ProtocolType type,
|
||||
|
|
|
@ -14,15 +14,15 @@ namespace electron {
|
|||
|
||||
NodeStreamLoader::NodeStreamLoader(
|
||||
network::mojom::URLResponseHeadPtr head,
|
||||
network::mojom::URLLoaderRequest loader,
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
v8::Isolate* isolate,
|
||||
v8::Local<v8::Object> emitter)
|
||||
: binding_(this, std::move(loader)),
|
||||
: url_loader_(this, std::move(loader)),
|
||||
client_(std::move(client)),
|
||||
isolate_(isolate),
|
||||
emitter_(isolate, emitter) {
|
||||
binding_.set_connection_error_handler(
|
||||
url_loader_.set_disconnect_handler(
|
||||
base::BindOnce(&NodeStreamLoader::NotifyComplete,
|
||||
weak_factory_.GetWeakPtr(), net::ERR_FAILED));
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
|
||||
#include "mojo/public/cpp/bindings/pending_remote.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "mojo/public/cpp/bindings/strong_binding.h"
|
||||
#include "mojo/public/cpp/system/data_pipe_producer.h"
|
||||
#include "services/network/public/mojom/url_loader.mojom.h"
|
||||
#include "services/network/public/mojom/url_response_head.mojom.h"
|
||||
|
@ -31,7 +30,7 @@ namespace electron {
|
|||
class NodeStreamLoader : public network::mojom::URLLoader {
|
||||
public:
|
||||
NodeStreamLoader(network::mojom::URLResponseHeadPtr head,
|
||||
network::mojom::URLLoaderRequest loader,
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
v8::Isolate* isolate,
|
||||
v8::Local<v8::Object> emitter);
|
||||
|
@ -61,7 +60,7 @@ class NodeStreamLoader : public network::mojom::URLLoader {
|
|||
void PauseReadingBodyFromNet() override {}
|
||||
void ResumeReadingBodyFromNet() override {}
|
||||
|
||||
mojo::Binding<network::mojom::URLLoader> binding_;
|
||||
mojo::Receiver<network::mojom::URLLoader> url_loader_;
|
||||
mojo::Remote<network::mojom::URLLoaderClient> client_;
|
||||
|
||||
v8::Isolate* isolate_;
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include "base/strings/string_util.h"
|
||||
#include "content/public/browser/browser_context.h"
|
||||
#include "extensions/browser/extension_navigation_ui_data.h"
|
||||
#include "mojo/public/cpp/bindings/binding.h"
|
||||
#include "net/base/completion_repeating_callback.h"
|
||||
#include "net/base/load_flags.h"
|
||||
#include "net/http/http_util.h"
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
#include "base/optional.h"
|
||||
#include "content/public/browser/content_browser_client.h"
|
||||
#include "extensions/browser/api/web_request/web_request_info.h"
|
||||
#include "mojo/public/cpp/bindings/binding.h"
|
||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||
#include "mojo/public/cpp/bindings/pending_remote.h"
|
||||
#include "mojo/public/cpp/bindings/receiver_set.h"
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace electron {
|
|||
// The code is referenced from the
|
||||
// extensions::WebRequestProxyingWebSocket class.
|
||||
class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient,
|
||||
public network::mojom::AuthenticationHandler,
|
||||
public network::mojom::WebSocketAuthenticationHandler,
|
||||
public network::mojom::TrustedHeaderClient {
|
||||
public:
|
||||
using WebSocketFactory = content::ContentBrowserClient::WebSocketFactory;
|
||||
|
@ -79,7 +79,7 @@ class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient,
|
|||
mojo::ScopedDataPipeConsumerHandle readable,
|
||||
mojo::ScopedDataPipeProducerHandle writable) override;
|
||||
|
||||
// network::mojom::AuthenticationHandler method:
|
||||
// network::mojom::WebSocketAuthenticationHandler method:
|
||||
void OnAuthRequired(const net::AuthChallengeInfo& auth_info,
|
||||
const scoped_refptr<net::HttpResponseHeaders>& headers,
|
||||
const net::IPEndPoint& remote_endpoint,
|
||||
|
@ -144,7 +144,7 @@ class ProxyingWebSocket : public network::mojom::WebSocketHandshakeClient,
|
|||
forwarding_handshake_client_;
|
||||
mojo::Receiver<network::mojom::WebSocketHandshakeClient>
|
||||
receiver_as_handshake_client_{this};
|
||||
mojo::Receiver<network::mojom::AuthenticationHandler>
|
||||
mojo::Receiver<network::mojom::WebSocketAuthenticationHandler>
|
||||
receiver_as_auth_handler_{this};
|
||||
mojo::Receiver<network::mojom::TrustedHeaderClient>
|
||||
receiver_as_header_client_{this};
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/network_service_instance.h"
|
||||
#include "content/public/common/content_features.h"
|
||||
#include "mojo/public/cpp/bindings/associated_interface_ptr.h"
|
||||
#include "mojo/public/cpp/bindings/pending_receiver.h"
|
||||
#include "net/net_buildflags.h"
|
||||
#include "services/network/network_service.h"
|
||||
|
@ -157,6 +156,11 @@ SystemNetworkContextManager::CreateDefaultNetworkContextParams() {
|
|||
network::mojom::NetworkContextParams::New();
|
||||
|
||||
ConfigureDefaultNetworkContextParams(network_context_params.get());
|
||||
|
||||
network::mojom::CertVerifierCreationParamsPtr cert_verifier_creation_params =
|
||||
network::mojom::CertVerifierCreationParams::New();
|
||||
network_context_params->cert_verifier_params =
|
||||
content::GetCertVerifierParams(std::move(cert_verifier_creation_params));
|
||||
return network_context_params;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,12 +15,12 @@ namespace electron {
|
|||
URLPipeLoader::URLPipeLoader(
|
||||
scoped_refptr<network::SharedURLLoaderFactory> factory,
|
||||
std::unique_ptr<network::ResourceRequest> request,
|
||||
network::mojom::URLLoaderRequest loader,
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
const net::NetworkTrafficAnnotationTag& annotation,
|
||||
base::DictionaryValue upload_data)
|
||||
: binding_(this, std::move(loader)), client_(std::move(client)) {
|
||||
binding_.set_connection_error_handler(base::BindOnce(
|
||||
: url_loader_(this, std::move(loader)), client_(std::move(client)) {
|
||||
url_loader_.set_disconnect_handler(base::BindOnce(
|
||||
&URLPipeLoader::NotifyComplete, base::Unretained(this), net::ERR_FAILED));
|
||||
|
||||
// PostTask since it might destruct.
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
#include "mojo/public/cpp/bindings/receiver.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "mojo/public/cpp/bindings/strong_binding.h"
|
||||
#include "mojo/public/cpp/system/data_pipe_producer.h"
|
||||
#include "services/network/public/cpp/simple_url_loader.h"
|
||||
#include "services/network/public/cpp/simple_url_loader_stream_consumer.h"
|
||||
|
@ -35,7 +34,7 @@ class URLPipeLoader : public network::mojom::URLLoader,
|
|||
public:
|
||||
URLPipeLoader(scoped_refptr<network::SharedURLLoaderFactory> factory,
|
||||
std::unique_ptr<network::ResourceRequest> request,
|
||||
network::mojom::URLLoaderRequest loader,
|
||||
mojo::PendingReceiver<network::mojom::URLLoader> loader,
|
||||
mojo::PendingRemote<network::mojom::URLLoaderClient> client,
|
||||
const net::NetworkTrafficAnnotationTag& annotation,
|
||||
base::DictionaryValue upload_data);
|
||||
|
@ -69,7 +68,7 @@ class URLPipeLoader : public network::mojom::URLLoader,
|
|||
void PauseReadingBodyFromNet() override {}
|
||||
void ResumeReadingBodyFromNet() override {}
|
||||
|
||||
mojo::Binding<network::mojom::URLLoader> binding_;
|
||||
mojo::Receiver<network::mojom::URLLoader> url_loader_;
|
||||
mojo::Remote<network::mojom::URLLoaderClient> client_;
|
||||
|
||||
std::unique_ptr<mojo::DataPipeProducer> producer_;
|
||||
|
|
|
@ -188,7 +188,7 @@ OffScreenRenderWidgetHostView::OffScreenRenderWidgetHostView(
|
|||
DCHECK(render_widget_host_);
|
||||
DCHECK(!render_widget_host_->GetView());
|
||||
|
||||
current_device_scale_factor_ = kDefaultScaleFactor;
|
||||
set_current_device_scale_factor(kDefaultScaleFactor);
|
||||
|
||||
delegated_frame_host_allocator_.GenerateId();
|
||||
delegated_frame_host_surface_id_ =
|
||||
|
@ -474,7 +474,7 @@ void OffScreenRenderWidgetHostView::GetScreenInfo(
|
|||
screen_info->depth = 24;
|
||||
screen_info->depth_per_component = 8;
|
||||
screen_info->orientation_angle = 0;
|
||||
screen_info->device_scale_factor = current_device_scale_factor_;
|
||||
screen_info->device_scale_factor = current_device_scale_factor();
|
||||
screen_info->orientation_type =
|
||||
blink::mojom::ScreenOrientation::kLandscapePrimary;
|
||||
screen_info->rect = gfx::Rect(size_);
|
||||
|
@ -514,7 +514,7 @@ void OffScreenRenderWidgetHostView::ImeCompositionRangeChanged(
|
|||
|
||||
gfx::Size OffScreenRenderWidgetHostView::GetCompositorViewportPixelSize() {
|
||||
return gfx::ScaleToCeiledSize(GetRequestedRendererSize(),
|
||||
current_device_scale_factor_);
|
||||
current_device_scale_factor());
|
||||
}
|
||||
|
||||
content::RenderWidgetHostViewBase*
|
||||
|
@ -665,10 +665,10 @@ void OffScreenRenderWidgetHostView::OnPaint(const gfx::Rect& damage_rect,
|
|||
gfx::Size OffScreenRenderWidgetHostView::SizeInPixels() {
|
||||
if (IsPopupWidget()) {
|
||||
return gfx::ToFlooredSize(gfx::ConvertSizeToPixels(
|
||||
popup_position_.size(), current_device_scale_factor_));
|
||||
popup_position_.size(), current_device_scale_factor()));
|
||||
} else {
|
||||
return gfx::ToFlooredSize(gfx::ConvertSizeToPixels(
|
||||
GetViewBounds().size(), current_device_scale_factor_));
|
||||
GetViewBounds().size(), current_device_scale_factor()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -694,7 +694,7 @@ void OffScreenRenderWidgetHostView::CompositeFrame(
|
|||
gfx::Rect rect = popup_host_view_->popup_position_;
|
||||
gfx::Point origin_in_pixels =
|
||||
gfx::ToFlooredPoint(gfx::ConvertPointToPixels(
|
||||
rect.origin(), current_device_scale_factor_));
|
||||
rect.origin(), current_device_scale_factor()));
|
||||
canvas.writePixels(popup_host_view_->GetBacking(), origin_in_pixels.x(),
|
||||
origin_in_pixels.y());
|
||||
}
|
||||
|
@ -703,7 +703,7 @@ void OffScreenRenderWidgetHostView::CompositeFrame(
|
|||
gfx::Rect rect = proxy_view->GetBounds();
|
||||
gfx::Point origin_in_pixels =
|
||||
gfx::ToFlooredPoint(gfx::ConvertPointToPixels(
|
||||
rect.origin(), current_device_scale_factor_));
|
||||
rect.origin(), current_device_scale_factor()));
|
||||
canvas.writePixels(*proxy_view->GetBitmap(), origin_in_pixels.x(),
|
||||
origin_in_pixels.y());
|
||||
}
|
||||
|
@ -720,13 +720,13 @@ void OffScreenRenderWidgetHostView::CompositeFrame(
|
|||
|
||||
void OffScreenRenderWidgetHostView::OnPopupPaint(const gfx::Rect& damage_rect) {
|
||||
InvalidateBounds(gfx::ToEnclosingRect(
|
||||
gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor_)));
|
||||
gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor())));
|
||||
}
|
||||
|
||||
void OffScreenRenderWidgetHostView::OnProxyViewPaint(
|
||||
const gfx::Rect& damage_rect) {
|
||||
InvalidateBounds(gfx::ToEnclosingRect(
|
||||
gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor_)));
|
||||
gfx::ConvertRectToPixels(damage_rect, current_device_scale_factor())));
|
||||
}
|
||||
|
||||
void OffScreenRenderWidgetHostView::HoldResize() {
|
||||
|
@ -976,9 +976,9 @@ void OffScreenRenderWidgetHostView::ResizeRootLayer(bool force) {
|
|||
display::Screen::GetScreen()->GetDisplayNearestView(GetNativeView());
|
||||
const float scaleFactor = display.device_scale_factor();
|
||||
const bool scaleFactorDidChange =
|
||||
(scaleFactor != current_device_scale_factor_);
|
||||
(scaleFactor != current_device_scale_factor());
|
||||
|
||||
current_device_scale_factor_ = scaleFactor;
|
||||
set_current_device_scale_factor(scaleFactor);
|
||||
|
||||
gfx::Size size;
|
||||
if (!IsPopupWidget())
|
||||
|
@ -993,12 +993,12 @@ void OffScreenRenderWidgetHostView::ResizeRootLayer(bool force) {
|
|||
GetRootLayer()->SetBounds(gfx::Rect(size));
|
||||
|
||||
const gfx::Size& size_in_pixels = gfx::ToFlooredSize(
|
||||
gfx::ConvertSizeToPixels(size, current_device_scale_factor_));
|
||||
gfx::ConvertSizeToPixels(size, current_device_scale_factor()));
|
||||
|
||||
if (compositor_) {
|
||||
compositor_allocator_.GenerateId();
|
||||
compositor_surface_id_ = compositor_allocator_.GetCurrentLocalSurfaceId();
|
||||
compositor_->SetScaleAndSize(current_device_scale_factor_, size_in_pixels,
|
||||
compositor_->SetScaleAndSize(current_device_scale_factor(), size_in_pixels,
|
||||
compositor_surface_id_);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "content/public/browser/non_network_url_loader_factory_base.h"
|
||||
#include "services/network/public/cpp/self_deleting_url_loader_factory.h"
|
||||
#include "shell/browser/electron_browser_context.h"
|
||||
#include "shell/browser/net/asar/asar_url_loader.h"
|
||||
#include "shell/browser/protocol_registry.h"
|
||||
|
@ -15,13 +15,13 @@ namespace electron {
|
|||
namespace {
|
||||
|
||||
// Provide support for accessing asar archives in file:// protocol.
|
||||
class AsarURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase {
|
||||
class AsarURLLoaderFactory : public network::SelfDeletingURLLoaderFactory {
|
||||
public:
|
||||
static mojo::PendingRemote<network::mojom::URLLoaderFactory> Create() {
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory> pending_remote;
|
||||
|
||||
// The AsarURLLoaderFactory will delete itself when there are no more
|
||||
// receivers - see the NonNetworkURLLoaderFactoryBase::OnDisconnect method.
|
||||
// receivers - see the SelfDeletingURLLoaderFactory::OnDisconnect method.
|
||||
new AsarURLLoaderFactory(pending_remote.InitWithNewPipeAndPassReceiver());
|
||||
|
||||
return pending_remote;
|
||||
|
@ -30,7 +30,7 @@ class AsarURLLoaderFactory : public content::NonNetworkURLLoaderFactoryBase {
|
|||
private:
|
||||
AsarURLLoaderFactory(
|
||||
mojo::PendingReceiver<network::mojom::URLLoaderFactory> factory_receiver)
|
||||
: content::NonNetworkURLLoaderFactoryBase(std::move(factory_receiver)) {}
|
||||
: network::SelfDeletingURLLoaderFactory(std::move(factory_receiver)) {}
|
||||
~AsarURLLoaderFactory() override = default;
|
||||
|
||||
// network::mojom::URLLoaderFactory:
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
#include "ui/aura/client/drag_drop_client.h"
|
||||
#include "ui/aura/window.h"
|
||||
#include "ui/base/clipboard/file_info.h"
|
||||
#include "ui/base/dragdrop/drag_drop_types.h"
|
||||
#include "ui/base/dragdrop/file_info/file_info.h"
|
||||
#include "ui/base/dragdrop/mojom/drag_drop_types.mojom-shared.h"
|
||||
#include "ui/base/dragdrop/os_exchange_data.h"
|
||||
#include "ui/display/screen.h"
|
||||
|
|
|
@ -282,8 +282,9 @@ AppIndicatorIcon::WriteKDE4TempImageOnWorkerThread(
|
|||
std::max(bitmap.height(), kMinimalSize));
|
||||
scaled_bitmap.eraseARGB(0, 0, 0, 0);
|
||||
SkCanvas canvas(scaled_bitmap);
|
||||
canvas.drawBitmap(bitmap, (scaled_bitmap.width() - bitmap.width()) / 2,
|
||||
(scaled_bitmap.height() - bitmap.height()) / 2);
|
||||
canvas.drawImage(bitmap.asImage(),
|
||||
(scaled_bitmap.width() - bitmap.width()) / 2,
|
||||
(scaled_bitmap.height() - bitmap.height()) / 2);
|
||||
|
||||
base::FilePath image_path = image_dir.Append(icon_name + ".png");
|
||||
if (!WriteFile(image_path, scaled_bitmap))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue