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

Side by Side Diff: third_party/WebKit/Source/platform/v8_inspector/PromiseTracker.cpp

Issue 1702673002: DevTools: migrate remote debugging protocol generators to jinja2. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "platform/v8_inspector/PromiseTracker.h" 5 #include "platform/v8_inspector/PromiseTracker.h"
6 6
7 #include "platform/v8_inspector/V8DebuggerAgentImpl.h" 7 #include "platform/v8_inspector/V8DebuggerAgentImpl.h"
8 #include "platform/v8_inspector/V8StackTraceImpl.h" 8 #include "platform/v8_inspector/V8StackTraceImpl.h"
9 #include "wtf/CurrentTime.h" 9 #include "wtf/CurrentTime.h"
10 #include "wtf/PassOwnPtr.h" 10 #include "wtf/PassOwnPtr.h"
11 11
12 using blink::protocol::TypeBuilder::Array; 12 using namespace blink::protocol;
13 using blink::protocol::TypeBuilder::Runtime::CallFrame;
14 using blink::protocol::TypeBuilder::Debugger::PromiseDetails;
15 13
16 namespace blink { 14 namespace blink {
17 15
18 class PromiseTracker::PromiseWrapper { 16 class PromiseTracker::PromiseWrapper {
19 public: 17 public:
20 PromiseWrapper(PromiseTracker* tracker, int id, v8::Local<v8::Object> promis e) 18 PromiseWrapper(PromiseTracker* tracker, int id, v8::Local<v8::Object> promis e)
21 : m_tracker(tracker) 19 : m_tracker(tracker)
22 , m_id(id) 20 , m_id(id)
23 , m_promise(tracker->m_isolate, promise) { } 21 , m_promise(tracker->m_isolate, promise) { }
24 22
25 ~PromiseWrapper() 23 ~PromiseWrapper()
26 { 24 {
27 RefPtr<PromiseDetails> promiseDetails = PromiseDetails::create().setId(m _id); 25 OwnPtr<Debugger::PromiseDetails> promiseDetails = Debugger::PromiseDetai ls::create().setId(m_id).build();
28 m_tracker->m_agent->didUpdatePromise(protocol::Frontend::Debugger::Event Type::Gc, promiseDetails.release()); 26 m_tracker->m_agent->didUpdatePromise(Debugger::PromiseUpdated::EventType Enum::Gc, promiseDetails.release());
29 } 27 }
30 28
31 private: 29 private:
32 friend class PromiseTracker; 30 friend class PromiseTracker;
33 31
34 PromiseTracker* m_tracker; 32 PromiseTracker* m_tracker;
35 int m_id; 33 int m_id;
36 v8::Global<v8::Object> m_promise; 34 v8::Global<v8::Object> m_promise;
37 }; 35 };
38 36
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 } 101 }
104 102
105 void PromiseTracker::didReceiveV8PromiseEvent(v8::Local<v8::Context> context, v8 ::Local<v8::Object> promise, v8::Local<v8::Value> parentPromise, int status) 103 void PromiseTracker::didReceiveV8PromiseEvent(v8::Local<v8::Context> context, v8 ::Local<v8::Object> promise, v8::Local<v8::Value> parentPromise, int status)
106 { 104 {
107 ASSERT(isEnabled()); 105 ASSERT(isEnabled());
108 ASSERT(!context.IsEmpty()); 106 ASSERT(!context.IsEmpty());
109 107
110 bool isNewPromise = false; 108 bool isNewPromise = false;
111 int id = promiseId(promise, &isNewPromise); 109 int id = promiseId(promise, &isNewPromise);
112 110
113 protocol::Frontend::Debugger::EventType::Enum eventType = isNewPromise ? pro tocol::Frontend::Debugger::EventType::New : protocol::Frontend::Debugger::EventT ype::Update; 111 String eventType = isNewPromise ? Debugger::PromiseUpdated::EventTypeEnum::N ew : Debugger::PromiseUpdated::EventTypeEnum::Update;
114 112
115 PromiseDetails::Status::Enum promiseStatus; 113 String promiseStatus;
116 switch (status) { 114 switch (status) {
117 case 0: 115 case 0:
118 promiseStatus = PromiseDetails::Status::Pending; 116 promiseStatus = Debugger::PromiseDetails::StatusEnum::Pending;
119 break; 117 break;
120 case 1: 118 case 1:
121 promiseStatus = PromiseDetails::Status::Resolved; 119 promiseStatus = Debugger::PromiseDetails::StatusEnum::Resolved;
122 break; 120 break;
123 default: 121 default:
124 promiseStatus = PromiseDetails::Status::Rejected; 122 promiseStatus = Debugger::PromiseDetails::StatusEnum::Rejected;
125 }; 123 };
126 RefPtr<PromiseDetails> promiseDetails = PromiseDetails::create().setId(id); 124 OwnPtr<Debugger::PromiseDetails> promiseDetails = Debugger::PromiseDetails:: create().setId(id).setStatus(promiseStatus).build();
127 promiseDetails->setStatus(promiseStatus);
128 125
129 if (!parentPromise.IsEmpty() && parentPromise->IsObject()) { 126 if (!parentPromise.IsEmpty() && parentPromise->IsObject()) {
130 v8::Local<v8::Object> handle = parentPromise->ToObject(context->GetIsola te()); 127 v8::Local<v8::Object> handle = parentPromise->ToObject(context->GetIsola te());
131 bool parentIsNewPromise = false; 128 bool parentIsNewPromise = false;
132 int parentPromiseId = promiseId(handle, &parentIsNewPromise); 129 int parentPromiseId = promiseId(handle, &parentIsNewPromise);
133 promiseDetails->setParentId(parentPromiseId); 130 promiseDetails->setParentId(parentPromiseId);
134 } else { 131 } else {
135 if (!status) { 132 if (!status) {
136 if (isNewPromise) { 133 if (isNewPromise) {
137 promiseDetails->setCreationTime(currentTimeMS()); 134 promiseDetails->setCreationTime(currentTimeMS());
(...skipping 15 matching lines...) Expand all
153 } 150 }
154 151
155 v8::Local<v8::Object> PromiseTracker::promiseById(int promiseId) 152 v8::Local<v8::Object> PromiseTracker::promiseById(int promiseId)
156 { 153 {
157 ASSERT(isEnabled()); 154 ASSERT(isEnabled());
158 PromiseWrapper* wrapper = m_idToPromise.get(promiseId); 155 PromiseWrapper* wrapper = m_idToPromise.get(promiseId);
159 return wrapper ? wrapper->m_promise.Get(m_isolate) : v8::Local<v8::Object>() ; 156 return wrapper ? wrapper->m_promise.Get(m_isolate) : v8::Local<v8::Object>() ;
160 } 157 }
161 158
162 } // namespace blink 159 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698