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

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

Issue 2295913003: [DevTools] Switch from platform/v8_inspector to v8/v8-inspector.h. (Closed)
Patch Set: rebase Created 4 years, 3 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef V8StackTraceImpl_h
6 #define V8StackTraceImpl_h
7
8 #include "platform/v8_inspector/Allocator.h"
9 #include "platform/v8_inspector/protocol/Forward.h"
10 #include "platform/v8_inspector/protocol/Runtime.h"
11 #include "platform/v8_inspector/public/V8StackTrace.h"
12
13 #include <vector>
14
15 namespace v8_inspector {
16
17 class TracedValue;
18 class V8Debugger;
19
20 // Note: async stack trace may have empty top stack with non-empty tail to indic ate
21 // that current native-only state had some async story.
22 // On the other hand, any non-top async stack is guaranteed to be non-empty.
23 class V8StackTraceImpl final : public V8StackTrace {
24 V8_INSPECTOR_DISALLOW_COPY(V8StackTraceImpl);
25 public:
26 static const size_t maxCallStackSizeToCapture = 200;
27
28 class Frame {
29 public:
30 Frame();
31 Frame(const String16& functionName, const String16& scriptId, const Stri ng16& scriptName, int lineNumber, int column = 0);
32 ~Frame();
33
34 const String16& functionName() const { return m_functionName; }
35 const String16& scriptId() const { return m_scriptId; }
36 const String16& sourceURL() const { return m_scriptName; }
37 int lineNumber() const { return m_lineNumber; }
38 int columnNumber() const { return m_columnNumber; }
39 Frame clone() const;
40
41 private:
42 friend class V8StackTraceImpl;
43 std::unique_ptr<protocol::Runtime::CallFrame> buildInspectorObject() con st;
44 void toTracedValue(TracedValue*) const;
45
46 String16 m_functionName;
47 String16 m_scriptId;
48 String16 m_scriptName;
49 int m_lineNumber;
50 int m_columnNumber;
51 };
52
53 static void setCaptureStackTraceForUncaughtExceptions(v8::Isolate*, bool cap ture);
54 static std::unique_ptr<V8StackTraceImpl> create(V8Debugger*, int contextGrou pId, v8::Local<v8::StackTrace>, size_t maxStackSize, const String16& description = String16());
55 static std::unique_ptr<V8StackTraceImpl> capture(V8Debugger*, int contextGro upId, size_t maxStackSize, const String16& description = String16());
56
57 // This method drops the async chain. Use cloneImpl() instead.
58 std::unique_ptr<V8StackTrace> clone() override;
59 std::unique_ptr<V8StackTraceImpl> cloneImpl();
60 std::unique_ptr<protocol::Runtime::StackTrace> buildInspectorObjectForTail(V 8Debugger*) const;
61 std::unique_ptr<protocol::Runtime::StackTrace> buildInspectorObjectImpl() co nst;
62 ~V8StackTraceImpl() override;
63
64 // V8StackTrace implementation.
65 bool isEmpty() const override { return !m_frames.size(); };
66 StringView topSourceURL() const override;
67 int topLineNumber() const override;
68 int topColumnNumber() const override;
69 StringView topScriptId() const override;
70 StringView topFunctionName() const override;
71 std::unique_ptr<protocol::Runtime::API::StackTrace> buildInspectorObject() c onst override;
72 std::unique_ptr<StringBuffer> toString() const override;
73
74 private:
75 V8StackTraceImpl(int contextGroupId, const String16& description, std::vecto r<Frame>& frames, std::unique_ptr<V8StackTraceImpl> parent);
76
77 int m_contextGroupId;
78 String16 m_description;
79 std::vector<Frame> m_frames;
80 std::unique_ptr<V8StackTraceImpl> m_parent;
81 };
82
83 } // namespace v8_inspector
84
85 #endif // V8StackTraceImpl_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698