| OLD | NEW |
| 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 { |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 return false; | 343 return false; |
| 344 ScriptState* scriptState = ScriptState::from(contextInPrivateScript); | 344 ScriptState* scriptState = ScriptState::from(contextInPrivateScript); |
| 345 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame); | 345 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame); |
| 346 if (!scriptState->executionContext()) | 346 if (!scriptState->executionContext()) |
| 347 return false; | 347 return false; |
| 348 | 348 |
| 349 ScriptState::Scope scope(scriptState); | 349 ScriptState::Scope scope(scriptState); |
| 350 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob
al(), scriptState->isolate()); | 350 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob
al(), scriptState->isolate()); |
| 351 | 351 |
| 352 ExceptionState exceptionState(ExceptionState::GetterContext, "{{attribute.na
me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate()
); | 352 ExceptionState exceptionState(ExceptionState::GetterContext, "{{attribute.na
me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate()
); |
| 353 v8::TryCatch block; | 353 v8::Handle<v8::Value> v8Value = PrivateScriptRunner::runDOMAttributeGetter(s
criptState, scriptStateInUserScript, "{{cpp_class}}", "{{attribute.name}}", hold
er); |
| 354 v8::Handle<v8::Value> v8Value = PrivateScriptRunner::runDOMAttributeGetter(s
criptState, "{{cpp_class}}", "{{attribute.name}}", holder); | 354 if (v8Value.IsEmpty()) |
| 355 if (block.HasCaught()) { | |
| 356 PrivateScriptRunner::rethrowExceptionInPrivateScript(scriptState->isolat
e(), block, scriptStateInUserScript, ExceptionState::GetterContext, "{{attribute
.name}}", "{{cpp_class}}"); | |
| 357 block.ReThrow(); | |
| 358 return false; | 355 return false; |
| 359 } | |
| 360 {{attribute.private_script_v8_value_to_local_cpp_value}}; | 356 {{attribute.private_script_v8_value_to_local_cpp_value}}; |
| 361 RELEASE_ASSERT(!exceptionState.hadException()); | 357 RELEASE_ASSERT(!exceptionState.hadException()); |
| 362 *result = cppValue; | 358 *result = cppValue; |
| 363 return true; | 359 return true; |
| 364 } | 360 } |
| 365 {% endmacro %} | 361 {% endmacro %} |
| 366 | 362 |
| 367 | 363 |
| 368 {% macro attribute_setter_implemented_in_private_script(attribute) %} | 364 {% macro attribute_setter_implemented_in_private_script(attribute) %} |
| 369 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeSetter(LocalFrame*
frame, {{cpp_class}}* holderImpl, {{attribute.argument_cpp_type}} cppValue) | 365 bool {{v8_class}}::PrivateScript::{{attribute.name}}AttributeSetter(LocalFrame*
frame, {{cpp_class}}* holderImpl, {{attribute.argument_cpp_type}} cppValue) |
| 370 { | 366 { |
| 371 if (!frame) | 367 if (!frame) |
| 372 return false; | 368 return false; |
| 373 v8::HandleScope handleScope(toIsolate(frame)); | 369 v8::HandleScope handleScope(toIsolate(frame)); |
| 374 ScriptForbiddenScope::AllowUserAgentScript script; | 370 ScriptForbiddenScope::AllowUserAgentScript script; |
| 375 v8::Handle<v8::Context> contextInPrivateScript = toV8Context(frame, DOMWrapp
erWorld::privateScriptIsolatedWorld()); | 371 v8::Handle<v8::Context> contextInPrivateScript = toV8Context(frame, DOMWrapp
erWorld::privateScriptIsolatedWorld()); |
| 376 if (contextInPrivateScript.IsEmpty()) | 372 if (contextInPrivateScript.IsEmpty()) |
| 377 return false; | 373 return false; |
| 378 ScriptState* scriptState = ScriptState::from(contextInPrivateScript); | 374 ScriptState* scriptState = ScriptState::from(contextInPrivateScript); |
| 379 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame); | 375 ScriptState* scriptStateInUserScript = ScriptState::forMainWorld(frame); |
| 380 if (!scriptState->executionContext()) | 376 if (!scriptState->executionContext()) |
| 381 return false; | 377 return false; |
| 382 | 378 |
| 383 ScriptState::Scope scope(scriptState); | 379 ScriptState::Scope scope(scriptState); |
| 384 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob
al(), scriptState->isolate()); | 380 v8::Handle<v8::Value> holder = toV8(holderImpl, scriptState->context()->Glob
al(), scriptState->isolate()); |
| 385 | 381 |
| 386 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na
me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate()
); | 382 ExceptionState exceptionState(ExceptionState::SetterContext, "{{attribute.na
me}}", "{{cpp_class}}", scriptState->context()->Global(), scriptState->isolate()
); |
| 387 v8::TryCatch block; | 383 return PrivateScriptRunner::runDOMAttributeSetter(scriptState, scriptStateIn
UserScript, "{{cpp_class}}", "{{attribute.name}}", holder, {{attribute.private_s
cript_cpp_value_to_v8_value}}); |
| 388 PrivateScriptRunner::runDOMAttributeSetter(scriptState, "{{cpp_class}}", "{{
attribute.name}}", holder, {{attribute.private_script_cpp_value_to_v8_value}}); | |
| 389 if (block.HasCaught()) { | |
| 390 PrivateScriptRunner::rethrowExceptionInPrivateScript(scriptState->isolat
e(), block, scriptStateInUserScript, ExceptionState::SetterContext, "{{attribute
.name}}", "{{cpp_class}}"); | |
| 391 block.ReThrow(); | |
| 392 return false; | |
| 393 } | |
| 394 return true; | |
| 395 } | 384 } |
| 396 {% endmacro %} | 385 {% endmacro %} |
| 397 | 386 |
| 398 | 387 |
| 399 {##############################################################################} | 388 {##############################################################################} |
| 400 {% macro attribute_configuration(attribute) %} | 389 {% macro attribute_configuration(attribute) %} |
| 401 {% set getter_callback = | 390 {% set getter_callback = |
| 402 '%sV8Internal::%sAttributeGetterCallback' % | 391 '%sV8Internal::%sAttributeGetterCallback' % |
| 403 (cpp_class, attribute.name) | 392 (cpp_class, attribute.name) |
| 404 if not attribute.constructor_type else | 393 if not attribute.constructor_type else |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 access_control, | 427 access_control, |
| 439 property_attribute, | 428 property_attribute, |
| 440 only_exposed_to_private_script, | 429 only_exposed_to_private_script, |
| 441 ] %} | 430 ] %} |
| 442 {% if not attribute.is_expose_js_accessors %} | 431 {% if not attribute.is_expose_js_accessors %} |
| 443 {% set attribute_configuration_list = attribute_configuration_list | 432 {% set attribute_configuration_list = attribute_configuration_list |
| 444 + [on_prototype] %} | 433 + [on_prototype] %} |
| 445 {% endif %} | 434 {% endif %} |
| 446 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} | 435 {{'{'}}{{attribute_configuration_list | join(', ')}}{{'}'}} |
| 447 {%- endmacro %} | 436 {%- endmacro %} |
| OLD | NEW |