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

Side by Side Diff: Source/core/inspector/ConsoleMessage.cpp

Issue 221923003: DevTools: Add executionContextId in ConsoleMessage in backend (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix compilation on linux bots Created 6 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 unified diff | Download patch
« no previous file with comments | « Source/core/inspector/ConsoleMessage.h ('k') | Source/devtools/front_end/ConsoleModel.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com> 3 * Copyright (C) 2008 Matt Lilek <webkit@mattlilek.com>
4 * Copyright (C) 2009, 2010 Google Inc. All rights reserved. 4 * Copyright (C) 2009, 2010 Google Inc. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 17 matching lines...) Expand all
28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #include "config.h" 31 #include "config.h"
32 32
33 33
34 #include "core/inspector/ConsoleMessage.h" 34 #include "core/inspector/ConsoleMessage.h"
35 35
36 #include "bindings/v8/ScriptCallStackFactory.h" 36 #include "bindings/v8/ScriptCallStackFactory.h"
37 #include "bindings/v8/ScriptValue.h" 37 #include "bindings/v8/ScriptValue.h"
38 #include "core/dom/ExecutionContext.h"
38 #include "core/inspector/IdentifiersFactory.h" 39 #include "core/inspector/IdentifiersFactory.h"
39 #include "core/inspector/InjectedScript.h" 40 #include "core/inspector/InjectedScript.h"
40 #include "core/inspector/InjectedScriptManager.h" 41 #include "core/inspector/InjectedScriptManager.h"
41 #include "core/inspector/ScriptArguments.h" 42 #include "core/inspector/ScriptArguments.h"
42 #include "core/inspector/ScriptCallFrame.h" 43 #include "core/inspector/ScriptCallFrame.h"
43 #include "core/inspector/ScriptCallStack.h" 44 #include "core/inspector/ScriptCallStack.h"
44 #include "wtf/CurrentTime.h" 45 #include "wtf/CurrentTime.h"
45 46
46 namespace WebCore { 47 namespace WebCore {
47 48
48 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message) 49 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message)
49 : m_source(source) 50 : m_source(source)
50 , m_type(type) 51 , m_type(type)
51 , m_level(level) 52 , m_level(level)
52 , m_message(message) 53 , m_message(message)
53 , m_url() 54 , m_url()
54 , m_line(0) 55 , m_line(0)
55 , m_column(0) 56 , m_column(0)
56 , m_requestId(IdentifiersFactory::requestId(0)) 57 , m_requestId(IdentifiersFactory::requestId(0))
57 , m_timestamp(WTF::currentTime()) 58 , m_timestamp(WTF::currentTime())
58 { 59 {
59 autogenerateMetadata(canGenerateCallStack); 60 autogenerateMetadata(canGenerateCallStack);
60 } 61 }
61 62
62 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& url, unsigned line, unsigned column, ScriptState* state, unsigned long requestIdentif ier) 63 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message, const String& url, unsigned line, unsigned column, ScriptState* state, unsigned long requestIdentif ier)
63 : m_source(source) 64 : m_source(source)
64 , m_type(type) 65 , m_type(type)
65 , m_level(level) 66 , m_level(level)
66 , m_message(message) 67 , m_message(message)
68 , m_scriptState(state)
67 , m_url(url) 69 , m_url(url)
68 , m_line(line) 70 , m_line(line)
69 , m_column(column) 71 , m_column(column)
70 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) 72 , m_requestId(IdentifiersFactory::requestId(requestIdentifier))
71 , m_timestamp(WTF::currentTime()) 73 , m_timestamp(WTF::currentTime())
72 { 74 {
73 autogenerateMetadata(canGenerateCallStack, state); 75 autogenerateMetadata(canGenerateCallStack, state);
74 } 76 }
75 77
76 ConsoleMessage::ConsoleMessage(bool, MessageSource source, MessageType type, Mes sageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, u nsigned long requestIdentifier) 78 ConsoleMessage::ConsoleMessage(bool, MessageSource source, MessageType type, Mes sageLevel level, const String& message, PassRefPtr<ScriptCallStack> callStack, u nsigned long requestIdentifier)
77 : m_source(source) 79 : m_source(source)
78 , m_type(type) 80 , m_type(type)
79 , m_level(level) 81 , m_level(level)
80 , m_message(message) 82 , m_message(message)
83 , m_scriptState(0)
81 , m_arguments(nullptr) 84 , m_arguments(nullptr)
82 , m_line(0) 85 , m_line(0)
83 , m_column(0) 86 , m_column(0)
84 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) 87 , m_requestId(IdentifiersFactory::requestId(requestIdentifier))
85 , m_timestamp(WTF::currentTime()) 88 , m_timestamp(WTF::currentTime())
86 { 89 {
87 if (callStack && callStack->size()) { 90 if (callStack && callStack->size()) {
88 const ScriptCallFrame& frame = callStack->at(0); 91 const ScriptCallFrame& frame = callStack->at(0);
89 m_url = frame.sourceURL(); 92 m_url = frame.sourceURL();
90 m_line = frame.lineNumber(); 93 m_line = frame.lineNumber();
91 m_column = frame.columnNumber(); 94 m_column = frame.columnNumber();
92 } 95 }
93 m_callStack = callStack; 96 m_callStack = callStack;
94 } 97 }
95 98
96 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptAr guments> arguments, ScriptState* state, unsigned long requestIdentifier) 99 ConsoleMessage::ConsoleMessage(bool canGenerateCallStack, MessageSource source, MessageType type, MessageLevel level, const String& message, PassRefPtr<ScriptAr guments> arguments, ScriptState* state, unsigned long requestIdentifier)
97 : m_source(source) 100 : m_source(source)
98 , m_type(type) 101 , m_type(type)
99 , m_level(level) 102 , m_level(level)
100 , m_message(message) 103 , m_message(message)
104 , m_scriptState(state)
101 , m_arguments(arguments) 105 , m_arguments(arguments)
102 , m_url() 106 , m_url()
103 , m_line(0) 107 , m_line(0)
104 , m_column(0) 108 , m_column(0)
105 , m_requestId(IdentifiersFactory::requestId(requestIdentifier)) 109 , m_requestId(IdentifiersFactory::requestId(requestIdentifier))
106 , m_timestamp(WTF::currentTime()) 110 , m_timestamp(WTF::currentTime())
107 { 111 {
108 autogenerateMetadata(canGenerateCallStack, state); 112 autogenerateMetadata(canGenerateCallStack, state);
109 } 113 }
110 114
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 RefPtr<TypeBuilder::Console::ConsoleMessage> jsonObj = TypeBuilder::Console: :ConsoleMessage::create() 191 RefPtr<TypeBuilder::Console::ConsoleMessage> jsonObj = TypeBuilder::Console: :ConsoleMessage::create()
188 .setSource(messageSourceValue(m_source)) 192 .setSource(messageSourceValue(m_source))
189 .setLevel(messageLevelValue(m_level)) 193 .setLevel(messageLevelValue(m_level))
190 .setText(m_message) 194 .setText(m_message)
191 .setTimestamp(m_timestamp); 195 .setTimestamp(m_timestamp);
192 // FIXME: only send out type for ConsoleAPI source messages. 196 // FIXME: only send out type for ConsoleAPI source messages.
193 jsonObj->setType(messageTypeValue(m_type)); 197 jsonObj->setType(messageTypeValue(m_type));
194 jsonObj->setLine(static_cast<int>(m_line)); 198 jsonObj->setLine(static_cast<int>(m_line));
195 jsonObj->setColumn(static_cast<int>(m_column)); 199 jsonObj->setColumn(static_cast<int>(m_column));
196 jsonObj->setUrl(m_url); 200 jsonObj->setUrl(m_url);
201 if (m_scriptState && m_scriptState->executionContext()->isDocument())
202 jsonObj->setExecutionContextId(injectedScriptManager->injectedScriptIdFo r(m_scriptState));
197 if (m_source == NetworkMessageSource && !m_requestId.isEmpty()) 203 if (m_source == NetworkMessageSource && !m_requestId.isEmpty())
198 jsonObj->setNetworkRequestId(m_requestId); 204 jsonObj->setNetworkRequestId(m_requestId);
199 if (m_arguments && m_arguments->argumentCount()) { 205 if (m_arguments && m_arguments->argumentCount()) {
200 InjectedScript injectedScript = injectedScriptManager->injectedScriptFor (m_arguments->globalState()); 206 InjectedScript injectedScript = injectedScriptManager->injectedScriptFor (m_arguments->globalState());
201 if (!injectedScript.hasNoValue()) { 207 if (!injectedScript.hasNoValue()) {
202 RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject> > json Args = TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject>::create(); 208 RefPtr<TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject> > json Args = TypeBuilder::Array<TypeBuilder::Runtime::RemoteObject>::create();
203 if (m_type == TableMessageType && generatePreview && m_arguments->ar gumentCount()) { 209 if (m_type == TableMessageType && generatePreview && m_arguments->ar gumentCount()) {
204 ScriptValue table = m_arguments->argumentAt(0); 210 ScriptValue table = m_arguments->argumentAt(0);
205 ScriptValue columns = m_arguments->argumentCount() > 1 ? m_argum ents->argumentAt(1) : ScriptValue(); 211 ScriptValue columns = m_arguments->argumentCount() > 1 ? m_argum ents->argumentAt(1) : ScriptValue();
206 RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = inje ctedScript.wrapTable(table, columns); 212 RefPtr<TypeBuilder::Runtime::RemoteObject> inspectorValue = inje ctedScript.wrapTable(table, columns);
(...skipping 15 matching lines...) Expand all
222 jsonObj->setParameters(jsonArgs); 228 jsonObj->setParameters(jsonArgs);
223 } 229 }
224 } 230 }
225 if (m_callStack) 231 if (m_callStack)
226 jsonObj->setStackTrace(m_callStack->buildInspectorArray()); 232 jsonObj->setStackTrace(m_callStack->buildInspectorArray());
227 frontend->messageAdded(jsonObj); 233 frontend->messageAdded(jsonObj);
228 } 234 }
229 235
230 void ConsoleMessage::windowCleared(DOMWindow* window) 236 void ConsoleMessage::windowCleared(DOMWindow* window)
231 { 237 {
238 if (m_scriptState && m_scriptState->domWindow() == window)
239 m_scriptState = 0;
240
232 if (!m_arguments) 241 if (!m_arguments)
233 return; 242 return;
234 if (m_arguments->globalState()->domWindow() != window) 243 if (m_arguments->globalState()->domWindow() != window)
235 return; 244 return;
236 if (!m_message) 245 if (!m_message)
237 m_message = "<message collected>"; 246 m_message = "<message collected>";
238 m_arguments.clear(); 247 m_arguments.clear();
239 } 248 }
240 249
241 unsigned ConsoleMessage::argumentCount() 250 unsigned ConsoleMessage::argumentCount()
242 { 251 {
243 if (m_arguments) 252 if (m_arguments)
244 return m_arguments->argumentCount(); 253 return m_arguments->argumentCount();
245 return 0; 254 return 0;
246 } 255 }
247 256
248 } // namespace WebCore 257 } // namespace WebCore
249 258
OLDNEW
« no previous file with comments | « Source/core/inspector/ConsoleMessage.h ('k') | Source/devtools/front_end/ConsoleModel.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698