<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[202498] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/202498">202498</a></dd>
<dt>Author</dt> <dd>joepeck@webkit.org</dd>
<dt>Date</dt> <dd>2016-06-27 11:18:37 -0700 (Mon, 27 Jun 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>REGRESSION: Web Inspector: Text search broken in resources with &lt;CR&gt;
https://bugs.webkit.org/show_bug.cgi?id=159110
&lt;rdar://problem/27008485&gt;

Reviewed by Brian Burg.

Source/JavaScriptCore:

* inspector/ContentSearchUtilities.cpp:
(Inspector::ContentSearchUtilities::lineEndings):
The frontend moved to only treated newlines as line endings in
the TextEditor. The backend however was looking for many
different types of line endings (\r\n, \r, \n). This caused
the line endings to ultimately differ between the frontend
and the backend, so the frontend couldn't find the lines that
the backend was claiming search results were on. Change the
backend to only look for \n line endings.

LayoutTests:

* inspector/debugger/searchInContent-linebreaks-expected.txt:
* inspector/debugger/searchInContent-linebreaks.html:
Now that the backend responds with lines that end in \n, this test changes
the number of line results. The frontend interprets this correctly.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsinspectordebuggersearchInContentlinebreaksexpectedtxt">trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks-expected.txt</a></li>
<li><a href="#trunkLayoutTestsinspectordebuggersearchInContentlinebreakshtml">trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks.html</a></li>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreinspectorContentSearchUtilitiescpp">trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (202497 => 202498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-06-27 17:57:49 UTC (rev 202497)
+++ trunk/LayoutTests/ChangeLog        2016-06-27 18:18:37 UTC (rev 202498)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-06-27  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        REGRESSION: Web Inspector: Text search broken in resources with &lt;CR&gt;
+        https://bugs.webkit.org/show_bug.cgi?id=159110
+        &lt;rdar://problem/27008485&gt;
+
+        Reviewed by Brian Burg.
+
+        * inspector/debugger/searchInContent-linebreaks-expected.txt:
+        * inspector/debugger/searchInContent-linebreaks.html:
+        Now that the backend responds with lines that end in \n, this test changes
+        the number of line results. The frontend interprets this correctly.
+
</ins><span class="cx"> 2016-06-27  Joanmarie Diggs  &lt;jdiggs@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         AX: Anonymous RenderMathMLOperators are not exposed to the accessibility tree
</span></span></pre></div>
<a id="trunkLayoutTestsinspectordebuggersearchInContentlinebreaksexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks-expected.txt (202497 => 202498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks-expected.txt        2016-06-27 17:57:49 UTC (rev 202497)
+++ trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks-expected.txt        2016-06-27 18:18:37 UTC (rev 202498)
</span><span class="lines">@@ -2,21 +2,18 @@
</span><span class="cx"> Scripts searched: 4
</span><span class="cx"> 
</span><span class="cx"> Script: mac-linebreaks.js
</span><del>-Results found: 4
-Line 0: &quot;// test one\r&quot;
-Line 2: &quot;//  test two\r&quot;
-Line 6: &quot;    //   test three test four\r&quot;
-Line 9: &quot;// test no newline&quot;
</del><ins>+Lines with matches: 1
+Line 0: &quot;// test one\r// \r//  test two\r\rfunction boo()\r{\r    //   test three test four\r}\r\r// test no newline&quot;
</ins><span class="cx"> 
</span><span class="cx"> Script: mixed-linebreaks.js
</span><del>-Results found: 4
</del><ins>+Lines with matches: 4
</ins><span class="cx"> Line 0: &quot;// test one\n&quot;
</span><del>-Line 2: &quot;// test two\r&quot;
-Line 6: &quot;    //   test three test four\r\n&quot;
-Line 9: &quot;// test no newline&quot;
</del><ins>+Line 2: &quot;// test two\r\r\n&quot;
+Line 5: &quot;    //   test three test four\r\n&quot;
+Line 8: &quot;// test no newline&quot;
</ins><span class="cx"> 
</span><span class="cx"> Script: unix-linebreaks.js
</span><del>-Results found: 4
</del><ins>+Lines with matches: 4
</ins><span class="cx"> Line 0: &quot;// test one\n&quot;
</span><span class="cx"> Line 2: &quot;//  test two\n&quot;
</span><span class="cx"> Line 6: &quot;    // test three test four\n&quot;
</span><span class="lines">@@ -23,7 +20,7 @@
</span><span class="cx"> Line 9: &quot;// test no newline&quot;
</span><span class="cx"> 
</span><span class="cx"> Script: windows-linebreaks.js
</span><del>-Results found: 4
</del><ins>+Lines with matches: 4
</ins><span class="cx"> Line 0: &quot;// test one\r\n&quot;
</span><span class="cx"> Line 2: &quot;//  test two\r\n&quot;
</span><span class="cx"> Line 6: &quot;    // test three test four\r\n&quot;
</span></span></pre></div>
<a id="trunkLayoutTestsinspectordebuggersearchInContentlinebreakshtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks.html (202497 => 202498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks.html        2016-06-27 17:57:49 UTC (rev 202497)
+++ trunk/LayoutTests/inspector/debugger/searchInContent-linebreaks.html        2016-06-27 18:18:37 UTC (rev 202498)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx">         for (var testResult of sortedTestResults) {
</span><span class="cx">             var fileName = /([\w-]+\.js)$/.exec(testResult.url)[1];
</span><span class="cx">             ProtocolTest.log(&quot;Script: &quot; + fileName);
</span><del>-            ProtocolTest.log(&quot;Results found: &quot; + testResult.count);
</del><ins>+            ProtocolTest.log(&quot;Lines with matches: &quot; + testResult.count);
</ins><span class="cx">     
</span><span class="cx">             for (var match of testResult.matches)
</span><span class="cx">                 ProtocolTest.log(&quot;Line &quot; + match.lineNumber + &quot;: &quot; + JSON.stringify(match.lineContent));    
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (202497 => 202498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-06-27 17:57:49 UTC (rev 202497)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-06-27 18:18:37 UTC (rev 202498)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2016-06-27  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
+
+        REGRESSION: Web Inspector: Text search broken in resources with &lt;CR&gt;
+        https://bugs.webkit.org/show_bug.cgi?id=159110
+        &lt;rdar://problem/27008485&gt;
+
+        Reviewed by Brian Burg.
+
+        * inspector/ContentSearchUtilities.cpp:
+        (Inspector::ContentSearchUtilities::lineEndings):
+        The frontend moved to only treated newlines as line endings in
+        the TextEditor. The backend however was looking for many
+        different types of line endings (\r\n, \r, \n). This caused
+        the line endings to ultimately differ between the frontend
+        and the backend, so the frontend couldn't find the lines that
+        the backend was claiming search results were on. Change the
+        backend to only look for \n line endings.
+
</ins><span class="cx"> 2016-06-27  Brian Burg  &lt;bburg@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Web Inspector: CRASH in backend at Inspector::HeapFrontendDispatcher::garbageCollected + 552 when closing frontend/inspected page
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreinspectorContentSearchUtilitiescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp (202497 => 202498)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp        2016-06-27 17:57:49 UTC (rev 202497)
+++ trunk/Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp        2016-06-27 18:18:37 UTC (rev 202498)
</span><span class="lines">@@ -104,12 +104,13 @@
</span><span class="cx"> 
</span><span class="cx">     size_t start = 0;
</span><span class="cx">     while (start &lt; text.length()) {
</span><del>-        size_t nextStart = text.findNextLineStart(start);
-        if (nextStart == notFound) {
</del><ins>+        size_t nextStart = text.find('\n', start);
+        if (nextStart == notFound || nextStart == (text.length() - 1)) {
</ins><span class="cx">             result-&gt;append(text.length());
</span><span class="cx">             break;
</span><span class="cx">         }
</span><span class="cx"> 
</span><ins>+        nextStart += 1;
</ins><span class="cx">         result-&gt;append(nextStart);
</span><span class="cx">         start = nextStart;
</span><span class="cx">     }
</span></span></pre>
</div>
</div>

</body>
</html>