10000 lib: try removing getAllRuleSelector entirely · ihorml/plotly.js@05e9dd0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 05e9dd0

Browse files
committed
lib: try removing getAllRuleSelector entirely
1 parent e37d88b commit 05e9dd0

File tree

1 file changed

+7
-28
lines changed

1 file changed

+7
-28
lines changed

src/lib/plotcss_utils.js

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@ var plotcss = require('../../build/plotcss');
1414

1515
// Inject styling information into the document containing the graph div
1616
exports.injectStyles = function injectStyles(gd) {
17+
1718
// If the graph div has already been styled, bail
1819
if(gd._plotCSSLoaded) return;
1920

20-
var targetSelectors = exports.getAllRuleSelectors(gd._document);
2121
var targetStyleSheet = null;
2222

2323
if(gd._document.getElementsByTagName('style').length === 0) {
2424
var style = gd._document.createElement('style');
25+
2526
// WebKit hack :(
2627
style.appendChild(gd._document.createTextNode(''));
2728
gd._document.head.appendChild(style);
@@ -35,14 +36,11 @@ exports.injectStyles = function injectStyles(gd) {
3536
for(var selector in plotcss) {
3637
var fullSelector = exports.buildFullSelector(selector);
3738

38-
// Don't duplicate selectors
39-
if(targetSelectors.indexOf(fullSelector) === -1) {
40-
if(targetStyleSheet.insertRule) {
41-
targetStyleSheet.insertRule(fullSelector + '{' + plotcss[selector] + '}', 0);
42-
}
43-
else if(targetStyleSheet.addRule) {
44-
targetStyleSheet.addRule(fullSelector, plotcss[selector], 0);
45-
}
39+
if(targetStyleSheet.insertRule) {
40+
targetStyleSheet.insertRule(fullSelector + '{' + plotcss[selector] + '}', 0);
41+
}
42+
else if(targetStyleSheet.addRule) {
43+
targetStyleSheet.addRule(fullSelector, plotcss[selector], 0);
4644
}
4745
else loggers.warn('injectStyles failed');
4846
}
@@ -60,22 +58,3 @@ exports.buildFullSelector = function buildFullSelector(selector) {
6058

6159
return fullSelector;
6260
};
63-
64-
// Gets all the rules currently attached to the document
65-
exports.getAllRuleSelectors = function getAllRuleSelectors(sourceDocument) {
66-
var allSelectors = [];
67-
68-
for(var i = 0; i < sourceDocument.styleSheets.length; i++) {
69-
var styleSheet = sourceDocument.styleSheets[i];
70-
71-
if(!styleSheet.cssRules) continue; // It's possible for rules to be undefined
72-
73-
for(var j = 0; j < styleSheet.cssRules.length; j++) {
74-
var cssRule = styleSheet.cssRules[j];
75-
76-
allSelectors.push(cssRule.selectorText);
77-
}
78-
}
79-
80-
return allSelectors;
81-
};

0 commit comments

Comments
 (0)
0