<!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>[212134] 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/212134">212134</a></dd>
<dt>Author</dt> <dd>beidson@apple.com</dd>
<dt>Date</dt> <dd>2017-02-10 12:38:35 -0800 (Fri, 10 Feb 2017)</dd>
</dl>

<h3>Log Message</h3>
<pre>Replace all WebKit Library Version checks in WK2 with SDK version checks.
https://bugs.webkit.org/show_bug.cgi?id=168124

Reviewed by Geoffrey Garen.

Source/WebKit2:

This change gets rid of WebKit Library Version checks and replaces them with SDK version checks.

To allow our tools to still be able to test new behaviors even when built against older SDKs,
it also opts them into an SPI default to have &quot;linkedOnOrAfter()&quot; always return true.

* Shared/Cocoa/CompletionHandlerCallChecker.mm:
(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):

* UIProcess/Cocoa/VersionChecks.h:
(WebKit::linkedOnOrAfter): Deleted.
* UIProcess/Cocoa/VersionChecks.mm:
(WebKit::linkedOnOrAfter):

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::isNetworkCacheEnabled):

Tools:

For each of our tools that use WebKit2, opt them in to the new linkedOnOrAfter(Everything) setting.

* MiniBrowser/mac/main.m:
(main):
* MobileMiniBrowser/MobileMiniBrowser/main.m:
(main):
* TestWebKitAPI/ios/mainIOS.mm:
(main):
* TestWebKitAPI/mac/mainMac.mm:
(main):
* WebKitTestRunner/ios/mainIOS.mm:
(main):
* WebKitTestRunner/mac/main.mm:
(setDefaultsToConsistentValuesForTesting):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedCocoaCompletionHandlerCallCheckermm">trunk/Source/WebKit2/Shared/Cocoa/CompletionHandlerCallChecker.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewConfigurationmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaVersionChecksh">trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.h</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaVersionChecksmm">trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessCocoaWebProcessPoolCocoamm">trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsMiniBrowsermacmainm">trunk/Tools/MiniBrowser/mac/main.m</a></li>
<li><a href="#trunkToolsMobileMiniBrowserMobileMiniBrowsermainm">trunk/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m</a></li>
<li><a href="#trunkToolsTestWebKitAPIiosmainIOSmm">trunk/Tools/TestWebKitAPI/ios/mainIOS.mm</a></li>
<li><a href="#trunkToolsTestWebKitAPImacmainMacmm">trunk/Tools/TestWebKitAPI/mac/mainMac.mm</a></li>
<li><a href="#trunkToolsWebKitTestRunneriosmainIOSmm">trunk/Tools/WebKitTestRunner/ios/mainIOS.mm</a></li>
<li><a href="#trunkToolsWebKitTestRunnermacmainmm">trunk/Tools/WebKitTestRunner/mac/main.mm</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Source/WebKit2/ChangeLog        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -1,3 +1,29 @@
</span><ins>+2017-02-10  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Replace all WebKit Library Version checks in WK2 with SDK version checks.
+        https://bugs.webkit.org/show_bug.cgi?id=168124
+
+        Reviewed by Geoffrey Garen.
+
+        This change gets rid of WebKit Library Version checks and replaces them with SDK version checks.
+        
+        To allow our tools to still be able to test new behaviors even when built against older SDKs,
+        it also opts them into an SPI default to have &quot;linkedOnOrAfter()&quot; always return true.
+        
+        * Shared/Cocoa/CompletionHandlerCallChecker.mm:
+        (WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):
+        
+        * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+        (-[WKWebViewConfiguration init]):
+        
+        * UIProcess/Cocoa/VersionChecks.h:
+        (WebKit::linkedOnOrAfter): Deleted.
+        * UIProcess/Cocoa/VersionChecks.mm:
+        (WebKit::linkedOnOrAfter):
+        
+        * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
+        (WebKit::WebProcessPool::isNetworkCacheEnabled):
+
</ins><span class="cx"> 2017-02-10  Brian Burg  &lt;bburg@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [Cocoa] Web Inspector: generate an NS_ENUM containing platforms supported by the protocol code generator
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedCocoaCompletionHandlerCallCheckermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/Cocoa/CompletionHandlerCallChecker.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/Cocoa/CompletionHandlerCallChecker.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Source/WebKit2/Shared/Cocoa/CompletionHandlerCallChecker.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">     static bool shouldThrowException;
</span><span class="cx">     static std::once_flag once;
</span><span class="cx">     std::call_once(once, [] {
</span><del>-        shouldThrowException = linkedOnOrAfter&lt;FirstWebKitWithExceptionsForDuplicateCompletionHandlerCalls&gt;();
</del><ins>+        shouldThrowException = linkedOnOrAfter(SDKVersion::FirstWithExceptionsForDuplicateCompletionHandlerCalls);
</ins><span class="cx">     });
</span><span class="cx">     return shouldThrowException;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewConfigurationmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx">     _inlineMediaPlaybackRequiresPlaysInlineAttribute = !_allowsInlineMediaPlayback;
</span><span class="cx">     _allowsInlineMediaPlaybackAfterFullscreen = !_allowsInlineMediaPlayback;
</span><span class="cx">     _mediaDataLoadsAutomatically = NO;
</span><del>-    if (WebKit::linkedOnOrAfter&lt;WebKit::FirstWebKitWithMediaTypesRequiringUserActionForPlayback&gt;())
</del><ins>+    if (WebKit::linkedOnOrAfter(WebKit::SDKVersion::FirstWithMediaTypesRequiringUserActionForPlayback))
</ins><span class="cx">         _mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeAudio;
</span><span class="cx">     else
</span><span class="cx">         _mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeAll;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaVersionChecksh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.h (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.h        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.h        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -29,47 +29,17 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-/*
-    Version numbers are based on the 'current library version' specified in the WebKit build rules.
-    All of these methods return or take version numbers with each part shifted to the left 2 bytes.
-    For example the version 1.2.3 is returned as 0x00010203 and version 200.3.5 is returned as 0x00C80305
-    A version of -1 is returned if the main executable did not link against WebKit.
-
-    Use the current WebKit version number, available in WebKit2/Configurations/Version.xcconfig,
-    when adding a new version constant.
-*/
-
-struct FirstWebKitWithNetworkCache {
-    static const int LibraryVersion { 0x02590116 }; // 601.1.22
</del><ins>+enum class SDKVersion : uint32_t {
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>-    static const uint32_t SDKVersion { DYLD_IOS_VERSION_9_0 };
</del><ins>+    FirstWithNetworkCache = DYLD_IOS_VERSION_9_0,
+    FirstWithMediaTypesRequiringUserActionForPlayback = DYLD_IOS_VERSION_10_0,
+    FirstWithExceptionsForDuplicateCompletionHandlerCalls = DYLD_IOS_VERSION_10_3,
</ins><span class="cx"> #elif PLATFORM(MAC)
</span><del>-    static const uint32_t SDKVersion { DYLD_MACOSX_VERSION_10_11 };
</del><ins>+    FirstWithNetworkCache = DYLD_MACOSX_VERSION_10_11,
+    FirstWithExceptionsForDuplicateCompletionHandlerCalls = DYLD_MACOSX_VERSION_10_12_4,
</ins><span class="cx"> #endif
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-struct FirstWebKitWithMediaTypesRequiringUserActionForPlayback {
-    static const int LibraryVersion { 0x025A0121 }; // 602.1.33
-#if PLATFORM(IOS)
-    static const uint32_t SDKVersion { DYLD_IOS_VERSION_10_0 };
-#elif PLATFORM(MAC)
-    static const uint32_t SDKVersion { DYLD_MACOSX_VERSION_10_12 };
-#endif
-};
</del><ins>+bool linkedOnOrAfter(SDKVersion);
</ins><span class="cx"> 
</span><del>-struct FirstWebKitWithExceptionsForDuplicateCompletionHandlerCalls {
-    static const int LibraryVersion { 0x025B0111 }; // 603.1.17
-#if PLATFORM(IOS)
-    static const uint32_t SDKVersion { DYLD_IOS_VERSION_10_3 };
-#elif PLATFORM(MAC)
-    static const uint32_t SDKVersion { DYLD_MACOSX_VERSION_10_12_4 };
-#endif
-};
-
-bool linkedOnOrAfter(int libraryVersion, uint32_t sdkVersion);
-template &lt;typename VersionInfo&gt; bool linkedOnOrAfter()
-{
-    return linkedOnOrAfter(VersionInfo::LibraryVersion, VersionInfo::SDKVersion);
</del><span class="cx"> }
</span><del>-
-}
</del></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaVersionChecksmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/VersionChecks.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -26,31 +26,33 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;VersionChecks.h&quot;
</span><span class="cx"> 
</span><ins>+#import &lt;WebCore/RuntimeApplicationChecks.h&gt;
</ins><span class="cx"> #import &lt;mach-o/dyld.h&gt;
</span><ins>+#import &lt;mutex&gt;
</ins><span class="cx"> 
</span><del>-#if PLATFORM(IOS)
-#import &lt;WebCore/RuntimeApplicationChecks.h&gt;
-#endif
-
</del><span class="cx"> namespace WebKit {
</span><span class="cx"> 
</span><del>-bool linkedOnOrAfter(int libraryVersion, uint32_t sdkVersion)
</del><ins>+static NSString * const WebKitLinkedOnOrAfterEverythingKey = @&quot;WebKitLinkedOnOrAfterEverything&quot;;
+
+bool linkedOnOrAfter(SDKVersion sdkVersion)
</ins><span class="cx"> {
</span><ins>+     static bool linkedOnOrAfterEverything;
+     static std::once_flag once;
+     std::call_once(once, [] {
+        bool isSafari = false;
</ins><span class="cx"> #if PLATFORM(IOS)
</span><del>-    // Always make new features available for Safari.
-    if (WebCore::IOSApplication::isMobileSafari())
-        return true;
</del><ins>+        if (WebCore::IOSApplication::isMobileSafari())
+            isSafari = true;
+#elif PLATFORM(MAC)
+        if (WebCore::MacApplication::isSafari())
+            isSafari = true;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    // If the app was build against a new enough SDK, it definitely passes the linked-on-or-after check.
-    if (dyld_get_program_sdk_version() &gt;= sdkVersion)
-        return true;
</del><ins>+        if (isSafari || [[NSUserDefaults standardUserDefaults] boolForKey:WebKitLinkedOnOrAfterEverythingKey])
+            linkedOnOrAfterEverything = true;
+    });
</ins><span class="cx"> 
</span><del>-    // If the app was built against an older SDK, we might still consider it linked-on-or-after
-    // by checking the linked WebKit library version number, if one exists.
-
-    int linkedVersion = NSVersionOfLinkTimeLibrary(&quot;WebKit&quot;);
-    return linkedVersion == -1 ? false : linkedVersion &gt;= libraryVersion;
</del><ins>+    return linkedOnOrAfterEverything ? true : dyld_get_program_sdk_version() &gt;= static_cast&lt;uint32_t&gt;(sdkVersion);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessCocoaWebProcessPoolCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/WebProcessPoolCocoa.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -462,7 +462,7 @@
</span><span class="cx"> 
</span><span class="cx">     bool networkCacheEnabledByDefaults = [defaults boolForKey:WebKitNetworkCacheEnabledDefaultsKey];
</span><span class="cx"> 
</span><del>-    return networkCacheEnabledByDefaults &amp;&amp; linkedOnOrAfter&lt;FirstWebKitWithNetworkCache&gt;();
</del><ins>+    return networkCacheEnabledByDefaults &amp;&amp; linkedOnOrAfter(SDKVersion::FirstWithNetworkCache);
</ins><span class="cx"> #else
</span><span class="cx">     return false;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Tools/ChangeLog        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -1,3 +1,25 @@
</span><ins>+2017-02-10  Brady Eidson  &lt;beidson@apple.com&gt;
+
+        Replace all WebKit Library Version checks in WK2 with SDK version checks.
+        https://bugs.webkit.org/show_bug.cgi?id=168124
+
+        Reviewed by Geoffrey Garen.
+
+        For each of our tools that use WebKit2, opt them in to the new linkedOnOrAfter(Everything) setting.
+        
+        * MiniBrowser/mac/main.m:
+        (main):
+        * MobileMiniBrowser/MobileMiniBrowser/main.m:
+        (main):
+        * TestWebKitAPI/ios/mainIOS.mm:
+        (main):
+        * TestWebKitAPI/mac/mainMac.mm:
+        (main):
+        * WebKitTestRunner/ios/mainIOS.mm:
+        (main):
+        * WebKitTestRunner/mac/main.mm:
+        (setDefaultsToConsistentValuesForTesting):
+
</ins><span class="cx"> 2017-02-10  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix El Capitan build.
</span></span></pre></div>
<a id="trunkToolsMiniBrowsermacmainm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/MiniBrowser/mac/main.m (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/MiniBrowser/mac/main.m        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Tools/MiniBrowser/mac/main.m        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -27,5 +27,7 @@
</span><span class="cx"> 
</span><span class="cx"> int main(int argc, char *argv[])
</span><span class="cx"> {
</span><ins>+    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@&quot;WebKitLinkedOnOrAfterEverything&quot;];
+
</ins><span class="cx">     return NSApplicationMain(argc,  (const char **) argv);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkToolsMobileMiniBrowserMobileMiniBrowsermainm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Tools/MobileMiniBrowser/MobileMiniBrowser/main.m        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -27,6 +27,8 @@
</span><span class="cx"> 
</span><span class="cx"> int main(int argc, char * argv[])
</span><span class="cx"> {
</span><ins>+    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@&quot;WebKitLinkedOnOrAfterEverything&quot;];
+
</ins><span class="cx">     @autoreleasepool {
</span><span class="cx">         return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
</span><span class="cx">     }
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPIiosmainIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/ios/mainIOS.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/ios/mainIOS.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Tools/TestWebKitAPI/ios/mainIOS.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -31,6 +31,19 @@
</span><span class="cx">     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
</span><span class="cx"> 
</span><span class="cx">     [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:@&quot;TestWebKitAPI&quot;];
</span><ins>+
+    // Set up user defaults.
+    NSMutableDictionary *argumentDomain = [[[NSUserDefaults standardUserDefaults] volatileDomainForName:NSArgumentDomain] mutableCopy];
+    if (!argumentDomain)
+        argumentDomain = [[NSMutableDictionary alloc] init];
+    
+    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
+                          [NSNumber numberWithBool:YES],    @&quot;WebKitLinkedOnOrAfterEverything&quot;,
+                          nil];
+
+    [argumentDomain addEntriesFromDictionary:dict];
+    [[NSUserDefaults standardUserDefaults] setVolatileDomain:argumentDomain forName:NSArgumentDomain];
+
</ins><span class="cx">     bool passed = TestWebKitAPI::TestsController::singleton().run(argc, argv);
</span><span class="cx"> 
</span><span class="cx">     [pool drain];
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPImacmainMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/mac/mainMac.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/mac/mainMac.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Tools/TestWebKitAPI/mac/mainMac.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -34,6 +34,18 @@
</span><span class="cx"> 
</span><span class="cx">     [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:@&quot;TestWebKitAPI&quot;];
</span><span class="cx"> 
</span><ins>+    // Set a user default for TestWebKitAPI to bypass all linked-on-or-after checks in WebKit
+    NSMutableDictionary *argumentDomain = [[[NSUserDefaults standardUserDefaults] volatileDomainForName:NSArgumentDomain] mutableCopy];
+    if (!argumentDomain)
+        argumentDomain = [[NSMutableDictionary alloc] init];
+    
+    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
+                          [NSNumber numberWithBool:YES],    @&quot;WebKitLinkedOnOrAfterEverything&quot;,
+                          nil];
+
+    [argumentDomain addEntriesFromDictionary:dict];
+    [[NSUserDefaults standardUserDefaults] setVolatileDomain:argumentDomain forName:NSArgumentDomain];
+
</ins><span class="cx">     [NSApplication sharedApplication];
</span><span class="cx">     _BeginEventReceiptOnThread(); // Makes window visibility notifications work (and possibly more).
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunneriosmainIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/ios/mainIOS.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/ios/mainIOS.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Tools/WebKitTestRunner/ios/mainIOS.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -67,6 +67,8 @@
</span><span class="cx">     _argc = argc;
</span><span class="cx">     _argv = argv;
</span><span class="cx"> 
</span><ins>+    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@&quot;WebKitLinkedOnOrAfterEverything&quot;];
+
</ins><span class="cx">     UIApplicationMain(argc, (char**)argv, @&quot;WebKitTestRunnerApp&quot;, @&quot;WebKitTestRunnerApp&quot;);
</span><span class="cx">     return 0;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkToolsWebKitTestRunnermacmainmm"></a>
<div class="modfile"><h4>Modified: trunk/Tools/WebKitTestRunner/mac/main.mm (212133 => 212134)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/WebKitTestRunner/mac/main.mm        2017-02-10 20:35:59 UTC (rev 212133)
+++ trunk/Tools/WebKitTestRunner/mac/main.mm        2017-02-10 20:38:35 UTC (rev 212134)
</span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx">         @&quot;AppleEnableSwipeNavigateWithScrolls&quot;: @YES,
</span><span class="cx">         @&quot;com.apple.swipescrolldirection&quot;: @1,
</span><span class="cx">         @&quot;com.apple.trackpad.forceClick&quot;: @1,
</span><ins>+        @&quot;WebKitLinkedOnOrAfterEverything&quot;: @YES,
</ins><span class="cx">     };
</span><span class="cx"> 
</span><span class="cx">     [[NSUserDefaults standardUserDefaults] setValuesForKeysWithDictionary:dict];
</span></span></pre>
</div>
</div>

</body>
</html>