Index: third_party/WebKit/Source/devtools/front_end/sdk/CookieParser.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/CookieParser.js b/third_party/WebKit/Source/devtools/front_end/sdk/CookieParser.js |
index 092245af4c9c3094343cba4cc58f51d96ca8a9f4..0d98001b1ba612ccbc37c3523e574cdf126bd352 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/sdk/CookieParser.js |
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/CookieParser.js |
@@ -27,7 +27,6 @@ |
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
- |
// Ideally, we would rely on platform support for parsing a cookie, since |
// this would save us from any potential inconsistency. However, exposing |
// platform cookie parsing logic would require quite a bit of additional |
@@ -36,350 +35,331 @@ |
// only required on the server side. |
/** |
- * @constructor |
- * @param {!WebInspector.Target} target |
+ * @unrestricted |
*/ |
-WebInspector.CookieParser = function(target) |
-{ |
+WebInspector.CookieParser = class { |
+ /** |
+ * @param {!WebInspector.Target} target |
+ */ |
+ constructor(target) { |
this._target = target; |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Target} target |
+ * @param {string|undefined} header |
+ * @return {?Array.<!WebInspector.Cookie>} |
+ */ |
+ static parseCookie(target, header) { |
+ return (new WebInspector.CookieParser(target)).parseCookie(header); |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.Target} target |
+ * @param {string|undefined} header |
+ * @return {?Array.<!WebInspector.Cookie>} |
+ */ |
+ static parseSetCookie(target, header) { |
+ return (new WebInspector.CookieParser(target)).parseSetCookie(header); |
+ } |
+ |
+ /** |
+ * @return {!Array.<!WebInspector.Cookie>} |
+ */ |
+ cookies() { |
+ return this._cookies; |
+ } |
+ |
+ /** |
+ * @param {string|undefined} cookieHeader |
+ * @return {?Array.<!WebInspector.Cookie>} |
+ */ |
+ parseCookie(cookieHeader) { |
+ if (!this._initialize(cookieHeader)) |
+ return null; |
+ |
+ for (var kv = this._extractKeyValue(); kv; kv = this._extractKeyValue()) { |
+ if (kv.key.charAt(0) === '$' && this._lastCookie) |
+ this._lastCookie.addAttribute(kv.key.slice(1), kv.value); |
+ else if (kv.key.toLowerCase() !== '$version' && typeof kv.value === 'string') |
+ this._addCookie(kv, WebInspector.Cookie.Type.Request); |
+ this._advanceAndCheckCookieDelimiter(); |
+ } |
+ this._flushCookie(); |
+ return this._cookies; |
+ } |
+ |
+ /** |
+ * @param {string|undefined} setCookieHeader |
+ * @return {?Array.<!WebInspector.Cookie>} |
+ */ |
+ parseSetCookie(setCookieHeader) { |
+ if (!this._initialize(setCookieHeader)) |
+ return null; |
+ for (var kv = this._extractKeyValue(); kv; kv = this._extractKeyValue()) { |
+ if (this._lastCookie) |
+ this._lastCookie.addAttribute(kv.key, kv.value); |
+ else |
+ this._addCookie(kv, WebInspector.Cookie.Type.Response); |
+ if (this._advanceAndCheckCookieDelimiter()) |
+ this._flushCookie(); |
+ } |
+ this._flushCookie(); |
+ return this._cookies; |
+ } |
+ |
+ /** |
+ * @param {string|undefined} headerValue |
+ * @return {boolean} |
+ */ |
+ _initialize(headerValue) { |
+ this._input = headerValue; |
+ if (typeof headerValue !== 'string') |
+ return false; |
+ this._cookies = []; |
+ this._lastCookie = null; |
+ this._originalInputLength = this._input.length; |
+ return true; |
+ } |
+ |
+ _flushCookie() { |
+ if (this._lastCookie) |
+ this._lastCookie.setSize(this._originalInputLength - this._input.length - this._lastCookiePosition); |
+ this._lastCookie = null; |
+ } |
+ |
+ /** |
+ * @return {?WebInspector.CookieParser.KeyValue} |
+ */ |
+ _extractKeyValue() { |
+ if (!this._input || !this._input.length) |
+ return null; |
+ // Note: RFCs offer an option for quoted values that may contain commas and semicolons. |
+ // Many browsers/platforms do not support this, however (see http://webkit.org/b/16699 |
+ // and http://crbug.com/12361). The logic below matches latest versions of IE, Firefox, |
+ // Chrome and Safari on some old platforms. The latest version of Safari supports quoted |
+ // cookie values, though. |
+ var keyValueMatch = /^[ \t]*([^\s=;]+)[ \t]*(?:=[ \t]*([^;\n]*))?/.exec(this._input); |
+ if (!keyValueMatch) { |
+ console.log('Failed parsing cookie header before: ' + this._input); |
+ return null; |
+ } |
+ |
+ var result = new WebInspector.CookieParser.KeyValue( |
+ keyValueMatch[1], keyValueMatch[2] && keyValueMatch[2].trim(), this._originalInputLength - this._input.length); |
+ this._input = this._input.slice(keyValueMatch[0].length); |
+ return result; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ _advanceAndCheckCookieDelimiter() { |
+ var match = /^\s*[\n;]\s*/.exec(this._input); |
+ if (!match) |
+ return false; |
+ this._input = this._input.slice(match[0].length); |
+ return match[0].match('\n') !== null; |
+ } |
+ |
+ /** |
+ * @param {!WebInspector.CookieParser.KeyValue} keyValue |
+ * @param {!WebInspector.Cookie.Type} type |
+ */ |
+ _addCookie(keyValue, type) { |
+ if (this._lastCookie) |
+ this._lastCookie.setSize(keyValue.position - this._lastCookiePosition); |
+ // Mozilla bug 169091: Mozilla, IE and Chrome treat single token (w/o "=") as |
+ // specifying a value for a cookie with empty name. |
+ this._lastCookie = typeof keyValue.value === 'string' ? |
+ new WebInspector.Cookie(this._target, keyValue.key, keyValue.value, type) : |
+ new WebInspector.Cookie(this._target, '', keyValue.key, type); |
+ this._lastCookiePosition = keyValue.position; |
+ this._cookies.push(this._lastCookie); |
+ } |
}; |
/** |
- * @constructor |
- * @param {string} key |
- * @param {string|undefined} value |
- * @param {number} position |
+ * @unrestricted |
*/ |
-WebInspector.CookieParser.KeyValue = function(key, value, position) |
-{ |
+WebInspector.CookieParser.KeyValue = class { |
+ /** |
+ * @param {string} key |
+ * @param {string|undefined} value |
+ * @param {number} position |
+ */ |
+ constructor(key, value, position) { |
this.key = key; |
this.value = value; |
this.position = position; |
+ } |
}; |
-WebInspector.CookieParser.prototype = { |
- /** |
- * @return {!Array.<!WebInspector.Cookie>} |
- */ |
- cookies: function() |
- { |
- return this._cookies; |
- }, |
- |
- /** |
- * @param {string|undefined} cookieHeader |
- * @return {?Array.<!WebInspector.Cookie>} |
- */ |
- parseCookie: function(cookieHeader) |
- { |
- if (!this._initialize(cookieHeader)) |
- return null; |
- |
- for (var kv = this._extractKeyValue(); kv; kv = this._extractKeyValue()) { |
- if (kv.key.charAt(0) === "$" && this._lastCookie) |
- this._lastCookie.addAttribute(kv.key.slice(1), kv.value); |
- else if (kv.key.toLowerCase() !== "$version" && typeof kv.value === "string") |
- this._addCookie(kv, WebInspector.Cookie.Type.Request); |
- this._advanceAndCheckCookieDelimiter(); |
- } |
- this._flushCookie(); |
- return this._cookies; |
- }, |
- |
- /** |
- * @param {string|undefined} setCookieHeader |
- * @return {?Array.<!WebInspector.Cookie>} |
- */ |
- parseSetCookie: function(setCookieHeader) |
- { |
- if (!this._initialize(setCookieHeader)) |
- return null; |
- for (var kv = this._extractKeyValue(); kv; kv = this._extractKeyValue()) { |
- if (this._lastCookie) |
- this._lastCookie.addAttribute(kv.key, kv.value); |
- else |
- this._addCookie(kv, WebInspector.Cookie.Type.Response); |
- if (this._advanceAndCheckCookieDelimiter()) |
- this._flushCookie(); |
- } |
- this._flushCookie(); |
- return this._cookies; |
- }, |
- |
- /** |
- * @param {string|undefined} headerValue |
- * @return {boolean} |
- */ |
- _initialize: function(headerValue) |
- { |
- this._input = headerValue; |
- if (typeof headerValue !== "string") |
- return false; |
- this._cookies = []; |
- this._lastCookie = null; |
- this._originalInputLength = this._input.length; |
- return true; |
- }, |
- |
- _flushCookie: function() |
- { |
- if (this._lastCookie) |
- this._lastCookie.setSize(this._originalInputLength - this._input.length - this._lastCookiePosition); |
- this._lastCookie = null; |
- }, |
- |
- /** |
- * @return {?WebInspector.CookieParser.KeyValue} |
- */ |
- _extractKeyValue: function() |
- { |
- if (!this._input || !this._input.length) |
- return null; |
- // Note: RFCs offer an option for quoted values that may contain commas and semicolons. |
- // Many browsers/platforms do not support this, however (see http://webkit.org/b/16699 |
- // and http://crbug.com/12361). The logic below matches latest versions of IE, Firefox, |
- // Chrome and Safari on some old platforms. The latest version of Safari supports quoted |
- // cookie values, though. |
- var keyValueMatch = /^[ \t]*([^\s=;]+)[ \t]*(?:=[ \t]*([^;\n]*))?/.exec(this._input); |
- if (!keyValueMatch) { |
- console.log("Failed parsing cookie header before: " + this._input); |
- return null; |
- } |
- |
- var result = new WebInspector.CookieParser.KeyValue(keyValueMatch[1], keyValueMatch[2] && keyValueMatch[2].trim(), this._originalInputLength - this._input.length); |
- this._input = this._input.slice(keyValueMatch[0].length); |
- return result; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- _advanceAndCheckCookieDelimiter: function() |
- { |
- var match = /^\s*[\n;]\s*/.exec(this._input); |
- if (!match) |
- return false; |
- this._input = this._input.slice(match[0].length); |
- return match[0].match("\n") !== null; |
- }, |
- |
- /** |
- * @param {!WebInspector.CookieParser.KeyValue} keyValue |
- * @param {!WebInspector.Cookie.Type} type |
- */ |
- _addCookie: function(keyValue, type) |
- { |
- if (this._lastCookie) |
- this._lastCookie.setSize(keyValue.position - this._lastCookiePosition); |
- // Mozilla bug 169091: Mozilla, IE and Chrome treat single token (w/o "=") as |
- // specifying a value for a cookie with empty name. |
- this._lastCookie = typeof keyValue.value === "string" ? new WebInspector.Cookie(this._target, keyValue.key, keyValue.value, type) : |
- new WebInspector.Cookie(this._target, "", keyValue.key, type); |
- this._lastCookiePosition = keyValue.position; |
- this._cookies.push(this._lastCookie); |
- } |
-}; |
- |
-/** |
- * @param {!WebInspector.Target} target |
- * @param {string|undefined} header |
- * @return {?Array.<!WebInspector.Cookie>} |
- */ |
-WebInspector.CookieParser.parseCookie = function(target, header) |
-{ |
- return (new WebInspector.CookieParser(target)).parseCookie(header); |
-}; |
- |
-/** |
- * @param {!WebInspector.Target} target |
- * @param {string|undefined} header |
- * @return {?Array.<!WebInspector.Cookie>} |
- */ |
-WebInspector.CookieParser.parseSetCookie = function(target, header) |
-{ |
- return (new WebInspector.CookieParser(target)).parseSetCookie(header); |
-}; |
/** |
- * @constructor |
- * @param {!WebInspector.Target} target |
- * @param {string} name |
- * @param {string} value |
- * @param {?WebInspector.Cookie.Type} type |
+ * @unrestricted |
*/ |
-WebInspector.Cookie = function(target, name, value, type) |
-{ |
+WebInspector.Cookie = class { |
+ /** |
+ * @param {!WebInspector.Target} target |
+ * @param {string} name |
+ * @param {string} value |
+ * @param {?WebInspector.Cookie.Type} type |
+ */ |
+ constructor(target, name, value, type) { |
this._target = target; |
this._name = name; |
this._value = value; |
this._type = type; |
this._attributes = {}; |
-}; |
- |
-WebInspector.Cookie.prototype = { |
- /** |
- * @return {string} |
- */ |
- name: function() |
- { |
- return this._name; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- value: function() |
- { |
- return this._value; |
- }, |
- |
- /** |
- * @return {?WebInspector.Cookie.Type} |
- */ |
- type: function() |
- { |
- return this._type; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- httpOnly: function() |
- { |
- return "httponly" in this._attributes; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- secure: function() |
- { |
- return "secure" in this._attributes; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- sameSite: function() |
- { |
- return this._attributes["samesite"]; |
- }, |
- |
- /** |
- * @return {boolean} |
- */ |
- session: function() |
- { |
- // RFC 2965 suggests using Discard attribute to mark session cookies, but this does not seem to be widely used. |
- // Check for absence of explicitly max-age or expiry date instead. |
- return !("expires" in this._attributes || "max-age" in this._attributes); |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- path: function() |
- { |
- return this._attributes["path"]; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- port: function() |
- { |
- return this._attributes["port"]; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- domain: function() |
- { |
- return this._attributes["domain"]; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- expires: function() |
- { |
- return this._attributes["expires"]; |
- }, |
- |
- /** |
- * @return {string} |
- */ |
- maxAge: function() |
- { |
- return this._attributes["max-age"]; |
- }, |
- |
- /** |
- * @return {number} |
- */ |
- size: function() |
- { |
- return this._size; |
- }, |
- |
- /** |
- * @param {number} size |
- */ |
- setSize: function(size) |
- { |
- this._size = size; |
- }, |
- |
- /** |
- * @return {?Date} |
- */ |
- expiresDate: function(requestDate) |
- { |
- // RFC 6265 indicates that the max-age attribute takes precedence over the expires attribute |
- if (this.maxAge()) { |
- var targetDate = requestDate === null ? new Date() : requestDate; |
- return new Date(targetDate.getTime() + 1000 * this.maxAge()); |
- } |
- |
- if (this.expires()) |
- return new Date(this.expires()); |
- |
- return null; |
- }, |
- |
- /** |
- * @return {!Object} |
- */ |
- attributes: function() |
- { |
- return this._attributes; |
- }, |
- |
- /** |
- * @param {string} key |
- * @param {string=} value |
- */ |
- addAttribute: function(key, value) |
- { |
- this._attributes[key.toLowerCase()] = value; |
- }, |
- |
- /** |
- * @param {function(?Protocol.Error)=} callback |
- */ |
- remove: function(callback) |
- { |
- this._target.networkAgent().deleteCookie(this.name(), (this.secure() ? "https://" : "http://") + this.domain() + this.path(), callback); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ name() { |
+ return this._name; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ value() { |
+ return this._value; |
+ } |
+ |
+ /** |
+ * @return {?WebInspector.Cookie.Type} |
+ */ |
+ type() { |
+ return this._type; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ httpOnly() { |
+ return 'httponly' in this._attributes; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ secure() { |
+ return 'secure' in this._attributes; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ sameSite() { |
+ return this._attributes['samesite']; |
+ } |
+ |
+ /** |
+ * @return {boolean} |
+ */ |
+ session() { |
+ // RFC 2965 suggests using Discard attribute to mark session cookies, but this does not seem to be widely used. |
+ // Check for absence of explicitly max-age or expiry date instead. |
+ return !('expires' in this._attributes || 'max-age' in this._attributes); |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ path() { |
+ return this._attributes['path']; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ port() { |
+ return this._attributes['port']; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ domain() { |
+ return this._attributes['domain']; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ expires() { |
+ return this._attributes['expires']; |
+ } |
+ |
+ /** |
+ * @return {string} |
+ */ |
+ maxAge() { |
+ return this._attributes['max-age']; |
+ } |
+ |
+ /** |
+ * @return {number} |
+ */ |
+ size() { |
+ return this._size; |
+ } |
+ |
+ /** |
+ * @param {number} size |
+ */ |
+ setSize(size) { |
+ this._size = size; |
+ } |
+ |
+ /** |
+ * @return {?Date} |
+ */ |
+ expiresDate(requestDate) { |
+ // RFC 6265 indicates that the max-age attribute takes precedence over the expires attribute |
+ if (this.maxAge()) { |
+ var targetDate = requestDate === null ? new Date() : requestDate; |
+ return new Date(targetDate.getTime() + 1000 * this.maxAge()); |
} |
+ |
+ if (this.expires()) |
+ return new Date(this.expires()); |
+ |
+ return null; |
+ } |
+ |
+ /** |
+ * @return {!Object} |
+ */ |
+ attributes() { |
+ return this._attributes; |
+ } |
+ |
+ /** |
+ * @param {string} key |
+ * @param {string=} value |
+ */ |
+ addAttribute(key, value) { |
+ this._attributes[key.toLowerCase()] = value; |
+ } |
+ |
+ /** |
+ * @param {function(?Protocol.Error)=} callback |
+ */ |
+ remove(callback) { |
+ this._target.networkAgent().deleteCookie( |
+ this.name(), (this.secure() ? 'https://' : 'http://') + this.domain() + this.path(), callback); |
+ } |
}; |
/** |
* @enum {number} |
*/ |
WebInspector.Cookie.Type = { |
- Request: 0, |
- Response: 1 |
+ Request: 0, |
+ Response: 1 |
}; |
WebInspector.Cookies = {}; |
@@ -387,28 +367,26 @@ WebInspector.Cookies = {}; |
/** |
* @param {function(!Array.<!WebInspector.Cookie>)} callback |
*/ |
-WebInspector.Cookies.getCookiesAsync = function(callback) |
-{ |
- var allCookies = []; |
- /** |
- * @param {!WebInspector.Target} target |
- * @param {?Protocol.Error} error |
- * @param {!Array.<!NetworkAgent.Cookie>} cookies |
- */ |
- function mycallback(target, error, cookies) |
- { |
- if (error) { |
- console.error(error); |
- return; |
- } |
- for (var i = 0; i < cookies.length; ++i) |
- allCookies.push(WebInspector.Cookies._parseProtocolCookie(target, cookies[i])); |
+WebInspector.Cookies.getCookiesAsync = function(callback) { |
+ var allCookies = []; |
+ /** |
+ * @param {!WebInspector.Target} target |
+ * @param {?Protocol.Error} error |
+ * @param {!Array.<!NetworkAgent.Cookie>} cookies |
+ */ |
+ function mycallback(target, error, cookies) { |
+ if (error) { |
+ console.error(error); |
+ return; |
} |
- |
- var barrier = new CallbackBarrier(); |
- for (var target of WebInspector.targetManager.targets(WebInspector.Target.Capability.Network)) |
- target.networkAgent().getCookies(barrier.createCallback(mycallback.bind(null, target))); |
- barrier.callWhenDone(callback.bind(null, allCookies)); |
+ for (var i = 0; i < cookies.length; ++i) |
+ allCookies.push(WebInspector.Cookies._parseProtocolCookie(target, cookies[i])); |
+ } |
+ |
+ var barrier = new CallbackBarrier(); |
+ for (var target of WebInspector.targetManager.targets(WebInspector.Target.Capability.Network)) |
+ target.networkAgent().getCookies(barrier.createCallback(mycallback.bind(null, target))); |
+ barrier.callWhenDone(callback.bind(null, allCookies)); |
}; |
/** |
@@ -416,22 +394,21 @@ WebInspector.Cookies.getCookiesAsync = function(callback) |
* @param {!NetworkAgent.Cookie} protocolCookie |
* @return {!WebInspector.Cookie} |
*/ |
-WebInspector.Cookies._parseProtocolCookie = function(target, protocolCookie) |
-{ |
- var cookie = new WebInspector.Cookie(target, protocolCookie.name, protocolCookie.value, null); |
- cookie.addAttribute("domain", protocolCookie["domain"]); |
- cookie.addAttribute("path", protocolCookie["path"]); |
- cookie.addAttribute("port", protocolCookie["port"]); |
- if (protocolCookie["expires"]) |
- cookie.addAttribute("expires", protocolCookie["expires"]); |
- if (protocolCookie["httpOnly"]) |
- cookie.addAttribute("httpOnly"); |
- if (protocolCookie["secure"]) |
- cookie.addAttribute("secure"); |
- if (protocolCookie["sameSite"]) |
- cookie.addAttribute("sameSite", protocolCookie["sameSite"]); |
- cookie.setSize(protocolCookie["size"]); |
- return cookie; |
+WebInspector.Cookies._parseProtocolCookie = function(target, protocolCookie) { |
+ var cookie = new WebInspector.Cookie(target, protocolCookie.name, protocolCookie.value, null); |
+ cookie.addAttribute('domain', protocolCookie['domain']); |
+ cookie.addAttribute('path', protocolCookie['path']); |
+ cookie.addAttribute('port', protocolCookie['port']); |
+ if (protocolCookie['expires']) |
+ cookie.addAttribute('expires', protocolCookie['expires']); |
+ if (protocolCookie['httpOnly']) |
+ cookie.addAttribute('httpOnly'); |
+ if (protocolCookie['secure']) |
+ cookie.addAttribute('secure'); |
+ if (protocolCookie['sameSite']) |
+ cookie.addAttribute('sameSite', protocolCookie['sameSite']); |
+ cookie.setSize(protocolCookie['size']); |
+ return cookie; |
}; |
/** |
@@ -439,14 +416,13 @@ WebInspector.Cookies._parseProtocolCookie = function(target, protocolCookie) |
* @param {string} resourceURL |
* @return {boolean} |
*/ |
-WebInspector.Cookies.cookieMatchesResourceURL = function(cookie, resourceURL) |
-{ |
- var url = resourceURL.asParsedURL(); |
- if (!url || !WebInspector.Cookies.cookieDomainMatchesResourceDomain(cookie.domain(), url.host)) |
- return false; |
- return (url.path.startsWith(cookie.path()) |
- && (!cookie.port() || url.port === cookie.port()) |
- && (!cookie.secure() || url.scheme === "https")); |
+WebInspector.Cookies.cookieMatchesResourceURL = function(cookie, resourceURL) { |
+ var url = resourceURL.asParsedURL(); |
+ if (!url || !WebInspector.Cookies.cookieDomainMatchesResourceDomain(cookie.domain(), url.host)) |
+ return false; |
+ return ( |
+ url.path.startsWith(cookie.path()) && (!cookie.port() || url.port === cookie.port()) && |
+ (!cookie.secure() || url.scheme === 'https')); |
}; |
/** |
@@ -454,9 +430,8 @@ WebInspector.Cookies.cookieMatchesResourceURL = function(cookie, resourceURL) |
* @param {string} resourceDomain |
* @return {boolean} |
*/ |
-WebInspector.Cookies.cookieDomainMatchesResourceDomain = function(cookieDomain, resourceDomain) |
-{ |
- if (cookieDomain.charAt(0) !== ".") |
- return resourceDomain === cookieDomain; |
- return !!resourceDomain.match(new RegExp("^([^\\.]+\\.)*" + cookieDomain.substring(1).escapeForRegExp() + "$", "i")); |
+WebInspector.Cookies.cookieDomainMatchesResourceDomain = function(cookieDomain, resourceDomain) { |
+ if (cookieDomain.charAt(0) !== '.') |
+ return resourceDomain === cookieDomain; |
+ return !!resourceDomain.match(new RegExp('^([^\\.]+\\.)*' + cookieDomain.substring(1).escapeForRegExp() + '$', 'i')); |
}; |