From 2bffc4c84e706043355eaf367100b60beb9cce60 Mon Sep 17 00:00:00 2001 From: Steven Orvell Date: Tue, 4 Aug 2015 18:33:04 -0700 Subject: [PATCH] Fixes #2193: Implements workaround for https://code.google.com/p/chromium/issues/detail?id=516550 by adding Polymer.RenderStatus.whenReady and using it to defer `attached` --- src/lib/base.html | 10 +++- src/lib/imports-status.html | 46 --------------- src/lib/render-status.html | 65 +++++++++++++++++++++ src/lib/template/dom-bind.html | 4 +- src/polymer-lib.html | 1 + test/runner.html | 1 + test/smoke/offsetParent-polymer-import.html | 36 ++++++++++++ test/smoke/offsetParent.html | 12 +--- test/unit/attached-style-elements.html | 32 ++++++++++ test/unit/attached-style.html | 62 ++++++++++++++++++++ 10 files changed, 209 insertions(+), 60 deletions(-) delete mode 100644 src/lib/imports-status.html create mode 100644 src/lib/render-status.html create mode 100644 test/smoke/offsetParent-polymer-import.html create mode 100644 test/unit/attached-style-elements.html create mode 100644 test/unit/attached-style.html diff --git a/src/lib/base.html b/src/lib/base.html index 80d62ae446..3e4a5e2fb2 100644 --- a/src/lib/base.html +++ b/src/lib/base.html @@ -37,8 +37,14 @@ // reserved for canonical behavior attachedCallback: function() { - this.isAttached = true; - this._doBehavior('attached'); // abstract + // NOTE: workaround for: + // https://code.google.com/p/chromium/issues/detail?id=516550 + // To allow querying style/layout data in attached, we defer it + // until we are sure rendering is ready. + Polymer.RenderStatus.whenReady(function() { + this.isAttached = true; + this._doBehavior('attached'); // abstract + }.bind(this)); }, // reserved for canonical behavior diff --git a/src/lib/imports-status.html b/src/lib/imports-status.html deleted file mode 100644 index 922d92c386..0000000000 --- a/src/lib/imports-status.html +++ /dev/null @@ -1,46 +0,0 @@ - - - \ No newline at end of file diff --git a/src/lib/render-status.html b/src/lib/render-status.html new file mode 100644 index 0000000000..092e4bba68 --- /dev/null +++ b/src/lib/render-status.html @@ -0,0 +1,65 @@ + + + \ No newline at end of file diff --git a/src/lib/template/dom-bind.html b/src/lib/template/dom-bind.html index bd86d547b6..c0064e9ce7 100644 --- a/src/lib/template/dom-bind.html +++ b/src/lib/template/dom-bind.html @@ -48,8 +48,6 @@ --> - - + diff --git a/test/smoke/offsetParent.html b/test/smoke/offsetParent.html index cfa609e344..70f7fe1f59 100644 --- a/test/smoke/offsetParent.html +++ b/test/smoke/offsetParent.html @@ -10,15 +10,9 @@ --> - - - + + + diff --git a/test/unit/attached-style-elements.html b/test/unit/attached-style-elements.html new file mode 100644 index 0000000000..460b8d2d8a --- /dev/null +++ b/test/unit/attached-style-elements.html @@ -0,0 +1,32 @@ + + + + + + diff --git a/test/unit/attached-style.html b/test/unit/attached-style.html new file mode 100644 index 0000000000..cc8dee06c0 --- /dev/null +++ b/test/unit/attached-style.html @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + +