<!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>[211332] 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/211332">211332</a></dd>
<dt>Author</dt> <dd>joepeck@webkit.org</dd>
<dt>Date</dt> <dd>2017-01-28 01:26:14 -0800 (Sat, 28 Jan 2017)</dd>
</dl>
<h3>Log Message</h3>
<pre>Add User Timing Experimental Feature
https://bugs.webkit.org/show_bug.cgi?id=167542
<rdar://problem/22746307>
Reviewed by Ryosuke Niwa.
Source/WebCore:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::performanceTimelineEnabled):
* page/Performance.idl:
* page/PerformanceEntry.idl:
Make a better RuntimeEnabledFeature named "PerformanceTiming" which
is enabled if either UserTiming or ResourceTiming is enabled. This
will then expose the APIs that are only useful when at least one of
the APIs are available.
* page/PerformanceEntry.cpp:
(WebCore::PerformanceEntry::name): Deleted.
(WebCore::PerformanceEntry::entryType): Deleted.
(WebCore::PerformanceEntry::startTime): Deleted.
(WebCore::PerformanceEntry::duration): Deleted.
* page/PerformanceEntry.h:
(WebCore::PerformanceEntry::name):
(WebCore::PerformanceEntry::entryType):
(WebCore::PerformanceEntry::startTime):
(WebCore::PerformanceEntry::duration):
Inline simple accessors.
* page/PerformanceUserTiming.cpp:
(WebCore::UserTiming::measure):
Fix a bug introduced by ExceptionOr refactoring.
(WebCore::UserTiming::clearMarks):
(WebCore::UserTiming::clearMeasures):
(WebCore::clearPerformanceEntries):
(WebCore::clearPeformanceEntries): Deleted.
Fix method name typo.
Source/WebKit/mac:
* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences userTimingEnabled]):
(-[WebPreferences setUserTimingEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Add setting for User Timing runtime enabled feature.
Source/WebKit/win:
* Interfaces/IWebPreferencesPrivate.idl:
* WebPreferenceKeysPrivate.h:
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::setUserTimingEnabled):
(WebPreferences::userTimingEnabled):
* WebPreferences.h:
* WebView.cpp:
(WebView::notifyPreferencesChanged):
Add setting for User Timing runtime enabled feature.
Source/WebKit2:
* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetUserTimingEnabled):
(WKPreferencesGetUserTimingEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
Experimental feature. Off for now while we update ResourceTiming
and NavigationTiming to be compatible with Performance Timing 2.
Tools:
* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
* DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
Websites/webkit.org:
* experimental-features.html:
LayoutTests:
* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:
Update results now that experimental User Timing feature is enabled in tests.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsplatformefljsdomglobalconstructorsattributesexpectedtxt">trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkjsdomglobalconstructorsattributesexpectedtxt">trunk/LayoutTests/platform/gtk/js/dom/global-constructors-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacjsdomglobalconstructorsattributesexpectedtxt">trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacelcapitanjsdomglobalconstructorsattributesexpectedtxt">trunk/LayoutTests/platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk1jsdomglobalconstructorsattributesexpectedtxt">trunk/LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacyosemitejsdomglobalconstructorsattributesexpectedtxt">trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformwinjsdomglobalconstructorsattributesexpectedtxt">trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceidl">trunk/Source/WebCore/page/Performance.idl</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceEntrycpp">trunk/Source/WebCore/page/PerformanceEntry.cpp</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceEntryh">trunk/Source/WebCore/page/PerformanceEntry.h</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceEntryidl">trunk/Source/WebCore/page/PerformanceEntry.idl</a></li>
<li><a href="#trunkSourceWebCorepagePerformanceUserTimingcpp">trunk/Source/WebCore/page/PerformanceUserTiming.cpp</a></li>
<li><a href="#trunkSourceWebCorepageRuntimeEnabledFeaturesh">trunk/Source/WebCore/page/RuntimeEnabledFeatures.h</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPreferenceKeysPrivateh">trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPreferencesmm">trunk/Source/WebKit/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPreferencesPrivateh">trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</a></li>
<li><a href="#trunkSourceWebKitwinChangeLog">trunk/Source/WebKit/win/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitwinInterfacesIWebPreferencesPrivateidl">trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl</a></li>
<li><a href="#trunkSourceWebKitwinWebPreferenceKeysPrivateh">trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkSourceWebKitwinWebPreferencescpp">trunk/Source/WebKit/win/WebPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKitwinWebPreferencesh">trunk/Source/WebKit/win/WebPreferences.h</a></li>
<li><a href="#trunkSourceWebKitwinWebViewcpp">trunk/Source/WebKit/win/WebView.cpp</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedWebPreferencesDefinitionsh">trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPreferencescpp">trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICWKPreferencesRefPrivateh">trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageWebPagecpp">trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreemacDumpRenderTreemm">trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm</a></li>
<li><a href="#trunkToolsDumpRenderTreewinDumpRenderTreecpp">trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp</a></li>
<li><a href="#trunkWebsiteswebkitorgChangeLog">trunk/Websites/webkit.org/ChangeLog</a></li>
<li><a href="#trunkWebsiteswebkitorgexperimentalfeatureshtml">trunk/Websites/webkit.org/experimental-features.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/ChangeLog        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
+
+ Add User Timing Experimental Feature
+ https://bugs.webkit.org/show_bug.cgi?id=167542
+ <rdar://problem/22746307>
+
+ Reviewed by Ryosuke Niwa.
+
+ * platform/efl/js/dom/global-constructors-attributes-expected.txt:
+ * platform/gtk/js/dom/global-constructors-attributes-expected.txt:
+ * platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
+ * platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
+ * platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
+ * platform/mac/js/dom/global-constructors-attributes-expected.txt:
+ * platform/win/js/dom/global-constructors-attributes-expected.txt:
+ Update results now that experimental User Timing feature is enabled in tests.
+
</ins><span class="cx"> 2017-01-27 Yusuke Suzuki <utatane.tea@gmail.com>
</span><span class="cx">
</span><span class="cx"> Lift template escape sequence restrictions in tagged templates
</span></span></pre></div>
<a id="trunkLayoutTestsplatformefljsdomglobalconstructorsattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-expected.txt (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/platform/efl/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -993,6 +993,36 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
</span><ins>+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').value is PerformanceMeasure
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').value is PerformanceMeasure
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').configurable is true
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').value is PerformanceNavigation
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('get') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkjsdomglobalconstructorsattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/js/dom/global-constructors-attributes-expected.txt (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/platform/gtk/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1138,6 +1138,11 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
</span><ins>+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacjsdomglobalconstructorsattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/platform/mac/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1178,6 +1178,21 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
</span><ins>+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').value is PerformanceMeasure
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').configurable is true
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').value is PerformanceNavigation
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('get') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacelcapitanjsdomglobalconstructorsattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1173,6 +1173,21 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
</span><ins>+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').value is PerformanceMeasure
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').configurable is true
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').value is PerformanceNavigation
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('get') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk1jsdomglobalconstructorsattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1173,6 +1173,21 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
</span><ins>+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').value is PerformanceMeasure
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').configurable is true
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').value is PerformanceNavigation
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('get') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacyosemitejsdomglobalconstructorsattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1168,6 +1168,21 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
</span><ins>+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').value is PerformanceMeasure
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').configurable is true
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').value is PerformanceNavigation
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('get') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkLayoutTestsplatformwinjsdomglobalconstructorsattributesexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/LayoutTests/platform/win/js/dom/global-constructors-attributes-expected.txt        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -868,6 +868,21 @@
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').hasOwnProperty('set') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').enumerable is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'Performance').configurable is true
</span><ins>+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').value is PerformanceEntry
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceEntry').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').value is PerformanceMark
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMark').configurable is true
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').value is PerformanceMeasure
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('get') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').hasOwnProperty('set') is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').enumerable is false
+PASS Object.getOwnPropertyDescriptor(global, 'PerformanceMeasure').configurable is true
</ins><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').value is PerformanceNavigation
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('get') is false
</span><span class="cx"> PASS Object.getOwnPropertyDescriptor(global, 'PerformanceNavigation').hasOwnProperty('set') is false
</span></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebCore/ChangeLog        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1,3 +1,42 @@
</span><ins>+2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
+
+ Add User Timing Experimental Feature
+ https://bugs.webkit.org/show_bug.cgi?id=167542
+ <rdar://problem/22746307>
+
+ Reviewed by Ryosuke Niwa.
+
+ * page/RuntimeEnabledFeatures.h:
+ (WebCore::RuntimeEnabledFeatures::performanceTimelineEnabled):
+ * page/Performance.idl:
+ * page/PerformanceEntry.idl:
+ Make a better RuntimeEnabledFeature named "PerformanceTiming" which
+ is enabled if either UserTiming or ResourceTiming is enabled. This
+ will then expose the APIs that are only useful when at least one of
+ the APIs are available.
+
+ * page/PerformanceEntry.cpp:
+ (WebCore::PerformanceEntry::name): Deleted.
+ (WebCore::PerformanceEntry::entryType): Deleted.
+ (WebCore::PerformanceEntry::startTime): Deleted.
+ (WebCore::PerformanceEntry::duration): Deleted.
+ * page/PerformanceEntry.h:
+ (WebCore::PerformanceEntry::name):
+ (WebCore::PerformanceEntry::entryType):
+ (WebCore::PerformanceEntry::startTime):
+ (WebCore::PerformanceEntry::duration):
+ Inline simple accessors.
+
+ * page/PerformanceUserTiming.cpp:
+ (WebCore::UserTiming::measure):
+ Fix a bug introduced by ExceptionOr refactoring.
+
+ (WebCore::UserTiming::clearMarks):
+ (WebCore::UserTiming::clearMeasures):
+ (WebCore::clearPerformanceEntries):
+ (WebCore::clearPeformanceEntries): Deleted.
+ Fix method name typo.
+
</ins><span class="cx"> 2017-01-27 Dan Bernstein <mitz@apple.com>
</span><span class="cx">
</span><span class="cx"> Ignore Xcode’s project.xcworkspace and userdata directories in this new project like we do
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Performance.idl (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Performance.idl        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebCore/page/Performance.idl        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -45,9 +45,9 @@
</span><span class="cx"> readonly attribute PerformanceTiming timing;
</span><span class="cx">
</span><span class="cx"> // https://w3c.github.io/performance-timeline/
</span><del>- [EnabledAtRuntime=ResourceTiming] PerformanceEntryList getEntries();
- [EnabledAtRuntime=ResourceTiming] PerformanceEntryList getEntriesByType(DOMString entryType);
- [EnabledAtRuntime=ResourceTiming] PerformanceEntryList getEntriesByName(DOMString name, optional DOMString entryType);
</del><ins>+ [EnabledAtRuntime=PerformanceTimeline] PerformanceEntryList getEntries();
+ [EnabledAtRuntime=PerformanceTimeline] PerformanceEntryList getEntriesByType(DOMString entryType);
+ [EnabledAtRuntime=PerformanceTimeline] PerformanceEntryList getEntriesByName(DOMString name, optional DOMString entryType);
</ins><span class="cx">
</span><span class="cx"> // https://w3c.github.io/resource-timing/
</span><span class="cx"> [EnabledAtRuntime=ResourceTiming] void clearResourceTimings();
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceEntrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PerformanceEntry.cpp (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PerformanceEntry.cpp        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebCore/page/PerformanceEntry.cpp        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -47,26 +47,6 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><del>-String PerformanceEntry::name() const
-{
- return m_name;
-}
-
-String PerformanceEntry::entryType() const
-{
- return m_entryType;
-}
-
-double PerformanceEntry::startTime() const
-{
- return m_startTime;
-}
-
-double PerformanceEntry::duration() const
-{
- return m_duration;
-}
-
</del><span class="cx"> } // namespace WebCore
</span><span class="cx">
</span><span class="cx"> #endif // ENABLE(WEB_TIMING)
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceEntryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PerformanceEntry.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PerformanceEntry.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebCore/page/PerformanceEntry.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -44,10 +44,10 @@
</span><span class="cx"> public:
</span><span class="cx"> virtual ~PerformanceEntry();
</span><span class="cx">
</span><del>- String name() const;
- String entryType() const;
- double startTime() const;
- double duration() const;
</del><ins>+ String name() const { return m_name; }
+ String entryType() const { return m_entryType; }
+ double startTime() const { return m_startTime; }
+ double duration() const { return m_duration; }
</ins><span class="cx">
</span><span class="cx"> virtual bool isResource() const { return false; }
</span><span class="cx"> virtual bool isMark() const { return false; }
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceEntryidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PerformanceEntry.idl (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PerformanceEntry.idl        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebCore/page/PerformanceEntry.idl        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -34,7 +34,7 @@
</span><span class="cx">
</span><span class="cx"> [
</span><span class="cx"> Conditional=WEB_TIMING,
</span><del>- EnabledAtRuntime=ResourceTiming,
</del><ins>+ EnabledAtRuntime=PerformanceTimeline,
</ins><span class="cx"> CustomToJSObject,
</span><span class="cx"> ] interface PerformanceEntry {
</span><span class="cx"> readonly attribute DOMString name;
</span></span></pre></div>
<a id="trunkSourceWebCorepagePerformanceUserTimingcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/PerformanceUserTiming.cpp (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/PerformanceUserTiming.cpp        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebCore/page/PerformanceUserTiming.cpp        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -46,6 +46,7 @@
</span><span class="cx">
</span><span class="cx"> static NavigationTimingFunction restrictedMarkFunction(const String& markName)
</span><span class="cx"> {
</span><ins>+ // FIXME: Update this list when moving to Navigation Timing Level 2.
</ins><span class="cx"> using MapPair = std::pair<ASCIILiteral, NavigationTimingFunction>;
</span><span class="cx"> static const std::array<MapPair, 21> pairs = { {
</span><span class="cx"> MapPair { ASCIILiteral("navigationStart"), &PerformanceTiming::navigationStart },
</span><span class="lines">@@ -97,7 +98,7 @@
</span><span class="cx"> performanceEntryMap.set(entry->name(), Vector<RefPtr<PerformanceEntry>> { WTFMove(entry) });
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static void clearPeformanceEntries(PerformanceEntryMap& performanceEntryMap, const String& name)
</del><ins>+static void clearPerformanceEntries(PerformanceEntryMap& performanceEntryMap, const String& name)
</ins><span class="cx"> {
</span><span class="cx"> if (name.isNull()) {
</span><span class="cx"> performanceEntryMap.clear();
</span><span class="lines">@@ -118,7 +119,7 @@
</span><span class="cx">
</span><span class="cx"> void UserTiming::clearMarks(const String& markName)
</span><span class="cx"> {
</span><del>- clearPeformanceEntries(m_marksMap, markName);
</del><ins>+ clearPerformanceEntries(m_marksMap, markName);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ExceptionOr<double> UserTiming::findExistingMarkStartTime(const String& markName)
</span><span class="lines">@@ -148,7 +149,7 @@
</span><span class="cx"> auto startMarkResult = findExistingMarkStartTime(startMark);
</span><span class="cx"> if (startMarkResult.hasException())
</span><span class="cx"> return startMarkResult.releaseException();
</span><del>- endTime = startMarkResult.releaseReturnValue();
</del><ins>+ startTime = startMarkResult.releaseReturnValue();
</ins><span class="cx"> } else {
</span><span class="cx"> auto endMarkResult = findExistingMarkStartTime(endMark);
</span><span class="cx"> if (endMarkResult.hasException())
</span><span class="lines">@@ -166,7 +167,7 @@
</span><span class="cx">
</span><span class="cx"> void UserTiming::clearMeasures(const String& measureName)
</span><span class="cx"> {
</span><del>- clearPeformanceEntries(m_measuresMap, measureName);
</del><ins>+ clearPerformanceEntries(m_measuresMap, measureName);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> static Vector<RefPtr<PerformanceEntry>> convertToEntrySequence(const PerformanceEntryMap& performanceEntryMap)
</span></span></pre></div>
<a id="trunkSourceWebCorepageRuntimeEnabledFeaturesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -58,6 +58,8 @@
</span><span class="cx"> void setUserTimingEnabled(bool isEnabled) { m_isUserTimingEnabled = isEnabled; }
</span><span class="cx"> bool userTimingEnabled() const { return m_isUserTimingEnabled; }
</span><span class="cx">
</span><ins>+ bool performanceTimelineEnabled() const { return resourceTimingEnabled() || userTimingEnabled(); }
+
</ins><span class="cx"> void setShadowDOMEnabled(bool isEnabled) { m_isShadowDOMEnabled = isEnabled; }
</span><span class="cx"> bool shadowDOMEnabled() const { return m_isShadowDOMEnabled; }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/mac/ChangeLog        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
+
+ Add User Timing Experimental Feature
+ https://bugs.webkit.org/show_bug.cgi?id=167542
+ <rdar://problem/22746307>
+
+ Reviewed by Ryosuke Niwa.
+
+ * WebView/WebPreferenceKeysPrivate.h:
+ * WebView/WebPreferences.mm:
+ (+[WebPreferences initialize]):
+ (-[WebPreferences userTimingEnabled]):
+ (-[WebPreferences setUserTimingEnabled:]):
+ * WebView/WebPreferencesPrivate.h:
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChanged:]):
+ Add setting for User Timing runtime enabled feature.
+
</ins><span class="cx"> 2017-01-27 Wenson Hsieh <wenson_hsieh@apple.com>
</span><span class="cx">
</span><span class="cx"> [WK1] Do not prevent the drag client from initializing on Mac
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -222,4 +222,4 @@
</span><span class="cx"> #define WebKitMediaCaptureRequiresSecureConnectionPreferenceKey @"WebKitMediaCaptureRequiresSecureConnection"
</span><span class="cx"> #define WebKitAttachmentElementEnabledPreferenceKey @"WebKitAttachmentElementEnabled"
</span><span class="cx"> #define WebKitIntersectionObserverEnabledPreferenceKey @"WebKitIntersectionObserverEnabled"
</span><del>-
</del><ins>+#define WebKitUserTimingEnabledPreferenceKey @"WebKitUserTimingEnabled"
</ins></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -642,15 +642,16 @@
</span><span class="cx"> #if ENABLE(SUBTLE_CRYPTO)
</span><span class="cx"> [NSNumber numberWithBool:YES], WebKitSubtleCryptoEnabledPreferenceKey,
</span><span class="cx"> #endif
</span><del>-
</del><span class="cx"> #if ENABLE(MEDIA_STREAM)
</span><span class="cx"> [NSNumber numberWithBool:NO], WebKitMediaStreamEnabledPreferenceKey,
</span><span class="cx"> #endif
</span><del>-
</del><span class="cx"> #if ENABLE(WEB_RTC)
</span><span class="cx"> [NSNumber numberWithBool:NO], WebKitPeerConnectionEnabledPreferenceKey,
</span><span class="cx"> #endif
</span><del>-
</del><ins>+#if ENABLE(INTERSECTION_OBSERVER)
+ @NO, WebKitIntersectionObserverEnabledPreferenceKey,
+#endif
+ @NO, WebKitUserTimingEnabledPreferenceKey,
</ins><span class="cx"> nil];
</span><span class="cx">
</span><span class="cx"> #if !PLATFORM(IOS)
</span><span class="lines">@@ -2924,6 +2925,16 @@
</span><span class="cx"> [self _setBoolValue:flag forKey:WebKitIntersectionObserverEnabledPreferenceKey];
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+- (BOOL)userTimingEnabled
+{
+ return [self _boolValueForKey:WebKitUserTimingEnabledPreferenceKey];
+}
+
+- (void)setUserTimingEnabled:(BOOL)flag
+{
+ [self _setBoolValue:flag forKey:WebKitUserTimingEnabledPreferenceKey];
+}
+
</ins><span class="cx"> @end
</span><span class="cx">
</span><span class="cx"> @implementation WebPreferences (WebInternal)
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -528,5 +528,6 @@
</span><span class="cx"> @property (nonatomic) BOOL attachmentElementEnabled;
</span><span class="cx"> @property (nonatomic) BOOL allowsInlineMediaPlaybackAfterFullscreen;
</span><span class="cx"> @property (nonatomic) BOOL intersectionObserverEnabled;
</span><ins>+@property (nonatomic) BOOL userTimingEnabled;
</ins><span class="cx">
</span><span class="cx"> @end
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -2910,6 +2910,8 @@
</span><span class="cx"> RuntimeEnabledFeatures::sharedFeatures().setSubtleCryptoEnabled([preferences subtleCryptoEnabled]);
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ RuntimeEnabledFeatures::sharedFeatures().setUserTimingEnabled(preferences.userTimingEnabled);
+
</ins><span class="cx"> NSTimeInterval timeout = [preferences incrementalRenderingSuppressionTimeoutInSeconds];
</span><span class="cx"> if (timeout > 0)
</span><span class="cx"> settings.setIncrementalRenderingSuppressionTimeoutInSeconds(timeout);
</span></span></pre></div>
<a id="trunkSourceWebKitwinChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/ChangeLog (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/ChangeLog        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/win/ChangeLog        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
+
+ Add User Timing Experimental Feature
+ https://bugs.webkit.org/show_bug.cgi?id=167542
+ <rdar://problem/22746307>
+
+ Reviewed by Ryosuke Niwa.
+
+ * Interfaces/IWebPreferencesPrivate.idl:
+ * WebPreferenceKeysPrivate.h:
+ * WebPreferences.cpp:
+ (WebPreferences::initializeDefaultSettings):
+ (WebPreferences::setUserTimingEnabled):
+ (WebPreferences::userTimingEnabled):
+ * WebPreferences.h:
+ * WebView.cpp:
+ (WebView::notifyPreferencesChanged):
+ Add setting for User Timing runtime enabled feature.
+
</ins><span class="cx"> 2017-01-26 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><span class="cx"> Crash when navigating back to a page in PacheCache when one of its frames has been removed
</span></span></pre></div>
<a id="trunkSourceWebKitwinInterfacesIWebPreferencesPrivateidl"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -194,4 +194,6 @@
</span><span class="cx"> HRESULT setApplicationId([in] BSTR applicationId);
</span><span class="cx"> HRESULT webAnimationsEnabled([out, retval] BOOL*);
</span><span class="cx"> HRESULT setWebAnimationsEnabled([in] BOOL enabled);
</span><ins>+ HRESULT userTimingEnabled([out, retval] BOOL*);
+ HRESULT setUserTimingEnabled([in] BOOL enabled);
</ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -178,3 +178,5 @@
</span><span class="cx"> #define WebKitModernMediaControlsEnabledPreferenceKey "WebKitModernMediaControlsEnabled"
</span><span class="cx">
</span><span class="cx"> #define WebKitWebAnimationsEnabledPreferenceKey "WebKitWebAnimationsEnabled"
</span><ins>+
+#define WebKitUserTimingEnabledPreferenceKey "WebKitUserTimingEnabled"
</ins></span></pre></div>
<a id="trunkSourceWebKitwinWebPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebPreferences.cpp (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebPreferences.cpp        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/win/WebPreferences.cpp        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -307,6 +307,8 @@
</span><span class="cx">
</span><span class="cx"> CFDictionaryAddValue(defaults, CFSTR(WebKitWebAnimationsEnabledPreferenceKey), kCFBooleanFalse);
</span><span class="cx">
</span><ins>+ CFDictionaryAddValue(defaults, CFSTR(WebKitUserTimingEnabledPreferenceKey), kCFBooleanFalse);
+
</ins><span class="cx"> defaultSettings = defaults;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -2025,3 +2027,17 @@
</span><span class="cx"> *enabled = boolValueForKey(WebKitWebAnimationsEnabledPreferenceKey);
</span><span class="cx"> return S_OK;
</span><span class="cx"> }
</span><ins>+
+HRESULT WebPreferences::setUserTimingEnabled(BOOL enabled)
+{
+ setBoolValue(WebKitUserTimingEnabledPreferenceKey, enabled);
+ return S_OK;
+}
+
+HRESULT WebPreferences::userTimingEnabled(_Out_ BOOL* enabled)
+{
+ if (!enabled)
+ return E_POINTER;
+ *enabled = boolValueForKey(WebKitUserTimingEnabledPreferenceKey);
+ return S_OK;
+}
</ins></span></pre></div>
<a id="trunkSourceWebKitwinWebPreferencesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebPreferences.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebPreferences.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/win/WebPreferences.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -247,6 +247,8 @@
</span><span class="cx"> virtual HRESULT STDMETHODCALLTYPE setApplicationId(BSTR);
</span><span class="cx"> virtual HRESULT STDMETHODCALLTYPE webAnimationsEnabled(_Out_ BOOL*);
</span><span class="cx"> virtual HRESULT STDMETHODCALLTYPE setWebAnimationsEnabled(BOOL);
</span><ins>+ virtual HRESULT STDMETHODCALLTYPE userTimingEnabled(_Out_ BOOL*);
+ virtual HRESULT STDMETHODCALLTYPE setUserTimingEnabled(BOOL);
</ins><span class="cx">
</span><span class="cx"> // WebPreferences
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebKitwinWebViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/win/WebView.cpp (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/win/WebView.cpp        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit/win/WebView.cpp        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -5262,6 +5262,11 @@
</span><span class="cx"> RuntimeEnabledFeatures::sharedFeatures().setWebAnimationsEnabled(!!enabled);
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ hr = prefsPrivate->userTimingEnabled(&enabled);
+ if (FAILED(hr))
+ return hr;
+ RuntimeEnabledFeatures::sharedFeatures().setUserTimingEnabled(!!enabled);
+
</ins><span class="cx"> hr = preferences->privateBrowsingEnabled(&enabled);
</span><span class="cx"> if (FAILED(hr))
</span><span class="cx"> return hr;
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit2/ChangeLog        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
+
+ Add User Timing Experimental Feature
+ https://bugs.webkit.org/show_bug.cgi?id=167542
+ <rdar://problem/22746307>
+
+ Reviewed by Ryosuke Niwa.
+
+ * Shared/WebPreferencesDefinitions.h:
+ * UIProcess/API/C/WKPreferences.cpp:
+ (WKPreferencesSetUserTimingEnabled):
+ (WKPreferencesGetUserTimingEnabled):
+ * UIProcess/API/C/WKPreferencesRefPrivate.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::updatePreferences):
+ Experimental feature. Off for now while we update ResourceTiming
+ and NavigationTiming to be compatible with Performance Timing 2.
+
</ins><span class="cx"> 2017-01-28 Dan Bernstein <mitz@apple.com>
</span><span class="cx">
</span><span class="cx"> <rdar://problem/30247736> WebKit2-7604.1.5 has failed to build: error: only virtual member functions can be marked 'override'
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebPreferencesDefinitionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -318,6 +318,7 @@
</span><span class="cx"> macro(ModernMediaControlsEnabled, modernMediaControlsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Modern Media Controls", "Use modern media controls look") \
</span><span class="cx"> macro(InputEventsEnabled, inputEventsEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Input Events", "Enable InputEvents support") \
</span><span class="cx"> macro(SubtleCryptoEnabled, subtleCryptoEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "SubtleCrypto", "Enable SubtleCrypto support") \
</span><ins>+ macro(UserTimingEnabled, userTimingEnabled, Bool, bool, false, "User Timing", "Enable UserTiming API") \
</ins><span class="cx"> macro(WebAnimationsEnabled, webAnimationsEnabled, Bool, bool, false, "Web Animations", "Web Animations prototype") \
</span><span class="cx"> macro(WebGL2Enabled, webGL2Enabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "WebGL 2.0", "WebGL 2 prototype") \
</span><span class="cx"> \
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPreferencescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1581,6 +1581,16 @@
</span><span class="cx"> return toImpl(preferencesRef)->intersectionObserverEnabled();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void WKPreferencesSetUserTimingEnabled(WKPreferencesRef preferencesRef, bool flag)
+{
+ toImpl(preferencesRef)->setUserTimingEnabled(flag);
+}
+
+bool WKPreferencesGetUserTimingEnabled(WKPreferencesRef preferencesRef)
+{
+ return toImpl(preferencesRef)->userTimingEnabled();
+}
+
</ins><span class="cx"> void WKPreferencesSetSelectionPaintingWithoutSelectionGapsEnabled(WKPreferencesRef preferencesRef, bool flag)
</span><span class="cx"> {
</span><span class="cx"> toImpl(preferencesRef)->setSelectionPaintingWithoutSelectionGapsEnabled(flag);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICWKPreferencesRefPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesRefPrivate.h        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -449,6 +449,10 @@
</span><span class="cx"> WK_EXPORT void WKPreferencesSetIntersectionObserverEnabled(WKPreferencesRef, bool flag);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetIntersectionObserverEnabled(WKPreferencesRef);
</span><span class="cx">
</span><ins>+// Defaults to false
+WK_EXPORT void WKPreferencesSetUserTimingEnabled(WKPreferencesRef, bool flag);
+WK_EXPORT bool WKPreferencesGetUserTimingEnabled(WKPreferencesRef);
+
</ins><span class="cx"> // Defaults to true
</span><span class="cx"> WK_EXPORT void WKPreferencesSetSubtleCryptoEnabled(WKPreferencesRef, bool flag);
</span><span class="cx"> WK_EXPORT bool WKPreferencesGetSubtleCryptoEnabled(WKPreferencesRef);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageWebPagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -3267,6 +3267,8 @@
</span><span class="cx"> RuntimeEnabledFeatures::sharedFeatures().setIntersectionObserverEnabled(store.getBoolValueForKey(WebPreferencesKey::intersectionObserverEnabledKey()));
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+ RuntimeEnabledFeatures::sharedFeatures().setUserTimingEnabled(store.getBoolValueForKey(WebPreferencesKey::userTimingEnabledKey()));
+
</ins><span class="cx"> bool processSuppressionEnabled = store.getBoolValueForKey(WebPreferencesKey::pageVisibilityBasedProcessSuppressionEnabledKey());
</span><span class="cx"> if (m_processSuppressionEnabled != processSuppressionEnabled) {
</span><span class="cx"> m_processSuppressionEnabled = processSuppressionEnabled;
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Tools/ChangeLog        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1,5 +1,19 @@
</span><span class="cx"> 2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
</span><span class="cx">
</span><ins>+ Add User Timing Experimental Feature
+ https://bugs.webkit.org/show_bug.cgi?id=167542
+ <rdar://problem/22746307>
+
+ Reviewed by Ryosuke Niwa.
+
+ * DumpRenderTree/mac/DumpRenderTree.mm:
+ (enableExperimentalFeatures):
+ (resetWebPreferencesToConsistentValues):
+ * DumpRenderTree/win/DumpRenderTree.cpp:
+ (enableExperimentalFeatures):
+
+2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
+
</ins><span class="cx"> Patch Review: EWS Bubbles wrap to multiple lines but can fit on one line
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=167519
</span><span class="cx">
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreemacDumpRenderTreemm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -903,6 +903,8 @@
</span><span class="cx"> [preferences setModernMediaControlsEnabled:YES];
</span><span class="cx"> // FIXME: InputEvents
</span><span class="cx"> [preferences setSubtleCryptoEnabled:YES];
</span><ins>+ [preferences setUserTimingEnabled:YES];
+ [preferences setWebAnimationsEnabled:YES];
</ins><span class="cx"> [preferences setWebGL2Enabled:YES];
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1009,7 +1011,6 @@
</span><span class="cx">
</span><span class="cx"> [preferences setMediaStreamEnabled:YES];
</span><span class="cx"> [preferences setPeerConnectionEnabled:YES];
</span><del>- [preferences setWebAnimationsEnabled:YES];
</del><span class="cx">
</span><span class="cx"> [WebPreferences _clearNetworkLoaderSession];
</span><span class="cx"> [WebPreferences _setCurrentNetworkLoaderSessionCookieAcceptPolicy:NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain];
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreewinDumpRenderTreecpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -777,6 +777,7 @@
</span><span class="cx"> // FIXME: ModernMediaControls
</span><span class="cx"> // FIXME: InputEvents
</span><span class="cx"> // FIXME: SubtleCrypto
</span><ins>+ prefsPrivate4->setUserTimingEnabled(TRUE);
</ins><span class="cx"> prefsPrivate4->setWebAnimationsEnabled(TRUE);
</span><span class="cx"> // FIXME: WebGL2
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkWebsiteswebkitorgChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Websites/webkit.org/ChangeLog (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/webkit.org/ChangeLog        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Websites/webkit.org/ChangeLog        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2017-01-28 Joseph Pecoraro <pecoraro@apple.com>
+
+ Add User Timing Experimental Feature
+ https://bugs.webkit.org/show_bug.cgi?id=167542
+ <rdar://problem/22746307>
+
+ Reviewed by Ryosuke Niwa.
+
+ * experimental-features.html:
+
</ins><span class="cx"> 2017-01-27 Dean Jackson <dino@apple.com>
</span><span class="cx">
</span><span class="cx"> Add a simple demo for Touch stylus events
</span></span></pre></div>
<a id="trunkWebsiteswebkitorgexperimentalfeatureshtml"></a>
<div class="modfile"><h4>Modified: trunk/Websites/webkit.org/experimental-features.html (211331 => 211332)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Websites/webkit.org/experimental-features.html        2017-01-28 09:25:59 UTC (rev 211331)
+++ trunk/Websites/webkit.org/experimental-features.html        2017-01-28 09:26:14 UTC (rev 211332)
</span><span class="lines">@@ -106,6 +106,10 @@
</span><span class="cx"> return window.crypto.subtle;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+function testUserTiming() {
+ return window.performance.mark;
+}
+
</ins><span class="cx"> function testWebAnimations() {
</span><span class="cx"> return !!window.Animation;
</span><span class="cx"> }
</span><span class="lines">@@ -138,6 +142,7 @@
</span><span class="cx"> <div class="test" id="InputEvents"><p>HTML Input Events</p></div>
</span><span class="cx"> <div class="test" id="SubtleCrypto"><p>SubtleCrypto</p></div>
</span><span class="cx"> <div class="test" id="VariationFonts"><p>Variation Fonts</p></div>
</span><ins>+ <div class="test" id="UserTiming"><p>User Timing</p></div>
</ins><span class="cx"> <div class="test" id="WebAnimations"><p>Web Animations</p></div>
</span><span class="cx"> <div class="test" id="WebGL2"><p>WebGL 2.0</p></div>
</span><span class="cx"> </div>
</span></span></pre>
</div>
</div>
</body>
</html>