OLD | NEW |
1 // Copyright 2017 the V8 project authors. All rights reserved. | 1 // Copyright 2017 the V8 project 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 "test/inspector/isolate-data.h" | 5 #include "test/inspector/isolate-data.h" |
6 | 6 |
7 #include "src/inspector/test-interface.h" | 7 #include "src/inspector/test-interface.h" |
8 #include "test/inspector/task-runner.h" | 8 #include "test/inspector/task-runner.h" |
9 | 9 |
10 namespace { | 10 namespace { |
(...skipping 21 matching lines...) Expand all Loading... |
32 static_cast<int>(string.length())) | 32 static_cast<int>(string.length())) |
33 .ToLocalChecked(); | 33 .ToLocalChecked(); |
34 } | 34 } |
35 | 35 |
36 void Print(v8::Isolate* isolate, const v8_inspector::StringView& string) { | 36 void Print(v8::Isolate* isolate, const v8_inspector::StringView& string) { |
37 v8::Local<v8::String> v8_string = ToString(isolate, string); | 37 v8::Local<v8::String> v8_string = ToString(isolate, string); |
38 v8::String::Utf8Value utf8_string(v8_string); | 38 v8::String::Utf8Value utf8_string(v8_string); |
39 fwrite(*utf8_string, sizeof(**utf8_string), utf8_string.length(), stdout); | 39 fwrite(*utf8_string, sizeof(**utf8_string), utf8_string.length(), stdout); |
40 } | 40 } |
41 | 41 |
| 42 class Inspectable : public v8_inspector::V8InspectorSession::Inspectable { |
| 43 public: |
| 44 Inspectable(v8::Isolate* isolate, v8::Local<v8::Value> object) |
| 45 : object_(isolate, object) {} |
| 46 ~Inspectable() override {} |
| 47 v8::Local<v8::Value> get(v8::Local<v8::Context> context) override { |
| 48 return object_.Get(context->GetIsolate()); |
| 49 } |
| 50 |
| 51 private: |
| 52 v8::Global<v8::Value> object_; |
| 53 }; |
| 54 |
42 } // namespace | 55 } // namespace |
43 | 56 |
44 IsolateData::IsolateData(TaskRunner* task_runner, | 57 IsolateData::IsolateData(TaskRunner* task_runner, |
45 IsolateData::SetupGlobalTasks setup_global_tasks, | 58 IsolateData::SetupGlobalTasks setup_global_tasks, |
46 v8::StartupData* startup_data, bool with_inspector) | 59 v8::StartupData* startup_data, bool with_inspector) |
47 : task_runner_(task_runner), | 60 : task_runner_(task_runner), |
48 setup_global_tasks_(std::move(setup_global_tasks)) { | 61 setup_global_tasks_(std::move(setup_global_tasks)) { |
49 v8::Isolate::CreateParams params; | 62 v8::Isolate::CreateParams params; |
50 params.array_buffer_allocator = | 63 params.array_buffer_allocator = |
51 v8::ArrayBuffer::Allocator::NewDefaultAllocator(); | 64 v8::ArrayBuffer::Allocator::NewDefaultAllocator(); |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 } | 189 } |
177 | 190 |
178 void IsolateData::AsyncTaskStarted(void* task) { | 191 void IsolateData::AsyncTaskStarted(void* task) { |
179 inspector_->asyncTaskStarted(task); | 192 inspector_->asyncTaskStarted(task); |
180 } | 193 } |
181 | 194 |
182 void IsolateData::AsyncTaskFinished(void* task) { | 195 void IsolateData::AsyncTaskFinished(void* task) { |
183 inspector_->asyncTaskFinished(task); | 196 inspector_->asyncTaskFinished(task); |
184 } | 197 } |
185 | 198 |
| 199 void IsolateData::AddInspectedObject(int session_id, |
| 200 v8::Local<v8::Value> object) { |
| 201 auto it = sessions_.find(session_id); |
| 202 if (it == sessions_.end()) return; |
| 203 std::unique_ptr<Inspectable> inspectable(new Inspectable(isolate_, object)); |
| 204 it->second->addInspectedObject(std::move(inspectable)); |
| 205 } |
| 206 |
186 void IsolateData::SetMaxAsyncTaskStacksForTest(int limit) { | 207 void IsolateData::SetMaxAsyncTaskStacksForTest(int limit) { |
187 v8_inspector::SetMaxAsyncTaskStacksForTest(inspector_.get(), limit); | 208 v8_inspector::SetMaxAsyncTaskStacksForTest(inspector_.get(), limit); |
188 } | 209 } |
189 | 210 |
190 void IsolateData::DumpAsyncTaskStacksStateForTest() { | 211 void IsolateData::DumpAsyncTaskStacksStateForTest() { |
191 v8_inspector::DumpAsyncTaskStacksStateForTest(inspector_.get()); | 212 v8_inspector::DumpAsyncTaskStacksStateForTest(inspector_.get()); |
192 } | 213 } |
193 | 214 |
194 // static | 215 // static |
195 int IsolateData::HandleMessage(v8::Local<v8::Message> message, | 216 int IsolateData::HandleMessage(v8::Local<v8::Message> message, |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 unsigned lineNumber, unsigned columnNumber, | 367 unsigned lineNumber, unsigned columnNumber, |
347 v8_inspector::V8StackTrace* stack) { | 368 v8_inspector::V8StackTrace* stack) { |
348 if (!log_console_api_message_calls_) return; | 369 if (!log_console_api_message_calls_) return; |
349 Print(isolate_, message); | 370 Print(isolate_, message); |
350 fprintf(stdout, " ("); | 371 fprintf(stdout, " ("); |
351 Print(isolate_, url); | 372 Print(isolate_, url); |
352 fprintf(stdout, ":%d:%d)", lineNumber, columnNumber); | 373 fprintf(stdout, ":%d:%d)", lineNumber, columnNumber); |
353 Print(isolate_, stack->toString()->string()); | 374 Print(isolate_, stack->toString()->string()); |
354 fprintf(stdout, "\n"); | 375 fprintf(stdout, "\n"); |
355 } | 376 } |
OLD | NEW |