Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(219)

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 1714573002: Remove the ability of webpages to specify strings for the onbeforeunload dialog. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase again Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <utility> 10 #include <utility>
(...skipping 3860 matching lines...) Expand 10 before | Expand all | Expand 10 after
3871 render_frame_host->GetRoutingID(), reply_msg, 3871 render_frame_host->GetRoutingID(), reply_msg,
3872 true, false, base::string16()); 3872 true, false, base::string16());
3873 } 3873 }
3874 3874
3875 // OnDialogClosed (two lines up) may have caused deletion of this object (see 3875 // OnDialogClosed (two lines up) may have caused deletion of this object (see
3876 // http://crbug.com/288961 ). The only safe thing to do here is return. 3876 // http://crbug.com/288961 ). The only safe thing to do here is return.
3877 } 3877 }
3878 3878
3879 void WebContentsImpl::RunBeforeUnloadConfirm( 3879 void WebContentsImpl::RunBeforeUnloadConfirm(
3880 RenderFrameHost* render_frame_host, 3880 RenderFrameHost* render_frame_host,
3881 const base::string16& message,
3882 bool is_reload, 3881 bool is_reload,
3883 IPC::Message* reply_msg) { 3882 IPC::Message* reply_msg) {
3884 RenderFrameHostImpl* rfhi = 3883 RenderFrameHostImpl* rfhi =
3885 static_cast<RenderFrameHostImpl*>(render_frame_host); 3884 static_cast<RenderFrameHostImpl*>(render_frame_host);
3886 if (delegate_) 3885 if (delegate_)
3887 delegate_->WillRunBeforeUnloadConfirm(); 3886 delegate_->WillRunBeforeUnloadConfirm();
3888 3887
3889 bool suppress_this_message = 3888 bool suppress_this_message =
3890 rfhi->rfh_state() != RenderFrameHostImpl::STATE_DEFAULT || 3889 rfhi->rfh_state() != RenderFrameHostImpl::STATE_DEFAULT ||
3891 ShowingInterstitialPage() || !delegate_ || 3890 ShowingInterstitialPage() || !delegate_ ||
3892 delegate_->ShouldSuppressDialogs(this) || 3891 delegate_->ShouldSuppressDialogs(this) ||
3893 !delegate_->GetJavaScriptDialogManager(this); 3892 !delegate_->GetJavaScriptDialogManager(this);
3894 if (suppress_this_message) { 3893 if (suppress_this_message) {
3895 rfhi->JavaScriptDialogClosed(reply_msg, true, base::string16(), true); 3894 rfhi->JavaScriptDialogClosed(reply_msg, true, base::string16(), true);
3896 return; 3895 return;
3897 } 3896 }
3898 3897
3899 is_showing_before_unload_dialog_ = true; 3898 is_showing_before_unload_dialog_ = true;
3900 dialog_manager_ = delegate_->GetJavaScriptDialogManager(this); 3899 dialog_manager_ = delegate_->GetJavaScriptDialogManager(this);
3901 dialog_manager_->RunBeforeUnloadDialog( 3900 dialog_manager_->RunBeforeUnloadDialog(
3902 this, message, is_reload, 3901 this, is_reload,
3903 base::Bind(&WebContentsImpl::OnDialogClosed, base::Unretained(this), 3902 base::Bind(&WebContentsImpl::OnDialogClosed, base::Unretained(this),
3904 render_frame_host->GetProcess()->GetID(), 3903 render_frame_host->GetProcess()->GetID(),
3905 render_frame_host->GetRoutingID(), reply_msg, 3904 render_frame_host->GetRoutingID(), reply_msg,
3906 false)); 3905 false));
3907 } 3906 }
3908 3907
3909 WebContents* WebContentsImpl::GetAsWebContents() { 3908 WebContents* WebContentsImpl::GetAsWebContents() {
3910 return this; 3909 return this;
3911 } 3910 }
3912 3911
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
4854 else 4853 else
4855 WasHidden(); 4854 WasHidden();
4856 } 4855 }
4857 4856
4858 void WebContentsImpl::SetJavaScriptDialogManagerForTesting( 4857 void WebContentsImpl::SetJavaScriptDialogManagerForTesting(
4859 JavaScriptDialogManager* dialog_manager) { 4858 JavaScriptDialogManager* dialog_manager) {
4860 dialog_manager_ = dialog_manager; 4859 dialog_manager_ = dialog_manager;
4861 } 4860 }
4862 4861
4863 } // namespace content 4862 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/browser/web_contents/web_contents_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698