OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 20 matching lines...) Expand all Loading... |
31 /** | 31 /** |
32 * @constructor | 32 * @constructor |
33 * @extends {WebInspector.Object} | 33 * @extends {WebInspector.Object} |
34 * @param {!WebInspector.Workspace} workspace | 34 * @param {!WebInspector.Workspace} workspace |
35 */ | 35 */ |
36 WebInspector.CSSStyleModel = function(workspace) | 36 WebInspector.CSSStyleModel = function(workspace) |
37 { | 37 { |
38 this._workspace = workspace; | 38 this._workspace = workspace; |
39 this._pendingCommandsMajorState = []; | 39 this._pendingCommandsMajorState = []; |
40 this._styleLoader = new WebInspector.CSSStyleModel.ComputedStyleLoader(this)
; | 40 this._styleLoader = new WebInspector.CSSStyleModel.ComputedStyleLoader(this)
; |
41 WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.UndoRedo
Requested, this._undoRedoRequested, this); | 41 WebInspector.domModel.addEventListener(WebInspector.DOMModel.Events.UndoRedo
Requested, this._undoRedoRequested, this); |
42 WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.UndoRedo
Completed, this._undoRedoCompleted, this); | 42 WebInspector.domModel.addEventListener(WebInspector.DOMModel.Events.UndoRedo
Completed, this._undoRedoCompleted, this); |
43 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.MainFrameCreatedOrNavigated, this._mainFrameCreatedOrNavigated, th
is); | 43 WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeMod
el.EventTypes.MainFrameCreatedOrNavigated, this._mainFrameCreatedOrNavigated, th
is); |
44 InspectorBackend.registerCSSDispatcher(new WebInspector.CSSDispatcher(this))
; | 44 InspectorBackend.registerCSSDispatcher(new WebInspector.CSSDispatcher(this))
; |
45 CSSAgent.enable(this._wasEnabled.bind(this)); | 45 CSSAgent.enable(this._wasEnabled.bind(this)); |
46 this._resetStyleSheets(); | 46 this._resetStyleSheets(); |
47 } | 47 } |
48 | 48 |
49 /** | 49 /** |
50 * @param {!Array.<!CSSAgent.RuleMatch>|undefined} matchArray | 50 * @param {!Array.<!CSSAgent.RuleMatch>|undefined} matchArray |
51 */ | 51 */ |
52 WebInspector.CSSStyleModel.parseRuleMatchArrayPayload = function(matchArray) | 52 WebInspector.CSSStyleModel.parseRuleMatchArrayPayload = function(matchArray) |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 * @param {!CSSAgent.CSSRule} rulePayload | 239 * @param {!CSSAgent.CSSRule} rulePayload |
240 * @this {WebInspector.CSSStyleModel} | 240 * @this {WebInspector.CSSStyleModel} |
241 */ | 241 */ |
242 function callback(nodeId, successCallback, failureCallback, newSelector,
error, rulePayload) | 242 function callback(nodeId, successCallback, failureCallback, newSelector,
error, rulePayload) |
243 { | 243 { |
244 this._pendingCommandsMajorState.pop(); | 244 this._pendingCommandsMajorState.pop(); |
245 if (error) { | 245 if (error) { |
246 failureCallback(); | 246 failureCallback(); |
247 return; | 247 return; |
248 } | 248 } |
249 WebInspector.domAgent.markUndoableState(); | 249 WebInspector.domModel.markUndoableState(); |
250 this._computeMatchingSelectors(rulePayload, nodeId, successCallback,
failureCallback); | 250 this._computeMatchingSelectors(rulePayload, nodeId, successCallback,
failureCallback); |
251 } | 251 } |
252 | 252 |
253 | 253 |
254 this._pendingCommandsMajorState.push(true); | 254 this._pendingCommandsMajorState.push(true); |
255 CSSAgent.setRuleSelector(ruleId, newSelector, callback.bind(this, nodeId
, successCallback, failureCallback, newSelector)); | 255 CSSAgent.setRuleSelector(ruleId, newSelector, callback.bind(this, nodeId
, successCallback, failureCallback, newSelector)); |
256 }, | 256 }, |
257 | 257 |
258 /** | 258 /** |
259 * @param {!CSSAgent.CSSRule} rulePayload | 259 * @param {!CSSAgent.CSSRule} rulePayload |
260 * @param {!DOMAgent.NodeId} nodeId | 260 * @param {!DOMAgent.NodeId} nodeId |
261 * @param {function(!WebInspector.CSSRule)} successCallback | 261 * @param {function(!WebInspector.CSSRule)} successCallback |
262 * @param {function()} failureCallback | 262 * @param {function()} failureCallback |
263 */ | 263 */ |
264 _computeMatchingSelectors: function(rulePayload, nodeId, successCallback, fa
ilureCallback) | 264 _computeMatchingSelectors: function(rulePayload, nodeId, successCallback, fa
ilureCallback) |
265 { | 265 { |
266 var ownerDocumentId = this._ownerDocumentId(nodeId); | 266 var ownerDocumentId = this._ownerDocumentId(nodeId); |
267 if (!ownerDocumentId) { | 267 if (!ownerDocumentId) { |
268 failureCallback(); | 268 failureCallback(); |
269 return; | 269 return; |
270 } | 270 } |
271 var rule = WebInspector.CSSRule.parsePayload(rulePayload); | 271 var rule = WebInspector.CSSRule.parsePayload(rulePayload); |
272 var matchingSelectors = []; | 272 var matchingSelectors = []; |
273 var allSelectorsBarrier = new CallbackBarrier(); | 273 var allSelectorsBarrier = new CallbackBarrier(); |
274 for (var i = 0; i < rule.selectors.length; ++i) { | 274 for (var i = 0; i < rule.selectors.length; ++i) { |
275 var selector = rule.selectors[i]; | 275 var selector = rule.selectors[i]; |
276 var boundCallback = allSelectorsBarrier.createCallback(selectorQueri
ed.bind(null, i, nodeId, matchingSelectors)); | 276 var boundCallback = allSelectorsBarrier.createCallback(selectorQueri
ed.bind(null, i, nodeId, matchingSelectors)); |
277 WebInspector.domAgent.querySelectorAll(ownerDocumentId, selector.val
ue, boundCallback); | 277 WebInspector.domModel.querySelectorAll(ownerDocumentId, selector.val
ue, boundCallback); |
278 } | 278 } |
279 allSelectorsBarrier.callWhenDone(function() { | 279 allSelectorsBarrier.callWhenDone(function() { |
280 rule.matchingSelectors = matchingSelectors; | 280 rule.matchingSelectors = matchingSelectors; |
281 successCallback(rule); | 281 successCallback(rule); |
282 }); | 282 }); |
283 | 283 |
284 /** | 284 /** |
285 * @param {number} index | 285 * @param {number} index |
286 * @param {!DOMAgent.NodeId} nodeId | 286 * @param {!DOMAgent.NodeId} nodeId |
287 * @param {!Array.<number>} matchingSelectors | 287 * @param {!Array.<number>} matchingSelectors |
(...skipping 25 matching lines...) Expand all Loading... |
313 * @param {!CSSAgent.CSSRule} rulePayload | 313 * @param {!CSSAgent.CSSRule} rulePayload |
314 * @this {WebInspector.CSSStyleModel} | 314 * @this {WebInspector.CSSStyleModel} |
315 */ | 315 */ |
316 function callback(error, rulePayload) | 316 function callback(error, rulePayload) |
317 { | 317 { |
318 this._pendingCommandsMajorState.pop(); | 318 this._pendingCommandsMajorState.pop(); |
319 if (error) { | 319 if (error) { |
320 // Invalid syntax for a selector | 320 // Invalid syntax for a selector |
321 failureCallback(); | 321 failureCallback(); |
322 } else { | 322 } else { |
323 WebInspector.domAgent.markUndoableState(); | 323 WebInspector.domModel.markUndoableState(); |
324 this._computeMatchingSelectors(rulePayload, node.id, successCall
back, failureCallback); | 324 this._computeMatchingSelectors(rulePayload, node.id, successCall
back, failureCallback); |
325 } | 325 } |
326 } | 326 } |
327 }, | 327 }, |
328 | 328 |
329 /** | 329 /** |
330 * @param {!WebInspector.DOMNode} node | 330 * @param {!WebInspector.DOMNode} node |
331 * @param {function(?WebInspector.CSSStyleSheetHeader)} callback | 331 * @param {function(?WebInspector.CSSStyleSheetHeader)} callback |
332 */ | 332 */ |
333 requestViaInspectorStylesheet: function(node, callback) | 333 requestViaInspectorStylesheet: function(node, callback) |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
380 { | 380 { |
381 return Object.values(this._styleSheetIdToHeader); | 381 return Object.values(this._styleSheetIdToHeader); |
382 }, | 382 }, |
383 | 383 |
384 /** | 384 /** |
385 * @param {!DOMAgent.NodeId} nodeId | 385 * @param {!DOMAgent.NodeId} nodeId |
386 * @return {?DOMAgent.NodeId} | 386 * @return {?DOMAgent.NodeId} |
387 */ | 387 */ |
388 _ownerDocumentId: function(nodeId) | 388 _ownerDocumentId: function(nodeId) |
389 { | 389 { |
390 var node = WebInspector.domAgent.nodeForId(nodeId); | 390 var node = WebInspector.domModel.nodeForId(nodeId); |
391 if (!node) | 391 if (!node) |
392 return null; | 392 return null; |
393 return node.ownerDocument ? node.ownerDocument.id : null; | 393 return node.ownerDocument ? node.ownerDocument.id : null; |
394 }, | 394 }, |
395 | 395 |
396 /** | 396 /** |
397 * @param {!CSSAgent.StyleSheetId} styleSheetId | 397 * @param {!CSSAgent.StyleSheetId} styleSheetId |
398 */ | 398 */ |
399 _fireStyleSheetChanged: function(styleSheetId) | 399 _fireStyleSheetChanged: function(styleSheetId) |
400 { | 400 { |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 header.setContent(newText, callback.bind(this)); | 491 header.setContent(newText, callback.bind(this)); |
492 | 492 |
493 /** | 493 /** |
494 * @param {?Protocol.Error} error | 494 * @param {?Protocol.Error} error |
495 * @this {WebInspector.CSSStyleModel} | 495 * @this {WebInspector.CSSStyleModel} |
496 */ | 496 */ |
497 function callback(error) | 497 function callback(error) |
498 { | 498 { |
499 this._pendingCommandsMajorState.pop(); | 499 this._pendingCommandsMajorState.pop(); |
500 if (!error && majorChange) | 500 if (!error && majorChange) |
501 WebInspector.domAgent.markUndoableState(); | 501 WebInspector.domModel.markUndoableState(); |
502 | 502 |
503 if (!error && userCallback) | 503 if (!error && userCallback) |
504 userCallback(error); | 504 userCallback(error); |
505 } | 505 } |
506 }, | 506 }, |
507 | 507 |
508 _undoRedoRequested: function() | 508 _undoRedoRequested: function() |
509 { | 509 { |
510 this._pendingCommandsMajorState.push(true); | 510 this._pendingCommandsMajorState.push(true); |
511 }, | 511 }, |
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1117 /** | 1117 /** |
1118 * @param {?string} error | 1118 * @param {?string} error |
1119 * @param {!CSSAgent.CSSStyle} stylePayload | 1119 * @param {!CSSAgent.CSSStyle} stylePayload |
1120 * @this {WebInspector.CSSProperty} | 1120 * @this {WebInspector.CSSProperty} |
1121 */ | 1121 */ |
1122 function callback(error, stylePayload) | 1122 function callback(error, stylePayload) |
1123 { | 1123 { |
1124 WebInspector.cssModel._pendingCommandsMajorState.pop(); | 1124 WebInspector.cssModel._pendingCommandsMajorState.pop(); |
1125 if (!error) { | 1125 if (!error) { |
1126 if (majorChange) | 1126 if (majorChange) |
1127 WebInspector.domAgent.markUndoableState(); | 1127 WebInspector.domModel.markUndoableState(); |
1128 var style = WebInspector.CSSStyleDeclaration.parsePayload(styleP
ayload); | 1128 var style = WebInspector.CSSStyleDeclaration.parsePayload(styleP
ayload); |
1129 var newProperty = style.allProperties[this.index]; | 1129 var newProperty = style.allProperties[this.index]; |
1130 | 1130 |
1131 if (newProperty && this.disabled && !propertyText.match(/^\s*$/)
) { | 1131 if (newProperty && this.disabled && !propertyText.match(/^\s*$/)
) { |
1132 newProperty.setDisabled(false, enabledCallback); | 1132 newProperty.setDisabled(false, enabledCallback); |
1133 return; | 1133 return; |
1134 } | 1134 } |
1135 if (userCallback) | 1135 if (userCallback) |
1136 userCallback(style); | 1136 userCallback(style); |
1137 } else { | 1137 } else { |
(...skipping 431 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1569 for (var i = 0; i < callbacks.length; ++i) | 1569 for (var i = 0; i < callbacks.length; ++i) |
1570 callbacks[i](computedStyle); | 1570 callbacks[i](computedStyle); |
1571 } | 1571 } |
1572 } | 1572 } |
1573 } | 1573 } |
1574 | 1574 |
1575 /** | 1575 /** |
1576 * @type {!WebInspector.CSSStyleModel} | 1576 * @type {!WebInspector.CSSStyleModel} |
1577 */ | 1577 */ |
1578 WebInspector.cssModel; | 1578 WebInspector.cssModel; |
OLD | NEW |