CSSStyleSheetHeader.js 2.9 KB

123456789101112131415161718192021
  1. export default class CSSStyleSheetHeader{constructor(cssModel,payload){this._cssModel=cssModel;this.id=payload.styleSheetId;this.frameId=payload.frameId;this.sourceURL=payload.sourceURL;this.hasSourceURL=!!payload.hasSourceURL;this.origin=payload.origin;this.title=payload.title;this.disabled=payload.disabled;this.isInline=payload.isInline;this.startLine=payload.startLine;this.startColumn=payload.startColumn;this.endLine=payload.endLine;this.endColumn=payload.endColumn;this.contentLength=payload.length;if(payload.ownerNode){this.ownerNode=new SDK.DeferredDOMNode(cssModel.target(),payload.ownerNode);}
  2. this.setSourceMapURL(payload.sourceMapURL);}
  3. originalContentProvider(){if(!this._originalContentProvider){const lazyContent=(async()=>{const originalText=await this._cssModel.originalStyleSheetText(this);if(originalText===null){return{error:ls`Could not find the original style sheet.`,isEncoded:false};}
  4. return{content:originalText,isEncoded:false};});this._originalContentProvider=new Common.StaticContentProvider(this.contentURL(),this.contentType(),lazyContent);}
  5. return this._originalContentProvider;}
  6. setSourceMapURL(sourceMapURL){this.sourceMapURL=sourceMapURL;}
  7. cssModel(){return this._cssModel;}
  8. isAnonymousInlineStyleSheet(){return!this.resourceURL()&&!this._cssModel.sourceMapManager().sourceMapForClient(this);}
  9. resourceURL(){return this.isViaInspector()?this._viaInspectorResourceURL():this.sourceURL;}
  10. _viaInspectorResourceURL(){const frame=this._cssModel.target().model(SDK.ResourceTreeModel).frameForId(this.frameId);console.assert(frame);const parsedURL=new Common.ParsedURL(frame.url);let fakeURL='inspector://'+parsedURL.host+parsedURL.folderPathComponents;if(!fakeURL.endsWith('/')){fakeURL+='/';}
  11. fakeURL+='inspector-stylesheet';return fakeURL;}
  12. lineNumberInSource(lineNumberInStyleSheet){return this.startLine+lineNumberInStyleSheet;}
  13. columnNumberInSource(lineNumberInStyleSheet,columnNumberInStyleSheet){return(lineNumberInStyleSheet?0:this.startColumn)+columnNumberInStyleSheet;}
  14. containsLocation(lineNumber,columnNumber){const afterStart=(lineNumber===this.startLine&&columnNumber>=this.startColumn)||lineNumber>this.startLine;const beforeEnd=lineNumber<this.endLine||(lineNumber===this.endLine&&columnNumber<=this.endColumn);return afterStart&&beforeEnd;}
  15. contentURL(){return this.resourceURL();}
  16. contentType(){return Common.resourceTypes.Stylesheet;}
  17. contentEncoded(){return Promise.resolve(false);}
  18. async requestContent(){try{const cssText=await this._cssModel.getStyleSheetText(this.id);return{content:(cssText),isEncoded:false};}catch(err){return{error:ls`There was an error retrieving the source styles.`,isEncoded:false,};}}
  19. async searchInContent(query,caseSensitive,isRegex){const{content}=await this.requestContent();return Common.ContentProvider.performSearchInContent(content||'',query,caseSensitive,isRegex);}
  20. isViaInspector(){return this.origin==='inspector';}}
  21. self.SDK=self.SDK||{};SDK=SDK||{};SDK.CSSStyleSheetHeader=CSSStyleSheetHeader;