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

Unified Diff: Source/bindings/scripts/CodeGeneratorV8.pm

Issue 18789002: Implement Custom Elements' attributeChangedCallback. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Sync to tip. Created 7 years, 5 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
Index: Source/bindings/scripts/CodeGeneratorV8.pm
diff --git a/Source/bindings/scripts/CodeGeneratorV8.pm b/Source/bindings/scripts/CodeGeneratorV8.pm
index 0da38b0f83e164c762a88ca0189ac58c792658df..0e3b0fc2686f449437091aa2f483aadd82eeb1ae 100644
--- a/Source/bindings/scripts/CodeGeneratorV8.pm
+++ b/Source/bindings/scripts/CodeGeneratorV8.pm
@@ -1649,6 +1649,7 @@ sub GenerateReplaceableAttrSetterCallback
$code .= "{\n";
$code .= GenerateFeatureObservation($interface->extendedAttributes->{"MeasureAs"});
$code .= GenerateDeprecationNotification($interface->extendedAttributes->{"DeprecateAs"});
+ $code .= GenerateCustomElementInvocationScopeIfNeeded($interface->extendedAttributes);
if (HasActivityLogging("", $interface->extendedAttributes, "Setter")) {
die "IDL error: ActivityLog attribute cannot exist on a ReplacableAttrSetterCallback";
}
@@ -1692,11 +1693,7 @@ sub GenerateCustomElementInvocationScopeIfNeeded
my $code = "";
my $ext = shift;
- if ($ext->{"DeliverCustomElementCallbacks"}) {
- if ($ext->{"Reflect"}) {
- die "IDL error: [Reflect] and [DeliverCustomElementCallbacks] cannot coexist yet";
- }
-
+ if ($ext->{"DeliverCustomElementCallbacks"} or $ext->{"Reflect"}) {
AddToImplIncludes("core/dom/CustomElementCallbackDispatcher.h");
$code .= <<END;
CustomElementCallbackDispatcher::CallbackDeliveryScope deliveryScope;
@@ -1730,6 +1727,7 @@ sub GenerateNormalAttrSetterCallback
if (HasActivityLogging($forMainWorldSuffix, $attrExt, "Setter")) {
$code .= GenerateActivityLogging("Setter", $interface, "${attrName}");
}
+ $code .= GenerateCustomElementInvocationScopeIfNeeded($attrExt);
if (HasCustomSetter($attrExt)) {
$code .= " ${v8ClassName}::${attrName}AttrSetterCustom(name, value, info);\n";
} else {

Powered by Google App Engine
This is Rietveld 408576698