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

Unified Diff: sdk/lib/html/dart2js/html_dart2js.dart

Issue 23498053: Revert "Revert "Dart2js support for custom element lifecycle events"" (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 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:
Download patch
Index: sdk/lib/html/dart2js/html_dart2js.dart
diff --git a/sdk/lib/html/dart2js/html_dart2js.dart b/sdk/lib/html/dart2js/html_dart2js.dart
index 2f2259cf9ce82311f99182db49eab18d87e5dcf4..4e97d224d149db9b75e12b1f3f1e3a3061e3ec1c 100644
--- a/sdk/lib/html/dart2js/html_dart2js.dart
+++ b/sdk/lib/html/dart2js/html_dart2js.dart
@@ -9146,6 +9146,20 @@ abstract class Element extends Node implements ParentNode, ChildNode native "Ele
@Experimental()
void created() {}
+ /**
+ * Called by the DOM when this element has been inserted into the live
+ * document.
+ */
+ @Experimental()
+ void enteredView() {}
+
+ /**
+ * Called by the DOM when this element has been removed from the live
+ * document.
+ */
+ @Experimental()
+ void leftView() {}
+
// Hooks to support custom WebComponents.
@Creates('Null') // Set from Dart code; does not instantiate a native type.
@@ -32037,14 +32051,22 @@ _callCreated(receiver) {
return receiver.created();
}
-_makeCreatedCallbackMethod() {
+_callEnteredView(receiver) {
+ return receiver.enteredView();
+}
+
+_callLeftView(receiver) {
+ return receiver.leftView();
+}
+
+_makeCallbackMethod(callback) {
return JS('',
'''((function(invokeCallback) {
return function() {
return invokeCallback(this);
};
})(#))''',
- convertDartClosureToJS(_callCreated, 1));
+ convertDartClosureToJS(callback, 1));
}
const _typeNameToTag = const {
@@ -32106,10 +32128,18 @@ void _registerCustomElement(context, document, String tag, Type type,
var properties = JS('=Object', '{}');
- var jsCreatedCallback = _makeCreatedCallbackMethod();
-
JS('void', '#.createdCallback = #', properties,
- JS('=Object', '{value: #}', jsCreatedCallback));
+ JS('=Object', '{value: #}', _makeCallbackMethod(_callCreated)));
+ JS('void', '#.enteredViewCallback = #', properties,
+ JS('=Object', '{value: #}', _makeCallbackMethod(_callEnteredView)));
+ JS('void', '#.leftViewCallback = #', properties,
+ JS('=Object', '{value: #}', _makeCallbackMethod(_callLeftView)));
+
+ // TODO(blois): Bug 13220- remove once transition is complete
+ JS('void', '#.enteredDocumentCallback = #', properties,
+ JS('=Object', '{value: #}', _makeCallbackMethod(_callEnteredView)));
+ JS('void', '#.leftDocumentCallback = #', properties,
+ JS('=Object', '{value: #}', _makeCallbackMethod(_callLeftView)));
var baseProto = JS('=Object', '#.prototype', baseConstructor);
var proto = JS('=Object', 'Object.create(#, #)', baseProto, properties);

Powered by Google App Engine
This is Rietveld 408576698