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

Unified Diff: third_party/WebKit/Source/core/frame/FrameConsole.cpp

Issue 2720763002: PlzNavigate: preserve SourceLocation when navigating (Closed)
Patch Set: Fix rebase compilation issues Created 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/frame/FrameConsole.cpp
diff --git a/third_party/WebKit/Source/core/frame/FrameConsole.cpp b/third_party/WebKit/Source/core/frame/FrameConsole.cpp
index 03d0c1296ffdcf1ce5507e613b3041e7ef1bf159..0bd2317dddc9ecb72a938cf453777b95b4905d7a 100644
--- a/third_party/WebKit/Source/core/frame/FrameConsole.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameConsole.cpp
@@ -28,24 +28,40 @@
#include "core/frame/FrameConsole.h"
+#include <memory>
#include "bindings/core/v8/SourceLocation.h"
#include "core/frame/FrameHost.h"
#include "core/frame/LocalFrame.h"
#include "core/inspector/ConsoleMessage.h"
#include "core/inspector/ConsoleMessageStorage.h"
#include "core/inspector/MainThreadDebugger.h"
+#include "core/loader/DocumentLoader.h"
#include "core/page/ChromeClient.h"
#include "core/page/Page.h"
#include "platform/network/ResourceError.h"
#include "platform/network/ResourceResponse.h"
#include "wtf/text/StringBuilder.h"
-#include <memory>
namespace blink {
FrameConsole::FrameConsole(LocalFrame& frame) : m_frame(&frame) {}
void FrameConsole::addMessage(ConsoleMessage* consoleMessage) {
+ // PlzNavigate: when trying to commit a navigation, the SourceLocation
+ // information for how the request was triggered has been stored in the
+ // provisional DocumentLoader. Use it instead.
+ DocumentLoader* provisionalLoader =
+ m_frame->loader().provisionalDocumentLoader();
+ if (provisionalLoader) {
+ std::unique_ptr<SourceLocation> sourceLocation =
+ provisionalLoader->copySourceLocation();
+ if (sourceLocation) {
+ consoleMessage = ConsoleMessage::create(
+ consoleMessage->source(), consoleMessage->level(),
+ consoleMessage->message(), std::move(sourceLocation));
+ }
+ }
+
if (addMessageToStorage(consoleMessage))
reportMessageToClient(consoleMessage->source(), consoleMessage->level(),
consoleMessage->message(),

Powered by Google App Engine
This is Rietveld 408576698