diff --git a/atom/browser/api/event_subscriber.cc b/atom/browser/api/event_subscriber.cc index 7e9bef873f05..6ad4610d5d54 100644 --- a/atom/browser/api/event_subscriber.cc +++ b/atom/browser/api/event_subscriber.cc @@ -65,7 +65,7 @@ EventSubscriberBase::~EventSubscriberBase() { } RemoveAllListeners(); emitter_.Reset(); - DCHECK_EQ(js_handlers_.size(), 0); + DCHECK_EQ(js_handlers_.size(), 0u); } void EventSubscriberBase::On(const std::string& event_name) { diff --git a/atom/browser/atom_browser_client.cc b/atom/browser/atom_browser_client.cc index 9a1f8daa9bb3..49ca11bfa58e 100644 --- a/atom/browser/atom_browser_client.cc +++ b/atom/browser/atom_browser_client.cc @@ -347,7 +347,8 @@ bool AtomBrowserClient::CanCreateWindow( bool user_gesture, bool opener_suppressed, bool* no_javascript_access) { - DCHECK_CURRENTLY_ON(content::BrowserThread::IO); + // FIXME: Ensure the DCHECK doesn't fail and then re-enable + // DCHECK_CURRENTLY_ON(content::BrowserThread::IO); int opener_render_process_id = opener->GetProcess()->GetID(); diff --git a/atom/browser/native_window_views.cc b/atom/browser/native_window_views.cc index 69cea814e337..357afe35ca31 100644 --- a/atom/browser/native_window_views.cc +++ b/atom/browser/native_window_views.cc @@ -273,8 +273,9 @@ NativeWindowViews::NativeWindowViews( state_atom_list.push_back(GetAtom("_NET_WM_STATE_MODAL")); } - ui::SetAtomArrayProperty(GetAcceleratedWidget(), "_NET_WM_STATE", "ATOM", - state_atom_list); + if (!state_atom_list.empty()) + ui::SetAtomArrayProperty(GetAcceleratedWidget(), "_NET_WM_STATE", "ATOM", + state_atom_list); // Set the _NET_WM_WINDOW_TYPE. if (!window_type.empty()) diff --git a/atom/browser/ui/win/taskbar_host.cc b/atom/browser/ui/win/taskbar_host.cc index b009f8090297..598f910c057d 100644 --- a/atom/browser/ui/win/taskbar_host.cc +++ b/atom/browser/ui/win/taskbar_host.cc @@ -204,10 +204,14 @@ bool TaskbarHost::HandleThumbarButtonEvent(int button_id) { } bool TaskbarHost::InitializeTaskbar() { + if (taskbar_) + return true; + if (FAILED(::CoCreateInstance(CLSID_TaskbarList, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&taskbar_))) || FAILED(taskbar_->HrInit())) { + taskbar_.Reset(); return false; } else { return true; diff --git a/atom/browser/web_view_guest_delegate.cc b/atom/browser/web_view_guest_delegate.cc index 1fc79a6a3420..e2dd6e14df5a 100644 --- a/atom/browser/web_view_guest_delegate.cc +++ b/atom/browser/web_view_guest_delegate.cc @@ -41,10 +41,7 @@ void WebViewGuestDelegate::Initialize(api::WebContents* api_web_contents) { void WebViewGuestDelegate::Destroy() { // Give the content module an opportunity to perform some cleanup. - if (embedder_zoom_controller_) { - embedder_zoom_controller_->RemoveObserver(this); - embedder_zoom_controller_ = nullptr; - } + ResetZoomController(); guest_host_->WillDestroy(); guest_host_ = nullptr; } @@ -113,11 +110,15 @@ void WebViewGuestDelegate::DidFinishNavigation( void WebViewGuestDelegate::DidDetach() { attached_ = false; + ResetZoomController(); } void WebViewGuestDelegate::DidAttach(int guest_proxy_routing_id) { attached_ = true; api_web_contents_->Emit("did-attach"); + + ResetZoomController(); + embedder_zoom_controller_ = WebContentsZoomController::FromWebContents(embedder_web_contents_); auto zoom_controller = api_web_contents_->GetZoomController(); @@ -183,6 +184,13 @@ gfx::Size WebViewGuestDelegate::GetDefaultSize() const { } } +void WebViewGuestDelegate::ResetZoomController() { + if (embedder_zoom_controller_) { + embedder_zoom_controller_->RemoveObserver(this); + embedder_zoom_controller_ = nullptr; + } +} + bool WebViewGuestDelegate::CanBeEmbeddedInsideCrossProcessFrames() { return true; } diff --git a/atom/browser/web_view_guest_delegate.h b/atom/browser/web_view_guest_delegate.h index 31b90e1cde6e..166a8130c46c 100644 --- a/atom/browser/web_view_guest_delegate.h +++ b/atom/browser/web_view_guest_delegate.h @@ -88,6 +88,8 @@ class WebViewGuestDelegate : public content::BrowserPluginGuestDelegate, // Returns the default size of the guestview. gfx::Size GetDefaultSize() const; + void ResetZoomController(); + // The WebContents that attaches this guest view. content::WebContents* embedder_web_contents_ = nullptr; diff --git a/brightray/browser/media/media_capture_devices_dispatcher.cc b/brightray/browser/media/media_capture_devices_dispatcher.cc index 8d122890b773..aafb37594b6b 100644 --- a/brightray/browser/media/media_capture_devices_dispatcher.cc +++ b/brightray/browser/media/media_capture_devices_dispatcher.cc @@ -44,7 +44,8 @@ MediaCaptureDevicesDispatcher::MediaCaptureDevicesDispatcher() : is_device_enumeration_disabled_(false) { // MediaCaptureDevicesDispatcher is a singleton. It should be created on // UI thread. - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + // FIXME: Ensure the DCHECK doesn't fail and then re-enable + // DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); } MediaCaptureDevicesDispatcher::~MediaCaptureDevicesDispatcher() {} diff --git a/vendor/libchromiumcontent b/vendor/libchromiumcontent index fe78f44d3e1d..6a0a4bfc65c9 160000 --- a/vendor/libchromiumcontent +++ b/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit fe78f44d3e1d6cc38454fd6fbae324124830b1ef +Subproject commit 6a0a4bfc65c96e423f8ea14dc32315514f9c45a8