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

Side by Side Diff: Source/devtools/front_end/bindings/SASSSourceMapping.js

Issue 658123002: DevTools: [SASS] poll CSS for 30 seconds instead of 5 seconds. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
« no previous file with comments | « no previous file | 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 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 19 matching lines...) Expand all
30 30
31 /** 31 /**
32 * @constructor 32 * @constructor
33 * @implements {WebInspector.CSSSourceMapping} 33 * @implements {WebInspector.CSSSourceMapping}
34 * @param {!WebInspector.CSSStyleModel} cssModel 34 * @param {!WebInspector.CSSStyleModel} cssModel
35 * @param {!WebInspector.Workspace} workspace 35 * @param {!WebInspector.Workspace} workspace
36 * @param {!WebInspector.NetworkWorkspaceBinding} networkWorkspaceBinding 36 * @param {!WebInspector.NetworkWorkspaceBinding} networkWorkspaceBinding
37 */ 37 */
38 WebInspector.SASSSourceMapping = function(cssModel, workspace, networkWorkspaceB inding) 38 WebInspector.SASSSourceMapping = function(cssModel, workspace, networkWorkspaceB inding)
39 { 39 {
40 this.pollPeriodMs = 5000; 40 this.pollPeriodMs = 30 * 1000;
41 this.pollIntervalMs = 200; 41 this.pollIntervalMs = 200;
42 42
43 this._cssModel = cssModel; 43 this._cssModel = cssModel;
44 this._workspace = workspace; 44 this._workspace = workspace;
45 this._networkWorkspaceBinding = networkWorkspaceBinding; 45 this._networkWorkspaceBinding = networkWorkspaceBinding;
46 this._addingRevisionCounter = 0; 46 this._addingRevisionCounter = 0;
47 this._reset(); 47 this._reset();
48 WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventType s.SavedURL, this._fileSaveFinished, this); 48 WebInspector.fileManager.addEventListener(WebInspector.FileManager.EventType s.SavedURL, this._fileSaveFinished, this);
49 WebInspector.settings.cssSourceMapsEnabled.addChangeListener(this._toggleSou rceMapSupport, this) 49 WebInspector.settings.cssSourceMapsEnabled.addChangeListener(this._toggleSou rceMapSupport, this)
50 this._cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheet Changed, this._styleSheetChanged, this); 50 this._cssModel.addEventListener(WebInspector.CSSStyleModel.Events.StyleSheet Changed, this._styleSheetChanged, this);
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 * @param {string} sassURL 214 * @param {string} sassURL
215 * @param {boolean} stopPolling 215 * @param {boolean} stopPolling
216 */ 216 */
217 _pollCallback: function(cssURL, sassURL, stopPolling) 217 _pollCallback: function(cssURL, sassURL, stopPolling)
218 { 218 {
219 var now; 219 var now;
220 var pollData = this._pollDataForSASSURL[sassURL]; 220 var pollData = this._pollDataForSASSURL[sassURL];
221 if (!pollData) 221 if (!pollData)
222 return; 222 return;
223 223
224 if (stopPolling || (now = new Date().getTime()) > pollData.deadlineMs) { 224 if (stopPolling) {
225 delete pollData.dataByURL[cssURL]; 225 this._stopPolling(cssURL, sassURL);
226 if (!Object.keys(pollData.dataByURL).length) 226 return;
227 delete this._pollDataForSASSURL[sassURL]; 227 }
228
229 if ((now = new Date().getTime()) > pollData.deadlineMs) {
230 WebInspector.console.warn(WebInspector.UIString("%s hasn't been upda ted in %d seconds.", cssURL, this.pollPeriodMs / 1000));
231 this._stopPolling(cssURL, sassURL);
228 return; 232 return;
229 } 233 }
230 var nextPoll = this.pollIntervalMs + pollData.dataByURL[cssURL].previous Poll; 234 var nextPoll = this.pollIntervalMs + pollData.dataByURL[cssURL].previous Poll;
231 var remainingTimeoutMs = Math.max(0, nextPoll - now); 235 var remainingTimeoutMs = Math.max(0, nextPoll - now);
232 pollData.dataByURL[cssURL].previousPoll = now + remainingTimeoutMs; 236 pollData.dataByURL[cssURL].previousPoll = now + remainingTimeoutMs;
233 pollData.dataByURL[cssURL].timer = setTimeout(this._reloadCSS.bind(this, cssURL, sassURL, this._pollCallback.bind(this)), remainingTimeoutMs); 237 pollData.dataByURL[cssURL].timer = setTimeout(this._reloadCSS.bind(this, cssURL, sassURL, this._pollCallback.bind(this)), remainingTimeoutMs);
234 }, 238 },
235 239
236 /** 240 /**
237 * @param {string} cssURL 241 * @param {string} cssURL
238 * @param {string} sassURL 242 * @param {string} sassURL
243 */
244 _stopPolling: function(cssURL, sassURL)
245 {
246 var pollData = this._pollDataForSASSURL[sassURL];
247 delete pollData.dataByURL[cssURL];
248 if (!Object.keys(pollData.dataByURL).length)
249 delete this._pollDataForSASSURL[sassURL];
250 },
251
252 /**
253 * @param {string} cssURL
254 * @param {string} sassURL
239 * @param {function(string, string, boolean)} callback 255 * @param {function(string, string, boolean)} callback
240 */ 256 */
241 _reloadCSS: function(cssURL, sassURL, callback) 257 _reloadCSS: function(cssURL, sassURL, callback)
242 { 258 {
243 var cssUISourceCode = this._workspace.uiSourceCodeForURL(cssURL); 259 var cssUISourceCode = this._workspace.uiSourceCodeForURL(cssURL);
244 if (!cssUISourceCode) { 260 if (!cssUISourceCode) {
245 WebInspector.console.warn(WebInspector.UIString("%s resource missing . Please reload the page.", cssURL)); 261 WebInspector.console.warn(WebInspector.UIString("%s resource missing . Please reload the page.", cssURL));
246 callback(cssURL, sassURL, true); 262 callback(cssURL, sassURL, true);
247 return; 263 return;
248 } 264 }
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 this._cssURLsForSASSURL = {}; 641 this._cssURLsForSASSURL = {};
626 /** @type {!Object.<string, !Array.<function(?WebInspector.SourceMap)>>} */ 642 /** @type {!Object.<string, !Array.<function(?WebInspector.SourceMap)>>} */
627 this._pendingSourceMapLoadingCallbacks = {}; 643 this._pendingSourceMapLoadingCallbacks = {};
628 /** @type {!Object.<string, !{deadlineMs: number, dataByURL: !Object.<st ring, !{timer: number, previousPoll: number}>}>} */ 644 /** @type {!Object.<string, !{deadlineMs: number, dataByURL: !Object.<st ring, !{timer: number, previousPoll: number}>}>} */
629 this._pollDataForSASSURL = {}; 645 this._pollDataForSASSURL = {};
630 /** @type {!Object.<string, !WebInspector.SourceMap>} */ 646 /** @type {!Object.<string, !WebInspector.SourceMap>} */
631 this._sourceMapByURL = {}; 647 this._sourceMapByURL = {};
632 this._sourceMapByStyleSheetURL = {}; 648 this._sourceMapByStyleSheetURL = {};
633 } 649 }
634 } 650 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698