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

Side by Side Diff: third_party/WebKit/Source/bindings/templates/attributes.cpp.tmpl

Issue 2571063002: Remove Blink-in-JS (Closed)
Patch Set: Created 4 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
OLDNEW
1 {% from 'utilities.cpp.tmpl' import declare_enum_validation_variable, v8_value_t o_local_cpp_value %} 1 {% from 'utilities.cpp.tmpl' import declare_enum_validation_variable, v8_value_t o_local_cpp_value %}
2 2
3 {##############################################################################} 3 {##############################################################################}
4 {% macro attribute_getter(attribute, world_suffix) %} 4 {% macro attribute_getter(attribute, world_suffix) %}
5 static void {{attribute.name}}AttributeGetter{{world_suffix}}( 5 static void {{attribute.name}}AttributeGetter{{world_suffix}}(
6 {%- if attribute.is_data_type_property %} 6 {%- if attribute.is_data_type_property %}
7 const v8::PropertyCallbackInfo<v8::Value>& info 7 const v8::PropertyCallbackInfo<v8::Value>& info
8 {%- else %} 8 {%- else %}
9 const v8::FunctionCallbackInfo<v8::Value>& info 9 const v8::FunctionCallbackInfo<v8::Value>& info
10 {%- endif %}) { 10 {%- endif %}) {
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 ScriptState* scriptState = ScriptState::forReceiverObject(info); 86 ScriptState* scriptState = ScriptState::forReceiverObject(info);
87 {% endif %} 87 {% endif %}
88 {% endif %} 88 {% endif %}
89 {% if attribute.is_getter_raises_exception %} 89 {% if attribute.is_getter_raises_exception %}
90 {{define_exception_state}} 90 {{define_exception_state}}
91 {% endif %} 91 {% endif %}
92 {% if attribute.is_explicit_nullable %} 92 {% if attribute.is_explicit_nullable %}
93 bool isNull = false; 93 bool isNull = false;
94 {% endif %} 94 {% endif %}
95 95
96 {% if attribute.is_implemented_in_private_script %} 96 {% if attribute.cpp_value_original %}
97 {{attribute.cpp_type}} result{{attribute.cpp_type_initializer}};
98 if (!{{attribute.cpp_value_original}})
99 return;
100 {% elif attribute.cpp_value_original %}
101 {{attribute.cpp_type}} {{attribute.cpp_value}}({{attribute.cpp_value_original} }); 97 {{attribute.cpp_type}} {{attribute.cpp_value}}({{attribute.cpp_value_original} });
102 {% endif %} 98 {% endif %}
103 99
104 {% if attribute.use_output_parameter_for_result %} 100 {% if attribute.use_output_parameter_for_result %}
105 {{attribute.cpp_type}} result; 101 {{attribute.cpp_type}} result;
106 {{attribute.cpp_value}}; 102 {{attribute.cpp_value}};
107 {% endif %} 103 {% endif %}
108 104
109 {% if attribute.is_getter_raises_exception %} 105 {% if attribute.is_getter_raises_exception %}
110 if (UNLIKELY(exceptionState.hadException())) 106 if (UNLIKELY(exceptionState.hadException()))
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 188
193 {##############################################################################} 189 {##############################################################################}
194 {% macro attribute_getter_callback(attribute, world_suffix) %} 190 {% macro attribute_getter_callback(attribute, world_suffix) %}
195 void {{attribute.name}}AttributeGetterCallback{{world_suffix}}( 191 void {{attribute.name}}AttributeGetterCallback{{world_suffix}}(
196 {%- if attribute.is_data_type_property %} 192 {%- if attribute.is_data_type_property %}
197 v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>& info 193 v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value>& info
198 {%- else %} 194 {%- else %}
199 const v8::FunctionCallbackInfo<v8::Value>& info 195 const v8::FunctionCallbackInfo<v8::Value>& info
200 {%- endif %}) { 196 {%- endif %}) {
201 {% if attribute.deprecate_as %} 197 {% if attribute.deprecate_as %}
202 Deprecation::countDeprecationIfNotPrivateScript(info.GetIsolate(), currentExec utionContext(info.GetIsolate()), UseCounter::{{attribute.deprecate_as}}); 198 Deprecation::countDeprecation(currentExecutionContext(info.GetIsolate()), UseC ounter::{{attribute.deprecate_as}});
203 {% endif %} 199 {% endif %}
204 200
205 {% if attribute.measure_as %} 201 {% if attribute.measure_as %}
206 UseCounter::countIfNotPrivateScript(info.GetIsolate(), currentExecutionContext (info.GetIsolate()), UseCounter::{{attribute.measure_as('AttributeGetter')}}); 202 UseCounter::count(currentExecutionContext(info.GetIsolate()), UseCounter::{{at tribute.measure_as('AttributeGetter')}});
207 {% endif %} 203 {% endif %}
208 204
209 {% if world_suffix in attribute.activity_logging_world_list_for_getter %} 205 {% if world_suffix in attribute.activity_logging_world_list_for_getter %}
210 {% if attribute.is_static %} 206 {% if attribute.is_static %}
211 ScriptState* scriptState = ScriptState::forFunctionObject(info); 207 ScriptState* scriptState = ScriptState::forFunctionObject(info);
212 {% else %} 208 {% else %}
213 ScriptState* scriptState = ScriptState::forReceiverObject(info); 209 ScriptState* scriptState = ScriptState::forReceiverObject(info);
214 {% endif %} 210 {% endif %}
215 V8PerContextData* contextData = scriptState->perContextData(); 211 V8PerContextData* contextData = scriptState->perContextData();
216 if ( 212 if (
(...skipping 20 matching lines...) Expand all
237 { 233 {
238 return V8PrivateProperty::get{{attribute.cached_accessor_name}}(isolate).get Private(); 234 return V8PrivateProperty::get{{attribute.cached_accessor_name}}(isolate).get Private();
239 } 235 }
240 {% endmacro %} 236 {% endmacro %}
241 237
242 238
243 {##############################################################################} 239 {##############################################################################}
244 {% macro constructor_getter_callback(attribute, world_suffix) %} 240 {% macro constructor_getter_callback(attribute, world_suffix) %}
245 void {{attribute.name}}ConstructorGetterCallback{{world_suffix}}(v8::Local<v8::N ame> property, const v8::PropertyCallbackInfo<v8::Value>& info) { 241 void {{attribute.name}}ConstructorGetterCallback{{world_suffix}}(v8::Local<v8::N ame> property, const v8::PropertyCallbackInfo<v8::Value>& info) {
246 {% if attribute.deprecate_as %} 242 {% if attribute.deprecate_as %}
247 Deprecation::countDeprecationIfNotPrivateScript(info.GetIsolate(), currentExec utionContext(info.GetIsolate()), UseCounter::{{attribute.deprecate_as}}); 243 Deprecation::countDeprecation(currentExecutionContext(info.GetIsolate()), UseC ounter::{{attribute.deprecate_as}});
248 {% endif %} 244 {% endif %}
249 245
250 {% if attribute.measure_as %} 246 {% if attribute.measure_as %}
251 UseCounter::countIfNotPrivateScript(info.GetIsolate(), currentExecutionContext (info.GetIsolate()), UseCounter::{{attribute.measure_as('ConstructorGetter')}}); 247 UseCounter::count(currentExecutionContext(info.GetIsolate()), UseCounter::{{at tribute.measure_as('ConstructorGetter')}});
252 {% endif %} 248 {% endif %}
253 249
254 v8ConstructorAttributeGetter(property, info); 250 v8ConstructorAttributeGetter(property, info);
255 } 251 }
256 {% endmacro %} 252 {% endmacro %}
257 253
258 254
259 {##############################################################################} 255 {##############################################################################}
260 {% macro attribute_setter(attribute, world_suffix) %} 256 {% macro attribute_setter(attribute, world_suffix) %}
261 static void {{attribute.name}}AttributeSetter{{world_suffix}}( 257 static void {{attribute.name}}AttributeSetter{{world_suffix}}(
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 {%- if attribute.is_data_type_property %} 370 {%- if attribute.is_data_type_property %}
375 v8::Local<v8::Name>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInf o<void>& info 371 v8::Local<v8::Name>, v8::Local<v8::Value> v8Value, const v8::PropertyCallbackInf o<void>& info
376 {%- else %} 372 {%- else %}
377 const v8::FunctionCallbackInfo<v8::Value>& info 373 const v8::FunctionCallbackInfo<v8::Value>& info
378 {%- endif %}) { 374 {%- endif %}) {
379 {% if not attribute.is_data_type_property %} 375 {% if not attribute.is_data_type_property %}
380 v8::Local<v8::Value> v8Value = info[0]; 376 v8::Local<v8::Value> v8Value = info[0];
381 {% endif %} 377 {% endif %}
382 378
383 {% if attribute.deprecate_as %} 379 {% if attribute.deprecate_as %}
384 Deprecation::countDeprecationIfNotPrivateScript(info.GetIsolate(), currentExec utionContext(info.GetIsolate()), UseCounter::{{attribute.deprecate_as}}); 380 Deprecation::countDeprecation(currentExecutionContext(info.GetIsolate()), UseC ounter::{{attribute.deprecate_as}});
385 {% endif %} 381 {% endif %}
386 382
387 {% if attribute.measure_as %} 383 {% if attribute.measure_as %}
388 UseCounter::countIfNotPrivateScript(info.GetIsolate(), currentExecutionContext (info.GetIsolate()), UseCounter::{{attribute.measure_as('AttributeSetter')}}); 384 UseCounter::count(currentExecutionContext(info.GetIsolate()), UseCounter::{{at tribute.measure_as('AttributeSetter')}});
389 {% endif %} 385 {% endif %}
390 386
391 {% if world_suffix in attribute.activity_logging_world_list_for_setter %} 387 {% if world_suffix in attribute.activity_logging_world_list_for_setter %}
392 {% if attribute.is_static %} 388 {% if attribute.is_static %}
393 ScriptState* scriptState = ScriptState::forFunctionObject(info); 389 ScriptState* scriptState = ScriptState::forFunctionObject(info);
394 {% else %} 390 {% else %}
395 ScriptState* scriptState = ScriptState::forReceiverObject(info); 391 ScriptState* scriptState = ScriptState::forReceiverObject(info);
396 {% endif %} 392 {% endif %}
397 V8PerContextData* contextData = scriptState->perContextData(); 393 V8PerContextData* contextData = scriptState->perContextData();
398 if ( 394 if (
(...skipping 18 matching lines...) Expand all
417 {% elif attribute.has_cross_origin_setter %} 413 {% elif attribute.has_cross_origin_setter %}
418 {{cpp_class_or_partial}}V8Internal::{{attribute.name}}AttributeSetter(v8Value, V8CrossOriginSetterInfo(info.GetIsolate(), info.Holder())); 414 {{cpp_class_or_partial}}V8Internal::{{attribute.name}}AttributeSetter(v8Value, V8CrossOriginSetterInfo(info.GetIsolate(), info.Holder()));
419 {% else %} 415 {% else %}
420 {{cpp_class_or_partial}}V8Internal::{{attribute.name}}AttributeSetter{{world_s uffix}}(v8Value, info); 416 {{cpp_class_or_partial}}V8Internal::{{attribute.name}}AttributeSetter{{world_s uffix}}(v8Value, info);
421 {% endif %} 417 {% endif %}
422 } 418 }
423 {% endmacro %} 419 {% endmacro %}
424 420
425 421
426 {##############################################################################} 422 {##############################################################################}
427 {% macro attribute_getter_implemented_in_private_script(attribute) %}
428 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeGetter(LocalFrame* frame, {{cpp_class}}* holderImpl, {{attribute.cpp_type}}* result) {
429 if (!frame)
430 return false;
431 v8::HandleScope handleScope(toIsolate(frame));
432 ScriptForbiddenScope::AllowUserAgentScript script;
433 ScriptState* scriptState = ScriptState::forWorld(frame, DOMWrapperWorld::priva teScriptIsolatedWorld());
434 if (!scriptState)
435 return false;
436 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame);
437 if (!scriptStateInUserScript)
438 return false;
439
440 ScriptState::Scope scope(scriptState);
441 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Global( ), scriptState->isolate());
442 ExceptionState exceptionState(scriptState->isolate(), ExceptionState::GetterCo ntext, "{{cpp_class}}", "{{attribute.name}}");
443 v8::Local<v8::Value> v8Value = PrivateScriptRunner::runDOMAttributeGetter(scri ptState, scriptStateInUserScript, "{{cpp_class}}", "{{attribute.name}}", holder) ;
444 if (v8Value.IsEmpty())
445 return false;
446 {{v8_value_to_local_cpp_value(attribute.private_script_v8_value_to_local_cpp_v alue) | indent(2)}}
447 CHECK(!exceptionState.hadException());
448 *result = cppValue;
449 return true;
450 }
451 {% endmacro %}
452
453
454 {% macro attribute_setter_implemented_in_private_script(attribute) %}
455 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeSetter(LocalFrame* frame, {{cpp_class}}* holderImpl, {{attribute.argument_cpp_type}} cppValue) {
456 if (!frame)
457 return false;
458 v8::HandleScope handleScope(toIsolate(frame));
459 ScriptForbiddenScope::AllowUserAgentScript script;
460 ScriptState* scriptState = ScriptState::forWorld(frame, DOMWrapperWorld::priva teScriptIsolatedWorld());
461 if (!scriptState)
462 return false;
463 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame);
464 if (!scriptStateInUserScript)
465 return false;
466
467 ScriptState::Scope scope(scriptState);
468 v8::Local<v8::Value> holder = toV8(holderImpl, scriptState->context()->Global( ), scriptState->isolate());
469 ExceptionState exceptionState(scriptState->isolate(), ExceptionState::SetterCo ntext, "{{cpp_class}}", "{{attribute.name}}");
470 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateInUs erScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_scr ipt_cpp_value_to_v8_value}});
471 }
472 {% endmacro %}
473
474
475 {##############################################################################}
476 {% macro attribute_configuration(attribute) %} 423 {% macro attribute_configuration(attribute) %}
477 {% from 'utilities.cpp.tmpl' import property_location %} 424 {% from 'utilities.cpp.tmpl' import property_location %}
478 {% if attribute.constructor_type %} 425 {% if attribute.constructor_type %}
479 {% set getter_callback = 426 {% set getter_callback =
480 '%sV8Internal::%sConstructorGetterCallback' % (cpp_class_or_partial, attr ibute.name) 427 '%sV8Internal::%sConstructorGetterCallback' % (cpp_class_or_partial, attr ibute.name)
481 if attribute.needs_constructor_getter_callback else 428 if attribute.needs_constructor_getter_callback else
482 'v8ConstructorAttributeGetter' %} 429 'v8ConstructorAttributeGetter' %}
483 {% set setter_callback = '0' %} 430 {% set setter_callback = '0' %}
484 {% else %}{# regular attributes #} 431 {% else %}{# regular attributes #}
485 {% set getter_callback = '%sV8Internal::%sAttributeGetterCallback' % 432 {% set getter_callback = '%sV8Internal::%sAttributeGetterCallback' %
(...skipping 13 matching lines...) Expand all
499 attribute.constructor_type 446 attribute.constructor_type
500 if attribute.constructor_type else '0' %} 447 if attribute.constructor_type else '0' %}
501 {% if attribute.is_data_type_property %} 448 {% if attribute.is_data_type_property %}
502 {% set access_control = 'static_cast<v8::AccessControl>(%s)' % 449 {% set access_control = 'static_cast<v8::AccessControl>(%s)' %
503 ' | '.join(attribute.access_control_list) %} 450 ' | '.join(attribute.access_control_list) %}
504 {% else %} 451 {% else %}
505 {% set access_control = 'v8::DEFAULT' %} 452 {% set access_control = 'v8::DEFAULT' %}
506 {% endif %} 453 {% endif %}
507 {% set property_attribute = 'static_cast<v8::PropertyAttribute>(%s)' % 454 {% set property_attribute = 'static_cast<v8::PropertyAttribute>(%s)' %
508 ' | '.join(attribute.property_attributes) %} 455 ' | '.join(attribute.property_attributes) %}
509 {% set only_exposed_to_private_script =
510 'V8DOMConfiguration::OnlyExposedToPrivateScript'
511 if attribute.only_exposed_to_private_script else
512 'V8DOMConfiguration::ExposedToAllScripts' %}
513 {% set cached_accessor_callback = 456 {% set cached_accessor_callback =
514 '%sV8Internal::%sCachedAccessorCallback' % (cpp_class_or_partial, attribu te.name) 457 '%sV8Internal::%sCachedAccessorCallback' % (cpp_class_or_partial, attribu te.name)
515 if attribute.is_cached_accessor else 458 if attribute.is_cached_accessor else
516 'nullptr' %} 459 'nullptr' %}
517 {% set holder_check = 'V8DOMConfiguration::DoNotCheckHolder' 460 {% set holder_check = 'V8DOMConfiguration::DoNotCheckHolder'
518 if attribute.is_lenient_this else 'V8DOMConfiguration::CheckHolder' %} 461 if attribute.is_lenient_this else 'V8DOMConfiguration::CheckHolder' %}
519 {% set attribute_configuration_list = [ 462 {% set attribute_configuration_list = [
520 '"%s"' % attribute.name, 463 '"%s"' % attribute.name,
521 getter_callback, 464 getter_callback,
522 setter_callback, 465 setter_callback,
523 getter_callback_for_main_world, 466 getter_callback_for_main_world,
524 setter_callback_for_main_world, 467 setter_callback_for_main_world,
525 cached_accessor_callback, 468 cached_accessor_callback,
526 wrapper_type_info, 469 wrapper_type_info,
527 access_control, 470 access_control,
528 property_attribute, 471 property_attribute,
529 only_exposed_to_private_script,
530 property_location(attribute), 472 property_location(attribute),
531 holder_check, 473 holder_check,
532 ] %} 474 ] %}
533 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} 475 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}}
534 {%- endmacro %} 476 {%- endmacro %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698