<!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>[207021] 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/207021">207021</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2016-10-10 14:01:39 -0700 (Mon, 10 Oct 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>Add support for Navigator.languages attribute
https://bugs.webkit.org/show_bug.cgi?id=163220

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:
* web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage-expected.txt:

Source/WebCore:

Add support for Navigator.languages attribute:
- https://html.spec.whatwg.org/#navigatorlanguage

Firefox and Chrome already support this.

Currently, we always return a single language for privacy reasons so
this API does not actually bring anything new besides interoperability
with other browsers and compliance with the HTML specification.

No new tests, rebaselined existing tests.

* page/NavigatorBase.cpp:
(WebCore::NavigatorBase::languages):
* page/NavigatorBase.h:
* page/NavigatorLanguage.idl:

LayoutTests:

Rebase existing test to reflect change.

* fast/dom/navigator-detached-no-crash-expected.txt:
* platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsfastdomnavigatordetachednocrashexpectedtxt">trunk/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cChangeLog">trunk/LayoutTests/imported/w3c/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt</a></li>
<li><a href="#trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectnavigatorlanguageexpectedtxt">trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk2fastdomnavigatordetachednocrashexpectedtxt">trunk/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorepageNavigatorBasecpp">trunk/Source/WebCore/page/NavigatorBase.cpp</a></li>
<li><a href="#trunkSourceWebCorepageNavigatorBaseh">trunk/Source/WebCore/page/NavigatorBase.h</a></li>
<li><a href="#trunkSourceWebCorepageNavigatorLanguageidl">trunk/Source/WebCore/page/NavigatorLanguage.idl</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/LayoutTests/ChangeLog        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -1,5 +1,17 @@
</span><span class="cx"> 2016-10-10  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Add support for Navigator.languages attribute
+        https://bugs.webkit.org/show_bug.cgi?id=163220
+
+        Reviewed by Darin Adler.
+
+        Rebase existing test to reflect change.
+
+        * fast/dom/navigator-detached-no-crash-expected.txt:
+        * platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
+
+2016-10-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
</ins><span class="cx">         Update MessageEvent to stop using legacy [ConstructorTemplate=Event]
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=163187
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsfastdomnavigatordetachednocrashexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -8,6 +8,7 @@
</span><span class="cx"> navigator.hardwareConcurrency is OK
</span><span class="cx"> navigator.javaEnabled() is OK
</span><span class="cx"> navigator.language is OK
</span><ins>+navigator.languages is OK
</ins><span class="cx"> navigator.mimeTypes is OK
</span><span class="cx"> navigator.onLine is OK
</span><span class="cx"> navigator.platform is OK
</span><span class="lines">@@ -25,6 +26,7 @@
</span><span class="cx"> navigator.hardwareConcurrency is OK
</span><span class="cx"> navigator.javaEnabled() is OK
</span><span class="cx"> navigator.language is OK
</span><ins>+navigator.languages is OK
</ins><span class="cx"> navigator.mimeTypes is OK
</span><span class="cx"> navigator.onLine is OK
</span><span class="cx"> navigator.platform is OK
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/ChangeLog (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/ChangeLog        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/LayoutTests/imported/w3c/ChangeLog        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-10-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Add support for Navigator.languages attribute
+        https://bugs.webkit.org/show_bug.cgi?id=163220
+
+        Reviewed by Darin Adler.
+
+        Rebaseline W3C tests now that more checks are passing.
+
+        * web-platform-tests/html/dom/interfaces-expected.txt:
+        * web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage-expected.txt:
+
</ins><span class="cx"> 2016-10-10  Youenn Fablet  &lt;youennf@gmail.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Sync web-platform-tests up to revision 33f4da1
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmldominterfacesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -5382,7 +5382,7 @@
</span><span class="cx"> PASS Navigator interface: attribute vendor 
</span><span class="cx"> PASS Navigator interface: attribute vendorSub 
</span><span class="cx"> PASS Navigator interface: attribute language 
</span><del>-FAIL Navigator interface: attribute languages assert_true: The prototype object must have a property &quot;languages&quot; expected true got false
</del><ins>+PASS Navigator interface: attribute languages 
</ins><span class="cx"> PASS Navigator interface: attribute onLine 
</span><span class="cx"> FAIL Navigator interface: operation registerProtocolHandler(DOMString,USVString,DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;registerProtocolHandler&quot; missing
</span><span class="cx"> FAIL Navigator interface: operation registerContentHandler(DOMString,USVString,DOMString) assert_own_property: interface prototype object missing non-static operation expected property &quot;registerContentHandler&quot; missing
</span><span class="lines">@@ -5407,7 +5407,7 @@
</span><span class="cx"> PASS Navigator interface: window.navigator must inherit property &quot;vendor&quot; with the proper type (7) 
</span><span class="cx"> PASS Navigator interface: window.navigator must inherit property &quot;vendorSub&quot; with the proper type (8) 
</span><span class="cx"> PASS Navigator interface: window.navigator must inherit property &quot;language&quot; with the proper type (9) 
</span><del>-FAIL Navigator interface: window.navigator must inherit property &quot;languages&quot; with the proper type (10) assert_inherits: property &quot;languages&quot; not found in prototype chain
</del><ins>+FAIL Navigator interface: window.navigator must inherit property &quot;languages&quot; with the proper type (10) Unrecognized type [object Object]
</ins><span class="cx"> PASS Navigator interface: window.navigator must inherit property &quot;onLine&quot; with the proper type (11) 
</span><span class="cx"> FAIL Navigator interface: window.navigator must inherit property &quot;registerProtocolHandler&quot; with the proper type (12) assert_inherits: property &quot;registerProtocolHandler&quot; not found in prototype chain
</span><span class="cx"> FAIL Navigator interface: calling registerProtocolHandler(DOMString,USVString,DOMString) on window.navigator with too few arguments must throw TypeError assert_inherits: property &quot;registerProtocolHandler&quot; not found in prototype chain
</span></span></pre></div>
<a id="trunkLayoutTestsimportedw3cwebplatformtestshtmlwebappapissystemstateandcapabilitiesthenavigatorobjectnavigatorlanguageexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage-expected.txt (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage-expected.txt        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigatorlanguage-expected.txt        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -1,3 +1,3 @@
</span><span class="cx"> 
</span><del>-FAIL NavigatorLanguage: the most preferred language is the one returned by navigator.language assert_true: expected true got false
</del><ins>+PASS NavigatorLanguage: the most preferred language is the one returned by navigator.language 
</ins><span class="cx"> 
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2fastdomnavigatordetachednocrashexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/LayoutTests/platform/mac-wk2/fast/dom/navigator-detached-no-crash-expected.txt        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -9,6 +9,7 @@
</span><span class="cx"> navigator.hardwareConcurrency is OK
</span><span class="cx"> navigator.javaEnabled() is OK
</span><span class="cx"> navigator.language is OK
</span><ins>+navigator.languages is OK
</ins><span class="cx"> navigator.mimeTypes is OK
</span><span class="cx"> navigator.onLine is OK
</span><span class="cx"> navigator.platform is OK
</span><span class="lines">@@ -27,6 +28,7 @@
</span><span class="cx"> navigator.hardwareConcurrency is OK
</span><span class="cx"> navigator.javaEnabled() is OK
</span><span class="cx"> navigator.language is OK
</span><ins>+navigator.languages is OK
</ins><span class="cx"> navigator.mimeTypes is OK
</span><span class="cx"> navigator.onLine is OK
</span><span class="cx"> navigator.platform is OK
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/Source/WebCore/ChangeLog        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -1,3 +1,26 @@
</span><ins>+2016-10-10  Chris Dumez  &lt;cdumez@apple.com&gt;
+
+        Add support for Navigator.languages attribute
+        https://bugs.webkit.org/show_bug.cgi?id=163220
+
+        Reviewed by Darin Adler.
+
+        Add support for Navigator.languages attribute:
+        - https://html.spec.whatwg.org/#navigatorlanguage
+
+        Firefox and Chrome already support this.
+
+        Currently, we always return a single language for privacy reasons so
+        this API does not actually bring anything new besides interoperability
+        with other browsers and compliance with the HTML specification.
+
+        No new tests, rebaselined existing tests.
+
+        * page/NavigatorBase.cpp:
+        (WebCore::NavigatorBase::languages):
+        * page/NavigatorBase.h:
+        * page/NavigatorLanguage.idl:
+
</ins><span class="cx"> 2016-10-10  Brent Fulgham  &lt;bfulgham@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Win][Direct2D] Implement dashed and dotted border line drawing
</span></span></pre></div>
<a id="trunkSourceWebCorepageNavigatorBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/NavigatorBase.cpp (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/NavigatorBase.cpp        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/Source/WebCore/page/NavigatorBase.cpp        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -139,6 +139,12 @@
</span><span class="cx">     return defaultLanguage();
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+Vector&lt;String&gt; NavigatorBase::languages()
+{
+    // We intentionally expose only the primary language for privacy reasons.
+    return { defaultLanguage() };
+}
+
</ins><span class="cx"> #if ENABLE(NAVIGATOR_HWCONCURRENCY)
</span><span class="cx"> 
</span><span class="cx"> int NavigatorBase::hardwareConcurrency()
</span></span></pre></div>
<a id="trunkSourceWebCorepageNavigatorBaseh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/NavigatorBase.h (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/NavigatorBase.h        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/Source/WebCore/page/NavigatorBase.h        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -27,6 +27,7 @@
</span><span class="cx"> #define NavigatorBase_h
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/Forward.h&gt;
</span><ins>+#include &lt;wtf/Vector.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><span class="lines">@@ -46,6 +47,7 @@
</span><span class="cx">     static bool onLine();
</span><span class="cx"> 
</span><span class="cx">     static String language();
</span><ins>+    static Vector&lt;String&gt; languages();
</ins><span class="cx"> 
</span><span class="cx"> #if ENABLE(NAVIGATOR_HWCONCURRENCY)
</span><span class="cx">     static int hardwareConcurrency();
</span></span></pre></div>
<a id="trunkSourceWebCorepageNavigatorLanguageidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/NavigatorLanguage.idl (207020 => 207021)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/NavigatorLanguage.idl        2016-10-10 20:59:48 UTC (rev 207020)
+++ trunk/Source/WebCore/page/NavigatorLanguage.idl        2016-10-10 21:01:39 UTC (rev 207021)
</span><span class="lines">@@ -30,5 +30,5 @@
</span><span class="cx">     NoInterfaceObject
</span><span class="cx"> ] interface NavigatorLanguage {
</span><span class="cx">     [Nondeterministic]  readonly attribute DOMString language;
</span><del>-    // readonly attribute FrozenArray&lt;DOMString&gt; languages;
</del><ins>+    readonly attribute FrozenArray&lt;DOMString&gt; languages;
</ins><span class="cx"> };
</span></span></pre>
</div>
</div>

</body>
</html>