Make window aware of renderer crashes.
This commit is contained in:
parent
25df5caf63
commit
e440ad2714
3 changed files with 13 additions and 0 deletions
|
@ -15,6 +15,7 @@
|
||||||
#include "browser/atom_browser_main_parts.h"
|
#include "browser/atom_browser_main_parts.h"
|
||||||
#include "browser/atom_javascript_dialog_manager.h"
|
#include "browser/atom_javascript_dialog_manager.h"
|
||||||
#include "browser/window_list.h"
|
#include "browser/window_list.h"
|
||||||
|
#include "content/public/browser/invalidate_type.h"
|
||||||
#include "content/public/browser/navigation_entry.h"
|
#include "content/public/browser/navigation_entry.h"
|
||||||
#include "content/public/browser/notification_details.h"
|
#include "content/public/browser/notification_details.h"
|
||||||
#include "content/public/browser/notification_source.h"
|
#include "content/public/browser/notification_source.h"
|
||||||
|
@ -260,6 +261,13 @@ void NativeWindow::RendererResponsive(content::WebContents* source) {
|
||||||
FOR_EACH_OBSERVER(NativeWindowObserver, observers_, OnRendererResponsive());
|
FOR_EACH_OBSERVER(NativeWindowObserver, observers_, OnRendererResponsive());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeWindow::NavigationStateChanged(const content::WebContents* source,
|
||||||
|
unsigned changed_flags) {
|
||||||
|
if (changed_flags == content::INVALIDATE_TYPE_TAB &&
|
||||||
|
source->IsCrashed())
|
||||||
|
FOR_EACH_OBSERVER(NativeWindowObserver, observers_, OnRendererCrashed());
|
||||||
|
}
|
||||||
|
|
||||||
bool NativeWindow::OnMessageReceived(const IPC::Message& message) {
|
bool NativeWindow::OnMessageReceived(const IPC::Message& message) {
|
||||||
bool handled = true;
|
bool handled = true;
|
||||||
IPC_BEGIN_MESSAGE_MAP(NativeWindow, message)
|
IPC_BEGIN_MESSAGE_MAP(NativeWindow, message)
|
||||||
|
|
|
@ -149,6 +149,8 @@ class NativeWindow : public content::WebContentsDelegate,
|
||||||
const content::WebContents* source) const OVERRIDE;
|
const content::WebContents* source) const OVERRIDE;
|
||||||
virtual void RendererUnresponsive(content::WebContents* source) OVERRIDE;
|
virtual void RendererUnresponsive(content::WebContents* source) OVERRIDE;
|
||||||
virtual void RendererResponsive(content::WebContents* source) OVERRIDE;
|
virtual void RendererResponsive(content::WebContents* source) OVERRIDE;
|
||||||
|
virtual void NavigationStateChanged(const content::WebContents* source,
|
||||||
|
unsigned changed_flags) OVERRIDE;
|
||||||
|
|
||||||
// Implementations of content::WebContentsObserver.
|
// Implementations of content::WebContentsObserver.
|
||||||
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
|
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
|
||||||
|
|
|
@ -31,6 +31,9 @@ class NativeWindowObserver {
|
||||||
|
|
||||||
// Called when renderer recovers.
|
// Called when renderer recovers.
|
||||||
virtual void OnRendererResponsive() {}
|
virtual void OnRendererResponsive() {}
|
||||||
|
|
||||||
|
// Called when renderer has crashed.
|
||||||
|
virtual void OnRendererCrashed() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace atom
|
} // namespace atom
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue