| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 WebInspector.BlackboxSupport = function() | 5 WebInspector.BlackboxSupport = function() |
| 6 { | 6 { |
| 7 } | 7 } |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * @param {string} url | 10 * @param {string} url |
| 11 * @return {string} |
| 12 */ |
| 13 WebInspector.BlackboxSupport._urlToRegExpString = function(url) |
| 14 { |
| 15 var name = new WebInspector.ParsedURL(url).lastPathComponent; |
| 16 return "/" + name.escapeForRegExp() + (url.endsWith(name) ? "$" : "\\b"); |
| 17 } |
| 18 |
| 19 /** |
| 20 * @param {string} url |
| 11 */ | 21 */ |
| 12 WebInspector.BlackboxSupport.blackboxURL = function(url) | 22 WebInspector.BlackboxSupport.blackboxURL = function(url) |
| 13 { | 23 { |
| 14 var regexPatterns = WebInspector.settings.skipStackFramesPattern.getAsArray(
); | 24 var regexPatterns = WebInspector.settings.skipStackFramesPattern.getAsArray(
); |
| 15 var name = new WebInspector.ParsedURL(url).lastPathComponent; | 25 var regexValue = WebInspector.BlackboxSupport._urlToRegExpString(url); |
| 16 var regexValue = "/" + name.escapeForRegExp() + (url.endsWith(name) ? "$" :
"\\b"); | |
| 17 var found = false; | 26 var found = false; |
| 18 for (var i = 0; i < regexPatterns.length; ++i) { | 27 for (var i = 0; i < regexPatterns.length; ++i) { |
| 19 var item = regexPatterns[i]; | 28 var item = regexPatterns[i]; |
| 20 if (item.pattern === regexValue) { | 29 if (item.pattern === regexValue) { |
| 21 item.disabled = false; | 30 item.disabled = false; |
| 22 found = true; | 31 found = true; |
| 23 break; | 32 break; |
| 24 } | 33 } |
| 25 } | 34 } |
| 26 if (!found) | 35 if (!found) |
| 27 regexPatterns.push({ pattern: regexValue }); | 36 regexPatterns.push({ pattern: regexValue }); |
| 28 WebInspector.settings.skipStackFramesPattern.setAsArray(regexPatterns); | 37 WebInspector.settings.skipStackFramesPattern.setAsArray(regexPatterns); |
| 29 } | 38 } |
| 30 | 39 |
| 31 /** | 40 /** |
| 32 * @param {string} url | 41 * @param {string} url |
| 33 */ | 42 */ |
| 34 WebInspector.BlackboxSupport.unblackboxURL = function(url) | 43 WebInspector.BlackboxSupport.unblackboxURL = function(url) |
| 35 { | 44 { |
| 36 var regexPatterns = WebInspector.settings.skipStackFramesPattern.getAsArray(
); | 45 var regexPatterns = WebInspector.settings.skipStackFramesPattern.getAsArray(
); |
| 46 var regexValue = WebInspector.BlackboxSupport._urlToRegExpString(url); |
| 47 regexPatterns = regexPatterns.filter(function(item) { |
| 48 return item.pattern !== regexValue; |
| 49 }); |
| 37 for (var i = 0; i < regexPatterns.length; ++i) { | 50 for (var i = 0; i < regexPatterns.length; ++i) { |
| 38 var item = regexPatterns[i]; | 51 var item = regexPatterns[i]; |
| 39 if (item.disabled) | 52 if (item.disabled) |
| 40 continue; | 53 continue; |
| 41 try { | 54 try { |
| 42 var regex = new RegExp(item.pattern); | 55 var regex = new RegExp(item.pattern); |
| 43 if (regex.test(url)) | 56 if (regex.test(url)) |
| 44 item.disabled = true; | 57 item.disabled = true; |
| 45 } catch (e) { | 58 } catch (e) { |
| 46 } | 59 } |
| 47 } | 60 } |
| 48 WebInspector.settings.skipStackFramesPattern.setAsArray(regexPatterns); | 61 WebInspector.settings.skipStackFramesPattern.setAsArray(regexPatterns); |
| 49 } | 62 } |
| 50 | 63 |
| 51 /** | 64 /** |
| 52 * @param {string} url | 65 * @param {string} url |
| 53 * @return {boolean} | 66 * @return {boolean} |
| 54 */ | 67 */ |
| 55 WebInspector.BlackboxSupport.isBlackboxedURL = function(url) | 68 WebInspector.BlackboxSupport.isBlackboxedURL = function(url) |
| 56 { | 69 { |
| 57 var regex = WebInspector.settings.skipStackFramesPattern.asRegExp(); | 70 var regex = WebInspector.settings.skipStackFramesPattern.asRegExp(); |
| 58 return (url && regex) ? regex.test(url) : false; | 71 return (url && regex) ? regex.test(url) : false; |
| 59 } | 72 } |
| OLD | NEW |