<!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>[205787] 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/205787">205787</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-09-10 11:08:32 -0700 (Sat, 10 Sep 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>parseHTMLInteger() should take a StringView in parameter
https://bugs.webkit.org/show_bug.cgi?id=161669

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

* runtime/DateConversion.cpp:
(JSC::formatDateTime):
Explicitly construct a String from the const WCHAR* on Windows because
it is ambiguous otherwise now that there is a StringBuilder::append()
overload taking an AtomicString in.

Source/WebCore:

parseHTMLInteger() should take a StringView in parameter instead of a
const String&amp;.

* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceSrcLocal):
* css/parser/CSSParserValues.h:
(WebCore::CSSParserString::toStringView):
Add toStringView() to avoid unnecessarily constructing a String for
calling StringBuilder::append().

* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseHTMLInteger):
(WebCore::parseHTMLNonNegativeInteger):
(WebCore::parseHTTPRefreshInternal):
* html/parser/HTMLParserIdioms.h:
(WebCore::limitToOnlyHTMLNonNegativeNumbersGreaterThanZero):
(WebCore::limitToOnlyHTMLNonNegative):
Take a StringView in parameter instead of a const String&amp;.

* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::isColumnDeclaredAsBlob):
Avoid unnecessarily constructing a String to call equalLettersIgnoringASCIICase()
by leveraging the StringView constructor taking a 'const char*' in parameter.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderBlock.h:
Add constructTextRun() overload taking an AtomicString. It was otherwise ambiguous
because both a String or a StringView could be constructed from an AtomicString.

* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
(WebCore::buildDisplayStringForTrackBase):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::mediaControlsStyleSheet):
(WebCore::RenderThemeMac::mediaControlsScript):
Explicitly construct a String from NSString / CFStringRef types as such calls are
now ambiguous.

Source/WTF:

* wtf/text/StringBuilder.h:
(WTF::StringBuilder::append):
Add StringBuilder::append() overload taking an AtomicString in parameter.
It used to call StringBuilder::append(const String&amp;) implicitly when
passing an AtomicString. However, it is now ambiguous because there
is an overload taking a StringView, and it is now possible to construct
a StringView from an AtomicString.

* wtf/text/StringView.h:
(WTF::StringView::StringView):
- Add StringView constructor taking an AtomicString in parameter for
  convenience. This avoids having to call AtomicString::string()
  explicitly at call sites.
- Add StringView constructor taking a 'const char*' in parameter for
  performance. There are several call sites that were passing a const
  char* and implicitly constructing an unnecessary String to construct
  a StringView. This became more obvious because the constructor taking
  an AtomicString in parameter made such calls ambiguous.

Tools:

Explicitly construct a String from the CFStringRef in order to call
StringBuilder::append(). This is needed now that there is an append()
overload taking an AtomicString in parameter.

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dumpDOMAsWebArchive):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeDateConversioncpp">trunk/Source/JavaScriptCore/runtime/DateConversion.cpp</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtftextStringBuilderh">trunk/Source/WTF/wtf/text/StringBuilder.h</a></li>
<li><a href="#trunkSourceWTFwtftextStringViewh">trunk/Source/WTF/wtf/text/StringView.h</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParsercpp">trunk/Source/WebCore/css/parser/CSSParser.cpp</a></li>
<li><a href="#trunkSourceWebCorecssparserCSSParserValuesh">trunk/Source/WebCore/css/parser/CSSParserValues.h</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserIdiomscpp">trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlparserHTMLParserIdiomsh">trunk/Source/WebCore/html/parser/HTMLParserIdioms.h</a></li>
<li><a href="#trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp">trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformsqlSQLiteStatementcpp">trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockcpp">trunk/Source/WebCore/rendering/RenderBlock.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderBlockh">trunk/Source/WebCore/rendering/RenderBlock.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeMacmm">trunk/Source/WebCore/rendering/RenderThemeMac.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsWebKitTestRunnerInjectedBundleInjectedBundlePagecpp">trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2016-09-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        parseHTMLInteger() should take a StringView in parameter
+        https://bugs.webkit.org/show_bug.cgi?id=161669
+
+        Reviewed by Ryosuke Niwa.
+
+        * runtime/DateConversion.cpp:
+        (JSC::formatDateTime):
+        Explicitly construct a String from the const WCHAR* on Windows because
+        it is ambiguous otherwise now that there is a StringBuilder::append()
+        overload taking an AtomicString in.
+
</ins><span class="cx"> 2016-09-08  Keith Miller  &lt;keith_miller@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         WASM should support if-then-else
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeDateConversioncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/DateConversion.cpp (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/DateConversion.cpp        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/JavaScriptCore/runtime/DateConversion.cpp        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -115,7 +115,11 @@
</span><span class="cx"> #endif
</span><span class="cx">             if (timeZoneName[0]) {
</span><span class="cx">                 builder.appendLiteral(&quot; (&quot;);
</span><ins>+#if OS(WINDOWS)
+                builder.append(String(timeZoneName));
+#else
</ins><span class="cx">                 builder.append(timeZoneName);
</span><ins>+#endif
</ins><span class="cx">                 builder.append(')');
</span><span class="cx">             }
</span><span class="cx">         }
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WTF/ChangeLog        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -1,3 +1,30 @@
</span><ins>+2016-09-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        parseHTMLInteger() should take a StringView in parameter
+        https://bugs.webkit.org/show_bug.cgi?id=161669
+
+        Reviewed by Ryosuke Niwa.
+
+        * wtf/text/StringBuilder.h:
+        (WTF::StringBuilder::append):
+        Add StringBuilder::append() overload taking an AtomicString in parameter.
+        It used to call StringBuilder::append(const String&amp;) implicitly when
+        passing an AtomicString. However, it is now ambiguous because there
+        is an overload taking a StringView, and it is now possible to construct
+        a StringView from an AtomicString.
+
+        * wtf/text/StringView.h:
+        (WTF::StringView::StringView):
+        - Add StringView constructor taking an AtomicString in parameter for
+          convenience. This avoids having to call AtomicString::string()
+          explicitly at call sites.
+        - Add StringView constructor taking a 'const char*' in parameter for
+          performance. There are several call sites that were passing a const
+          char* and implicitly constructing an unnecessary String to construct
+          a StringView. This became more obvious because the constructor taking
+          an AtomicString in parameter made such calls ambiguous.
+
+
</ins><span class="cx"> 2016-09-09  Mark Lam  &lt;mark.lam@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Gardening: fixing a few JSC test failures.
</span></span></pre></div>
<a id="trunkSourceWTFwtftextStringBuilderh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/StringBuilder.h (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/StringBuilder.h        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WTF/wtf/text/StringBuilder.h        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -50,6 +50,11 @@
</span><span class="cx"> 
</span><span class="cx">     ALWAYS_INLINE void append(const char* characters, unsigned length) { append(reinterpret_cast&lt;const LChar*&gt;(characters), length); }
</span><span class="cx"> 
</span><ins>+    void append(const AtomicString&amp; atomicString)
+    {
+        append(atomicString.string());
+    }
+
</ins><span class="cx">     void append(const String&amp; string)
</span><span class="cx">     {
</span><span class="cx">         if (!string.length())
</span></span></pre></div>
<a id="trunkSourceWTFwtftextStringViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/text/StringView.h (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/text/StringView.h        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WTF/wtf/text/StringView.h        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -60,11 +60,13 @@
</span><span class="cx">     StringView&amp; operator=(const StringView&amp;);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><ins>+    StringView(const AtomicString&amp;);
</ins><span class="cx">     StringView(const String&amp;);
</span><span class="cx">     StringView(const StringImpl&amp;);
</span><span class="cx">     StringView(const StringImpl*);
</span><span class="cx">     StringView(const LChar*, unsigned length);
</span><span class="cx">     StringView(const UChar*, unsigned length);
</span><ins>+    StringView(const char*);
</ins><span class="cx"> 
</span><span class="cx">     static StringView empty();
</span><span class="cx"> 
</span><span class="lines">@@ -193,6 +195,7 @@
</span><span class="cx"> 
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+#include &lt;wtf/text/AtomicString.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WTF {
</span><span class="lines">@@ -285,6 +288,11 @@
</span><span class="cx">     initialize(characters, length);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline StringView::StringView(const char* characters)
+{
+    initialize(reinterpret_cast&lt;const LChar*&gt;(characters), strlen(characters));
+}
+
</ins><span class="cx"> inline StringView::StringView(const StringImpl&amp; string)
</span><span class="cx"> {
</span><span class="cx">     setUnderlyingString(&amp;string);
</span><span class="lines">@@ -320,6 +328,11 @@
</span><span class="cx">     initialize(string.characters16(), string.length());
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+inline StringView::StringView(const AtomicString&amp; atomicString)
+    : StringView(atomicString.string())
+{
+}
+
</ins><span class="cx"> inline void StringView::clear()
</span><span class="cx"> {
</span><span class="cx">     m_characters = nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/ChangeLog        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -1,5 +1,51 @@
</span><span class="cx"> 2016-09-10  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        parseHTMLInteger() should take a StringView in parameter
+        https://bugs.webkit.org/show_bug.cgi?id=161669
+
+        Reviewed by Ryosuke Niwa.
+
+        parseHTMLInteger() should take a StringView in parameter instead of a
+        const String&amp;.
+
+        * css/parser/CSSParser.cpp:
+        (WebCore::CSSParser::parseFontFaceSrcLocal):
+        * css/parser/CSSParserValues.h:
+        (WebCore::CSSParserString::toStringView):
+        Add toStringView() to avoid unnecessarily constructing a String for
+        calling StringBuilder::append().
+
+        * html/parser/HTMLParserIdioms.cpp:
+        (WebCore::parseHTMLInteger):
+        (WebCore::parseHTMLNonNegativeInteger):
+        (WebCore::parseHTTPRefreshInternal):
+        * html/parser/HTMLParserIdioms.h:
+        (WebCore::limitToOnlyHTMLNonNegativeNumbersGreaterThanZero):
+        (WebCore::limitToOnlyHTMLNonNegative):
+        Take a StringView in parameter instead of a const String&amp;.
+
+        * platform/sql/SQLiteStatement.cpp:
+        (WebCore::SQLiteStatement::isColumnDeclaredAsBlob):
+        Avoid unnecessarily constructing a String to call equalLettersIgnoringASCIICase()
+        by leveraging the StringView constructor taking a 'const char*' in parameter.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::constructTextRun):
+        * rendering/RenderBlock.h:
+        Add constructTextRun() overload taking an AtomicString. It was otherwise ambiguous
+        because both a String or a StringView could be constructed from an AtomicString.
+
+        * page/CaptionUserPreferencesMediaAF.cpp:
+        (WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
+        (WebCore::buildDisplayStringForTrackBase):
+        * rendering/RenderThemeMac.mm:
+        (WebCore::RenderThemeMac::mediaControlsStyleSheet):
+        (WebCore::RenderThemeMac::mediaControlsScript):
+        Explicitly construct a String from NSString / CFStringRef types as such calls are
+        now ambiguous.
+
+2016-09-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         It is possible for Document::m_frame pointer to become stale
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=161812
</span><span class="cx">         &lt;rdar://problem/27745023&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParser.cpp (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/css/parser/CSSParser.cpp        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -7328,7 +7328,7 @@
</span><span class="cx">                 return false;
</span><span class="cx">             if (!builder.isEmpty())
</span><span class="cx">                 builder.append(' ');
</span><del>-            builder.append(localValue-&gt;string);
</del><ins>+            builder.append(localValue-&gt;string.toStringView());
</ins><span class="cx">         }
</span><span class="cx">         valueList.append(CSSFontFaceSrcValue::createLocal(builder.toString()));
</span><span class="cx">     } else
</span></span></pre></div>
<a id="trunkSourceWebCorecssparserCSSParserValuesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/parser/CSSParserValues.h (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/parser/CSSParserValues.h        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/css/parser/CSSParserValues.h        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -87,6 +87,7 @@
</span><span class="cx"> 
</span><span class="cx">     operator String() const { return is8Bit() ? String(m_data.characters8, m_length) : String(m_data.characters16, m_length); }
</span><span class="cx">     operator AtomicString() const { return is8Bit() ? AtomicString(m_data.characters8, m_length) : AtomicString(m_data.characters16, m_length); }
</span><ins>+    StringView toStringView() const { return is8Bit() ? StringView(m_data.characters8, m_length) : StringView(m_data.characters16, m_length); }
</ins><span class="cx"> 
</span><span class="cx">     union {
</span><span class="cx">         LChar* characters8;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserIdiomscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/html/parser/HTMLParserIdioms.cpp        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -191,7 +191,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-integers
</span><del>-Optional&lt;int&gt; parseHTMLInteger(const String&amp; input)
</del><ins>+Optional&lt;int&gt; parseHTMLInteger(StringView input)
</ins><span class="cx"> {
</span><span class="cx">     unsigned length = input.length();
</span><span class="cx">     if (!length)
</span><span class="lines">@@ -207,7 +207,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing-non-negative-integers
</span><del>-Optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(const String&amp; input)
</del><ins>+Optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(StringView input)
</ins><span class="cx"> {
</span><span class="cx">     Optional&lt;int&gt; signedValue = parseHTMLInteger(input);
</span><span class="cx">     if (!signedValue || signedValue.value() &lt; 0)
</span><span class="lines">@@ -363,7 +363,7 @@
</span><span class="cx">     while (position &lt; end &amp;&amp; isASCIIDigit(*position))
</span><span class="cx">         ++position;
</span><span class="cx"> 
</span><del>-    Optional&lt;unsigned&gt; number = parseHTMLNonNegativeInteger(StringView(numberStart, position - numberStart).toStringWithoutCopying());
</del><ins>+    Optional&lt;unsigned&gt; number = parseHTMLNonNegativeInteger(StringView(numberStart, position - numberStart));
</ins><span class="cx">     if (!number)
</span><span class="cx">         return false;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlparserHTMLParserIdiomsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/parser/HTMLParserIdioms.h (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/parser/HTMLParserIdioms.h        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/html/parser/HTMLParserIdioms.h        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><span class="cx"> #include &lt;wtf/Optional.h&gt;
</span><span class="cx"> #include &lt;wtf/Vector.h&gt;
</span><ins>+#include &lt;wtf/text/StringView.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -62,10 +63,10 @@
</span><span class="cx"> double parseToDoubleForNumberType(const String&amp;, double fallbackValue);
</span><span class="cx"> 
</span><span class="cx"> // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-integers
</span><del>-WEBCORE_EXPORT Optional&lt;int&gt; parseHTMLInteger(const String&amp;);
</del><ins>+WEBCORE_EXPORT Optional&lt;int&gt; parseHTMLInteger(StringView);
</ins><span class="cx"> 
</span><span class="cx"> // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-non-negative-integers
</span><del>-WEBCORE_EXPORT Optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(const String&amp;);
</del><ins>+WEBCORE_EXPORT Optional&lt;unsigned&gt; parseHTMLNonNegativeInteger(StringView);
</ins><span class="cx"> 
</span><span class="cx"> // https://html.spec.whatwg.org/#valid-non-negative-integer
</span><span class="cx"> Optional&lt;int&gt; parseValidHTMLNonNegativeInteger(StringView);
</span><span class="lines">@@ -132,7 +133,7 @@
</span><span class="cx">     return (value &gt; 0 &amp;&amp; value &lt;= maxHTMLNonNegativeInteger) ? value : defaultValue;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline unsigned limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(const String&amp; stringValue, unsigned defaultValue = 1)
</del><ins>+inline unsigned limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(StringView stringValue, unsigned defaultValue = 1)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(defaultValue &gt; 0);
</span><span class="cx">     ASSERT(defaultValue &lt;= maxHTMLNonNegativeInteger);
</span><span class="lines">@@ -150,7 +151,7 @@
</span><span class="cx">     return value &lt;= maxHTMLNonNegativeInteger ? value : defaultValue;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline unsigned limitToOnlyHTMLNonNegative(const String&amp; stringValue, unsigned defaultValue = 0)
</del><ins>+inline unsigned limitToOnlyHTMLNonNegative(StringView stringValue, unsigned defaultValue = 0)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(defaultValue &lt;= maxHTMLNonNegativeInteger);
</span><span class="cx">     unsigned value = parseHTMLNonNegativeInteger(stringValue).valueOr(defaultValue);
</span></span></pre></div>
<a id="trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -432,7 +432,7 @@
</span><span class="cx">     
</span><span class="cx">     builder.append(getPropertyNameString(CSSPropertyFontFamily));
</span><span class="cx">     builder.appendLiteral(&quot;: \&quot;&quot;);
</span><del>-    builder.append(static_cast&lt;CFStringRef&gt;(name.get()));
</del><ins>+    builder.append(String(static_cast&lt;CFStringRef&gt;(name.get())));
</ins><span class="cx">     builder.append('&quot;');
</span><span class="cx">     if (behavior == kMACaptionAppearanceBehaviorUseValue)
</span><span class="cx">         builder.appendLiteral(&quot; !important&quot;);
</span><span class="lines">@@ -642,7 +642,7 @@
</span><span class="cx">         else if (!language.isEmpty())
</span><span class="cx">             displayName.append(language);
</span><span class="cx">         else
</span><del>-            displayName.append(localeIdentifier.get());
</del><ins>+            displayName.append(String(localeIdentifier.get()));
</ins><span class="cx">     }
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformsqlSQLiteStatementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/platform/sql/SQLiteStatement.cpp        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -288,7 +288,7 @@
</span><span class="cx">         if (prepare() != SQLITE_OK)
</span><span class="cx">             return false;
</span><span class="cx">     }
</span><del>-    return equalLettersIgnoringASCIICase(StringView(reinterpret_cast&lt;const UChar*&gt;(sqlite3_column_decltype16(m_statement, col))), &quot;blob&quot;);
</del><ins>+    return equalLettersIgnoringASCIICase(StringView(sqlite3_column_decltype(m_statement, col)), &quot;blob&quot;);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> String SQLiteStatement::getColumnName(int col)
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -3803,6 +3803,11 @@
</span><span class="cx">     return constructTextRun(StringView(string), style, expansion, flags);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+TextRun RenderBlock::constructTextRun(const AtomicString&amp; atomicString, const RenderStyle&amp; style, ExpansionBehavior expansion, TextRunFlags flags)
+{
+    return constructTextRun(StringView(atomicString), style, expansion, flags);
+}
+
</ins><span class="cx"> TextRun RenderBlock::constructTextRun(const RenderText&amp; text, const RenderStyle&amp; style, ExpansionBehavior expansion)
</span><span class="cx"> {
</span><span class="cx">     return constructTextRun(text.stringView(), style, expansion);
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderBlock.h (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderBlock.h        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/rendering/RenderBlock.h        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -207,6 +207,8 @@
</span><span class="cx">         ExpansionBehavior = DefaultExpansion, TextRunFlags = DefaultTextRunFlags);
</span><span class="cx">     static TextRun constructTextRun(const String&amp;, const RenderStyle&amp;,
</span><span class="cx">         ExpansionBehavior = DefaultExpansion, TextRunFlags = DefaultTextRunFlags);
</span><ins>+    static TextRun constructTextRun(const AtomicString&amp;, const RenderStyle&amp;,
+        ExpansionBehavior = DefaultExpansion, TextRunFlags = DefaultTextRunFlags);
</ins><span class="cx">     static TextRun constructTextRun(const RenderText&amp;, const RenderStyle&amp;,
</span><span class="cx">         ExpansionBehavior = DefaultExpansion);
</span><span class="cx">     static TextRun constructTextRun(const RenderText&amp;, unsigned offset, unsigned length, const RenderStyle&amp;,
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -1292,7 +1292,7 @@
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><span class="cx">     if (m_mediaControlsStyleSheet.isEmpty()) {
</span><span class="cx">         StringBuilder builder;
</span><del>-        builder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsiOS&quot; ofType:@&quot;css&quot;] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+        builder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsiOS&quot; ofType:@&quot;css&quot;] encoding:NSUTF8StringEncoding error:nil]));
</ins><span class="cx">         m_mediaControlsStyleSheet = builder.toString();
</span><span class="cx">     }
</span><span class="cx">     return m_mediaControlsStyleSheet;
</span><span class="lines">@@ -1306,9 +1306,9 @@
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><span class="cx">     if (m_mediaControlsScript.isEmpty()) {
</span><span class="cx">         StringBuilder scriptBuilder;
</span><del>-        scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsLocalizedStrings&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]);
-        scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsApple&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]);
-        scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsiOS&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+        scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsLocalizedStrings&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]));
+        scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsApple&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]));
+        scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsiOS&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]));
</ins><span class="cx">         m_mediaControlsScript = scriptBuilder.toString();
</span><span class="cx">     }
</span><span class="cx">     return m_mediaControlsScript;
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeMac.mm        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -235,7 +235,7 @@
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><span class="cx">     if (m_mediaControlsStyleSheet.isEmpty()) {
</span><span class="cx">         StringBuilder styleSheetBuilder;
</span><del>-        styleSheetBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsApple&quot; ofType:@&quot;css&quot;] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+        styleSheetBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsApple&quot; ofType:@&quot;css&quot;] encoding:NSUTF8StringEncoding error:nil]));
</ins><span class="cx">         m_mediaControlsStyleSheet = styleSheetBuilder.toString();
</span><span class="cx">     }
</span><span class="cx">     return m_mediaControlsStyleSheet;
</span><span class="lines">@@ -249,8 +249,8 @@
</span><span class="cx"> #if ENABLE(MEDIA_CONTROLS_SCRIPT)
</span><span class="cx">     if (m_mediaControlsScript.isEmpty()) {
</span><span class="cx">         StringBuilder scriptBuilder;
</span><del>-        scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsLocalizedStrings&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]);
-        scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsApple&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+        scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsLocalizedStrings&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]));
+        scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@&quot;mediaControlsApple&quot; ofType:@&quot;js&quot;] encoding:NSUTF8StringEncoding error:nil]));
</ins><span class="cx">         m_mediaControlsScript = scriptBuilder.toString();
</span><span class="cx">     }
</span><span class="cx">     return m_mediaControlsScript;
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Tools/ChangeLog        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2016-09-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        parseHTMLInteger() should take a StringView in parameter
+        https://bugs.webkit.org/show_bug.cgi?id=161669
+
+        Reviewed by Ryosuke Niwa.
+
+        Explicitly construct a String from the CFStringRef in order to call
+        StringBuilder::append(). This is needed now that there is an append()
+        overload taking an AtomicString in parameter.
+
+        * WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
+        (WTR::InjectedBundlePage::dumpDOMAsWebArchive):
+
</ins><span class="cx"> 2016-09-10  Wenson Hsieh  &lt;wenson_hsieh@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Apple.com keynote does not display media controls
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnerInjectedBundleInjectedBundlePagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp (205786 => 205787)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp        2016-09-10 16:06:05 UTC (rev 205786)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp        2016-09-10 18:08:32 UTC (rev 205787)
</span><span class="lines">@@ -843,7 +843,7 @@
</span><span class="cx">     WKRetainPtr&lt;WKDataRef&gt; wkData = adoptWK(WKBundleFrameCopyWebArchive(frame));
</span><span class="cx">     RetainPtr&lt;CFDataRef&gt; cfData = adoptCF(CFDataCreate(0, WKDataGetBytes(wkData.get()), WKDataGetSize(wkData.get())));
</span><span class="cx">     RetainPtr&lt;CFStringRef&gt; cfString = adoptCF(createXMLStringFromWebArchiveData(cfData.get()));
</span><del>-    stringBuilder.append(cfString.get());
</del><ins>+    stringBuilder.append(String(cfString.get()));
</ins><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>