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

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

Issue 464293002: [DevTools] ConsoleMessage storage moved from ConsoleAgent (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@remove-can-generate
Patch Set: Rebased Created 6 years, 4 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: Source/core/frame/FrameConsole.cpp
diff --git a/Source/core/frame/FrameConsole.cpp b/Source/core/frame/FrameConsole.cpp
index 28dc4d3da49113cd0162f15067ff2b393264a289..f930c2ac8be600f720e6fa8077cc1b1eeac6336a 100644
--- a/Source/core/frame/FrameConsole.cpp
+++ b/Source/core/frame/FrameConsole.cpp
@@ -65,14 +65,19 @@ void FrameConsole::addMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpConsoleM
return;
RefPtrWillBeRawPtr<ConsoleMessage> consoleMessage = prpConsoleMessage;
- InspectorInstrumentation::addMessageToConsole(context, consoleMessage.get());
+ unsigned lineNumber = consoleMessage->lineNumber();
vsevik 2014/08/14 08:06:21 This one is worth a comment, or even a FIXME since
kozyatinskiy1 2014/08/20 13:44:18 It was moved to another patch.
String messageURL;
- if (consoleMessage->callStack())
+ if (consoleMessage->callStack() && consoleMessage->callStack()->size())
messageURL = consoleMessage->callStack()->at(0).sourceURL();
else
messageURL = consoleMessage->url();
+ ConsoleMessageStorage* storage = messageStorage();
vsevik 2014/08/14 08:06:21 This method does two things 1) Report the message
kozyatinskiy1 2014/08/20 13:44:18 Done.
+ if (storage)
vsevik 2014/08/14 08:06:21 Let's assume this is never null and move Inspect
kozyatinskiy1 2014/08/20 13:44:18 Done.
+ storage->addMessage(consoleMessage);
+ InspectorInstrumentation::addMessageToConsole(context, consoleMessage);
+
if (consoleMessage->source() == CSSMessageSource)
return;
@@ -80,7 +85,7 @@ void FrameConsole::addMessage(PassRefPtrWillBeRawPtr<ConsoleMessage> prpConsoleM
if (consoleMessage->callStack() && m_frame.chromeClient().shouldReportDetailedMessageForSource(consoleMessage->url()))
stackTrace = FrameConsole::formatStackTraceString(consoleMessage->message(), consoleMessage->callStack());
- m_frame.chromeClient().addMessageToConsole(&m_frame, consoleMessage->source(), consoleMessage->level(), consoleMessage->message(), consoleMessage->lineNumber(), messageURL, stackTrace);
+ m_frame.chromeClient().addMessageToConsole(&m_frame, consoleMessage->source(), consoleMessage->level(), consoleMessage->message(), lineNumber, messageURL, stackTrace);
}
String FrameConsole::formatStackTraceString(const String& originalMessage, PassRefPtrWillBeRawPtr<ScriptCallStack> callStack)
@@ -117,4 +122,26 @@ void FrameConsole::adoptWorkerConsoleMessages(WorkerGlobalScopeProxy* proxy)
InspectorInstrumentation::adoptWorkerConsoleMessages(m_frame.document(), proxy);
}
+ConsoleMessageStorage* FrameConsole::messageStorage()
+{
vsevik 2014/08/14 08:06:22 LocalFrame* localTopFrame = toLocalFrame(curFrame-
kozyatinskiy1 2014/08/20 13:44:18 Done.
+ LocalFrame* curFrame = &m_frame;
+ // traversal to top frame
+ while (curFrame && curFrame->tree().parent() && curFrame->tree().parent()->isLocalFrame())
+ curFrame = toLocalFrame(curFrame->tree().parent());
+
+ // if top is current - return storage
+ if (curFrame == &m_frame) {
+ if (m_consoleMessageStorage.get())
+ return m_consoleMessageStorage.get();
+ m_consoleMessageStorage = ConsoleMessageStorage::create();
+ return m_consoleMessageStorage.get();
+ }
+
+ // if top is local - return storage
+ if (curFrame->isLocalFrame())
+ return curFrame->console().messageStorage();
+
+ return nullptr;
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698