chore: bump chromium to f5b345dd470f14eef6e44732ccf23 (master) (#20649)

This commit is contained in:
Electron Bot 2019-10-28 18:12:35 -04:00 committed by Jeremy Apthorp
parent fb8b1fd1c9
commit b6246dcf12
154 changed files with 1490 additions and 1197 deletions

View file

@ -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

View file

@ -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_;

View file

@ -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) {

View file

@ -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);

View file

@ -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 {

View file

@ -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 {

View file

@ -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;
}

View file

@ -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,

View file

@ -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);

View file

@ -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);