summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/renderer/render_view.cc24
-rw-r--r--chrome/renderer/render_view.h3
2 files changed, 8 insertions, 19 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc
index cbae9d0..66a5092 100644
--- a/chrome/renderer/render_view.cc
+++ b/chrome/renderer/render_view.cc
@@ -1647,24 +1647,12 @@ bool RenderView::RunBeforeUnloadConfirm(WebView* webview,
return success;
}
-void RenderView::OnUnloadListenerChanged(WebView* webview, WebFrame* webframe) {
- bool has_listener = false;
- if (!has_unload_listener_) {
- has_listener = webframe->HasUnloadListener();
- } else {
- WebFrame* frame = webview->GetMainFrame();
- while (frame != NULL) {
- if (frame->HasUnloadListener()) {
- has_listener = true;
- break;
- }
- frame = webview->GetNextFrameAfter(frame, false);
- }
- }
- if (has_listener != has_unload_listener_) {
- has_unload_listener_ = has_listener;
- Send(new ViewHostMsg_UnloadListenerChanged(routing_id_, has_listener));
- }
+void RenderView::EnableSuddenTermination() {
+ Send(new ViewHostMsg_UnloadListenerChanged(routing_id_, false));
+}
+
+void RenderView::DisableSuddenTermination() {
+ Send(new ViewHostMsg_UnloadListenerChanged(routing_id_, true));
}
void RenderView::QueryFormFieldAutofill(const std::wstring& field_name,
diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h
index 8484afd..3006448 100644
--- a/chrome/renderer/render_view.h
+++ b/chrome/renderer/render_view.h
@@ -126,7 +126,8 @@ class RenderView : public RenderWidget, public WebViewDelegate,
std::wstring* result);
virtual bool RunBeforeUnloadConfirm(WebView* webview,
const std::wstring& message);
- virtual void OnUnloadListenerChanged(WebView* webview, WebFrame* webframe);
+ virtual void EnableSuddenTermination();
+ virtual void DisableSuddenTermination();
virtual void QueryFormFieldAutofill(const std::wstring& field_name,
const std::wstring& text,
int64 node_id);