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

Side by Side Diff: Source/bindings/core/dart/DartInjectedScript.cpp

Issue 1177953010: Support new style JS interop (Closed) Base URL: svn://svn.chromium.org/blink/branches/dart/dartium
Patch Set: Created 5 years, 6 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2014 Google Inc. All rights reserved. 2 * Copyright (C) 2014 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 965
966 void DartInjectedScript::getProperties(ErrorString* errorString, const String& o bjectId, bool ownProperties, bool accessorPropertiesOnly, RefPtr<Array<PropertyD escriptor> >* properties) 966 void DartInjectedScript::getProperties(ErrorString* errorString, const String& o bjectId, bool ownProperties, bool accessorPropertiesOnly, RefPtr<Array<PropertyD escriptor> >* properties)
967 { 967 {
968 Dart_Handle exception = 0; 968 Dart_Handle exception = 0;
969 if (!m_scriptState) { 969 if (!m_scriptState) {
970 *errorString = "Invalid DartInjectedScript"; 970 *errorString = "Invalid DartInjectedScript";
971 return; 971 return;
972 } 972 }
973 DartIsolateScope scope(m_scriptState->isolate()); 973 DartIsolateScope scope(m_scriptState->isolate());
974 DartApiScope apiScope; 974 DartApiScope apiScope;
975 DartDOMData* domData = DartDOMData::current();
976 V8Scope v8scope(domData);
Jacob 2015/06/18 22:22:44 Not sure why this ever worked without a V8Scope
975 977
976 DartDebuggerObject* object = lookupObject(objectId); 978 DartDebuggerObject* object = lookupObject(objectId);
977 if (!object) { 979 if (!object) {
978 *errorString = "Unknown objectId"; 980 *errorString = "Unknown objectId";
979 return; 981 return;
980 } 982 }
981 Dart_Handle handle = object->handle(); 983 Dart_Handle handle = object->handle();
982 String objectGroup = object->group(); 984 String objectGroup = object->group();
983 985
984 *properties = Array<PropertyDescriptor>::create(); 986 *properties = Array<PropertyDescriptor>::create();
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 1104
1103 if (object->kind() == DartDebuggerObject::Object && !accessorPropertiesOnly && !Dart_IsNull(handle)) { 1105 if (object->kind() == DartDebuggerObject::Object && !accessorPropertiesOnly && !Dart_IsNull(handle)) {
1104 RefPtr<PropertyDescriptor> descriptor = PropertyDescriptor::create().set Name("[[class]]").setConfigurable(false).setEnumerable(true).release(); 1106 RefPtr<PropertyDescriptor> descriptor = PropertyDescriptor::create().set Name("[[class]]").setConfigurable(false).setEnumerable(true).release();
1105 descriptor->setValue(wrapDartHandle(handle, DartDebuggerObject::ObjectCl ass, objectGroup, false)); 1107 descriptor->setValue(wrapDartHandle(handle, DartDebuggerObject::ObjectCl ass, objectGroup, false));
1106 descriptor->setWritable(false); 1108 descriptor->setWritable(false);
1107 descriptor->setWasThrown(false); 1109 descriptor->setWasThrown(false);
1108 descriptor->setIsOwn(true); 1110 descriptor->setIsOwn(true);
1109 (*properties)->addItem(descriptor); 1111 (*properties)->addItem(descriptor);
1110 1112
1111 if (DartDOMWrapper::subtypeOf(handle, JsObject::dartClassId)) { 1113 if (DartDOMWrapper::subtypeOf(handle, JsObject::dartClassId)) {
1112 DartDOMData* domData = DartDOMData::current();
1113 JsObject* object = DartDOMWrapper::unwrapDartWrapper<JsObject>(domDa ta, handle, exception); 1114 JsObject* object = DartDOMWrapper::unwrapDartWrapper<JsObject>(domDa ta, handle, exception);
1114 if (!exception) { 1115 if (!exception) {
1115 descriptor = PropertyDescriptor::create().setName("[[JavaScript View]]").setConfigurable(false).setEnumerable(true).release(); 1116 descriptor = PropertyDescriptor::create().setName("[[JavaScript View]]").setConfigurable(false).setEnumerable(true).release();
1116 1117
1117 V8ScriptState* v8ScriptState = DartUtilities::v8ScriptStateForCu rrentIsolate(); 1118 V8ScriptState* v8ScriptState = DartUtilities::v8ScriptStateForCu rrentIsolate();
1118 InjectedScript v8InjectedScript = m_injectedScriptManager->injec tedScriptFor(v8ScriptState); 1119 InjectedScript v8InjectedScript = m_injectedScriptManager->injec tedScriptFor(v8ScriptState);
1119 ScriptValue v8ScriptValue(v8ScriptState, object->localV8Object() ); 1120 ScriptValue v8ScriptValue(v8ScriptState, object->localV8Object() );
1120 descriptor->setValue(v8InjectedScript.wrapObject(v8ScriptValue, objectGroup, false)); 1121 descriptor->setValue(v8InjectedScript.wrapObject(v8ScriptValue, objectGroup, false));
1121 descriptor->setWritable(false); 1122 descriptor->setWritable(false);
1122 descriptor->setWasThrown(false); 1123 descriptor->setWasThrown(false);
(...skipping 14 matching lines...) Expand all
1137 *properties = Array<InternalPropertyDescriptor>::create(); 1138 *properties = Array<InternalPropertyDescriptor>::create();
1138 } 1139 }
1139 1140
1140 void DartInjectedScript::getProperty(ErrorString* errorString, const String& obj ectId, const RefPtr<JSONArray>& propertyPath, RefPtr<TypeBuilder::Runtime::Remot eObject>* result, TypeBuilder::OptOutput<bool>* wasThrown) 1141 void DartInjectedScript::getProperty(ErrorString* errorString, const String& obj ectId, const RefPtr<JSONArray>& propertyPath, RefPtr<TypeBuilder::Runtime::Remot eObject>* result, TypeBuilder::OptOutput<bool>* wasThrown)
1141 { 1142 {
1142 if (!m_scriptState) { 1143 if (!m_scriptState) {
1143 *errorString = "Invalid DartInjectedScript"; 1144 *errorString = "Invalid DartInjectedScript";
1144 return; 1145 return;
1145 } 1146 }
1146 DartIsolateScope scope(m_scriptState->isolate()); 1147 DartIsolateScope scope(m_scriptState->isolate());
1148 DartDOMData* domData = DartDOMData::current();
1149 V8Scope v8scope(domData);
1147 DartApiScope apiScope; 1150 DartApiScope apiScope;
1148 1151
1149 DartDebuggerObject* object = lookupObject(objectId); 1152 DartDebuggerObject* object = lookupObject(objectId);
1150 if (!object) { 1153 if (!object) {
1151 *errorString = "Unknown objectId"; 1154 *errorString = "Unknown objectId";
1152 return; 1155 return;
1153 } 1156 }
1154 Dart_Handle handle = object->handle(); 1157 Dart_Handle handle = object->handle();
1155 const String& objectGroup = object->group(); 1158 const String& objectGroup = object->group();
1156 1159
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
1440 RefPtr<JSONValue> parsedObjectId = parseJSON(objectId); 1443 RefPtr<JSONValue> parsedObjectId = parseJSON(objectId);
1441 if (parsedObjectId && parsedObjectId->type() == JSONValue::TypeObject) { 1444 if (parsedObjectId && parsedObjectId->type() == JSONValue::TypeObject) {
1442 bool isDart = false; 1445 bool isDart = false;
1443 bool success = parsedObjectId->asObject()-> getBoolean("isDart", &isDart ); 1446 bool success = parsedObjectId->asObject()-> getBoolean("isDart", &isDart );
1444 return success && isDart; 1447 return success && isDart;
1445 } 1448 }
1446 return false; 1449 return false;
1447 } 1450 }
1448 1451
1449 } // namespace blink 1452 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/core/dart/DartJsInterop.cpp » ('j') | Source/bindings/core/dart/DartJsInteropData.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698