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

Unified Diff: third_party/polymer/v0_8/components-chromium/polymer/src/lib/style-util-extracted.js

Issue 1082403004: Import Polymer 0.8 and several key elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Also remove polymer/explainer Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: third_party/polymer/v0_8/components-chromium/polymer/src/lib/style-util-extracted.js
diff --git a/third_party/polymer/v0_8/components-chromium/polymer/src/lib/style-util-extracted.js b/third_party/polymer/v0_8/components-chromium/polymer/src/lib/style-util-extracted.js
new file mode 100644
index 0000000000000000000000000000000000000000..a26a11bf744d85fb9cb28c6b2337b657a7531f26
--- /dev/null
+++ b/third_party/polymer/v0_8/components-chromium/polymer/src/lib/style-util-extracted.js
@@ -0,0 +1,64 @@
+
+
+ (function() {
+
+ function toCssText(rules, callback) {
+ if (typeof rules === 'string') {
+ rules = Polymer.CssParse.parse(rules);
+ }
+ if (callback) {
+ forEachStyleRule(rules, callback);
+ }
+ return Polymer.CssParse.stringify(rules);
+ }
+
+ function forEachStyleRule(node, cb) {
+ var s = node.selector;
+ var skipRules = false;
+ if (s) {
+ if ((s.indexOf(AT_RULE) !== 0) && (s.indexOf(MIXIN_SELECTOR) !== 0)) {
+ cb(node);
+ }
+ skipRules = (s.indexOf(KEYFRAME_RULE) >= 0) ||
+ (s.indexOf(MIXIN_SELECTOR) >= 0);
+ }
+ var r$ = node.rules;
+ if (r$ && !skipRules) {
+ for (var i=0, l=r$.length, r; (i<l) && (r=r$[i]); i++) {
+ forEachStyleRule(r, cb);
+ }
+ }
+ }
+
+ // add a string of cssText to the document.
+ function applyCss(cssText, moniker, target, lowPriority) {
+ var style = document.createElement('style');
+ if (moniker) {
+ style.setAttribute('scope', moniker);
+ }
+ style.textContent = cssText;
+ target = target || document.head;
+ if (lowPriority) {
+ var n$ = target.querySelectorAll('style[scope]');
+ var ref = n$.length ? n$[n$.length-1].nextSibling : target.firstChild;
+ target.insertBefore(style, ref);
+ } else {
+ target.appendChild(style);
+ }
+ return style;
+ }
+
+ var AT_RULE = '@';
+ var KEYFRAME_RULE = 'keyframe';
+ var MIXIN_SELECTOR = '--';
+
+ // exports
+ Polymer.StyleUtil = {
+ parser: Polymer.CssParse,
+ applyCss: applyCss,
+ forEachStyleRule: forEachStyleRule,
+ toCssText: toCssText
+ };
+
+ })();
+

Powered by Google App Engine
This is Rietveld 408576698