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

Side by Side Diff: Source/bindings/templates/attributes.cpp

Issue 819853002: [bindings] Translate all assignments in bindings/templates to use Local<> in place of Handle<>. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « no previous file | Source/bindings/templates/callback_interface.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 {##############################################################################} 1 {##############################################################################}
2 {% macro attribute_getter(attribute, world_suffix) %} 2 {% macro attribute_getter(attribute, world_suffix) %}
3 {% filter conditional(attribute.conditional_string) %} 3 {% filter conditional(attribute.conditional_string) %}
4 static void {{attribute.name}}AttributeGetter{{world_suffix}}( 4 static void {{attribute.name}}AttributeGetter{{world_suffix}}(
5 {%- if attribute.is_expose_js_accessors %} 5 {%- if attribute.is_expose_js_accessors %}
6 const v8::FunctionCallbackInfo<v8::Value>& info 6 const v8::FunctionCallbackInfo<v8::Value>& info
7 {%- else %} 7 {%- else %}
8 const v8::PropertyCallbackInfo<v8::Value>& info 8 const v8::PropertyCallbackInfo<v8::Value>& info
9 {%- endif %}) 9 {%- endif %})
10 { 10 {
11 {% if attribute.is_reflect and not attribute.is_url 11 {% if attribute.is_reflect and not attribute.is_url
12 and attribute.idl_type == 'DOMString' and is_node 12 and attribute.idl_type == 'DOMString' and is_node
13 and not attribute.is_implemented_in_private_script %} 13 and not attribute.is_implemented_in_private_script %}
14 {% set cpp_class, v8_class = 'Element', 'V8Element' %} 14 {% set cpp_class, v8_class = 'Element', 'V8Element' %}
15 {% endif %} 15 {% endif %}
16 {# holder #} 16 {# holder #}
17 {% if not attribute.is_static %} 17 {% if not attribute.is_static %}
18 v8::Handle<v8::Object> holder = info.Holder(); 18 v8::Local<v8::Object> holder = info.Holder();
19 {% endif %} 19 {% endif %}
20 {# impl #} 20 {# impl #}
21 {% if attribute.cached_attribute_validation_method %} 21 {% if attribute.cached_attribute_validation_method %}
22 v8::Handle<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{a ttribute.name}}"); 22 v8::Local<v8::String> propertyName = v8AtomicString(info.GetIsolate(), "{{at tribute.name}}");
23 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder); 23 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder);
24 if (!impl->{{attribute.cached_attribute_validation_method}}()) { 24 if (!impl->{{attribute.cached_attribute_validation_method}}()) {
25 v8::Handle<v8::Value> v8Value = V8HiddenValue::getHiddenValue(info.GetIs olate(), holder, propertyName); 25 v8::Local<v8::Value> v8Value = V8HiddenValue::getHiddenValue(info.GetIso late(), holder, propertyName);
26 if (!v8Value.IsEmpty()) { 26 if (!v8Value.IsEmpty()) {
27 v8SetReturnValue(info, v8Value); 27 v8SetReturnValue(info, v8Value);
28 return; 28 return;
29 } 29 }
30 } 30 }
31 {% elif not attribute.is_static %} 31 {% elif not attribute.is_static %}
32 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder); 32 {{cpp_class}}* impl = {{v8_class}}::toImpl(holder);
33 {% endif %} 33 {% endif %}
34 {% if interface_name == 'Window' and attribute.idl_type == 'EventHandler' %} 34 {% if interface_name == 'Window' and attribute.idl_type == 'EventHandler' %}
35 if (!impl->document()) 35 if (!impl->document())
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 return; 80 return;
81 } 81 }
82 {% endif %} 82 {% endif %}
83 {% if attribute.cached_attribute_validation_method %} 83 {% if attribute.cached_attribute_validation_method %}
84 V8HiddenValue::setHiddenValue(info.GetIsolate(), holder, propertyName, {{att ribute.cpp_value_to_v8_value}}); 84 V8HiddenValue::setHiddenValue(info.GetIsolate(), holder, propertyName, {{att ribute.cpp_value_to_v8_value}});
85 {% endif %} 85 {% endif %}
86 {# v8SetReturnValue #} 86 {# v8SetReturnValue #}
87 {% if attribute.is_keep_alive_for_gc %} 87 {% if attribute.is_keep_alive_for_gc %}
88 if ({{attribute.cpp_value}} && DOMDataStore::setReturnValue{{world_suffix}}( info.GetReturnValue(), {{attribute.cpp_value}}.get())) 88 if ({{attribute.cpp_value}} && DOMDataStore::setReturnValue{{world_suffix}}( info.GetReturnValue(), {{attribute.cpp_value}}.get()))
89 return; 89 return;
90 v8::Handle<v8::Value> wrapper = toV8({{attribute.cpp_value}}.get(), holder, info.GetIsolate()); 90 v8::Local<v8::Value> wrapper = toV8({{attribute.cpp_value}}.get(), holder, i nfo.GetIsolate());
91 if (!wrapper.IsEmpty()) { 91 if (!wrapper.IsEmpty()) {
92 V8HiddenValue::setHiddenValue(info.GetIsolate(), holder, v8AtomicString( info.GetIsolate(), "{{attribute.name}}"), wrapper); 92 V8HiddenValue::setHiddenValue(info.GetIsolate(), holder, v8AtomicString( info.GetIsolate(), "{{attribute.name}}"), wrapper);
93 {{attribute.v8_set_return_value}}; 93 {{attribute.v8_set_return_value}};
94 } 94 }
95 {% elif world_suffix %} 95 {% elif world_suffix %}
96 {{attribute.v8_set_return_value_for_main_world}}; 96 {{attribute.v8_set_return_value_for_main_world}};
97 {% else %} 97 {% else %}
98 {% if attribute.use_output_parameter_for_result %} 98 {% if attribute.use_output_parameter_for_result %}
99 {{attribute.cpp_type}} result; 99 {{attribute.cpp_type}} result;
100 {{attribute.cpp_value}}; 100 {{attribute.cpp_value}};
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 {%- else %} 205 {%- else %}
206 v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info 206 v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInfo<void>& info
207 {%- endif %}) 207 {%- endif %})
208 { 208 {
209 {% if attribute.is_reflect and attribute.idl_type == 'DOMString' 209 {% if attribute.is_reflect and attribute.idl_type == 'DOMString'
210 and is_node and not attribute.is_implemented_in_private_script %} 210 and is_node and not attribute.is_implemented_in_private_script %}
211 {% set cpp_class, v8_class = 'Element', 'V8Element' %} 211 {% set cpp_class, v8_class = 'Element', 'V8Element' %}
212 {% endif %} 212 {% endif %}
213 {# Local variables #} 213 {# Local variables #}
214 {% if not attribute.is_static %} 214 {% if not attribute.is_static %}
215 v8::Handle<v8::Object> holder = info.Holder(); 215 v8::Local<v8::Object> holder = info.Holder();
216 {% endif %} 216 {% endif %}
217 {% if attribute.has_setter_exception_state %} 217 {% if attribute.has_setter_exception_state %}
218 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na me}}", "{{interface_name}}", holder, info.GetIsolate()); 218 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na me}}", "{{interface_name}}", holder, info.GetIsolate());
219 {% endif %} 219 {% endif %}
220 {% if attribute.use_output_parameter_for_result %} 220 {% if attribute.use_output_parameter_for_result %}
221 {{attribute.cpp_type}} cppValue; 221 {{attribute.cpp_type}} cppValue;
222 {% endif %} 222 {% endif %}
223 {# impl #} 223 {# impl #}
224 {% if attribute.put_forwards %} 224 {% if attribute.put_forwards %}
225 {{cpp_class}}* proxyImpl = {{v8_class}}::toImpl(holder); 225 {{cpp_class}}* proxyImpl = {{v8_class}}::toImpl(holder);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 336
337 337
338 {##############################################################################} 338 {##############################################################################}
339 {% macro attribute_getter_implemented_in_private_script(attribute) %} 339 {% macro attribute_getter_implemented_in_private_script(attribute) %}
340 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeGetter(LocalFrame* frame, {{cpp_class}}* holderImpl, {{attribute.cpp_type}}* result) 340 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeGetter(LocalFrame* frame, {{cpp_class}}* holderImpl, {{attribute.cpp_type}}* result)
341 { 341 {
342 if (!frame) 342 if (!frame)
343 return false; 343 return false;
344 v8::HandleScope handleScope(toIsolate(frame)); 344 v8::HandleScope handleScope(toIsolate(frame));
345 ScriptForbiddenScope::AllowUserAgentScript script; 345 ScriptForbiddenScope::AllowUserAgentScript script;
346 v8::Handle<v8::Context> contextInPrivateScript = toV8Context(frame, DOMWrapp erWorld::privateScriptIsolatedWorld()); 346 v8::Local<v8::Context> contextInPrivateScript = toV8Context(frame, DOMWrappe rWorld::privateScriptIsolatedWorld());
347 if (contextInPrivateScript.IsEmpty()) 347 if (contextInPrivateScript.IsEmpty())
348 return false; 348 return false;
349 ScriptState* scriptState = ScriptState::from(contextInPrivateScript); 349 ScriptState* scriptState = ScriptState::from(contextInPrivateScript);
350 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame); 350 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame);
351 if (!scriptState->executionContext()) 351 if (!scriptState->executionContext())
352 return false; 352 return false;
353 353
354 ScriptState::Scope scope(scriptState); 354 ScriptState::Scope scope(scriptState);
355 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob al(), scriptState->isolate()); 355 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa l(), scriptState->isolate());
356 356
357 ExceptionState exceptionState(ExceptionState::GetterContext, "{{attribute.na me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate() ); 357 ExceptionState exceptionState(ExceptionState::GetterContext, "{{attribute.na me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate() );
358 v8::Handle<v8::Value> v8Value = PrivateScriptRunner::runDOMAttributeGetter(s criptState, scriptStateInUserScript, "{{cpp_class}}", "{{attribute.name}}", hold er); 358 v8::Local<v8::Value> v8Value = PrivateScriptRunner::runDOMAttributeGetter(sc riptState, scriptStateInUserScript, "{{cpp_class}}", "{{attribute.name}}", holde r);
359 if (v8Value.IsEmpty()) 359 if (v8Value.IsEmpty())
360 return false; 360 return false;
361 {{attribute.private_script_v8_value_to_local_cpp_value}}; 361 {{attribute.private_script_v8_value_to_local_cpp_value}};
362 RELEASE_ASSERT(!exceptionState.hadException()); 362 RELEASE_ASSERT(!exceptionState.hadException());
363 *result = cppValue; 363 *result = cppValue;
364 return true; 364 return true;
365 } 365 }
366 {% endmacro %} 366 {% endmacro %}
367 367
368 368
369 {% macro attribute_setter_implemented_in_private_script(attribute) %} 369 {% macro attribute_setter_implemented_in_private_script(attribute) %}
370 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeSetter(LocalFrame* frame, {{cpp_class}}* holderImpl, {{attribute.argument_cpp_type}} cppValue) 370 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeSetter(LocalFrame* frame, {{cpp_class}}* holderImpl, {{attribute.argument_cpp_type}} cppValue)
371 { 371 {
372 if (!frame) 372 if (!frame)
373 return false; 373 return false;
374 v8::HandleScope handleScope(toIsolate(frame)); 374 v8::HandleScope handleScope(toIsolate(frame));
375 ScriptForbiddenScope::AllowUserAgentScript script; 375 ScriptForbiddenScope::AllowUserAgentScript script;
376 v8::Handle<v8::Context> contextInPrivateScript = toV8Context(frame, DOMWrapp erWorld::privateScriptIsolatedWorld()); 376 v8::Local<v8::Context> contextInPrivateScript = toV8Context(frame, DOMWrappe rWorld::privateScriptIsolatedWorld());
377 if (contextInPrivateScript.IsEmpty()) 377 if (contextInPrivateScript.IsEmpty())
378 return false; 378 return false;
379 ScriptState* scriptState = ScriptState::from(contextInPrivateScript); 379 ScriptState* scriptState = ScriptState::from(contextInPrivateScript);
380 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame); 380 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame);
381 if (!scriptState->executionContext()) 381 if (!scriptState->executionContext())
382 return false; 382 return false;
383 383
384 ScriptState::Scope scope(scriptState); 384 ScriptState::Scope scope(scriptState);
385 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob al(), scriptState->isolate()); 385 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Globa l(), scriptState->isolate());
386 386
387 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate() ); 387 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate() );
388 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn UserScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_s cript_cpp_value_to_v8_value}}); 388 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn UserScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_s cript_cpp_value_to_v8_value}});
389 } 389 }
390 {% endmacro %} 390 {% endmacro %}
391 391
392 392
393 {##############################################################################} 393 {##############################################################################}
394 {% macro attribute_configuration(attribute) %} 394 {% macro attribute_configuration(attribute) %}
395 {% set getter_callback = 395 {% set getter_callback =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 access_control, 432 access_control,
433 property_attribute, 433 property_attribute,
434 only_exposed_to_private_script, 434 only_exposed_to_private_script,
435 ] %} 435 ] %}
436 {% if not attribute.is_expose_js_accessors %} 436 {% if not attribute.is_expose_js_accessors %}
437 {% set attribute_configuration_list = attribute_configuration_list 437 {% set attribute_configuration_list = attribute_configuration_list
438 + [on_prototype] %} 438 + [on_prototype] %}
439 {% endif %} 439 {% endif %}
440 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} 440 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}}
441 {%- endmacro %} 441 {%- endmacro %}
OLDNEW
« no previous file with comments | « no previous file | Source/bindings/templates/callback_interface.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698