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

Side by Side Diff: src/inspector/v8-injected-script-host.cc

Issue 2770823003: [inspector] Increased chances of successful InjectedScriptSource compilation (Closed)
Patch Set: fixed .isolate Created 3 years, 9 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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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 "src/inspector/v8-injected-script-host.h" 5 #include "src/inspector/v8-injected-script-host.h"
6 6
7 #include "src/base/macros.h" 7 #include "src/base/macros.h"
8 #include "src/inspector/injected-script-native.h" 8 #include "src/inspector/injected-script-native.h"
9 #include "src/inspector/string-util.h" 9 #include "src/inspector/string-util.h"
10 #include "src/inspector/v8-debugger.h" 10 #include "src/inspector/v8-debugger.h"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 v8::Local<v8::Object> V8InjectedScriptHost::create( 48 v8::Local<v8::Object> V8InjectedScriptHost::create(
49 v8::Local<v8::Context> context, V8InspectorImpl* inspector) { 49 v8::Local<v8::Context> context, V8InspectorImpl* inspector) {
50 v8::Isolate* isolate = inspector->isolate(); 50 v8::Isolate* isolate = inspector->isolate();
51 v8::Local<v8::Object> injectedScriptHost = v8::Object::New(isolate); 51 v8::Local<v8::Object> injectedScriptHost = v8::Object::New(isolate);
52 bool success = injectedScriptHost->SetPrototype(context, v8::Null(isolate)) 52 bool success = injectedScriptHost->SetPrototype(context, v8::Null(isolate))
53 .FromMaybe(false); 53 .FromMaybe(false);
54 DCHECK(success); 54 DCHECK(success);
55 USE(success); 55 USE(success);
56 v8::Local<v8::External> debuggerExternal = 56 v8::Local<v8::External> debuggerExternal =
57 v8::External::New(isolate, inspector); 57 v8::External::New(isolate, inspector);
58 setFunctionProperty(context, injectedScriptHost, "nullifyPrototype",
59 V8InjectedScriptHost::nullifyPrototypeCallback,
60 debuggerExternal);
58 setFunctionProperty(context, injectedScriptHost, "internalConstructorName", 61 setFunctionProperty(context, injectedScriptHost, "internalConstructorName",
59 V8InjectedScriptHost::internalConstructorNameCallback, 62 V8InjectedScriptHost::internalConstructorNameCallback,
60 debuggerExternal); 63 debuggerExternal);
61 setFunctionProperty( 64 setFunctionProperty(
62 context, injectedScriptHost, "formatAccessorsAsProperties", 65 context, injectedScriptHost, "formatAccessorsAsProperties",
63 V8InjectedScriptHost::formatAccessorsAsProperties, debuggerExternal); 66 V8InjectedScriptHost::formatAccessorsAsProperties, debuggerExternal);
64 setFunctionProperty(context, injectedScriptHost, "subtype", 67 setFunctionProperty(context, injectedScriptHost, "subtype",
65 V8InjectedScriptHost::subtypeCallback, debuggerExternal); 68 V8InjectedScriptHost::subtypeCallback, debuggerExternal);
66 setFunctionProperty(context, injectedScriptHost, "getInternalProperties", 69 setFunctionProperty(context, injectedScriptHost, "getInternalProperties",
67 V8InjectedScriptHost::getInternalPropertiesCallback, 70 V8InjectedScriptHost::getInternalPropertiesCallback,
68 debuggerExternal); 71 debuggerExternal);
69 setFunctionProperty(context, injectedScriptHost, "objectHasOwnProperty", 72 setFunctionProperty(context, injectedScriptHost, "objectHasOwnProperty",
70 V8InjectedScriptHost::objectHasOwnPropertyCallback, 73 V8InjectedScriptHost::objectHasOwnPropertyCallback,
71 debuggerExternal); 74 debuggerExternal);
72 setFunctionProperty(context, injectedScriptHost, "bind", 75 setFunctionProperty(context, injectedScriptHost, "bind",
73 V8InjectedScriptHost::bindCallback, debuggerExternal); 76 V8InjectedScriptHost::bindCallback, debuggerExternal);
74 setFunctionProperty(context, injectedScriptHost, "proxyTargetValue", 77 setFunctionProperty(context, injectedScriptHost, "proxyTargetValue",
75 V8InjectedScriptHost::proxyTargetValueCallback, 78 V8InjectedScriptHost::proxyTargetValueCallback,
76 debuggerExternal); 79 debuggerExternal);
77 return injectedScriptHost; 80 return injectedScriptHost;
78 } 81 }
79 82
83 void V8InjectedScriptHost::nullifyPrototypeCallback(
84 const v8::FunctionCallbackInfo<v8::Value>& info) {
85 CHECK(info.Length() == 1 && info[0]->IsObject());
86 v8::Isolate* isolate = info.GetIsolate();
87 info[0]
88 .As<v8::Object>()
89 ->SetPrototype(isolate->GetCurrentContext(), v8::Null(isolate))
90 .ToChecked();
91 }
92
80 void V8InjectedScriptHost::internalConstructorNameCallback( 93 void V8InjectedScriptHost::internalConstructorNameCallback(
81 const v8::FunctionCallbackInfo<v8::Value>& info) { 94 const v8::FunctionCallbackInfo<v8::Value>& info) {
82 if (info.Length() < 1 || !info[0]->IsObject()) return; 95 if (info.Length() < 1 || !info[0]->IsObject()) return;
83 96
84 v8::Local<v8::Object> object = info[0].As<v8::Object>(); 97 v8::Local<v8::Object> object = info[0].As<v8::Object>();
85 info.GetReturnValue().Set(object->GetConstructorName()); 98 info.GetReturnValue().Set(object->GetConstructorName());
86 } 99 }
87 100
88 void V8InjectedScriptHost::formatAccessorsAsProperties( 101 void V8InjectedScriptHost::formatAccessorsAsProperties(
89 const v8::FunctionCallbackInfo<v8::Value>& info) { 102 const v8::FunctionCallbackInfo<v8::Value>& info) {
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 UNREACHABLE(); 285 UNREACHABLE();
273 return; 286 return;
274 } 287 }
275 v8::Local<v8::Object> target = info[0].As<v8::Proxy>(); 288 v8::Local<v8::Object> target = info[0].As<v8::Proxy>();
276 while (target->IsProxy()) 289 while (target->IsProxy())
277 target = v8::Local<v8::Proxy>::Cast(target)->GetTarget(); 290 target = v8::Local<v8::Proxy>::Cast(target)->GetTarget();
278 info.GetReturnValue().Set(target); 291 info.GetReturnValue().Set(target);
279 } 292 }
280 293
281 } // namespace v8_inspector 294 } // namespace v8_inspector
OLDNEW
« no previous file with comments | « src/inspector/v8-injected-script-host.h ('k') | test/inspector/console/destroy-context-during-log.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698