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

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

Issue 2572053002: DevTools: kill SDK.CSSParser (Closed)
Patch Set: rebaseline 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 this._rules = [];
dgozman 2016/12/14 19:05:02 Let's @type this for compiler to kick-in.
lushnikov 2016/12/15 00:28:46 Done.
41 this._cssParser.addEventListener(SDK.CSSParser.Events.RulesParsed, this.refr esh.bind(this)); 41 Common.formatterWorkerPool.parseCSS(uiSourceCode.workingCopy(), (isLastChunk , rules) => {
42 this._cssParser.parse(uiSourceCode.workingCopy()); 42 this._rules.push(...rules);
dgozman 2016/12/14 19:05:02 Are you sure this is safe to do?
lushnikov 2016/12/15 00:28:46 The feature has hit stable and looks simple. Shoul
43 this.refresh();
44 });
43 } 45 }
44 46
45 /** 47 /**
46 * @param {!Workspace.UISourceCode} uiSourceCode 48 * @param {!Workspace.UISourceCode} uiSourceCode
47 * @param {function(number, number)} selectItemCallback 49 * @param {function(number, number)} selectItemCallback
48 */ 50 */
49 static show(uiSourceCode, selectItemCallback) { 51 static show(uiSourceCode, selectItemCallback) {
50 Sources.StyleSheetOutlineDialog._instanceForTests = 52 Sources.StyleSheetOutlineDialog._instanceForTests =
51 new Sources.StyleSheetOutlineDialog(uiSourceCode, selectItemCallback); 53 new Sources.StyleSheetOutlineDialog(uiSourceCode, selectItemCallback);
52 new UI.FilteredListWidget(Sources.StyleSheetOutlineDialog._instanceForTests) .showAsDialog(); 54 new UI.FilteredListWidget(Sources.StyleSheetOutlineDialog._instanceForTests) .showAsDialog();
53 } 55 }
54 56
55 /** 57 /**
56 * @override 58 * @override
57 * @return {number} 59 * @return {number}
58 */ 60 */
59 itemCount() { 61 itemCount() {
60 return this._cssParser.rules().length; 62 return this._rules.length;
61 } 63 }
62 64
63 /** 65 /**
64 * @override 66 * @override
65 * @param {number} itemIndex 67 * @param {number} itemIndex
66 * @return {string} 68 * @return {string}
67 */ 69 */
68 itemKeyAt(itemIndex) { 70 itemKeyAt(itemIndex) {
69 var rule = this._cssParser.rules()[itemIndex]; 71 var rule = this._rules[itemIndex];
70 return rule.selectorText || rule.atRule; 72 return rule.selectorText || rule.atRule;
71 } 73 }
72 74
73 /** 75 /**
74 * @override 76 * @override
75 * @param {number} itemIndex 77 * @param {number} itemIndex
76 * @param {string} query 78 * @param {string} query
77 * @return {number} 79 * @return {number}
78 */ 80 */
79 itemScoreAt(itemIndex, query) { 81 itemScoreAt(itemIndex, query) {
80 var rule = this._cssParser.rules()[itemIndex]; 82 var rule = this._rules[itemIndex];
81 return -rule.lineNumber; 83 return -rule.lineNumber;
82 } 84 }
83 85
84 /** 86 /**
85 * @override 87 * @override
86 * @param {number} itemIndex 88 * @param {number} itemIndex
87 * @param {string} query 89 * @param {string} query
88 * @param {!Element} titleElement 90 * @param {!Element} titleElement
89 * @param {!Element} subtitleElement 91 * @param {!Element} subtitleElement
90 */ 92 */
91 renderItem(itemIndex, query, titleElement, subtitleElement) { 93 renderItem(itemIndex, query, titleElement, subtitleElement) {
92 var rule = this._cssParser.rules()[itemIndex]; 94 var rule = this._rules[itemIndex];
93 titleElement.textContent = rule.selectorText || rule.atRule; 95 titleElement.textContent = rule.selectorText || rule.atRule;
94 this.highlightRanges(titleElement, query); 96 this.highlightRanges(titleElement, query);
95 subtitleElement.textContent = ':' + (rule.lineNumber + 1); 97 subtitleElement.textContent = ':' + (rule.lineNumber + 1);
96 } 98 }
97 99
98 /** 100 /**
99 * @override 101 * @override
100 * @param {number} itemIndex 102 * @param {number} itemIndex
101 * @param {string} promptValue 103 * @param {string} promptValue
102 */ 104 */
103 selectItem(itemIndex, promptValue) { 105 selectItem(itemIndex, promptValue) {
104 var rule = this._cssParser.rules()[itemIndex]; 106 var rule = this._rules[itemIndex];
105 var lineNumber = rule.lineNumber; 107 var lineNumber = rule.lineNumber;
106 if (!isNaN(lineNumber) && lineNumber >= 0) 108 if (!isNaN(lineNumber) && lineNumber >= 0)
107 this._selectItemCallback(lineNumber, rule.columnNumber); 109 this._selectItemCallback(lineNumber, rule.columnNumber);
108 } 110 }
109
110 /**
111 * @override
112 */
113 dispose() {
114 this._cssParser.dispose();
115 }
116 }; 111 };
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