WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.UndoRedoRequested, this._undoRedoRequested, this);
WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.UndoRedoCompleted, this._undoRedoCompleted, this);
WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameCreatedOrNavigated, this._mainFrameCreatedOrNavigated, this);
- this._namedFlowCollections = {};
- WebInspector.domAgent.addEventListener(WebInspector.DOMAgent.Events.DocumentUpdated, this._resetNamedFlowCollections, this);
InspectorBackend.registerCSSDispatcher(new WebInspector.CSSDispatcher(this));
CSSAgent.enable(this._wasEnabled.bind(this));
this._resetStyleSheets();
StyleSheetChanged: "StyleSheetChanged",
StyleSheetRemoved: "StyleSheetRemoved",
MediaQueryResultChanged: "MediaQueryResultChanged",
- NamedFlowCreated: "NamedFlowCreated",
- NamedFlowRemoved: "NamedFlowRemoved",
- RegionLayoutUpdated: "RegionLayoutUpdated",
- RegionOversetChanged: "RegionOversetChanged"
}
WebInspector.CSSStyleModel.MediaTypes = ["all", "braille", "embossed", "handheld", "print", "projection", "screen", "speech", "tty", "tv"];
},
/**
+ * @return {!Array.<!WebInspector.CSSStyleSheetHeader>}
+ */
+ allStyleSheets: function()
+ {
+ return Object.values(this._styleSheetIdToHeader);
+ },
+
+ /**
* @param {!DOMAgent.NodeId} nodeId
* @param {function(?WebInspector.CSSStyleDeclaration, ?WebInspector.CSSStyleDeclaration)} userCallback
*/
},
/**
- * @param {!DOMAgent.NodeId} documentNodeId
- * @param {function(?WebInspector.NamedFlowCollection)} userCallback
- */
- getNamedFlowCollectionAsync: function(documentNodeId, userCallback)
- {
- var namedFlowCollection = this._namedFlowCollections[documentNodeId];
- if (namedFlowCollection) {
- userCallback(namedFlowCollection);
- return;
- }
-
- /**
- * @param {function(?WebInspector.NamedFlowCollection)} userCallback
- * @param {?Protocol.Error} error
- * @param {?Array.<!CSSAgent.NamedFlow>} namedFlowPayload
- * @this {WebInspector.CSSStyleModel}
- */
- function callback(userCallback, error, namedFlowPayload)
- {
- if (error || !namedFlowPayload)
- userCallback(null);
- else {
- var namedFlowCollection = new WebInspector.NamedFlowCollection(namedFlowPayload);
- this._namedFlowCollections[documentNodeId] = namedFlowCollection;
- userCallback(namedFlowCollection);
- }
- }
-
- CSSAgent.getNamedFlowCollection(documentNodeId, callback.bind(this, userCallback));
- },
-
- /**
- * @param {!DOMAgent.NodeId} documentNodeId
- * @param {string} flowName
- * @param {function(?WebInspector.NamedFlow)} userCallback
- */
- getFlowByNameAsync: function(documentNodeId, flowName, userCallback)
- {
- var namedFlowCollection = this._namedFlowCollections[documentNodeId];
- if (namedFlowCollection) {
- userCallback(namedFlowCollection.flowByName(flowName));
- return;
- }
-
- /**
- * @param {function(?WebInspector.NamedFlow)} userCallback
- * @param {?WebInspector.NamedFlowCollection} namedFlowCollection
- */
- function callback(userCallback, namedFlowCollection)
- {
- if (!namedFlowCollection)
- userCallback(null);
- else
- userCallback(namedFlowCollection.flowByName(flowName));
- }
-
- this.getNamedFlowCollectionAsync(documentNodeId, callback.bind(this, userCallback));
- },
-
- /**
* @param {!CSSAgent.CSSRuleId} ruleId
* @param {!DOMAgent.NodeId} nodeId
* @param {string} newSelector
},
/**
- * @param {!CSSAgent.NamedFlow} namedFlowPayload
- */
- _namedFlowCreated: function(namedFlowPayload)
- {
- var namedFlow = WebInspector.NamedFlow.parsePayload(namedFlowPayload);
- var namedFlowCollection = this._namedFlowCollections[namedFlow.documentNodeId];
-
- if (!namedFlowCollection)
- return;
-
- namedFlowCollection._appendNamedFlow(namedFlow);
- this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.NamedFlowCreated, namedFlow);
- },
-
- /**
- * @param {!DOMAgent.NodeId} documentNodeId
- * @param {string} flowName
- */
- _namedFlowRemoved: function(documentNodeId, flowName)
- {
- var namedFlowCollection = this._namedFlowCollections[documentNodeId];
-
- if (!namedFlowCollection)
- return;
-
- namedFlowCollection._removeNamedFlow(flowName);
- this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.NamedFlowRemoved, { documentNodeId: documentNodeId, flowName: flowName });
- },
-
- /**
- * @param {!CSSAgent.NamedFlow} namedFlowPayload
- */
- _regionLayoutUpdated: function(namedFlowPayload)
- {
- var namedFlow = WebInspector.NamedFlow.parsePayload(namedFlowPayload);
- var namedFlowCollection = this._namedFlowCollections[namedFlow.documentNodeId];
-
- if (!namedFlowCollection)
- return;
-
- namedFlowCollection._appendNamedFlow(namedFlow);
- this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.RegionLayoutUpdated, namedFlow);
- },
-
- /**
- * @param {!CSSAgent.NamedFlow} namedFlowPayload
- */
- _regionOversetChanged: function(namedFlowPayload)
- {
- var namedFlow = WebInspector.NamedFlow.parsePayload(namedFlowPayload);
- var namedFlowCollection = this._namedFlowCollections[namedFlow.documentNodeId];
-
- if (!namedFlowCollection)
- return;
-
- namedFlowCollection._appendNamedFlow(namedFlow);
- this.dispatchEventToListeners(WebInspector.CSSStyleModel.Events.RegionOversetChanged, namedFlow);
- },
-
- /**
* @param {!CSSAgent.StyleSheetId} styleSheetId
* @param {string} newText
* @param {boolean} majorChange
this._styleSheetIdToHeader = {};
},
- _resetNamedFlowCollections: function()
- {
- this._namedFlowCollections = {};
- },
-
updateLocations: function()
{
var headers = Object.values(this._styleSheetIdToHeader);
{
this.insertPropertyAt(this.allProperties.length, name, value, userCallback);
},
-
- /**
- * @param {string} text
- * @param {function(?WebInspector.CSSStyleDeclaration)=} userCallback
- */
- setText: function(text, userCallback)
- {
- /**
- * @param {?string} error
- * @param {!CSSAgent.CSSStyle} payload
- */
- function callback(error, payload)
- {
- WebInspector.cssModel._pendingCommandsMajorState.pop();
- if (!userCallback)
- return;
-
- if (error) {
- console.error(error);
- userCallback(null);
- } else
- userCallback(WebInspector.CSSStyleDeclaration.parsePayload(payload));
- }
-
- if (!this.id)
- throw "No style id";
-
- if (typeof this.cssText === "undefined") {
- userCallback(null);
- return;
- }
-
- WebInspector.cssModel._pendingCommandsMajorState.push(true);
- CSSAgent.setStyleText(this.id, text, callback);
- }
}
/**
},
/**
- * Replaces "propertyName: propertyValue [!important];" in the stylesheet by an arbitrary propertyText.
- *
* @param {string} propertyText
* @param {boolean} majorChange
* @param {boolean} overwrite
if (!error) {
if (majorChange)
WebInspector.domAgent.markUndoableState();
- this.text = propertyText;
var style = WebInspector.CSSStyleDeclaration.parsePayload(stylePayload);
var newProperty = style.allProperties[this.index];
newProperty.setDisabled(false, enabledCallback);
return;
}
-
if (userCallback)
userCallback(style);
} else {
{
if (!this.ownerStyle && userCallback)
userCallback(null);
- if (disabled === this.disabled && userCallback)
- userCallback(this.ownerStyle);
-
- /**
- * @param {?string} error
- * @param {!CSSAgent.CSSStyle} stylePayload
- */
- function callback(error, stylePayload)
- {
- WebInspector.cssModel._pendingCommandsMajorState.pop();
- if (error) {
- if (userCallback)
- userCallback(null);
- return;
- }
- WebInspector.domAgent.markUndoableState();
- if (userCallback) {
- var style = WebInspector.CSSStyleDeclaration.parsePayload(stylePayload);
- userCallback(style);
- }
+ if (disabled === this.disabled) {
+ if (userCallback)
+ userCallback(this.ownerStyle);
+ return;
}
-
- if (!this.ownerStyle.id)
- throw "No owner style id";
-
- WebInspector.cssModel._pendingCommandsMajorState.push(false);
- CSSAgent.toggleProperty(this.ownerStyle.id, this.index, disabled, callback.bind(this));
+ if (disabled)
+ this.setText("/* " + this.text + " */", true, true, userCallback);
+ else
+ this.setText(this.text.substring(2, this.text.length - 2).trim(), true, true, userCallback);
},
/**
{
this._cssModel._styleSheetRemoved(id);
},
-
- /**
- * @param {!CSSAgent.NamedFlow} namedFlowPayload
- */
- namedFlowCreated: function(namedFlowPayload)
- {
- this._cssModel._namedFlowCreated(namedFlowPayload);
- },
-
- /**
- * @param {!DOMAgent.NodeId} documentNodeId
- * @param {string} flowName
- */
- namedFlowRemoved: function(documentNodeId, flowName)
- {
- this._cssModel._namedFlowRemoved(documentNodeId, flowName);
- },
-
- /**
- * @param {!CSSAgent.NamedFlow} namedFlowPayload
- */
- regionLayoutUpdated: function(namedFlowPayload)
- {
- this._cssModel._regionLayoutUpdated(namedFlowPayload);
- },
-
- /**
- * @param {!CSSAgent.NamedFlow} namedFlowPayload
- */
- regionOversetChanged: function(namedFlowPayload)
- {
- this._cssModel._regionOversetChanged(namedFlowPayload);
- }
-}
-
-/**
- * @constructor
- * @param {!CSSAgent.NamedFlow} payload
- */
-WebInspector.NamedFlow = function(payload)
-{
- this.documentNodeId = payload.documentNodeId;
- this.name = payload.name;
- this.overset = payload.overset;
- this.content = payload.content;
- this.regions = payload.regions;
-}
-
-/**
- * @param {!CSSAgent.NamedFlow} payload
- * @return {!WebInspector.NamedFlow}
- */
-WebInspector.NamedFlow.parsePayload = function(payload)
-{
- return new WebInspector.NamedFlow(payload);
-}
-
-/**
- * @constructor
- * @param {!Array.<!CSSAgent.NamedFlow>} payload
- */
-WebInspector.NamedFlowCollection = function(payload)
-{
- /** @type {!Object.<string, !WebInspector.NamedFlow>} */
- this.namedFlowMap = {};
-
- for (var i = 0; i < payload.length; ++i) {
- var namedFlow = WebInspector.NamedFlow.parsePayload(payload[i]);
- this.namedFlowMap[namedFlow.name] = namedFlow;
- }
-}
-
-WebInspector.NamedFlowCollection.prototype = {
- /**
- * @param {!WebInspector.NamedFlow} namedFlow
- */
- _appendNamedFlow: function(namedFlow)
- {
- this.namedFlowMap[namedFlow.name] = namedFlow;
- },
-
- /**
- * @param {string} flowName
- */
- _removeNamedFlow: function(flowName)
- {
- delete this.namedFlowMap[flowName];
- },
-
- /**
- * @param {string} flowName
- * @return {?WebInspector.NamedFlow}
- */
- flowByName: function(flowName)
- {
- var namedFlow = this.namedFlowMap[flowName];
-
- if (!namedFlow)
- return null;
- return namedFlow;
- }
}
/**