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

Unified Diff: content/browser/frame_host/navigation_handle_impl.cc

Issue 2101323002: Add 'NavigationHandle::QueueConsoleMessage'. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: -public Created 4 years, 6 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: content/browser/frame_host/navigation_handle_impl.cc
diff --git a/content/browser/frame_host/navigation_handle_impl.cc b/content/browser/frame_host/navigation_handle_impl.cc
index a31508c18e0e1ec27973f27cbb510d2398d4090a..74b3559bd73818e55b1f9b46a266433d7fb22573 100644
--- a/content/browser/frame_host/navigation_handle_impl.cc
+++ b/content/browser/frame_host/navigation_handle_impl.cc
@@ -390,6 +390,13 @@ void NavigationHandleImpl::WillProcessResponse(
state_ = WILL_PROCESS_RESPONSE;
complete_callback_ = callback;
+ // Clear out the pending console message queue now that we have a
+ // render_frame_host.
+ //
+ // TODO(mkwst): Move this to 'ReadyToCommitNavigation' as part of the work
+ // in https://crbug.com/621856.
+ DumpMessagesToConsole();
+
// Notify each throttle of the response.
NavigationThrottle::ThrottleCheckResult result = CheckWillProcessResponse();
@@ -431,6 +438,14 @@ void NavigationHandleImpl::DidCommitNavigation(
state_ = net_error_code_ == net::OK ? DID_COMMIT : DID_COMMIT_ERROR_PAGE;
}
+void NavigationHandleImpl::QueueConsoleMessage(ConsoleMessageLevel level,
+ const std::string& message) {
+ console_queue_.emplace(level, message);
+
+ if (state_ >= WILL_PROCESS_RESPONSE)
+ DumpMessagesToConsole();
+}
+
NavigationThrottle::ThrottleCheckResult
NavigationHandleImpl::CheckWillStartRequest() {
DCHECK(state_ == WILL_SEND_REQUEST || state_ == DEFERRING_START);
@@ -541,4 +556,15 @@ void NavigationHandleImpl::RunCompleteCallback(
// destruction.
}
+void NavigationHandleImpl::DumpMessagesToConsole() {
+ DCHECK_GE(state_, WILL_PROCESS_RESPONSE);
+ DCHECK(GetRenderFrameHost());
+
+ while (!console_queue_.empty()) {
+ GetRenderFrameHost()->AddMessageToConsole(console_queue_.front().first,
+ console_queue_.front().second);
+ console_queue_.pop();
+ }
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698