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

Side by Side Diff: third_party/WebKit/Source/platform/v8_inspector/V8ConsoleMessage.h

Issue 2116563003: [DevTools] Report unhandled exceptions and promise rejections through Runtime. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase after ExceptionDetails change Created 4 years, 5 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8ConsoleMessage_h 5 #ifndef V8ConsoleMessage_h
6 #define V8ConsoleMessage_h 6 #define V8ConsoleMessage_h
7 7
8 #include "platform/inspector_protocol/Collections.h" 8 #include "platform/inspector_protocol/Collections.h"
9 #include "platform/inspector_protocol/String16.h" 9 #include "platform/inspector_protocol/String16.h"
10 #include "platform/v8_inspector/protocol/Console.h" 10 #include "platform/v8_inspector/protocol/Console.h"
11 #include "platform/v8_inspector/protocol/Runtime.h"
11 #include "platform/v8_inspector/public/V8ConsoleTypes.h" 12 #include "platform/v8_inspector/public/V8ConsoleTypes.h"
12 #include "platform/v8_inspector/public/V8StackTrace.h" 13 #include "platform/v8_inspector/public/V8StackTrace.h"
13 #include <deque> 14 #include <deque>
14 #include <v8.h> 15 #include <v8.h>
15 16
16 namespace blink { 17 namespace blink {
17 18
18 class InspectedContext; 19 class InspectedContext;
19 class V8DebuggerImpl; 20 class V8DebuggerImpl;
20 class V8InspectorSessionImpl; 21 class V8InspectorSessionImpl;
21 class V8StackTrace; 22 class V8StackTrace;
22 23
24 enum class V8MessageOrigin { kConsole, kException, kRevokedException };
25
23 class V8ConsoleMessage { 26 class V8ConsoleMessage {
24 public: 27 public:
25 V8ConsoleMessage( 28 V8ConsoleMessage(
26 double timestampMS, 29 double timestamp,
27 MessageSource, 30 MessageSource,
28 MessageLevel, 31 MessageLevel,
29 const String16& message, 32 const String16& message,
30 const String16& url, 33 const String16& url,
31 unsigned lineNumber, 34 unsigned lineNumber,
32 unsigned columnNumber, 35 unsigned columnNumber,
33 std::unique_ptr<V8StackTrace>, 36 std::unique_ptr<V8StackTrace>,
34 int scriptId, 37 int scriptId,
35 const String16& requestIdentifier); 38 const String16& requestIdentifier);
36 ~V8ConsoleMessage(); 39 ~V8ConsoleMessage();
37 40
38 static std::unique_ptr<V8ConsoleMessage> createForConsoleAPI( 41 static std::unique_ptr<V8ConsoleMessage> createForConsoleAPI(
39 double timestampMS, 42 double timestamp,
40 MessageType, 43 MessageType,
41 MessageLevel, 44 MessageLevel,
42 const String16& message, 45 const String16& message,
43 std::vector<v8::Local<v8::Value>>* arguments, 46 std::vector<v8::Local<v8::Value>>* arguments,
44 std::unique_ptr<V8StackTrace>, 47 std::unique_ptr<V8StackTrace>,
45 InspectedContext*); 48 InspectedContext*);
46 49
47 std::unique_ptr<protocol::Console::ConsoleMessage> buildInspectorObject(V8In spectorSessionImpl*, bool generatePreview) const; 50 static std::unique_ptr<V8ConsoleMessage> createForException(
51 double timestamp,
52 const String16& message,
53 const String16& url,
54 unsigned lineNumber,
55 unsigned columnNumber,
56 std::unique_ptr<V8StackTrace>,
57 int scriptId,
58 v8::Isolate*,
59 int contextId,
60 v8::Local<v8::Value> exception,
61 unsigned exceptionId);
62
63 static std::unique_ptr<V8ConsoleMessage> createForRevokedException(
64 double timestamp,
65 const String16& message,
66 unsigned revokedExceptionId);
67
68 V8MessageOrigin origin() const;
69 void reportToFrontend(protocol::Console::Frontend*, V8InspectorSessionImpl*, bool generatePreview) const;
70 void reportToFrontend(protocol::Runtime::Frontend*, V8InspectorSessionImpl*, bool generatePreview) const;
48 unsigned argumentCount() const; 71 unsigned argumentCount() const;
49 MessageType type() const; 72 MessageType type() const;
50 void contextDestroyed(int contextId); 73 void contextDestroyed(int contextId);
51 void assignId(unsigned);
52 void assignRelatedId(unsigned);
53 void addArguments(v8::Isolate*, int contextId, std::vector<v8::Local<v8::Val ue>>*);
54 74
55 private: 75 private:
56 using Arguments = std::vector<std::unique_ptr<v8::Global<v8::Value>>>; 76 using Arguments = std::vector<std::unique_ptr<v8::Global<v8::Value>>>;
57 void appendArguments(protocol::Console::ConsoleMessage*, V8InspectorSessionI mpl*, bool generatePreview) const; 77 std::unique_ptr<protocol::Array<protocol::Runtime::RemoteObject>> wrapArgume nts(V8InspectorSessionImpl*, bool generatePreview) const;
78 std::unique_ptr<protocol::Runtime::RemoteObject> wrapException(V8InspectorSe ssionImpl*, bool generatePreview) const;
58 79
80 V8MessageOrigin m_origin;
59 double m_timestamp; 81 double m_timestamp;
60 MessageSource m_source; 82 MessageSource m_source;
61 MessageLevel m_level; 83 MessageLevel m_level;
62 String16 m_message; 84 String16 m_message;
63 String16 m_url; 85 String16 m_url;
64 unsigned m_lineNumber; 86 unsigned m_lineNumber;
65 unsigned m_columnNumber; 87 unsigned m_columnNumber;
66 std::unique_ptr<V8StackTrace> m_stackTrace; 88 std::unique_ptr<V8StackTrace> m_stackTrace;
67 int m_scriptId; 89 int m_scriptId;
68 String16 m_requestIdentifier; 90 String16 m_requestIdentifier;
69 int m_contextId; 91 int m_contextId;
70 MessageType m_type; 92 MessageType m_type;
71 unsigned m_messageId; 93 unsigned m_exceptionId;
72 unsigned m_relatedMessageId; 94 unsigned m_revokedExceptionId;
73 Arguments m_arguments; 95 Arguments m_arguments;
74 }; 96 };
75 97
76 class V8ConsoleMessageStorage { 98 class V8ConsoleMessageStorage {
77 public: 99 public:
78 V8ConsoleMessageStorage(V8DebuggerImpl*, int contextGroupId); 100 V8ConsoleMessageStorage(V8DebuggerImpl*, int contextGroupId);
79 ~V8ConsoleMessageStorage(); 101 ~V8ConsoleMessageStorage();
80 102
81 int contextGroupId() { return m_contextGroupId; } 103 int contextGroupId() { return m_contextGroupId; }
82 int expiredCount() { return m_expiredCount; } 104 int expiredCount() { return m_expiredCount; }
83 const std::deque<std::unique_ptr<V8ConsoleMessage>>& messages() const { retu rn m_messages; } 105 const std::deque<std::unique_ptr<V8ConsoleMessage>>& messages() const { retu rn m_messages; }
84 106
85 void addMessage(std::unique_ptr<V8ConsoleMessage>); 107 void addMessage(std::unique_ptr<V8ConsoleMessage>);
86 void contextDestroyed(int contextId); 108 void contextDestroyed(int contextId);
87 void clear(); 109 void clear();
88 110
89 private: 111 private:
90 V8DebuggerImpl* m_debugger; 112 V8DebuggerImpl* m_debugger;
91 int m_contextGroupId; 113 int m_contextGroupId;
92 int m_expiredCount; 114 int m_expiredCount;
93 std::deque<std::unique_ptr<V8ConsoleMessage>> m_messages; 115 std::deque<std::unique_ptr<V8ConsoleMessage>> m_messages;
94 }; 116 };
95 117
96 } // namespace blink 118 } // namespace blink
97 119
98 #endif // V8ConsoleMessage_h 120 #endif // V8ConsoleMessage_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698