Re-allow JavaScript dialogs with user navigation.
BUG=587922
TEST=as in bug
Review URL: https://codereview.chromium.org/1733763002
Cr-Commit-Position: refs/heads/master@{#377597}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index d748d53..3103e95e 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3153,6 +3153,11 @@
if (!details.is_in_page)
CancelActiveAndPendingDialogs();
+ // If this is a user-initiated navigation, start allowing JavaScript dialogs
+ // again.
+ if (params.gesture == NavigationGestureUser && dialog_manager_)
+ dialog_manager_->ResetDialogState(this);
+
// Notify observers about navigation.
FOR_EACH_OBSERVER(WebContentsObserver, observers_,
DidNavigateAnyFrame(render_frame_host, details, params));
@@ -4793,4 +4798,9 @@
FOR_EACH_OBSERVER(WebContentsObserver, observers_, MediaStoppedPlaying(id));
}
+void WebContentsImpl::SetJavaScriptDialogManagerForTesting(
+ JavaScriptDialogManager* dialog_manager) {
+ dialog_manager_ = dialog_manager;
+}
+
} // namespace content