| Index: third_party/WebKit/Source/devtools/front_end/components/Linkifier.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js b/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js
|
| index fc3b6b1c934d7356f00658395b1d0bd600e15a11..c540ffff4e6770ac51736918855da709e4cd65c0 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/components/Linkifier.js
|
| @@ -450,68 +450,16 @@
|
| */
|
| WebInspector.linkifyStringAsFragmentWithCustomLinkifier = function(string, linkifier)
|
| {
|
| - // Spec: https://url.spec.whatwg.org/#url-code-points
|
| var container = createDocumentFragment();
|
| - var protocol = "(?:[a-zA-Z][a-zA-Z0-9]{2,}://";
|
| - var userPassLogin = "(?:\\w+(?::\\w+)?@)?";
|
| - var domainOrIPV4 = "[a-zA-Z0-9](?:[a-zA-Z0-9]*|(?:-|\\.)[a-zA-Z0-9]+)+";
|
| - var ipv6 = "\\[(?:(?::|\\.)?[a-zA-Z0-9]{0,4}){2,8}\\]";
|
| - var portPattern = "(?::[0-9]{1,4})";
|
| - var domainPattern = "(?:" + ipv6 + "|" + domainOrIPV4 + ")" + portPattern + "?";
|
| - var encodedURIPattern = "%[0-9]{2}";
|
| - var mayContainPunctuationIfNoSpaceAfter = "[.,:;](?!\\s|$)";
|
| - var uriPattern = "(?:(?:\\?|/|#)(?:[\\w" +
|
| - "!$&'()*+\\-/=?#@_~" +
|
| - "\\u{00A0}-\\u{D7FF}" +
|
| - "\\u{E000}-\\u{FDCF}" +
|
| - "\\u{FDF0}-\\u{FFFD}" +
|
| - "\\u{10000}-\\u{1FFFD}" +
|
| - "\\u{20000}-\\u{2FFFD}" +
|
| - "\\u{30000}-\\u{3FFFD}" +
|
| - "\\u{40000}-\\u{4FFFD}" +
|
| - "\\u{50000}-\\u{5FFFD}" +
|
| - "\\u{60000}-\\u{6FFFD}" +
|
| - "\\u{70000}-\\u{7FFFD}" +
|
| - "\\u{80000}-\\u{8FFFD}" +
|
| - "\\u{90000}-\\u{9FFFD}" +
|
| - "\\u{A0000}-\\u{AFFFD}" +
|
| - "\\u{B0000}-\\u{BFFFD}" +
|
| - "\\u{C0000}-\\u{CFFFD}" +
|
| - "\\u{D0000}-\\u{DFFFD}" +
|
| - "\\u{E0000}-\\u{EFFFD}" +
|
| - "\\u{F0000}-\\u{FFFFD}" +
|
| - "\\u{100000}-\\u{10FFFD}" +
|
| - "]*|" + mayContainPunctuationIfNoSpaceAfter + "|" + encodedURIPattern + ")*)?";
|
| - var beginInPunctuationOrSpace = "([;:.,\\s;]|^)";
|
| - var endInPunctuationOrSpace = "(?=[;:.,\\s;]|$)";
|
| - var dataURI = "data:[^,]*,";
|
| - var protocolPattern = protocol + userPassLogin + domainPattern + "|www\\.(?:" + domainOrIPV4 + ")" + portPattern + "?)";
|
| - var doubleQuotes = "\"(?:" + protocolPattern + "|" + dataURI + ")[^\"]*(?=\")";
|
| - var singleQuotes = "'(?:" + protocolPattern + "|" + dataURI + ")[^']*(?=')";
|
| - var accentQuotes = "`(?:" + protocolPattern + "|" + dataURI + ")[^`]*(?=`)";
|
| - var parenthesis = "\\((?:" + protocolPattern + "|" + dataURI + ")[^)]*(?=\\))";
|
| - var squareBrackets = "\\[(?:" + protocolPattern + "|" + dataURI + ")[^\\]]*(?=\\])";
|
| - var linkStringRegEx = new RegExp("(?:(?:" + doubleQuotes + "|" + singleQuotes + "|" + accentQuotes + "|" + parenthesis + "|" + squareBrackets + ")|" + beginInPunctuationOrSpace + protocolPattern + uriPattern + endInPunctuationOrSpace + ")", "u");
|
| + var linkStringRegEx = /(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\/\/|data:|www\.)[\w$\-_+*'=\|\/\\(){}[\]^%@&#~,:;.!?]{2,}[\w$\-_+*=\|\/\\({^%@&#~]/;
|
|
|
| while (string && string.length < WebInspector.Linkifier.MaxLengthToIgnoreLinkifier) {
|
| - var match = linkStringRegEx.exec(string);
|
| - if (!match)
|
| + var linkString = linkStringRegEx.exec(string);
|
| + if (!linkString)
|
| break;
|
| - var linkString = match[0];
|
| - var firstChar = linkString[0];
|
| - if (firstChar === "'" || firstChar === "\"" || firstChar === "`" || firstChar === "(" || firstChar === "[") {
|
| - match.index += 1;
|
| - linkString = linkString.substr(1);
|
| - }
|
| - var nonAlphaNumericFirstCharacter = match[1]
|
| - if (nonAlphaNumericFirstCharacter) {
|
| - // Unmatches/removes beginInPunctuationOrSpace from match.
|
| - match.index += nonAlphaNumericFirstCharacter.length;
|
| - linkString = linkString.substr(nonAlphaNumericFirstCharacter.length);
|
| - }
|
| -
|
| -
|
| - var linkIndex = match.index;
|
| +
|
| + linkString = linkString[0];
|
| + var linkIndex = string.indexOf(linkString);
|
| var nonLink = string.substring(0, linkIndex);
|
| container.appendChild(createTextNode(nonLink));
|
|
|
|
|