OLD | NEW |
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 #include "platform/v8_inspector/V8Console.h" | 5 #include "platform/v8_inspector/V8Console.h" |
6 | 6 |
7 #include "platform/inspector_protocol/Platform.h" | 7 #include "platform/inspector_protocol/Platform.h" |
8 #include "platform/inspector_protocol/String16.h" | 8 #include "platform/inspector_protocol/String16.h" |
9 #include "platform/v8_inspector/InjectedScript.h" | 9 #include "platform/v8_inspector/InjectedScript.h" |
10 #include "platform/v8_inspector/InspectedContext.h" | 10 #include "platform/v8_inspector/InspectedContext.h" |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 | 264 |
265 void returnDataCallback(const v8::FunctionCallbackInfo<v8::Value>& info) | 265 void returnDataCallback(const v8::FunctionCallbackInfo<v8::Value>& info) |
266 { | 266 { |
267 info.GetReturnValue().Set(info.Data()); | 267 info.GetReturnValue().Set(info.Data()); |
268 } | 268 } |
269 | 269 |
270 void createBoundFunctionProperty(v8::Local<v8::Context> context, v8::Local<v8::O
bject> console, const char* name, v8::FunctionCallback callback, const char* des
cription = nullptr) | 270 void createBoundFunctionProperty(v8::Local<v8::Context> context, v8::Local<v8::O
bject> console, const char* name, v8::FunctionCallback callback, const char* des
cription = nullptr) |
271 { | 271 { |
272 v8::Local<v8::String> funcName = toV8StringInternalized(context->GetIsolate(
), name); | 272 v8::Local<v8::String> funcName = toV8StringInternalized(context->GetIsolate(
), name); |
273 v8::Local<v8::Function> func; | 273 v8::Local<v8::Function> func; |
274 if (!v8::Function::New(context, callback, console, 0, v8::ConstructorBehavio
r::kThrow).ToLocal(&func)) | 274 if (!V8_FUNCTION_NEW_REMOVE_PROTOTYPE(context, callback, console, 0).ToLocal
(&func)) |
275 return; | 275 return; |
276 func->SetName(funcName); | 276 func->SetName(funcName); |
277 if (description) { | 277 if (description) { |
278 v8::Local<v8::String> returnValue = toV8String(context->GetIsolate(), de
scription); | 278 v8::Local<v8::String> returnValue = toV8String(context->GetIsolate(), de
scription); |
279 v8::Local<v8::Function> toStringFunction; | 279 v8::Local<v8::Function> toStringFunction; |
280 if (v8::Function::New(context, returnDataCallback, returnValue, 0, v8::C
onstructorBehavior::kThrow).ToLocal(&toStringFunction)) | 280 if (V8_FUNCTION_NEW_REMOVE_PROTOTYPE(context, returnDataCallback, return
Value, 0).ToLocal(&toStringFunction)) |
281 func->Set(toV8StringInternalized(context->GetIsolate(), "toString"),
toStringFunction); | 281 func->Set(toV8StringInternalized(context->GetIsolate(), "toString"),
toStringFunction); |
282 } | 282 } |
283 if (!console->Set(context, funcName, func).FromMaybe(false)) | 283 if (!console->Set(context, funcName, func).FromMaybe(false)) |
284 return; | 284 return; |
285 } | 285 } |
286 | 286 |
287 } // namespace | 287 } // namespace |
288 | 288 |
289 void V8Console::debugCallback(const v8::FunctionCallbackInfo<v8::Value>& info) | 289 void V8Console::debugCallback(const v8::FunctionCallbackInfo<v8::Value>& info) |
290 { | 290 { |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 createBoundFunctionProperty(context, console, "timeline", V8Console::timelin
eCallback); | 683 createBoundFunctionProperty(context, console, "timeline", V8Console::timelin
eCallback); |
684 createBoundFunctionProperty(context, console, "timelineEnd", V8Console::time
lineEndCallback); | 684 createBoundFunctionProperty(context, console, "timelineEnd", V8Console::time
lineEndCallback); |
685 createBoundFunctionProperty(context, console, "time", V8Console::timeCallbac
k); | 685 createBoundFunctionProperty(context, console, "time", V8Console::timeCallbac
k); |
686 createBoundFunctionProperty(context, console, "timeEnd", V8Console::timeEndC
allback); | 686 createBoundFunctionProperty(context, console, "timeEnd", V8Console::timeEndC
allback); |
687 createBoundFunctionProperty(context, console, "timeStamp", V8Console::timeSt
ampCallback); | 687 createBoundFunctionProperty(context, console, "timeStamp", V8Console::timeSt
ampCallback); |
688 | 688 |
689 bool success = console->SetPrototype(context, v8::Object::New(isolate)).From
Maybe(false); | 689 bool success = console->SetPrototype(context, v8::Object::New(isolate)).From
Maybe(false); |
690 DCHECK(success); | 690 DCHECK(success); |
691 | 691 |
692 if (hasMemoryAttribute) | 692 if (hasMemoryAttribute) |
693 console->SetAccessorProperty(toV8StringInternalized(isolate, "memory"),
v8::Function::New(context, V8Console::memoryGetterCallback, console, 0, v8::Cons
tructorBehavior::kThrow).ToLocalChecked(), v8::Function::New(context, V8Console:
:memorySetterCallback, v8::Local<v8::Value>(), 0, v8::ConstructorBehavior::kThro
w).ToLocalChecked(), static_cast<v8::PropertyAttribute>(v8::None), v8::DEFAULT); | 693 console->SetAccessorProperty(toV8StringInternalized(isolate, "memory"),
V8_FUNCTION_NEW_REMOVE_PROTOTYPE(context, V8Console::memoryGetterCallback, conso
le, 0).ToLocalChecked(), V8_FUNCTION_NEW_REMOVE_PROTOTYPE(context, V8Console::me
morySetterCallback, v8::Local<v8::Value>(), 0).ToLocalChecked(), static_cast<v8:
:PropertyAttribute>(v8::None), v8::DEFAULT); |
694 | 694 |
695 console->SetPrivate(context, inspectedContextPrivateKey(isolate), v8::Extern
al::New(isolate, inspectedContext)); | 695 console->SetPrivate(context, inspectedContextPrivateKey(isolate), v8::Extern
al::New(isolate, inspectedContext)); |
696 return console; | 696 return console; |
697 } | 697 } |
698 | 698 |
699 void V8Console::clearInspectedContextIfNeeded(v8::Local<v8::Context> context, v8
::Local<v8::Object> console) | 699 void V8Console::clearInspectedContextIfNeeded(v8::Local<v8::Context> context, v8
::Local<v8::Object> console) |
700 { | 700 { |
701 v8::Isolate* isolate = context->GetIsolate(); | 701 v8::Isolate* isolate = context->GetIsolate(); |
702 console->SetPrivate(context, inspectedContextPrivateKey(isolate), v8::Extern
al::New(isolate, nullptr)); | 702 console->SetPrivate(context, inspectedContextPrivateKey(isolate), v8::Extern
al::New(isolate, nullptr)); |
703 } | 703 } |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 continue; | 823 continue; |
824 if (name->IsString()) { | 824 if (name->IsString()) { |
825 v8::Local<v8::Value> descriptor; | 825 v8::Local<v8::Value> descriptor; |
826 bool success = m_global->GetOwnPropertyDescriptor(m_context, v8::Loc
al<v8::String>::Cast(name)).ToLocal(&descriptor); | 826 bool success = m_global->GetOwnPropertyDescriptor(m_context, v8::Loc
al<v8::String>::Cast(name)).ToLocal(&descriptor); |
827 DCHECK(success); | 827 DCHECK(success); |
828 } | 828 } |
829 } | 829 } |
830 } | 830 } |
831 | 831 |
832 } // namespace blink | 832 } // namespace blink |
OLD | NEW |