chore: bump chromium to f5b345dd470f14eef6e44732ccf23 (master) (#20649)
This commit is contained in:
parent
fb8b1fd1c9
commit
b6246dcf12
154 changed files with 1490 additions and 1197 deletions
|
@ -49,21 +49,20 @@ struct Converter<net::CanonicalCookie> {
|
|||
};
|
||||
|
||||
template <>
|
||||
struct Converter<network::mojom::CookieChangeCause> {
|
||||
static v8::Local<v8::Value> ToV8(
|
||||
v8::Isolate* isolate,
|
||||
const network::mojom::CookieChangeCause& val) {
|
||||
struct Converter<net::CookieChangeCause> {
|
||||
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
|
||||
const net::CookieChangeCause& val) {
|
||||
switch (val) {
|
||||
case network::mojom::CookieChangeCause::INSERTED:
|
||||
case network::mojom::CookieChangeCause::EXPLICIT:
|
||||
case net::CookieChangeCause::INSERTED:
|
||||
case net::CookieChangeCause::EXPLICIT:
|
||||
return gin::StringToV8(isolate, "explicit");
|
||||
case network::mojom::CookieChangeCause::OVERWRITE:
|
||||
case net::CookieChangeCause::OVERWRITE:
|
||||
return gin::StringToV8(isolate, "overwrite");
|
||||
case network::mojom::CookieChangeCause::EXPIRED:
|
||||
case net::CookieChangeCause::EXPIRED:
|
||||
return gin::StringToV8(isolate, "expired");
|
||||
case network::mojom::CookieChangeCause::EVICTED:
|
||||
case net::CookieChangeCause::EVICTED:
|
||||
return gin::StringToV8(isolate, "evicted");
|
||||
case network::mojom::CookieChangeCause::EXPIRED_OVERWRITE:
|
||||
case net::CookieChangeCause::EXPIRED_OVERWRITE:
|
||||
return gin::StringToV8(isolate, "expired-overwrite");
|
||||
default:
|
||||
return gin::StringToV8(isolate, "unknown");
|
||||
|
@ -324,10 +323,11 @@ v8::Local<v8::Promise> Cookies::FlushStore() {
|
|||
return handle;
|
||||
}
|
||||
|
||||
void Cookies::OnCookieChanged(const CookieDetails* details) {
|
||||
Emit("changed", gin::ConvertToV8(isolate(), *(details->cookie)),
|
||||
gin::ConvertToV8(isolate(), details->cause),
|
||||
gin::ConvertToV8(isolate(), details->removed));
|
||||
void Cookies::OnCookieChanged(const net::CookieChangeInfo& change) {
|
||||
Emit("changed", gin::ConvertToV8(isolate(), change.cookie),
|
||||
gin::ConvertToV8(isolate(), change.cause),
|
||||
gin::ConvertToV8(isolate(),
|
||||
change.cause != net::CookieChangeCause::INSERTED));
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "base/callback_list.h"
|
||||
#include "gin/handle.h"
|
||||
#include "net/cookies/canonical_cookie.h"
|
||||
#include "shell/browser/net/cookie_details.h"
|
||||
#include "net/cookies/cookie_change_dispatcher.h"
|
||||
#include "shell/common/gin_helper/trackable_object.h"
|
||||
#include "shell/common/promise_util.h"
|
||||
|
||||
|
@ -52,10 +52,11 @@ class Cookies : public gin_helper::TrackableObject<Cookies> {
|
|||
v8::Local<v8::Promise> FlushStore();
|
||||
|
||||
// CookieChangeNotifier subscription:
|
||||
void OnCookieChanged(const CookieDetails*);
|
||||
void OnCookieChanged(const net::CookieChangeInfo& change);
|
||||
|
||||
private:
|
||||
std::unique_ptr<base::CallbackList<void(const CookieDetails*)>::Subscription>
|
||||
std::unique_ptr<base::CallbackList<void(
|
||||
const net::CookieChangeInfo& change)>::Subscription>
|
||||
cookie_change_subscription_;
|
||||
scoped_refptr<AtomBrowserContext> browser_context_;
|
||||
|
||||
|
|
|
@ -95,6 +95,7 @@ void DesktopCapturer::StartHandling(bool capture_window,
|
|||
content::DesktopMediaID::TYPE_WINDOW,
|
||||
content::desktop_capture::CreateWindowCapturer());
|
||||
window_capturer_->SetThumbnailSize(thumbnail_size);
|
||||
window_capturer_->AddObserver(this);
|
||||
window_capturer_->Update(base::BindOnce(
|
||||
&DesktopCapturer::UpdateSourcesList, weak_ptr_factory_.GetWeakPtr(),
|
||||
window_capturer_.get()));
|
||||
|
@ -105,6 +106,7 @@ void DesktopCapturer::StartHandling(bool capture_window,
|
|||
content::DesktopMediaID::TYPE_SCREEN,
|
||||
content::desktop_capture::CreateScreenCapturer());
|
||||
screen_capturer_->SetThumbnailSize(thumbnail_size);
|
||||
screen_capturer_->AddObserver(this);
|
||||
screen_capturer_->Update(base::BindOnce(
|
||||
&DesktopCapturer::UpdateSourcesList, weak_ptr_factory_.GetWeakPtr(),
|
||||
screen_capturer_.get()));
|
||||
|
@ -112,6 +114,10 @@ void DesktopCapturer::StartHandling(bool capture_window,
|
|||
}
|
||||
}
|
||||
|
||||
void DesktopCapturer::OnSourceUnchanged(DesktopMediaList* list) {
|
||||
UpdateSourcesList(list);
|
||||
}
|
||||
|
||||
void DesktopCapturer::UpdateSourcesList(DesktopMediaList* list) {
|
||||
if (capture_window_ &&
|
||||
list->GetMediaListType() == content::DesktopMediaID::TYPE_WINDOW) {
|
||||
|
|
|
@ -18,7 +18,8 @@ namespace electron {
|
|||
|
||||
namespace api {
|
||||
|
||||
class DesktopCapturer : public gin_helper::TrackableObject<DesktopCapturer> {
|
||||
class DesktopCapturer : public gin_helper::TrackableObject<DesktopCapturer>,
|
||||
public DesktopMediaListObserver {
|
||||
public:
|
||||
struct Source {
|
||||
DesktopMediaList::Source media_list_source;
|
||||
|
@ -43,6 +44,16 @@ class DesktopCapturer : public gin_helper::TrackableObject<DesktopCapturer> {
|
|||
explicit DesktopCapturer(v8::Isolate* isolate);
|
||||
~DesktopCapturer() override;
|
||||
|
||||
// DesktopMediaListObserver:
|
||||
void OnSourceAdded(DesktopMediaList* list, int index) override {}
|
||||
void OnSourceRemoved(DesktopMediaList* list, int index) override {}
|
||||
void OnSourceMoved(DesktopMediaList* list,
|
||||
int old_index,
|
||||
int new_index) override {}
|
||||
void OnSourceNameChanged(DesktopMediaList* list, int index) override {}
|
||||
void OnSourceThumbnailChanged(DesktopMediaList* list, int index) override {}
|
||||
void OnSourceUnchanged(DesktopMediaList* list) override;
|
||||
|
||||
private:
|
||||
void UpdateSourcesList(DesktopMediaList* list);
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include "shell/common/gin_helper/object_template_builder.h"
|
||||
#include "shell/common/options_switches.h"
|
||||
#include "shell/common/promise_util.h"
|
||||
#include "url/url_util.h"
|
||||
|
||||
namespace {
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
#include "base/values.h"
|
||||
#include "gin/handle.h"
|
||||
#include "shell/common/gin_helper/error_thrower.h"
|
||||
#include "shell/common/gin_helper/event_emitter.h"
|
||||
|
@ -19,10 +20,6 @@
|
|||
#include "ui/gfx/sys_color_change_listener.h"
|
||||
#endif
|
||||
|
||||
namespace base {
|
||||
class DictionaryValue;
|
||||
}
|
||||
|
||||
namespace electron {
|
||||
|
||||
namespace api {
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "content/public/common/context_menu_params.h"
|
||||
#include "electron/buildflags/buildflags.h"
|
||||
#include "electron/shell/common/api/api.mojom.h"
|
||||
#include "mojo/public/cpp/bindings/associated_remote.h"
|
||||
#include "mojo/public/cpp/system/platform_handle.h"
|
||||
#include "ppapi/buildflags/buildflags.h"
|
||||
#include "shell/browser/api/atom_api_browser_window.h"
|
||||
|
@ -86,6 +87,7 @@
|
|||
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.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"
|
||||
|
@ -728,7 +730,7 @@ void WebContents::ContentsZoomChange(bool zoom_in) {
|
|||
void WebContents::EnterFullscreenModeForTab(
|
||||
content::WebContents* source,
|
||||
const GURL& origin,
|
||||
const blink::WebFullscreenOptions& options) {
|
||||
const blink::mojom::FullscreenOptions& options) {
|
||||
auto* permission_helper =
|
||||
WebContentsPermissionHelper::FromWebContents(source);
|
||||
auto callback =
|
||||
|
@ -740,7 +742,7 @@ void WebContents::EnterFullscreenModeForTab(
|
|||
void WebContents::OnEnterFullscreenModeForTab(
|
||||
content::WebContents* source,
|
||||
const GURL& origin,
|
||||
const blink::WebFullscreenOptions& options,
|
||||
const blink::mojom::FullscreenOptions& options,
|
||||
bool allowed) {
|
||||
if (!allowed)
|
||||
return;
|
||||
|
@ -1473,9 +1475,7 @@ void WebContents::SetWebRTCIPHandlingPolicy(
|
|||
web_contents()->GetMutableRendererPrefs()->webrtc_ip_handling_policy =
|
||||
webrtc_ip_handling_policy;
|
||||
|
||||
content::RenderViewHost* host = web_contents()->GetRenderViewHost();
|
||||
if (host)
|
||||
host->SyncRendererPrefs();
|
||||
web_contents()->SyncRendererPrefs();
|
||||
}
|
||||
|
||||
bool WebContents::IsCrashed() const {
|
||||
|
@ -1795,11 +1795,8 @@ void WebContents::Print(gin_helper::Arguments* args) {
|
|||
|
||||
// We don't want to allow the user to enable these settings
|
||||
// but we need to set them or a CHECK is hit.
|
||||
settings.SetBoolean(printing::kSettingPrintToPDF, false);
|
||||
settings.SetBoolean(printing::kSettingCloudPrintDialog, false);
|
||||
settings.SetBoolean(printing::kSettingPrintWithPrivet, false);
|
||||
settings.SetInteger(printing::kSettingPrinterType, printing::kLocalPrinter);
|
||||
settings.SetBoolean(printing::kSettingShouldPrintSelectionOnly, false);
|
||||
settings.SetBoolean(printing::kSettingPrintWithExtension, false);
|
||||
settings.SetBoolean(printing::kSettingRasterizePdf, false);
|
||||
|
||||
// Set custom page ranges to print
|
||||
|
@ -2030,10 +2027,11 @@ bool WebContents::SendIPCMessageWithSender(bool internal,
|
|||
}
|
||||
|
||||
for (auto* frame_host : target_hosts) {
|
||||
mojom::ElectronRendererAssociatedPtr electron_ptr;
|
||||
mojo::AssociatedRemote<mojom::ElectronRenderer> electron_renderer;
|
||||
frame_host->GetRemoteAssociatedInterfaces()->GetInterface(
|
||||
mojo::MakeRequest(&electron_ptr));
|
||||
electron_ptr->Message(internal, false, channel, std::move(args), sender_id);
|
||||
&electron_renderer);
|
||||
electron_renderer->Message(internal, false, channel, std::move(args),
|
||||
sender_id);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -2058,11 +2056,10 @@ bool WebContents::SendIPCMessageToFrame(bool internal,
|
|||
if (!(*iter)->IsRenderFrameLive())
|
||||
return false;
|
||||
|
||||
mojom::ElectronRendererAssociatedPtr electron_ptr;
|
||||
(*iter)->GetRemoteAssociatedInterfaces()->GetInterface(
|
||||
mojo::MakeRequest(&electron_ptr));
|
||||
electron_ptr->Message(internal, send_to_all, channel, std::move(message),
|
||||
0 /* sender_id */);
|
||||
mojo::AssociatedRemote<mojom::ElectronRenderer> electron_renderer;
|
||||
(*iter)->GetRemoteAssociatedInterfaces()->GetInterface(&electron_renderer);
|
||||
electron_renderer->Message(internal, send_to_all, channel, std::move(message),
|
||||
0 /* sender_id */);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -2457,14 +2454,15 @@ v8::Local<v8::Promise> WebContents::TakeHeapSnapshot(
|
|||
// This dance with `base::Owned` is to ensure that the interface stays alive
|
||||
// until the callback is called. Otherwise it would be closed at the end of
|
||||
// this function.
|
||||
auto electron_ptr = std::make_unique<mojom::ElectronRendererAssociatedPtr>();
|
||||
auto electron_renderer =
|
||||
std::make_unique<mojo::AssociatedRemote<mojom::ElectronRenderer>>();
|
||||
frame_host->GetRemoteAssociatedInterfaces()->GetInterface(
|
||||
mojo::MakeRequest(electron_ptr.get()));
|
||||
auto* raw_ptr = electron_ptr.get();
|
||||
electron_renderer.get());
|
||||
auto* raw_ptr = electron_renderer.get();
|
||||
(*raw_ptr)->TakeHeapSnapshot(
|
||||
mojo::WrapPlatformFile(file.TakePlatformFile()),
|
||||
base::BindOnce(
|
||||
[](mojom::ElectronRendererAssociatedPtr* ep,
|
||||
[](mojo::AssociatedRemote<mojom::ElectronRenderer>* ep,
|
||||
util::Promise<void*> promise, bool success) {
|
||||
if (success) {
|
||||
promise.Resolve();
|
||||
|
@ -2472,7 +2470,7 @@ v8::Local<v8::Promise> WebContents::TakeHeapSnapshot(
|
|||
promise.RejectWithErrorMessage("takeHeapSnapshot failed");
|
||||
}
|
||||
},
|
||||
base::Owned(std::move(electron_ptr)), std::move(promise)));
|
||||
base::Owned(std::move(electron_renderer)), std::move(promise)));
|
||||
return handle;
|
||||
}
|
||||
|
||||
|
|
|
@ -275,10 +275,11 @@ class WebContents : public gin_helper::TrackableObject<WebContents>,
|
|||
void SetZoomLimits(double min_zoom, double max_zoom) override;
|
||||
|
||||
// Callback triggered on permission response.
|
||||
void OnEnterFullscreenModeForTab(content::WebContents* source,
|
||||
const GURL& origin,
|
||||
const blink::WebFullscreenOptions& options,
|
||||
bool allowed);
|
||||
void OnEnterFullscreenModeForTab(
|
||||
content::WebContents* source,
|
||||
const GURL& origin,
|
||||
const blink::mojom::FullscreenOptions& options,
|
||||
bool allowed);
|
||||
|
||||
// Create window with the given disposition.
|
||||
void OnCreateWindow(const GURL& target_url,
|
||||
|
@ -383,7 +384,7 @@ class WebContents : public gin_helper::TrackableObject<WebContents>,
|
|||
void EnterFullscreenModeForTab(
|
||||
content::WebContents* source,
|
||||
const GURL& origin,
|
||||
const blink::WebFullscreenOptions& options) override;
|
||||
const blink::mojom::FullscreenOptions& options) override;
|
||||
void ExitFullscreenModeForTab(content::WebContents* source) override;
|
||||
void RendererUnresponsive(
|
||||
content::WebContents* source,
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "content/public/browser/render_widget_host.h"
|
||||
#include "content/public/browser/render_widget_host_view.h"
|
||||
#include "media/capture/mojom/video_capture_types.mojom.h"
|
||||
#include "mojo/public/cpp/bindings/remote.h"
|
||||
#include "ui/gfx/geometry/size_conversions.h"
|
||||
#include "ui/gfx/image/image.h"
|
||||
#include "ui/gfx/skbitmap_operations.h"
|
||||
|
@ -85,7 +86,8 @@ void FrameSubscriber::OnFrameCaptured(
|
|||
base::ReadOnlySharedMemoryRegion data,
|
||||
::media::mojom::VideoFrameInfoPtr info,
|
||||
const gfx::Rect& content_rect,
|
||||
viz::mojom::FrameSinkVideoConsumerFrameCallbacksPtr callbacks) {
|
||||
mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
|
||||
callbacks) {
|
||||
gfx::Size size = GetRenderViewSize();
|
||||
if (size != content_rect.size()) {
|
||||
video_capturer_->SetResolutionConstraints(size, size, true);
|
||||
|
@ -93,8 +95,10 @@ void FrameSubscriber::OnFrameCaptured(
|
|||
return;
|
||||
}
|
||||
|
||||
mojo::Remote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
|
||||
callbacks_remote(std::move(callbacks));
|
||||
if (!data.IsValid()) {
|
||||
callbacks->Done();
|
||||
callbacks_remote->Done();
|
||||
return;
|
||||
}
|
||||
base::ReadOnlySharedMemoryMapping mapping = data.Map();
|
||||
|
@ -120,7 +124,7 @@ void FrameSubscriber::OnFrameCaptured(
|
|||
base::ReadOnlySharedMemoryMapping mapping;
|
||||
// Prevents FrameSinkVideoCapturer from recycling the shared memory that
|
||||
// backs |frame_|.
|
||||
viz::mojom::FrameSinkVideoConsumerFrameCallbacksPtr releaser;
|
||||
mojo::Remote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks> releaser;
|
||||
};
|
||||
|
||||
SkBitmap bitmap;
|
||||
|
@ -133,7 +137,7 @@ void FrameSubscriber::OnFrameCaptured(
|
|||
[](void* addr, void* context) {
|
||||
delete static_cast<FramePinner*>(context);
|
||||
},
|
||||
new FramePinner{std::move(mapping), std::move(callbacks)});
|
||||
new FramePinner{std::move(mapping), std::move(callbacks_remote)});
|
||||
bitmap.setImmutable();
|
||||
|
||||
Done(content_rect, bitmap);
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "components/viz/host/client_frame_sink_video_capturer.h"
|
||||
#include "content/public/browser/web_contents.h"
|
||||
#include "content/public/browser/web_contents_observer.h"
|
||||
#include "mojo/public/cpp/bindings/pending_remote.h"
|
||||
#include "v8/include/v8.h"
|
||||
|
||||
namespace gfx {
|
||||
|
@ -49,7 +50,8 @@ class FrameSubscriber : public content::WebContentsObserver,
|
|||
base::ReadOnlySharedMemoryRegion data,
|
||||
::media::mojom::VideoFrameInfoPtr info,
|
||||
const gfx::Rect& content_rect,
|
||||
viz::mojom::FrameSinkVideoConsumerFrameCallbacksPtr callbacks) override;
|
||||
mojo::PendingRemote<viz::mojom::FrameSinkVideoConsumerFrameCallbacks>
|
||||
callbacks) override;
|
||||
void OnStopped() override;
|
||||
|
||||
void Done(const gfx::Rect& damage, const SkBitmap& frame);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue