Chromium Code Reviews| Index: pkg/web_components/lib/dart_support.js |
| diff --git a/pkg/web_components/lib/dart_support.js b/pkg/web_components/lib/dart_support.js |
| index 4e1995a4e2840564771c22dee5d0c37f25019821..7d73f50979b616658d5ad7da32e33c1082db8e34 100644 |
| --- a/pkg/web_components/lib/dart_support.js |
| +++ b/pkg/web_components/lib/dart_support.js |
| @@ -116,6 +116,28 @@ |
| upgraders[name] = upgrader; |
| } |
| + // dartNativeDispatchHooksTransformer is described on initHooks() in |
| + // sdk/lib/_internal/lib/native_helper.dart. |
| + if (typeof window.dartNativeDispatchHooksTransformer == 'undefined') |
| + window.dartNativeDispatchHooksTransformer = []; |
| + |
| + window.dartNativeDispatchHooksTransformer.push(function(hooks) { |
|
Siggi Cherem (dart-lang)
2014/06/11 19:34:57
should we also check for !!ShadowDOMPOlyfill?
See
sra1
2014/06/11 19:43:24
Done.
|
| + var originalGetUnknownTag = hooks.getUnknownTag; |
| + hooks.getUnknownTag = function(o, tag) { |
| + // Custom elements outside the app in chrome have a constructor |
| + // names like "x-b". |
|
Siggi Cherem (dart-lang)
2014/06/11 19:34:57
nit: say x-tag instead of x-b (more commonly used
sra1
2014/06/11 19:43:24
Done.
|
| + if (/-/.test(tag)) { |
| + var s = Object.prototype.toString.call(o); |
| + var match = s.match(/^\[object ([A-Za-z]*)\]$/); |
|
Siggi Cherem (dart-lang)
2014/06/11 19:34:57
let's add Element in the regex
sra1
2014/06/11 19:43:24
Done.
|
| + if (match) { |
| + var name = match[1]; |
| + if (name != "Object") return name; |
| + } |
| + return originalGetUnknownTag(o, tag); |
| + } |
| + }; |
| + }); |
| + |
| doc._registerDartTypeUpgrader = registerDartTypeUpgrader; |
| doc.registerElement = registerElement; |
| })(document); |