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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/StyleSheetOutlineDialog.js

Issue 2572053002: DevTools: kill SDK.CSSParser (Closed)
Patch Set: address comments Created 4 years 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
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/sdk/module.json ('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) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 10 *
(...skipping 19 matching lines...) Expand all
30 * @unrestricted 30 * @unrestricted
31 */ 31 */
32 Sources.StyleSheetOutlineDialog = class extends UI.FilteredListWidget.Delegate { 32 Sources.StyleSheetOutlineDialog = class extends UI.FilteredListWidget.Delegate {
33 /** 33 /**
34 * @param {!Workspace.UISourceCode} uiSourceCode 34 * @param {!Workspace.UISourceCode} uiSourceCode
35 * @param {function(number, number)} selectItemCallback 35 * @param {function(number, number)} selectItemCallback
36 */ 36 */
37 constructor(uiSourceCode, selectItemCallback) { 37 constructor(uiSourceCode, selectItemCallback) {
38 super([]); 38 super([]);
39 this._selectItemCallback = selectItemCallback; 39 this._selectItemCallback = selectItemCallback;
40 this._cssParser = new SDK.CSSParser(); 40 /** @type {!Array<!Common.FormatterWorkerPool.CSSRule>} */
41 this._cssParser.addEventListener(SDK.CSSParser.Events.RulesParsed, this.refr esh.bind(this)); 41 this._rules = [];
42 this._cssParser.parse(uiSourceCode.workingCopy()); 42 Common.formatterWorkerPool.parseCSS(uiSourceCode.workingCopy(), (isLastChunk , rules) => {
43 this._rules.push(...rules);
44 this.refresh();
45 });
43 } 46 }
44 47
45 /** 48 /**
46 * @param {!Workspace.UISourceCode} uiSourceCode 49 * @param {!Workspace.UISourceCode} uiSourceCode
47 * @param {function(number, number)} selectItemCallback 50 * @param {function(number, number)} selectItemCallback
48 */ 51 */
49 static show(uiSourceCode, selectItemCallback) { 52 static show(uiSourceCode, selectItemCallback) {
50 Sources.StyleSheetOutlineDialog._instanceForTests = 53 Sources.StyleSheetOutlineDialog._instanceForTests =
51 new Sources.StyleSheetOutlineDialog(uiSourceCode, selectItemCallback); 54 new Sources.StyleSheetOutlineDialog(uiSourceCode, selectItemCallback);
52 new UI.FilteredListWidget(Sources.StyleSheetOutlineDialog._instanceForTests) .showAsDialog(); 55 new UI.FilteredListWidget(Sources.StyleSheetOutlineDialog._instanceForTests) .showAsDialog();
53 } 56 }
54 57
55 /** 58 /**
56 * @override 59 * @override
57 * @return {number} 60 * @return {number}
58 */ 61 */
59 itemCount() { 62 itemCount() {
60 return this._cssParser.rules().length; 63 return this._rules.length;
61 } 64 }
62 65
63 /** 66 /**
64 * @override 67 * @override
65 * @param {number} itemIndex 68 * @param {number} itemIndex
66 * @return {string} 69 * @return {string}
67 */ 70 */
68 itemKeyAt(itemIndex) { 71 itemKeyAt(itemIndex) {
69 var rule = this._cssParser.rules()[itemIndex]; 72 var rule = this._rules[itemIndex];
70 return rule.selectorText || rule.atRule; 73 return rule.selectorText || rule.atRule;
71 } 74 }
72 75
73 /** 76 /**
74 * @override 77 * @override
75 * @param {number} itemIndex 78 * @param {number} itemIndex
76 * @param {string} query 79 * @param {string} query
77 * @return {number} 80 * @return {number}
78 */ 81 */
79 itemScoreAt(itemIndex, query) { 82 itemScoreAt(itemIndex, query) {
80 var rule = this._cssParser.rules()[itemIndex]; 83 var rule = this._rules[itemIndex];
81 return -rule.lineNumber; 84 return -rule.lineNumber;
82 } 85 }
83 86
84 /** 87 /**
85 * @override 88 * @override
86 * @param {number} itemIndex 89 * @param {number} itemIndex
87 * @param {string} query 90 * @param {string} query
88 * @param {!Element} titleElement 91 * @param {!Element} titleElement
89 * @param {!Element} subtitleElement 92 * @param {!Element} subtitleElement
90 */ 93 */
91 renderItem(itemIndex, query, titleElement, subtitleElement) { 94 renderItem(itemIndex, query, titleElement, subtitleElement) {
92 var rule = this._cssParser.rules()[itemIndex]; 95 var rule = this._rules[itemIndex];
93 titleElement.textContent = rule.selectorText || rule.atRule; 96 titleElement.textContent = rule.selectorText || rule.atRule;
94 this.highlightRanges(titleElement, query); 97 this.highlightRanges(titleElement, query);
95 subtitleElement.textContent = ':' + (rule.lineNumber + 1); 98 subtitleElement.textContent = ':' + (rule.lineNumber + 1);
96 } 99 }
97 100
98 /** 101 /**
99 * @override 102 * @override
100 * @param {number} itemIndex 103 * @param {number} itemIndex
101 * @param {string} promptValue 104 * @param {string} promptValue
102 */ 105 */
103 selectItem(itemIndex, promptValue) { 106 selectItem(itemIndex, promptValue) {
104 var rule = this._cssParser.rules()[itemIndex]; 107 var rule = this._rules[itemIndex];
105 var lineNumber = rule.lineNumber; 108 var lineNumber = rule.lineNumber;
106 if (!isNaN(lineNumber) && lineNumber >= 0) 109 if (!isNaN(lineNumber) && lineNumber >= 0)
107 this._selectItemCallback(lineNumber, rule.columnNumber); 110 this._selectItemCallback(lineNumber, rule.columnNumber);
108 } 111 }
109
110 /**
111 * @override
112 */
113 dispose() {
114 this._cssParser.dispose();
115 }
116 }; 112 };
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/sdk/module.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698