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

Side by Side Diff: Source/devtools/front_end/elements/StylesSidebarPane.js

Issue 699873002: DevTools: [SSP] refactoring to remove styleRule.section property (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebaseline Created 6 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « LayoutTests/http/tests/inspector/elements-test.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Joseph Pecoraro 3 * Copyright (C) 2009 Joseph Pecoraro
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 format = (color.hasAlpha() ? cf.HSLA : cf.HSL); 126 format = (color.hasAlpha() ? cf.HSLA : cf.HSL);
127 else if (!color.hasAlpha()) 127 else if (!color.hasAlpha())
128 format = (color.canBeShortHex() ? cf.ShortHEX : cf.HEX); 128 format = (color.canBeShortHex() ? cf.ShortHEX : cf.HEX);
129 else 129 else
130 format = cf.RGBA; 130 format = cf.RGBA;
131 131
132 return format; 132 return format;
133 } 133 }
134 134
135 /** 135 /**
136 * @return {boolean}
137 */
138 WebInspector.StylesSidebarPane._hasMatchingSelectors = function(styleRule)
139 {
140 return styleRule.rule ? styleRule.rule.matchingSelectors.length > 0 : true;
141 }
142
143 /**
136 * @param {!WebInspector.CSSProperty} property 144 * @param {!WebInspector.CSSProperty} property
137 */ 145 */
138 WebInspector.StylesSidebarPane._ignoreErrorsForProperty = function(property) { 146 WebInspector.StylesSidebarPane._ignoreErrorsForProperty = function(property) {
139 function hasUnknownVendorPrefix(string) 147 function hasUnknownVendorPrefix(string)
140 { 148 {
141 return !string.startsWith("-webkit-") && /^[-_][\w\d]+-\w/.test(string); 149 return !string.startsWith("-webkit-") && /^[-_][\w\d]+-\w/.test(string);
142 } 150 }
143 151
144 var name = property.name.toLowerCase(); 152 var name = property.name.toLowerCase();
145 153
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 }, 638 },
631 639
632 _canAffectCurrentStyles: function(node) 640 _canAffectCurrentStyles: function(node)
633 { 641 {
634 return this._node && (this._node === node || node.parentNode === this._n ode.parentNode || node.isAncestor(this._node)); 642 return this._node && (this._node === node || node.parentNode === this._n ode.parentNode || node.isAncestor(this._node));
635 }, 643 },
636 644
637 _innerRefreshUpdate: function(node, computedStyle, editedSection) 645 _innerRefreshUpdate: function(node, computedStyle, editedSection)
638 { 646 {
639 for (var pseudoId in this.sections) { 647 for (var pseudoId in this.sections) {
640 var styleRules = this._refreshStyleRules(this.sections[pseudoId], co mputedStyle); 648 var filteredSections = this.sections[pseudoId] ? this.sections[pseud oId].filter(nonBlankSections) : [];
649 var styleRules = this._refreshStyleRules(filteredSections, computedS tyle);
641 var usedProperties = {}; 650 var usedProperties = {};
642 this._markUsedProperties(styleRules, usedProperties); 651 this._markUsedProperties(styleRules, usedProperties);
643 this._refreshSectionsForStyleRules(styleRules, usedProperties, edite dSection); 652 this._refreshSectionsForStyleRules(filteredSections, styleRules, use dProperties, editedSection);
644 } 653 }
645 if (computedStyle) 654 if (computedStyle)
646 this.sections[0][0].rebuildComputedTrace(this.sections[0]); 655 this.sections[0][0].rebuildComputedTrace(this.sections[0]);
647 656
648 this._nodeStylesUpdatedForTest(node, false); 657 this._nodeStylesUpdatedForTest(node, false);
658
659 /**
660 * @param {!WebInspector.PropertiesSection} section
661 * @return {boolean}
662 */
663 function nonBlankSections(section)
664 {
665 return !section.isBlank;
666 }
649 }, 667 },
650 668
651 _innerRebuildUpdate: function(node, styles) 669 _innerRebuildUpdate: function(node, styles)
652 { 670 {
653 this._sectionsContainer.removeChildren(); 671 this._sectionsContainer.removeChildren();
654 this._computedStylePane.bodyElement.removeChildren(); 672 this._computedStylePane.bodyElement.removeChildren();
655 this._linkifier.reset(); 673 this._linkifier.reset();
656 674
657 var styleRules = this._rebuildStyleRules(node, styles); 675 var styleRules = this._rebuildStyleRules(node, styles);
658 var usedProperties = {}; 676 var usedProperties = {};
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
690 { 708 {
691 // Tests override this method. 709 // Tests override this method.
692 }, 710 },
693 711
694 _refreshStyleRules: function(sections, computedStyle) 712 _refreshStyleRules: function(sections, computedStyle)
695 { 713 {
696 var nodeComputedStyle = computedStyle; 714 var nodeComputedStyle = computedStyle;
697 var styleRules = []; 715 var styleRules = [];
698 for (var i = 0; sections && i < sections.length; ++i) { 716 for (var i = 0; sections && i < sections.length; ++i) {
699 var section = sections[i]; 717 var section = sections[i];
700 if (section.isBlank)
701 continue;
702 if (section.computedStyle) 718 if (section.computedStyle)
703 section.styleRule.style = nodeComputedStyle; 719 section.styleRule.style = nodeComputedStyle;
704 var styleRule = { section: section, style: section.styleRule.style, computedStyle: section.computedStyle, rule: section.rule, editable: !!(section.s tyleRule.style && section.styleRule.style.styleSheetId), 720 var styleRule = { style: section.styleRule.style, computedStyle: sec tion.computedStyle, rule: section.rule, editable: !!(section.styleRule.style && section.styleRule.style.styleSheetId),
705 isAttribute: section.styleRule.isAttribute, isInherited: section .styleRule.isInherited, parentNode: section.styleRule.parentNode }; 721 isAttribute: section.styleRule.isAttribute, isInherited: section .styleRule.isInherited, parentNode: section.styleRule.parentNode };
706 styleRules.push(styleRule); 722 styleRules.push(styleRule);
707 } 723 }
708 return styleRules; 724 return styleRules;
709 }, 725 },
710 726
711 _rebuildStyleRules: function(node, styles) 727 _rebuildStyleRules: function(node, styles)
712 { 728 {
713 var nodeComputedStyle = styles.computedStyle; 729 var nodeComputedStyle = styles.computedStyle;
714 this.sections = {}; 730 this.sections = {};
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 809
794 _markUsedProperties: function(styleRules, usedProperties) 810 _markUsedProperties: function(styleRules, usedProperties)
795 { 811 {
796 var foundImportantProperties = {}; 812 var foundImportantProperties = {};
797 var propertyToEffectiveRule = {}; 813 var propertyToEffectiveRule = {};
798 var inheritedPropertyToNode = {}; 814 var inheritedPropertyToNode = {};
799 for (var i = 0; i < styleRules.length; ++i) { 815 for (var i = 0; i < styleRules.length; ++i) {
800 var styleRule = styleRules[i]; 816 var styleRule = styleRules[i];
801 if (styleRule.computedStyle || styleRule.isStyleSeparator) 817 if (styleRule.computedStyle || styleRule.isStyleSeparator)
802 continue; 818 continue;
803 if (styleRule.section && styleRule.section.noAffect) 819 if (!WebInspector.StylesSidebarPane._hasMatchingSelectors(styleRule) )
804 continue; 820 continue;
805 821
806 styleRule.usedProperties = {}; 822 styleRule.usedProperties = {};
807 823
808 var style = styleRule.style; 824 var style = styleRule.style;
809 var allProperties = style.allProperties; 825 var allProperties = style.allProperties;
810 for (var j = 0; j < allProperties.length; ++j) { 826 for (var j = 0; j < allProperties.length; ++j) {
811 var property = allProperties[j]; 827 var property = allProperties[j];
812 if (!property.isLive || !property.parsedOk) 828 if (!property.isLive || !property.parsedOk)
813 continue; 829 continue;
(...skipping 22 matching lines...) Expand all
836 delete propertyToEffectiveRule[canonicalName].usedProper ties[canonicalName]; 852 delete propertyToEffectiveRule[canonicalName].usedProper ties[canonicalName];
837 } 853 }
838 854
839 styleRule.usedProperties[canonicalName] = true; 855 styleRule.usedProperties[canonicalName] = true;
840 usedProperties[canonicalName] = true; 856 usedProperties[canonicalName] = true;
841 propertyToEffectiveRule[canonicalName] = styleRule; 857 propertyToEffectiveRule[canonicalName] = styleRule;
842 } 858 }
843 } 859 }
844 }, 860 },
845 861
846 _refreshSectionsForStyleRules: function(styleRules, usedProperties, editedSe ction) 862 _refreshSectionsForStyleRules: function(sections, styleRules, usedProperties , editedSection)
847 { 863 {
848 // Walk the style rules and update the sections with new overloaded and used properties. 864 // Walk the style rules and update the sections with new overloaded and used properties.
849 for (var i = 0; i < styleRules.length; ++i) { 865 for (var i = 0; i < styleRules.length; ++i) {
850 var styleRule = styleRules[i]; 866 var styleRule = styleRules[i];
851 var section = styleRule.section; 867 var section = sections[i];
852 if (styleRule.computedStyle) { 868 if (styleRule.computedStyle) {
853 section._usedProperties = usedProperties; 869 section._usedProperties = usedProperties;
854 section.update(); 870 section.update();
855 } else { 871 } else {
856 section._usedProperties = styleRule.usedProperties; 872 section._usedProperties = styleRule.usedProperties;
857 section.update(section === editedSection); 873 section.update(section === editedSection);
858 } 874 }
859 } 875 }
860 }, 876 },
861 877
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
1431 return false; 1447 return false;
1432 }, 1448 },
1433 1449
1434 /** 1450 /**
1435 * @param {string} propertyName 1451 * @param {string} propertyName
1436 * @param {boolean=} isShorthand 1452 * @param {boolean=} isShorthand
1437 * @return {boolean} 1453 * @return {boolean}
1438 */ 1454 */
1439 isPropertyOverloaded: function(propertyName, isShorthand) 1455 isPropertyOverloaded: function(propertyName, isShorthand)
1440 { 1456 {
1441 if (!this._usedProperties || this.noAffect) 1457 if (!this._usedProperties || !WebInspector.StylesSidebarPane._hasMatchin gSelectors(this.styleRule))
1442 return false; 1458 return false;
1443 1459
1444 if (this.isInherited && !WebInspector.CSSMetadata.isPropertyInherited(pr opertyName)) { 1460 if (this.isInherited && !WebInspector.CSSMetadata.isPropertyInherited(pr opertyName)) {
1445 // In the inherited sections, only show overrides for the potentiall y inherited properties. 1461 // In the inherited sections, only show overrides for the potentiall y inherited properties.
1446 return false; 1462 return false;
1447 } 1463 }
1448 1464
1449 var canonicalName = WebInspector.CSSMetadata.canonicalPropertyName(prope rtyName); 1465 var canonicalName = WebInspector.CSSMetadata.canonicalPropertyName(prope rtyName);
1450 var used = (canonicalName in this._usedProperties); 1466 var used = (canonicalName in this._usedProperties);
1451 if (used || !isShorthand) 1467 if (used || !isShorthand)
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1529 }, 1545 },
1530 1546
1531 _afterUpdateFinishedForTest: function() 1547 _afterUpdateFinishedForTest: function()
1532 { 1548 {
1533 }, 1549 },
1534 1550
1535 onpopulate: function() 1551 onpopulate: function()
1536 { 1552 {
1537 var style = this.styleRule.style; 1553 var style = this.styleRule.style;
1538 var allProperties = style.allProperties; 1554 var allProperties = style.allProperties;
1539 this.uniqueProperties = [];
1540 1555
1541 var styleHasEditableSource = this.editable && !!style.range; 1556 var styleHasEditableSource = this.editable && !!style.range;
1542 if (styleHasEditableSource) { 1557 if (styleHasEditableSource) {
1543 for (var i = 0; i < allProperties.length; ++i) { 1558 for (var i = 0; i < allProperties.length; ++i) {
1544 var property = allProperties[i]; 1559 var property = allProperties[i];
1545 this.uniqueProperties.push(property);
1546 if (property.styleBased) 1560 if (property.styleBased)
1547 continue; 1561 continue;
1548 1562
1549 var isShorthand = !!WebInspector.CSSMetadata.cssPropertiesMetain fo.longhands(property.name); 1563 var isShorthand = !!WebInspector.CSSMetadata.cssPropertiesMetain fo.longhands(property.name);
1550 var inherited = this.isPropertyInherited(property.name); 1564 var inherited = this.isPropertyInherited(property.name);
1551 var overloaded = property.inactive || this.isPropertyOverloaded( property.name); 1565 var overloaded = property.inactive || this.isPropertyOverloaded( property.name);
1552 var item = new WebInspector.StylePropertyTreeElement(this._paren tPane, this.styleRule, style, property, isShorthand, inherited, overloaded); 1566 var item = new WebInspector.StylePropertyTreeElement(this._paren tPane, this.styleRule, style, property, isShorthand, inherited, overloaded);
1553 this.propertiesTreeOutline.appendChild(item); 1567 this.propertiesTreeOutline.appendChild(item);
1554 } 1568 }
1555 return; 1569 return;
1556 } 1570 }
1557 1571
1558 var generatedShorthands = {}; 1572 var generatedShorthands = {};
1559 // For style-based properties, generate shorthands with values when poss ible. 1573 // For style-based properties, generate shorthands with values when poss ible.
1560 for (var i = 0; i < allProperties.length; ++i) { 1574 for (var i = 0; i < allProperties.length; ++i) {
1561 var property = allProperties[i]; 1575 var property = allProperties[i];
1562 this.uniqueProperties.push(property);
1563 var isShorthand = !!WebInspector.CSSMetadata.cssPropertiesMetainfo.l onghands(property.name); 1576 var isShorthand = !!WebInspector.CSSMetadata.cssPropertiesMetainfo.l onghands(property.name);
1564 1577
1565 // For style-based properties, try generating shorthands. 1578 // For style-based properties, try generating shorthands.
1566 var shorthands = isShorthand ? null : WebInspector.CSSMetadata.cssPr opertiesMetainfo.shorthands(property.name); 1579 var shorthands = isShorthand ? null : WebInspector.CSSMetadata.cssPr opertiesMetainfo.shorthands(property.name);
1567 var shorthandPropertyAvailable = false; 1580 var shorthandPropertyAvailable = false;
1568 for (var j = 0; shorthands && !shorthandPropertyAvailable && j < sho rthands.length; ++j) { 1581 for (var j = 0; shorthands && !shorthandPropertyAvailable && j < sho rthands.length; ++j) {
1569 var shorthand = shorthands[j]; 1582 var shorthand = shorthands[j];
1570 if (shorthand in generatedShorthands) { 1583 if (shorthand in generatedShorthands) {
1571 shorthandPropertyAvailable = true; 1584 shorthandPropertyAvailable = true;
1572 continue; // There already is a shorthand this longhands fa lls under. 1585 continue; // There already is a shorthand this longhands fa lls under.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1617 }, 1630 },
1618 1631
1619 _markSelectorMatches: function() 1632 _markSelectorMatches: function()
1620 { 1633 {
1621 var rule = this.styleRule.rule; 1634 var rule = this.styleRule.rule;
1622 if (!rule) 1635 if (!rule)
1623 return; 1636 return;
1624 1637
1625 var matchingSelectors = rule.matchingSelectors; 1638 var matchingSelectors = rule.matchingSelectors;
1626 // .selector is rendered as non-affecting selector by default. 1639 // .selector is rendered as non-affecting selector by default.
1627 if (this.noAffect || matchingSelectors) 1640 if (!WebInspector.StylesSidebarPane._hasMatchingSelectors(this.styleRule ) || matchingSelectors)
1628 this._selectorElement.className = "selector"; 1641 this._selectorElement.className = "selector";
1629 if (!matchingSelectors) 1642 if (!matchingSelectors)
1630 return; 1643 return;
1631 1644
1632 var selectors = rule.selectors; 1645 var selectors = rule.selectors;
1633 var fragment = createDocumentFragment(); 1646 var fragment = createDocumentFragment();
1634 var currentMatch = 0; 1647 var currentMatch = 0;
1635 for (var i = 0; i < selectors.length ; ++i) { 1648 for (var i = 0; i < selectors.length ; ++i) {
1636 if (i) 1649 if (i)
1637 fragment.createTextChild(", "); 1650 fragment.createTextChild(", ");
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1877 return; 1890 return;
1878 } 1891 }
1879 1892
1880 /** 1893 /**
1881 * @param {!WebInspector.CSSRule} newRule 1894 * @param {!WebInspector.CSSRule} newRule
1882 * @this {WebInspector.StylePropertiesSection} 1895 * @this {WebInspector.StylePropertiesSection}
1883 */ 1896 */
1884 function successCallback(newRule) 1897 function successCallback(newRule)
1885 { 1898 {
1886 var doesAffectSelectedNode = newRule.matchingSelectors.length > 0; 1899 var doesAffectSelectedNode = newRule.matchingSelectors.length > 0;
1887 if (!doesAffectSelectedNode) { 1900 this.element.classList.toggle("no-affect", !doesAffectSelectedNode);
1888 this.noAffect = true;
1889 this.element.classList.add("no-affect");
1890 } else {
1891 delete this.noAffect;
1892 this.element.classList.remove("no-affect");
1893 }
1894 1901
1895 var oldSelectorRange = this.rule.selectorRange; 1902 var oldSelectorRange = this.rule.selectorRange;
1896 this.rule = newRule; 1903 this.rule = newRule;
1897 this.styleRule = { section: this, style: newRule.style, selectorText : newRule.selectorText, media: newRule.media, rule: newRule }; 1904 this.styleRule = { style: newRule.style, selectorText: newRule.selec torText, media: newRule.media, rule: newRule };
1898 1905
1899 this._parentPane._refreshUpdate(this, false); 1906 this._parentPane._refreshUpdate(this, false);
1900 this._parentPane._styleSheetRuleEdited(this.rule, oldSelectorRange, this.rule.selectorRange); 1907 this._parentPane._styleSheetRuleEdited(this.rule, oldSelectorRange, this.rule.selectorRange);
1901 1908
1902 finishOperationAndMoveEditor.call(this, moveDirection); 1909 finishOperationAndMoveEditor.call(this, moveDirection);
1903 } 1910 }
1904 1911
1905 /** 1912 /**
1906 * @this {WebInspector.StylePropertiesSection} 1913 * @this {WebInspector.StylePropertiesSection}
1907 */ 1914 */
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
2053 name.textContent = WebInspector.UIString("Animation") + " " + th is._animationProperties[property]; 2060 name.textContent = WebInspector.UIString("Animation") + " " + th is._animationProperties[property];
2054 treeElement.appendChild(new TreeElement(fragment, null, false)); 2061 treeElement.appendChild(new TreeElement(fragment, null, false));
2055 } 2062 }
2056 } 2063 }
2057 2064
2058 for (var i = 0; i < sections.length; ++i) { 2065 for (var i = 0; i < sections.length; ++i) {
2059 var section = sections[i]; 2066 var section = sections[i];
2060 if (section.computedStyle || section.isBlank) 2067 if (section.computedStyle || section.isBlank)
2061 continue; 2068 continue;
2062 2069
2063 for (var j = 0; j < section.uniqueProperties.length; ++j) { 2070 var properties = section.styleRule.style.allProperties;
2064 var property = section.uniqueProperties[j]; 2071 for (var j = 0; j < properties.length; ++j) {
2072 var property = properties[j];
2065 if (property.disabled) 2073 if (property.disabled)
2066 continue; 2074 continue;
2067 if (section.isInherited && !WebInspector.CSSMetadata.isPropertyI nherited(property.name)) 2075 if (section.isInherited && !WebInspector.CSSMetadata.isPropertyI nherited(property.name))
2068 continue; 2076 continue;
2069 2077
2070 var treeElement = this._propertyTreeElements[property.name.toLow erCase()]; 2078 var treeElement = this._propertyTreeElements[property.name.toLow erCase()];
2071 if (treeElement) { 2079 if (treeElement) {
2072 var fragment = createDocumentFragment(); 2080 var fragment = createDocumentFragment();
2073 var selector = fragment.createChild("span"); 2081 var selector = fragment.createChild("span");
2074 selector.style.color = "gray"; 2082 selector.style.color = "gray";
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
2161 return; 2169 return;
2162 } 2170 }
2163 2171
2164 /** 2172 /**
2165 * @param {!WebInspector.CSSRule} newRule 2173 * @param {!WebInspector.CSSRule} newRule
2166 * @this {WebInspector.StylePropertiesSection} 2174 * @this {WebInspector.StylePropertiesSection}
2167 */ 2175 */
2168 function successCallback(newRule) 2176 function successCallback(newRule)
2169 { 2177 {
2170 var doesSelectorAffectSelectedNode = newRule.matchingSelectors.lengt h > 0; 2178 var doesSelectorAffectSelectedNode = newRule.matchingSelectors.lengt h > 0;
2171 var styleRule = { media: newRule.media, section: this, style: newRul e.style, selectorText: newRule.selectorText, rule: newRule }; 2179 var styleRule = { media: newRule.media, style: newRule.style, select orText: newRule.selectorText, rule: newRule };
2172 this._makeNormal(styleRule); 2180 this._makeNormal(styleRule);
2173 2181
2174 if (!doesSelectorAffectSelectedNode) { 2182 if (!doesSelectorAffectSelectedNode)
2175 this.noAffect = true;
2176 this.element.classList.add("no-affect"); 2183 this.element.classList.add("no-affect");
2177 }
2178 2184
2179 var ruleTextLines = ruleText.split("\n"); 2185 var ruleTextLines = ruleText.split("\n");
2180 var startLine = this._ruleLocation.startLine; 2186 var startLine = this._ruleLocation.startLine;
2181 var startColumn = this._ruleLocation.startColumn; 2187 var startColumn = this._ruleLocation.startColumn;
2182 var newRange = new WebInspector.TextRange(startLine, startColumn, st artLine + ruleTextLines.length - 1, startColumn + ruleTextLines[ruleTextLines.le ngth - 1].length); 2188 var newRange = new WebInspector.TextRange(startLine, startColumn, st artLine + ruleTextLines.length - 1, startColumn + ruleTextLines[ruleTextLines.le ngth - 1].length);
2183 this._parentPane._styleSheetRuleEdited(newRule, this._ruleLocation, newRange); 2189 this._parentPane._styleSheetRuleEdited(newRule, this._ruleLocation, newRange);
2184 2190
2185 this._updateRuleOrigin(); 2191 this._updateRuleOrigin();
2186 this.expand(); 2192 this.expand();
2187 if (this.element.parentElement) // Might have been detached already. 2193 if (this.element.parentElement) // Might have been detached already.
(...skipping 1474 matching lines...) Expand 10 before | Expand all | Expand 10 after
3662 if (userEnteredText && (userEnteredText === userEnteredText.toUpperCase( ))) { 3668 if (userEnteredText && (userEnteredText === userEnteredText.toUpperCase( ))) {
3663 for (var i = 0; i < results.length; ++i) 3669 for (var i = 0; i < results.length; ++i)
3664 results[i] = results[i].toUpperCase(); 3670 results[i] = results[i].toUpperCase();
3665 } 3671 }
3666 var selectedIndex = this._cssCompletions.mostUsedOf(results); 3672 var selectedIndex = this._cssCompletions.mostUsedOf(results);
3667 completionsReadyCallback(results, selectedIndex); 3673 completionsReadyCallback(results, selectedIndex);
3668 }, 3674 },
3669 3675
3670 __proto__: WebInspector.TextPrompt.prototype 3676 __proto__: WebInspector.TextPrompt.prototype
3671 } 3677 }
OLDNEW
« no previous file with comments | « LayoutTests/http/tests/inspector/elements-test.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698