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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sdk/Resource.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 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 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the 11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 12 * documentation and/or other materials provided with the distribution.
13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 13 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
14 * its contributors may be used to endorse or promote products derived 14 * its contributors may be used to endorse or promote products derived
15 * from this software without specific prior written permission. 15 * from this software without specific prior written permission.
16 * 16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 17 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 20 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28
29 /** 28 /**
30 * @constructor
31 * @extends {WebInspector.SDKObject}
32 * @implements {WebInspector.ContentProvider} 29 * @implements {WebInspector.ContentProvider}
33 * @param {!WebInspector.Target} target 30 * @unrestricted
34 * @param {?WebInspector.NetworkRequest} request
35 * @param {string} url
36 * @param {string} documentURL
37 * @param {!PageAgent.FrameId} frameId
38 * @param {!NetworkAgent.LoaderId} loaderId
39 * @param {!WebInspector.ResourceType} type
40 * @param {string} mimeType
41 * @param {?Date} lastModified
42 * @param {?number} contentSize
43 */ 31 */
44 WebInspector.Resource = function(target, request, url, documentURL, frameId, loa derId, type, mimeType, lastModified, contentSize) 32 WebInspector.Resource = class extends WebInspector.SDKObject {
45 { 33 /**
46 WebInspector.SDKObject.call(this, target); 34 * @param {!WebInspector.Target} target
35 * @param {?WebInspector.NetworkRequest} request
36 * @param {string} url
37 * @param {string} documentURL
38 * @param {!PageAgent.FrameId} frameId
39 * @param {!NetworkAgent.LoaderId} loaderId
40 * @param {!WebInspector.ResourceType} type
41 * @param {string} mimeType
42 * @param {?Date} lastModified
43 * @param {?number} contentSize
44 */
45 constructor(target, request, url, documentURL, frameId, loaderId, type, mimeTy pe, lastModified, contentSize) {
46 super(target);
47 this._request = request; 47 this._request = request;
48 this.url = url; 48 this.url = url;
49 this._documentURL = documentURL; 49 this._documentURL = documentURL;
50 this._frameId = frameId; 50 this._frameId = frameId;
51 this._loaderId = loaderId; 51 this._loaderId = loaderId;
52 this._type = type || WebInspector.resourceTypes.Other; 52 this._type = type || WebInspector.resourceTypes.Other;
53 this._mimeType = mimeType; 53 this._mimeType = mimeType;
54 54
55 this._lastModified = lastModified && lastModified.isValid() ? lastModified : null; 55 this._lastModified = lastModified && lastModified.isValid() ? lastModified : null;
56 this._contentSize = contentSize; 56 this._contentSize = contentSize;
57 57
58 /** @type {?string} */ this._content; 58 /** @type {?string} */ this._content;
59 /** @type {boolean} */ this._contentEncoded; 59 /** @type {boolean} */ this._contentEncoded;
60 this._pendingContentCallbacks = []; 60 this._pendingContentCallbacks = [];
61 if (this._request && !this._request.finished) 61 if (this._request && !this._request.finished)
62 this._request.addEventListener(WebInspector.NetworkRequest.Events.Finish edLoading, this._requestFinished, this); 62 this._request.addEventListener(WebInspector.NetworkRequest.Events.Finished Loading, this._requestFinished, this);
63 }
64
65 /**
66 * @return {?Date}
67 */
68 lastModified() {
69 if (this._lastModified || !this._request)
70 return this._lastModified;
71 var lastModifiedHeader = this._request.responseLastModified();
72 var date = lastModifiedHeader ? new Date(lastModifiedHeader) : null;
73 this._lastModified = date && date.isValid() ? date : null;
74 return this._lastModified;
75 }
76
77 /**
78 * @return {?number}
79 */
80 contentSize() {
81 if (typeof this._contentSize === 'number' || !this._request)
82 return this._contentSize;
83 return this._request.resourceSize;
84 }
85
86 /**
87 * @return {?WebInspector.NetworkRequest}
88 */
89 get request() {
90 return this._request;
91 }
92
93 /**
94 * @return {string}
95 */
96 get url() {
97 return this._url;
98 }
99
100 /**
101 * @param {string} x
102 */
103 set url(x) {
104 this._url = x;
105 this._parsedURL = new WebInspector.ParsedURL(x);
106 }
107
108 get parsedURL() {
109 return this._parsedURL;
110 }
111
112 /**
113 * @return {string}
114 */
115 get documentURL() {
116 return this._documentURL;
117 }
118
119 /**
120 * @return {!PageAgent.FrameId}
121 */
122 get frameId() {
123 return this._frameId;
124 }
125
126 /**
127 * @return {!NetworkAgent.LoaderId}
128 */
129 get loaderId() {
130 return this._loaderId;
131 }
132
133 /**
134 * @return {string}
135 */
136 get displayName() {
137 return this._parsedURL.displayName;
138 }
139
140 /**
141 * @return {!WebInspector.ResourceType}
142 */
143 resourceType() {
144 return this._request ? this._request.resourceType() : this._type;
145 }
146
147 /**
148 * @return {string}
149 */
150 get mimeType() {
151 return this._request ? this._request.mimeType : this._mimeType;
152 }
153
154 /**
155 * @return {?string}
156 */
157 get content() {
158 return this._content;
159 }
160
161 /**
162 * @return {boolean}
163 */
164 get contentEncoded() {
165 return this._contentEncoded;
166 }
167
168 /**
169 * @override
170 * @return {string}
171 */
172 contentURL() {
173 return this._url;
174 }
175
176 /**
177 * @override
178 * @return {!WebInspector.ResourceType}
179 */
180 contentType() {
181 if (this.resourceType() === WebInspector.resourceTypes.Document && this.mime Type.indexOf('javascript') !== -1)
182 return WebInspector.resourceTypes.Script;
183 return this.resourceType();
184 }
185
186 /**
187 * @override
188 * @return {!Promise<?string>}
189 */
190 requestContent() {
191 if (typeof this._content !== 'undefined')
192 return Promise.resolve(this._content);
193
194 var callback;
195 var promise = new Promise(fulfill => callback = fulfill);
196 this._pendingContentCallbacks.push(callback);
197 if (!this._request || this._request.finished)
198 this._innerRequestContent();
199 return promise;
200 }
201
202 /**
203 * @return {string}
204 */
205 canonicalMimeType() {
206 return this.contentType().canonicalMimeType() || this.mimeType;
207 }
208
209 /**
210 * @override
211 * @param {string} query
212 * @param {boolean} caseSensitive
213 * @param {boolean} isRegex
214 * @param {function(!Array.<!WebInspector.ContentProvider.SearchMatch>)} callb ack
215 */
216 searchInContent(query, caseSensitive, isRegex, callback) {
217 /**
218 * @param {?Protocol.Error} error
219 * @param {!Array.<!DebuggerAgent.SearchMatch>} searchMatches
220 */
221 function callbackWrapper(error, searchMatches) {
222 callback(searchMatches || []);
223 }
224
225 if (this.frameId)
226 this.target().pageAgent().searchInResource(
227 this.frameId, this.url, query, caseSensitive, isRegex, callbackWrapper );
228 else
229 callback([]);
230 }
231
232 /**
233 * @param {!Element} image
234 */
235 populateImageSource(image) {
236 /**
237 * @param {?string} content
238 * @this {WebInspector.Resource}
239 */
240 function onResourceContent(content) {
241 var imageSrc = WebInspector.ContentProvider.contentAsDataURL(content, this ._mimeType, true);
242 if (imageSrc === null)
243 imageSrc = this._url;
244 image.src = imageSrc;
245 }
246
247 this.requestContent().then(onResourceContent.bind(this));
248 }
249
250 _requestFinished() {
251 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Finishe dLoading, this._requestFinished, this);
252 if (this._pendingContentCallbacks.length)
253 this._innerRequestContent();
254 }
255
256 _innerRequestContent() {
257 if (this._contentRequested)
258 return;
259 this._contentRequested = true;
260
261 /**
262 * @param {?Protocol.Error} error
263 * @param {?string} content
264 * @param {boolean} contentEncoded
265 * @this {WebInspector.Resource}
266 */
267 function contentLoaded(error, content, contentEncoded) {
268 if (error || content === null) {
269 replyWithContent.call(this, null, false);
270 return;
271 }
272 replyWithContent.call(this, content, contentEncoded);
273 }
274
275 /**
276 * @param {?string} content
277 * @param {boolean} contentEncoded
278 * @this {WebInspector.Resource}
279 */
280 function replyWithContent(content, contentEncoded) {
281 this._content = content;
282 this._contentEncoded = contentEncoded;
283 var callbacks = this._pendingContentCallbacks.slice();
284 for (var i = 0; i < callbacks.length; ++i)
285 callbacks[i](this._content);
286 this._pendingContentCallbacks.length = 0;
287 delete this._contentRequested;
288 }
289
290 /**
291 * @param {?Protocol.Error} error
292 * @param {string} content
293 * @param {boolean} contentEncoded
294 * @this {WebInspector.Resource}
295 */
296 function resourceContentLoaded(error, content, contentEncoded) {
297 contentLoaded.call(this, error, content, contentEncoded);
298 }
299
300 if (this.request) {
301 this.request.requestContent().then(requestContentLoaded.bind(this));
302 return;
303 }
304
305 /**
306 * @param {?string} content
307 * @this {WebInspector.Resource}
308 */
309 function requestContentLoaded(content) {
310 contentLoaded.call(this, null, content, this.request.contentEncoded);
311 }
312
313 this.target().pageAgent().getResourceContent(this.frameId, this.url, resourc eContentLoaded.bind(this));
314 }
315
316 /**
317 * @return {boolean}
318 */
319 hasTextContent() {
320 if (this._type.isTextType())
321 return true;
322 if (this._type === WebInspector.resourceTypes.Other)
323 return !!this._content && !this._contentEncoded;
324 return false;
325 }
63 }; 326 };
64
65 WebInspector.Resource.prototype = {
66 /**
67 * @return {?Date}
68 */
69 lastModified: function()
70 {
71 if (this._lastModified || !this._request)
72 return this._lastModified;
73 var lastModifiedHeader = this._request.responseLastModified();
74 var date = lastModifiedHeader ? new Date(lastModifiedHeader) : null;
75 this._lastModified = date && date.isValid() ? date : null;
76 return this._lastModified;
77 },
78
79 /**
80 * @return {?number}
81 */
82 contentSize: function()
83 {
84 if (typeof this._contentSize === "number" || !this._request)
85 return this._contentSize;
86 return this._request.resourceSize;
87 },
88
89 /**
90 * @return {?WebInspector.NetworkRequest}
91 */
92 get request()
93 {
94 return this._request;
95 },
96
97 /**
98 * @return {string}
99 */
100 get url()
101 {
102 return this._url;
103 },
104
105 set url(x)
106 {
107 this._url = x;
108 this._parsedURL = new WebInspector.ParsedURL(x);
109 },
110
111 get parsedURL()
112 {
113 return this._parsedURL;
114 },
115
116 /**
117 * @return {string}
118 */
119 get documentURL()
120 {
121 return this._documentURL;
122 },
123
124 /**
125 * @return {!PageAgent.FrameId}
126 */
127 get frameId()
128 {
129 return this._frameId;
130 },
131
132 /**
133 * @return {!NetworkAgent.LoaderId}
134 */
135 get loaderId()
136 {
137 return this._loaderId;
138 },
139
140 /**
141 * @return {string}
142 */
143 get displayName()
144 {
145 return this._parsedURL.displayName;
146 },
147
148 /**
149 * @return {!WebInspector.ResourceType}
150 */
151 resourceType: function()
152 {
153 return this._request ? this._request.resourceType() : this._type;
154 },
155
156 /**
157 * @return {string}
158 */
159 get mimeType()
160 {
161 return this._request ? this._request.mimeType : this._mimeType;
162 },
163
164 /**
165 * @return {?string}
166 */
167 get content()
168 {
169 return this._content;
170 },
171
172 /**
173 * @return {boolean}
174 */
175 get contentEncoded()
176 {
177 return this._contentEncoded;
178 },
179
180 /**
181 * @override
182 * @return {string}
183 */
184 contentURL: function()
185 {
186 return this._url;
187 },
188
189 /**
190 * @override
191 * @return {!WebInspector.ResourceType}
192 */
193 contentType: function()
194 {
195 if (this.resourceType() === WebInspector.resourceTypes.Document && this. mimeType.indexOf("javascript") !== -1)
196 return WebInspector.resourceTypes.Script;
197 return this.resourceType();
198 },
199
200 /**
201 * @override
202 * @return {!Promise<?string>}
203 */
204 requestContent: function()
205 {
206 if (typeof this._content !== "undefined")
207 return Promise.resolve(this._content);
208
209 var callback;
210 var promise = new Promise(fulfill => callback = fulfill);
211 this._pendingContentCallbacks.push(callback);
212 if (!this._request || this._request.finished)
213 this._innerRequestContent();
214 return promise;
215 },
216
217 /**
218 * @return {string}
219 */
220 canonicalMimeType: function()
221 {
222 return this.contentType().canonicalMimeType() || this.mimeType;
223 },
224
225 /**
226 * @override
227 * @param {string} query
228 * @param {boolean} caseSensitive
229 * @param {boolean} isRegex
230 * @param {function(!Array.<!WebInspector.ContentProvider.SearchMatch>)} cal lback
231 */
232 searchInContent: function(query, caseSensitive, isRegex, callback)
233 {
234 /**
235 * @param {?Protocol.Error} error
236 * @param {!Array.<!DebuggerAgent.SearchMatch>} searchMatches
237 */
238 function callbackWrapper(error, searchMatches)
239 {
240 callback(searchMatches || []);
241 }
242
243 if (this.frameId)
244 this.target().pageAgent().searchInResource(this.frameId, this.url, q uery, caseSensitive, isRegex, callbackWrapper);
245 else
246 callback([]);
247 },
248
249 /**
250 * @param {!Element} image
251 */
252 populateImageSource: function(image)
253 {
254 /**
255 * @param {?string} content
256 * @this {WebInspector.Resource}
257 */
258 function onResourceContent(content)
259 {
260 var imageSrc = WebInspector.ContentProvider.contentAsDataURL(content , this._mimeType, true);
261 if (imageSrc === null)
262 imageSrc = this._url;
263 image.src = imageSrc;
264 }
265
266 this.requestContent().then(onResourceContent.bind(this));
267 },
268
269 _requestFinished: function()
270 {
271 this._request.removeEventListener(WebInspector.NetworkRequest.Events.Fin ishedLoading, this._requestFinished, this);
272 if (this._pendingContentCallbacks.length)
273 this._innerRequestContent();
274 },
275
276
277 _innerRequestContent: function()
278 {
279 if (this._contentRequested)
280 return;
281 this._contentRequested = true;
282
283 /**
284 * @param {?Protocol.Error} error
285 * @param {?string} content
286 * @param {boolean} contentEncoded
287 * @this {WebInspector.Resource}
288 */
289 function contentLoaded(error, content, contentEncoded)
290 {
291 if (error || content === null) {
292 replyWithContent.call(this, null, false);
293 return;
294 }
295 replyWithContent.call(this, content, contentEncoded);
296 }
297
298 /**
299 * @param {?string} content
300 * @param {boolean} contentEncoded
301 * @this {WebInspector.Resource}
302 */
303 function replyWithContent(content, contentEncoded)
304 {
305 this._content = content;
306 this._contentEncoded = contentEncoded;
307 var callbacks = this._pendingContentCallbacks.slice();
308 for (var i = 0; i < callbacks.length; ++i)
309 callbacks[i](this._content);
310 this._pendingContentCallbacks.length = 0;
311 delete this._contentRequested;
312 }
313
314 /**
315 * @param {?Protocol.Error} error
316 * @param {string} content
317 * @param {boolean} contentEncoded
318 * @this {WebInspector.Resource}
319 */
320 function resourceContentLoaded(error, content, contentEncoded)
321 {
322 contentLoaded.call(this, error, content, contentEncoded);
323 }
324
325 if (this.request) {
326 this.request.requestContent().then(requestContentLoaded.bind(this));
327 return;
328 }
329
330 /**
331 * @param {?string} content
332 * @this {WebInspector.Resource}
333 */
334 function requestContentLoaded(content)
335 {
336 contentLoaded.call(this, null, content, this.request.contentEncoded) ;
337 }
338
339 this.target().pageAgent().getResourceContent(this.frameId, this.url, res ourceContentLoaded.bind(this));
340 },
341
342 /**
343 * @return {boolean}
344 */
345 hasTextContent: function()
346 {
347 if (this._type.isTextType())
348 return true;
349 if (this._type === WebInspector.resourceTypes.Other)
350 return !!this._content && !this._contentEncoded;
351 return false;
352 },
353
354 __proto__: WebInspector.SDKObject.prototype
355 };
356
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698