<!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&.
* 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&.
* 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&) 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 <cdumez@apple.com>
+
+ 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 <keith_miller@apple.com>
</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(" (");
</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 <cdumez@apple.com>
+
+ 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&) 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 <mark.lam@apple.com>
</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<const LChar*>(characters), length); }
</span><span class="cx">
</span><ins>+ void append(const AtomicString& atomicString)
+ {
+ append(atomicString.string());
+ }
+
</ins><span class="cx"> void append(const String& 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& operator=(const StringView&);
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ StringView(const AtomicString&);
</ins><span class="cx"> StringView(const String&);
</span><span class="cx"> StringView(const StringImpl&);
</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 <wtf/text/AtomicString.h>
</ins><span class="cx"> #include <wtf/text/WTFString.h>
</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<const LChar*>(characters), strlen(characters));
+}
+
</ins><span class="cx"> inline StringView::StringView(const StringImpl& string)
</span><span class="cx"> {
</span><span class="cx"> setUnderlyingString(&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& 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 <cdumez@apple.com>
</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&.
+
+ * 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&.
+
+ * 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 <cdumez@apple.com>
+
</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"> <rdar://problem/27745023>
</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->string);
</del><ins>+ builder.append(localValue->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<int> parseHTMLInteger(const String& input)
</del><ins>+Optional<int> 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<unsigned> parseHTMLNonNegativeInteger(const String& input)
</del><ins>+Optional<unsigned> parseHTMLNonNegativeInteger(StringView input)
</ins><span class="cx"> {
</span><span class="cx"> Optional<int> signedValue = parseHTMLInteger(input);
</span><span class="cx"> if (!signedValue || signedValue.value() < 0)
</span><span class="lines">@@ -363,7 +363,7 @@
</span><span class="cx"> while (position < end && isASCIIDigit(*position))
</span><span class="cx"> ++position;
</span><span class="cx">
</span><del>- Optional<unsigned> number = parseHTMLNonNegativeInteger(StringView(numberStart, position - numberStart).toStringWithoutCopying());
</del><ins>+ Optional<unsigned> 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 <wtf/Forward.h>
</span><span class="cx"> #include <wtf/Optional.h>
</span><span class="cx"> #include <wtf/Vector.h>
</span><ins>+#include <wtf/text/StringView.h>
</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&, 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<int> parseHTMLInteger(const String&);
</del><ins>+WEBCORE_EXPORT Optional<int> 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<unsigned> parseHTMLNonNegativeInteger(const String&);
</del><ins>+WEBCORE_EXPORT Optional<unsigned> parseHTMLNonNegativeInteger(StringView);
</ins><span class="cx">
</span><span class="cx"> // https://html.spec.whatwg.org/#valid-non-negative-integer
</span><span class="cx"> Optional<int> parseValidHTMLNonNegativeInteger(StringView);
</span><span class="lines">@@ -132,7 +133,7 @@
</span><span class="cx"> return (value > 0 && value <= maxHTMLNonNegativeInteger) ? value : defaultValue;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-inline unsigned limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(const String& stringValue, unsigned defaultValue = 1)
</del><ins>+inline unsigned limitToOnlyHTMLNonNegativeNumbersGreaterThanZero(StringView stringValue, unsigned defaultValue = 1)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(defaultValue > 0);
</span><span class="cx"> ASSERT(defaultValue <= maxHTMLNonNegativeInteger);
</span><span class="lines">@@ -150,7 +151,7 @@
</span><span class="cx"> return value <= maxHTMLNonNegativeInteger ? value : defaultValue;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-inline unsigned limitToOnlyHTMLNonNegative(const String& stringValue, unsigned defaultValue = 0)
</del><ins>+inline unsigned limitToOnlyHTMLNonNegative(StringView stringValue, unsigned defaultValue = 0)
</ins><span class="cx"> {
</span><span class="cx"> ASSERT(defaultValue <= 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(": \"");
</span><del>- builder.append(static_cast<CFStringRef>(name.get()));
</del><ins>+ builder.append(String(static_cast<CFStringRef>(name.get())));
</ins><span class="cx"> builder.append('"');
</span><span class="cx"> if (behavior == kMACaptionAppearanceBehaviorUseValue)
</span><span class="cx"> builder.appendLiteral(" !important");
</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<const UChar*>(sqlite3_column_decltype16(m_statement, col))), "blob");
</del><ins>+ return equalLettersIgnoringASCIICase(StringView(sqlite3_column_decltype(m_statement, col)), "blob");
</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& atomicString, const RenderStyle& style, ExpansionBehavior expansion, TextRunFlags flags)
+{
+ return constructTextRun(StringView(atomicString), style, expansion, flags);
+}
+
</ins><span class="cx"> TextRun RenderBlock::constructTextRun(const RenderText& text, const RenderStyle& 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&, const RenderStyle&,
</span><span class="cx"> ExpansionBehavior = DefaultExpansion, TextRunFlags = DefaultTextRunFlags);
</span><ins>+ static TextRun constructTextRun(const AtomicString&, const RenderStyle&,
+ ExpansionBehavior = DefaultExpansion, TextRunFlags = DefaultTextRunFlags);
</ins><span class="cx"> static TextRun constructTextRun(const RenderText&, const RenderStyle&,
</span><span class="cx"> ExpansionBehavior = DefaultExpansion);
</span><span class="cx"> static TextRun constructTextRun(const RenderText&, unsigned offset, unsigned length, const RenderStyle&,
</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:@"mediaControlsiOS" ofType:@"css"] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+ builder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsiOS" ofType:@"css"] 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:@"mediaControlsLocalizedStrings" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]);
- scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsApple" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]);
- scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsiOS" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+ scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsLocalizedStrings" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]));
+ scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsApple" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]));
+ scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsiOS" ofType:@"js"] 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:@"mediaControlsApple" ofType:@"css"] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+ styleSheetBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsApple" ofType:@"css"] 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:@"mediaControlsLocalizedStrings" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]);
- scriptBuilder.append([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsApple" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]);
</del><ins>+ scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsLocalizedStrings" ofType:@"js"] encoding:NSUTF8StringEncoding error:nil]));
+ scriptBuilder.append(String([NSString stringWithContentsOfFile:[[NSBundle bundleForClass:[WebCoreRenderThemeBundle class]] pathForResource:@"mediaControlsApple" ofType:@"js"] 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 <cdumez@apple.com>
+
+ 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 <wenson_hsieh@apple.com>
</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<WKDataRef> wkData = adoptWK(WKBundleFrameCopyWebArchive(frame));
</span><span class="cx"> RetainPtr<CFDataRef> cfData = adoptCF(CFDataCreate(0, WKDataGetBytes(wkData.get()), WKDataGetSize(wkData.get())));
</span><span class="cx"> RetainPtr<CFStringRef> 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>