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

Unified Diff: third_party/WebKit/Source/web/WebLocalFrameImpl.cpp

Issue 1890493002: PlzNavigate: properly execute BeforeUnload on renderer initiated navigations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed dcheng's comments Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
diff --git a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
index 030d0d913e3a0096b42734a9340dbd486a103709..ff2046902875fec1e10e34cd8dce9a3cd626f90e 100644
--- a/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
+++ b/third_party/WebKit/Source/web/WebLocalFrameImpl.cpp
@@ -687,13 +687,6 @@ WebPerformance WebLocalFrameImpl::performance() const
return WebPerformance(DOMWindowPerformance::performance(*(frame()->domWindow())));
}
-bool WebLocalFrameImpl::dispatchBeforeUnloadEvent()
-{
- if (!frame())
- return true;
- return frame()->loader().shouldClose();
-}
-
void WebLocalFrameImpl::dispatchUnloadEvent()
{
if (!frame())
@@ -1847,6 +1840,21 @@ void WebLocalFrameImpl::sendPings(const WebURL& destinationURL)
toHTMLAnchorElement(anchor)->sendPings(destinationURL);
}
+WebLocalFrame::BeforeUnloadReturnValue WebLocalFrameImpl::dispatchBeforeUnloadEvent(bool isReload)
+{
+ if (!frame()) {
+ return WebLocalFrame::BeforeUnloadReturnValue::DontProceed;
+ }
+
+ bool proceed = frame()->loader().shouldClose(isReload);
+
+ if (!frame()) {
+ return WebLocalFrame::BeforeUnloadReturnValue::FrameDestroyed;
+ }
+
+ return proceed ? WebLocalFrame::BeforeUnloadReturnValue::Proceed : WebLocalFrame::BeforeUnloadReturnValue::DontProceed;
+}
+
WebURLRequest WebLocalFrameImpl::requestFromHistoryItem(const WebHistoryItem& item, WebCachePolicy cachePolicy) const
{
HistoryItem* historyItem = item;

Powered by Google App Engine
This is Rietveld 408576698