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

Side by Side Diff: Source/WebCore/inspector/ContentSearchUtils.cpp

Issue 8381041: Merge 98105 - Web Inspector: Advanced search is working very slowly and does not show searching p... (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/912/
Patch Set: Created 9 years, 2 months 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 result.append("\\"); 55 result.append("\\");
56 result.append(characters[i]); 56 result.append(characters[i]);
57 } 57 }
58 58
59 return result; 59 return result;
60 } 60 }
61 61
62 static Vector<pair<int, String> > getRegularExpressionMatchesByLines(const Regul arExpression& regex, const String& text) 62 static Vector<pair<int, String> > getRegularExpressionMatchesByLines(const Regul arExpression& regex, const String& text)
63 { 63 {
64 Vector<pair<int, String> > result; 64 Vector<pair<int, String> > result;
65 if (text.isEmpty())
66 return result;
65 67
66 int lineNumber = 0; 68 int lineNumber = 0;
67 unsigned start = 0; 69 unsigned start = 0;
68 while (start < text.length()) { 70 while (start < text.length()) {
69 size_t lineEnd = text.find('\n', start); 71 size_t lineEnd = text.find('\n', start);
70 if (lineEnd == notFound) 72 if (lineEnd == notFound)
71 lineEnd = text.length(); 73 lineEnd = text.length();
72 else 74 else
73 lineEnd++; 75 lineEnd++;
74 76
(...skipping 23 matching lines...) Expand all
98 } 100 }
99 101
100 RegularExpression createSearchRegex(const String& query, bool caseSensitive, boo l isRegex) 102 RegularExpression createSearchRegex(const String& query, bool caseSensitive, boo l isRegex)
101 { 103 {
102 String regexSource = isRegex ? query : createSearchRegexSource(query); 104 String regexSource = isRegex ? query : createSearchRegexSource(query);
103 return RegularExpression(regexSource, caseSensitive ? TextCaseSensitive : Te xtCaseInsensitive); 105 return RegularExpression(regexSource, caseSensitive ? TextCaseSensitive : Te xtCaseInsensitive);
104 } 106 }
105 107
106 int countRegularExpressionMatches(const RegularExpression& regex, const String& content) 108 int countRegularExpressionMatches(const RegularExpression& regex, const String& content)
107 { 109 {
110 if (content.isEmpty())
111 return 0;
112
108 int result = 0; 113 int result = 0;
109 int position; 114 int position;
110 unsigned start = 0; 115 unsigned start = 0;
111 int matchLength; 116 int matchLength;
112 while ((position = regex.match(content, start, &matchLength)) != -1) { 117 while ((position = regex.match(content, start, &matchLength)) != -1) {
113 if (start >= content.length()) 118 if (start >= content.length())
114 break; 119 break;
115 if (matchLength > 0) 120 if (matchLength > 0)
116 ++result; 121 ++result;
117 start = position + 1; 122 start = position + 1;
(...skipping 11 matching lines...) Expand all
129 for (Vector<pair<int, String> >::const_iterator it = matches.begin(); it != matches.end(); ++it) 134 for (Vector<pair<int, String> >::const_iterator it = matches.begin(); it != matches.end(); ++it)
130 result->pushValue(buildObjectForSearchMatch(it->first, it->second)); 135 result->pushValue(buildObjectForSearchMatch(it->first, it->second));
131 136
132 return result; 137 return result;
133 } 138 }
134 139
135 } // namespace ContentSearchUtils 140 } // namespace ContentSearchUtils
136 } // namespace WebCore 141 } // namespace WebCore
137 142
138 #endif // ENABLE(INSPECTOR) 143 #endif // ENABLE(INSPECTOR)
OLDNEW
« no previous file with comments | « Source/WebCore/English.lproj/localizedStrings.js ('k') | Source/WebCore/inspector/front-end/AdvancedSearchController.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698