Skip to content
Browse files

Move non-webcomponents script unresolved case to `load` instead of sy…

…nchronous

Fixes #1723
  • Loading branch information...
1 parent c0123cf commit 2258920ba226f7bc2572bf3028086e561b0f9db7 @azakus azakus committed
Showing with 42 additions and 3 deletions.
  1. +6 −2 src/lib/unresolved.html
  2. +2 −1 test/runner.html
  3. +34 −0 test/unit/script-after-import-in-head.html
View
8 src/lib/unresolved.html
@@ -9,7 +9,7 @@
-->
<script>
(function() {
-
+
// Ensure that the `unresolved` attribute added by the WebComponents polyfills
// is removed. This is done as a convenience so users don't have to remember
// to do so themselves. This attribute provides FOUC prevention when
@@ -22,7 +22,11 @@
if (window.WebComponents) {
addEventListener('WebComponentsReady', resolve);
} else {
- resolve();
+ if (document.readyState === 'interactive' || document.readyState === 'complete') {
+ resolve();
+ } else {
+ addEventListener('DOMContentLoaded', resolve);
+ }
}
})();
View
3 test/runner.html
@@ -48,7 +48,8 @@
'unit/dynamic-import.html',
'unit/dom-repeat.html',
'unit/dom-if.html',
- 'unit/dom-bind.html'
+ 'unit/dom-bind.html',
+ 'unit/script-after-import-in-head.html'
]);
</script>
</body>
View
34 test/unit/script-after-import-in-head.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<!--
+@license
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <script src="../../../web-component-tester/browser.js"></script>
+ <script>
+ var shouldRun = 'import' in document.createElement('link');
+ </script>
+ <link rel="import" href="../../polymer.html">
+ <script>var SCRIPT_AFTER_IMPORT_IN_HEAD = true;</script>
+</head>
+<body>
+
+ <script>
+ suite('head scripts', function() {
+ var t = shouldRun ? test : test.skip;
+ t('script after import in head works', function() {
+ assert(SCRIPT_AFTER_IMPORT_IN_HEAD);
+ assert.equal(document.body.getAttribute('unresolved'), null);
+ });
+ });
+ </script>
+
+</body>
+</html>

0 comments on commit 2258920

Please sign in to comment.
Something went wrong with that request. Please try again.