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

Unified Diff: Source/bindings/templates/methods.cpp

Issue 329223004: [DeprecateAs] if call addEventListener or removeEventListener without enough arguments Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix template condition Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/bindings/templates/interface.cpp ('k') | Source/core/events/EventTarget.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/bindings/templates/methods.cpp
diff --git a/Source/bindings/templates/methods.cpp b/Source/bindings/templates/methods.cpp
index 598506269c938201bd0d63a2271c22b8b373d6da..c3dc21682a703dc997a46897f673aa76e5e3f4e8 100644
--- a/Source/bindings/templates/methods.cpp
+++ b/Source/bindings/templates/methods.cpp
@@ -21,7 +21,7 @@ static void {{method.name}}{{method.overload_index}}Method{{world_suffix}}(const
CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
{% endif %}
{# Security checks #}
- {# FIXME: change to method.is_check_security_for_window #}
+ {# FIXME: merge to method.is_check_security_for_frame http://crbug.com/383699 #}
{% if interface_name == 'EventTarget' %}
if (LocalDOMWindow* window = impl->toDOMWindow()) {
if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window->frame(), exceptionState)) {
@@ -258,13 +258,14 @@ if (exceptionState.hadException()) {
{{v8_set_return_value}};
{%- endif %}{# None for void #}
{# Post-set #}
-{% if interface_name == 'EventTarget' and method.name in ('addEventListener',
- 'removeEventListener') %}
+{# Arguments length check needed to skip action on legacy calls without enough
+ arguments. http://crbug.com/353484 #}
+{% if interface_name == 'EventTarget' and
+ method.name in ('addEventListener', 'removeEventListener') and
+ method.arguments|length >= 2 %}
{% set hidden_dependency_action = 'addHiddenValueToArray'
if method.name == 'addEventListener' else 'removeHiddenValueFromArray' %}
-{# Length check needed to skip action on legacy calls without enough arguments.
- http://crbug.com/353484 #}
-if (info.Length() >= 2 && listener && !impl->toNode())
+if (listener && !impl->toNode())
{{hidden_dependency_action}}(info.Holder(), info[1], {{v8_class}}::eventListenerCacheIndex, info.GetIsolate());
{% endif %}
{% endmacro %}
« no previous file with comments | « Source/bindings/templates/interface.cpp ('k') | Source/core/events/EventTarget.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698