| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 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 * 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 * | 10 * |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 this.fragment = ""; | 42 this.fragment = ""; |
| 43 this.folderPathComponents = ""; | 43 this.folderPathComponents = ""; |
| 44 this.lastPathComponent = ""; | 44 this.lastPathComponent = ""; |
| 45 | 45 |
| 46 // RegExp groups: | 46 // RegExp groups: |
| 47 // 1 - scheme (using the RFC3986 grammar) | 47 // 1 - scheme (using the RFC3986 grammar) |
| 48 // 2 - hostname | 48 // 2 - hostname |
| 49 // 3 - ?port | 49 // 3 - ?port |
| 50 // 4 - ?path | 50 // 4 - ?path |
| 51 // 5 - ?fragment | 51 // 5 - ?fragment |
| 52 var match = url.match(/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^\/:]*)(?::([\d]+))?
(?:(\/[^#]*)(?:#(.*))?)?$/i); | 52 var match = url.match(/^([A-Za-z][A-Za-z0-9+.-]*):\/\/([^\s\/:]*)(?::([\d]+)
)?(?:(\/[^\s#]*)(?:#(.*))?)?$/i); |
| 53 if (match) { | 53 if (match) { |
| 54 this.isValid = true; | 54 this.isValid = true; |
| 55 this.scheme = match[1].toLowerCase(); | 55 this.scheme = match[1].toLowerCase(); |
| 56 this.host = match[2]; | 56 this.host = match[2]; |
| 57 this.port = match[3]; | 57 this.port = match[3]; |
| 58 this.path = match[4] || "/"; | 58 this.path = match[4] || "/"; |
| 59 this.fragment = match[5]; | 59 this.fragment = match[5]; |
| 60 } else { | 60 } else { |
| 61 if (this.url.startsWith("data:")) { | 61 if (this.url.startsWith("data:")) { |
| 62 this.scheme = "data"; | 62 this.scheme = "data"; |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 /** | 233 /** |
| 234 * @return {boolean} | 234 * @return {boolean} |
| 235 */ | 235 */ |
| 236 isDataURL: function() | 236 isDataURL: function() |
| 237 { | 237 { |
| 238 return this.scheme === "data"; | 238 return this.scheme === "data"; |
| 239 } | 239 } |
| 240 } | 240 } |
| 241 | 241 |
| 242 /** | 242 /** |
| 243 * @param {string} string |
| 244 * @return {?{url: string, lineNumber: (number|undefined), columnNumber: (number
|undefined)}} |
| 245 */ |
| 246 WebInspector.ParsedURL.splitLineAndColumn = function(string) |
| 247 { |
| 248 var lineColumnRegEx = /:(\d+)(:(\d+))?$/; |
| 249 var lineColumnMatch = lineColumnRegEx.exec(string); |
| 250 var lineNumber; |
| 251 var columnNumber; |
| 252 if (!lineColumnMatch) |
| 253 return null; |
| 254 |
| 255 lineNumber = parseInt(lineColumnMatch[1], 10); |
| 256 // Immediately convert line and column to 0-based numbers. |
| 257 lineNumber = isNaN(lineNumber) ? undefined : lineNumber - 1; |
| 258 if (typeof(lineColumnMatch[3]) === "string") { |
| 259 columnNumber = parseInt(lineColumnMatch[3], 10); |
| 260 columnNumber = isNaN(columnNumber) ? undefined : columnNumber - 1; |
| 261 } |
| 262 |
| 263 return { url: string.substring(0, string.length - lineColumnMatch[0].length)
, lineNumber: lineNumber, columnNumber: columnNumber}; |
| 264 } |
| 265 |
| 266 /** |
| 243 * @return {?WebInspector.ParsedURL} | 267 * @return {?WebInspector.ParsedURL} |
| 244 */ | 268 */ |
| 245 String.prototype.asParsedURL = function() | 269 String.prototype.asParsedURL = function() |
| 246 { | 270 { |
| 247 var parsedURL = new WebInspector.ParsedURL(this.toString()); | 271 var parsedURL = new WebInspector.ParsedURL(this.toString()); |
| 248 if (parsedURL.isValid) | 272 if (parsedURL.isValid) |
| 249 return parsedURL; | 273 return parsedURL; |
| 250 return null; | 274 return null; |
| 251 } | 275 } |
| OLD | NEW |