OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 12 matching lines...) Expand all Loading... |
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
24 */ | 24 */ |
25 | 25 |
26 /** | 26 /** |
27 * @implements {Common.ContentProvider} | 27 * @implements {Common.ContentProvider} |
28 * @unrestricted | 28 * @unrestricted |
29 */ | 29 */ |
30 SDK.Script = class { | 30 SDK.Script = class { |
31 /** | 31 /** |
32 * @param {!SDK.DebuggerModel} debuggerModel | 32 * @param {!SDK.DebuggerModel} debuggerModel |
| 33 * @param {!Protocol.DebuggerAgent} debuggerAgent |
33 * @param {string} scriptId | 34 * @param {string} scriptId |
34 * @param {string} sourceURL | 35 * @param {string} sourceURL |
35 * @param {number} startLine | 36 * @param {number} startLine |
36 * @param {number} startColumn | 37 * @param {number} startColumn |
37 * @param {number} endLine | 38 * @param {number} endLine |
38 * @param {number} endColumn | 39 * @param {number} endColumn |
39 * @param {!Protocol.Runtime.ExecutionContextId} executionContextId | 40 * @param {!Protocol.Runtime.ExecutionContextId} executionContextId |
40 * @param {string} hash | 41 * @param {string} hash |
41 * @param {boolean} isContentScript | 42 * @param {boolean} isContentScript |
42 * @param {boolean} isLiveEdit | 43 * @param {boolean} isLiveEdit |
43 * @param {string|undefined} sourceMapURL | 44 * @param {string|undefined} sourceMapURL |
44 * @param {boolean} hasSourceURL | 45 * @param {boolean} hasSourceURL |
45 * @param {number} length | 46 * @param {number} length |
46 */ | 47 */ |
47 constructor( | 48 constructor( |
48 debuggerModel, scriptId, sourceURL, startLine, startColumn, endLine, endCo
lumn, executionContextId, hash, | 49 debuggerModel, debuggerAgent, scriptId, sourceURL, startLine, startColumn,
endLine, endColumn, executionContextId, |
49 isContentScript, isLiveEdit, sourceMapURL, hasSourceURL, length) { | 50 hash, isContentScript, isLiveEdit, sourceMapURL, hasSourceURL, length) { |
50 this.debuggerModel = debuggerModel; | 51 this.debuggerModel = debuggerModel; |
| 52 this._debuggerAgent = debuggerAgent; |
51 this.scriptId = scriptId; | 53 this.scriptId = scriptId; |
52 this.sourceURL = sourceURL; | 54 this.sourceURL = sourceURL; |
53 this.lineOffset = startLine; | 55 this.lineOffset = startLine; |
54 this.columnOffset = startColumn; | 56 this.columnOffset = startColumn; |
55 this.endLine = endLine; | 57 this.endLine = endLine; |
56 this.endColumn = endColumn; | 58 this.endColumn = endColumn; |
57 | 59 |
58 this.executionContextId = executionContextId; | 60 this.executionContextId = executionContextId; |
59 this.hash = hash; | 61 this.hash = hash; |
60 this._isContentScript = isContentScript; | 62 this._isContentScript = isContentScript; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 * @return {!Promise<?string>} | 130 * @return {!Promise<?string>} |
129 */ | 131 */ |
130 requestContent() { | 132 requestContent() { |
131 if (this._source) | 133 if (this._source) |
132 return Promise.resolve(this._source); | 134 return Promise.resolve(this._source); |
133 if (!this.scriptId) | 135 if (!this.scriptId) |
134 return Promise.resolve(/** @type {?string} */ ('')); | 136 return Promise.resolve(/** @type {?string} */ ('')); |
135 | 137 |
136 var callback; | 138 var callback; |
137 var promise = new Promise(fulfill => callback = fulfill); | 139 var promise = new Promise(fulfill => callback = fulfill); |
138 this.debuggerModel.target().debuggerAgent().getScriptSource(this.scriptId, d
idGetScriptSource.bind(this)); | 140 this._debuggerAgent.getScriptSource(this.scriptId, didGetScriptSource.bind(t
his)); |
139 return promise; | 141 return promise; |
140 | 142 |
141 /** | 143 /** |
142 * @this {SDK.Script} | 144 * @this {SDK.Script} |
143 * @param {?Protocol.Error} error | 145 * @param {?Protocol.Error} error |
144 * @param {string} source | 146 * @param {string} source |
145 */ | 147 */ |
146 function didGetScriptSource(error, source) { | 148 function didGetScriptSource(error, source) { |
147 this._source = error ? '' : SDK.Script._trimSourceURLComment(source); | 149 this._source = error ? '' : SDK.Script._trimSourceURLComment(source); |
148 if (this._originalSource === null) | 150 if (this._originalSource === null) |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 for (var i = 0; i < searchMatches.length; ++i) { | 187 for (var i = 0; i < searchMatches.length; ++i) { |
186 var searchMatch = | 188 var searchMatch = |
187 new Common.ContentProvider.SearchMatch(searchMatches[i].lineNumber,
searchMatches[i].lineContent); | 189 new Common.ContentProvider.SearchMatch(searchMatches[i].lineNumber,
searchMatches[i].lineContent); |
188 result.push(searchMatch); | 190 result.push(searchMatch); |
189 } | 191 } |
190 callback(result || []); | 192 callback(result || []); |
191 } | 193 } |
192 | 194 |
193 if (this.scriptId) { | 195 if (this.scriptId) { |
194 // Script failed to parse. | 196 // Script failed to parse. |
195 this.debuggerModel.target().debuggerAgent().searchInContent( | 197 this._debuggerAgent.searchInContent(this.scriptId, query, caseSensitive, i
sRegex, innerCallback); |
196 this.scriptId, query, caseSensitive, isRegex, innerCallback); | |
197 } else { | 198 } else { |
198 callback([]); | 199 callback([]); |
199 } | 200 } |
200 } | 201 } |
201 | 202 |
202 /** | 203 /** |
203 * @param {string} source | 204 * @param {string} source |
204 * @return {string} | 205 * @return {string} |
205 */ | 206 */ |
206 _appendSourceURLCommentIfNeeded(source) { | 207 _appendSourceURLCommentIfNeeded(source) { |
(...skipping 21 matching lines...) Expand all Loading... |
228 var needsStepIn = !!stackChanged; | 229 var needsStepIn = !!stackChanged; |
229 callback(error, exceptionDetails, callFrames, asyncStackTrace, needsStepIn
); | 230 callback(error, exceptionDetails, callFrames, asyncStackTrace, needsStepIn
); |
230 } | 231 } |
231 | 232 |
232 newSource = SDK.Script._trimSourceURLComment(newSource); | 233 newSource = SDK.Script._trimSourceURLComment(newSource); |
233 // We append correct sourceURL to script for consistency only. It's not actu
ally needed for things to work correctly. | 234 // We append correct sourceURL to script for consistency only. It's not actu
ally needed for things to work correctly. |
234 newSource = this._appendSourceURLCommentIfNeeded(newSource); | 235 newSource = this._appendSourceURLCommentIfNeeded(newSource); |
235 | 236 |
236 if (this.scriptId) { | 237 if (this.scriptId) { |
237 this.requestContent().then( | 238 this.requestContent().then( |
238 () => this.debuggerModel.target().debuggerAgent().setScriptSource( | 239 () => |
239 this.scriptId, newSource, undefined, didEditScriptSource.bind(this
))); | 240 this._debuggerAgent.setScriptSource(this.scriptId, newSource, unde
fined, didEditScriptSource.bind(this))); |
240 } else { | 241 } else { |
241 callback('Script failed to parse'); | 242 callback('Script failed to parse'); |
242 } | 243 } |
243 } | 244 } |
244 | 245 |
245 /** | 246 /** |
246 * @param {number} lineNumber | 247 * @param {number} lineNumber |
247 * @param {number=} columnNumber | 248 * @param {number=} columnNumber |
248 * @return {!SDK.DebuggerModel.Location} | 249 * @return {!SDK.DebuggerModel.Location} |
249 */ | 250 */ |
(...skipping 29 matching lines...) Expand all Loading... |
279 */ | 280 */ |
280 setBlackboxedRanges(positions) { | 281 setBlackboxedRanges(positions) { |
281 return new Promise(setBlackboxedRanges.bind(this)); | 282 return new Promise(setBlackboxedRanges.bind(this)); |
282 | 283 |
283 /** | 284 /** |
284 * @param {function(?)} fulfill | 285 * @param {function(?)} fulfill |
285 * @param {function(*)} reject | 286 * @param {function(*)} reject |
286 * @this {SDK.Script} | 287 * @this {SDK.Script} |
287 */ | 288 */ |
288 function setBlackboxedRanges(fulfill, reject) { | 289 function setBlackboxedRanges(fulfill, reject) { |
289 this.debuggerModel.target().debuggerAgent().setBlackboxedRanges(this.scrip
tId, positions, callback); | 290 this._debuggerAgent.setBlackboxedRanges(this.scriptId, positions, callback
); |
290 /** | 291 /** |
291 * @param {?Protocol.Error} error | 292 * @param {?Protocol.Error} error |
292 */ | 293 */ |
293 function callback(error) { | 294 function callback(error) { |
294 if (error) | 295 if (error) |
295 console.error(error); | 296 console.error(error); |
296 fulfill(!error); | 297 fulfill(!error); |
297 } | 298 } |
298 } | 299 } |
299 } | 300 } |
300 }; | 301 }; |
301 | 302 |
302 SDK.Script.sourceURLRegex = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m; | 303 SDK.Script.sourceURLRegex = /^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m; |
OLD | NEW |