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

Side by Side Diff: tools/dom/templates/html/impl/impl_HTMLDocument.darttemplate

Issue 1409743003: Hide internal methods like wrap_jso from the dart:html public interface (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Review fixes Created 5 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // WARNING: Do not edit - generated code. 5 // WARNING: Do not edit - generated code.
6 6
7 part of $LIBRARYNAME; 7 part of $LIBRARYNAME;
8 8
9 $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS { 9 $(ANNOTATIONS)$(NATIVESPEC)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS {
10 $!MEMBERS 10 $!MEMBERS
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 // Only components derived from HTML* can be extended. 387 // Only components derived from HTML* can be extended.
388 throw new DomException.jsInterop("HierarchyRequestError: Only HTML element s can be customized."); 388 throw new DomException.jsInterop("HierarchyRequestError: Only HTML element s can be customized.");
389 } 389 }
390 390
391 var customClassType = _getDartHtmlClassName(classMirror); 391 var customClassType = _getDartHtmlClassName(classMirror);
392 392
393 if (extendsTag != null) { 393 if (extendsTag != null) {
394 var nativeElement = document.createElement(extendsTag); 394 var nativeElement = document.createElement(extendsTag);
395 395
396 // Trying to extend a native element is it the Dart class consistent with the 396 // Trying to extend a native element is it the Dart class consistent with the
397 // extendsTag? 397 // extendsTag?
398 if (nativeElement.runtimeType != customClassType.reflectedType) { 398 if (nativeElement.runtimeType != customClassType.reflectedType) {
399 var nativeElementClassMirror = reflectClass(nativeElement.runtimeType); 399 var nativeElementClassMirror = reflectClass(nativeElement.runtimeType);
400 var customClassNativeElement = MirrorSystem.getName(customClassType.simp leName); 400 var customClassNativeElement = MirrorSystem.getName(customClassType.simp leName);
401 var extendsNativeElement = MirrorSystem.getName(nativeElementClassMirror .simpleName); 401 var extendsNativeElement = MirrorSystem.getName(nativeElementClassMirror .simpleName);
402 throw new DomException.jsInterop("HierarchyRequestError: Custom class ty pe ($customClassNativeElement) and extendsTag class ($extendsNativeElement) don' t match ."); 402 throw new DomException.jsInterop("HierarchyRequestError: Custom class ty pe ($customClassNativeElement) and extendsTag class ($extendsNativeElement) don' t match .");
403 } 403 }
404 } else if (customClassType.reflectedType != HtmlElement && customClassType.r eflectedType != svg.SvgElement) { 404 } else if (customClassType.reflectedType != HtmlElement && customClassType.r eflectedType != svg.SvgElement) {
405 var customClassName = MirrorSystem.getName(classMirror.simpleName); 405 var customClassName = MirrorSystem.getName(classMirror.simpleName);
406 var customClassElement = MirrorSystem.getName(customClassType.simpleName); 406 var customClassElement = MirrorSystem.getName(customClassType.simpleName);
407 throw new DomException.jsInterop("HierarchyRequestError: Custom element $c ustomClassName is a native $customClassElement should be derived from HtmlElemen t or SvgElement."); 407 throw new DomException.jsInterop("HierarchyRequestError: Custom element $c ustomClassName is a native $customClassElement should be derived from HtmlElemen t or SvgElement.");
408 } 408 }
409 409
410 if (_hasCreatedConstructor(classMirror)) { 410 if (_hasCreatedConstructor(classMirror)) {
411 // Start the hookup the JS way create an <x-foo> element that extends the 411 // Start the hookup the JS way create an <x-foo> element that extends the
412 // <x-base> custom element. Inherit its prototype and signal what tag is 412 // <x-base> custom element. Inherit its prototype and signal what tag is
413 // inherited: 413 // inherited:
414 // 414 //
415 // var myProto = Object.create(HTMLElement.prototype); 415 // var myProto = Object.create(HTMLElement.prototype);
416 // var myElement = document.registerElement('x-foo', {prototype: myPro to}); 416 // var myElement = document.registerElement('x-foo', {prototype: myPro to});
417 var baseElement = js.JsNative.getProperty(js.context, jsClassName); 417 var baseElement = js.JsNative.getProperty(js.context, jsClassName);
418 if (baseElement == null) { 418 if (baseElement == null) {
419 // Couldn't find the HTML element so use a generic one. 419 // Couldn't find the HTML element so use a generic one.
420 baseElement = js.JsNative.getProperty(js.context, 'HTMLElement'); 420 baseElement = js.JsNative.getProperty(js.context, 'HTMLElement');
421 } 421 }
422 var elemProto = js.JsNative.callMethod(js.JsNative.getProperty(js.context, 'Object'), "create", [js.JsNative.getProperty(baseElement, 'prototype')]); 422 var elemProto = js.JsNative.callMethod(js.JsNative.getProperty(js.context, 'Object'), "create", [js.JsNative.getProperty(baseElement, 'prototype')]);
423 423
424 // Remember for any upgrading done in wrap_jso. 424 // Remember for any upgrading done in wrap_jso.
425 _addCustomElementType(tag, customElementClass, extendsTag); 425 addCustomElementType(tag, customElementClass, extendsTag);
426 426
427 // TODO(terry): Hack to stop recursion re-creating custom element when the 427 // TODO(terry): Hack to stop recursion re-creating custom element when the
428 // created() constructor of the custom element does e.g., 428 // created() constructor of the custom element does e.g.,
429 // 429 //
430 // MyElement.created() : super.created() { 430 // MyElement.created() : super.created() {
431 // this.innerHtml = "<b>I'm an x-foo-with-markup!</b>"; 431 // this.innerHtml = "<b>I'm an x-foo-with-markup!</b>";
432 // } 432 // }
433 // 433 //
434 // sanitizing causes custom element to created recursively 434 // sanitizing causes custom element to created recursively
435 // until stack overflow. 435 // until stack overflow.
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 /// parameter must be provided. 548 /// parameter must be provided.
549 @Experimental() 549 @Experimental()
550 ElementUpgrader createElementUpgrader(Type type, {String extendsTag}) { 550 ElementUpgrader createElementUpgrader(Type type, {String extendsTag}) {
551 $if DART2JS 551 $if DART2JS
552 return new _JSElementUpgrader(this, type, extendsTag); 552 return new _JSElementUpgrader(this, type, extendsTag);
553 $else 553 $else
554 return new _VMElementUpgrader(this, type, extendsTag); 554 return new _VMElementUpgrader(this, type, extendsTag);
555 $endif 555 $endif
556 } 556 }
557 } 557 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698