<!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>[191902] trunk/Source</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/191902">191902</a></dd>
<dt>Author</dt> <dd>aestes@apple.com</dd>
<dt>Date</dt> <dd>2015-11-02 11:09:09 -0800 (Mon, 02 Nov 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>Replace iOS-only WebKitSystemInterface calls with SPI
https://bugs.webkit.org/show_bug.cgi?id=150763
Reviewed by Darin Adler.
Source/WebCore:
* WebCore.xcodeproj/project.pbxproj:
* config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
* css/MediaQueryEvaluator.cpp:
(WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
* html/HTMLObjectElement.cpp:
(WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
* page/NavigatorBase.cpp:
* page/Settings.h:
* page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
* page/ios/UserAgentIOS.mm:
(WebCore::isClassic): Added to return -[UIApplication _isClassic].
(WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
(WebCore::deviceName): Ditto for wkGetDeviceName().
(WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
* page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
(WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
* platform/PlatformScreen.h:
* platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
(WebCore::deviceClass):
(WebCore::deviceName):
(WebCore::deviceHasIPadCapability):
* platform/ios/Device.h:
* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
(WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
(WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
(WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
(WebCore::mobileGestaltFloatValue): Deleted.
* platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
(iosExecutableWasLinkedOnOrAfterVersion): Deleted.
(iosDeviceClass): Deleted.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
(WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
* platform/ios/wak/WAKWindow.mm:
(-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
(-[WAKWindow initWithFrame:]): Ditto.
* platform/ios/wak/WKGraphics.mm:
(WKGraphicsCreateImageFromBundleWithName): Ditto.
(WKDrawPatternBitmap): Ditto.
* platform/mac/WebCoreSystemInterface.h:
* platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
* platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
* platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
* rendering/RenderThemeIOS.mm:
Source/WebKit/ios:
* Misc/WebUIKitSupport.mm:
(linkedOnOrAfterIOS5): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
(WebKitGetMinimumZoomFontSize): Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize().
* WebCoreSupport/WebChromeClientIOS.mm:
(WebChromeClientIOS::screenSize): Used screenSize() instead of WKGetScreenSize().
Source/WebKit/mac:
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Used deviceClass() and Settings::defaultMinimumZoomFontSize() instead of WKGetDeviceClass() and WKGetMinimumZoomFontSize().
* WebView/WebView.mm:
(shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
(-[WebView _updateScreenScaleFromWindow]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
Source/WebKit2:
* Platform/ios/AccessibilityIOS.h: Added.
* Platform/ios/AccessibilityIOS.mm: Added.
(WebKit::newAccessibilityRemoteToken): Upstreamed the implementation of WKAXRemoteToken() from WebKitSystemInterface.
* Shared/WebPreferencesDefinitions.h: Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize().
* Shared/WebPreferencesStore.cpp:
* UIProcess/API/Cocoa/WKWebView.mm:
(shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
(-[WKWebView _takeViewSnapshot]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]): Used deviceClass() instead of WKGetDeviceClass().
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]): Used screenScaleFactor() instead of WKGetScaleFactorForScreen().
(-[WKContentView _updateForScreen:]): Ditto.
(storeAccessibilityRemoteConnectionInformation): Upstreamed the implementation of WKAXStoreRemoteConnectionInformation() from WebKitSystemInterface.
(-[WKContentView _accessibilityRegisterUIProcessTokens]): Used newAccessibilityRemoteToken() and storeAccessibilityRemoteConnectionInformation() instead of WKAXRemoteToken() and WKAXStoreRemoteConnectionInformation().
* UIProcess/ios/WKContentViewInteraction.mm:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::screenSize): Used screenSize() instead of WKGetScreenSize().
(WebKit::WebPageProxy::availableScreenSize): Used availableScreenSize() instead of WKGetAvailableScreenSize().
(WebKit::WebPageProxy::textAutosizingWidth): Used screenSize() instead of WKGetScreenSize().
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformInitializeAccessibility): Used newAccessibilityRemoteToken() instead of WKAXRemoteToken().</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCoreconfigh">trunk/Source/WebCore/config.h</a></li>
<li><a href="#trunkSourceWebCorecssMediaQueryEvaluatorcpp">trunk/Source/WebCore/css/MediaQueryEvaluator.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLMediaElementcpp">trunk/Source/WebCore/html/HTMLMediaElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLObjectElementcpp">trunk/Source/WebCore/html/HTMLObjectElement.cpp</a></li>
<li><a href="#trunkSourceWebCorehtmlHTMLVideoElementcpp">trunk/Source/WebCore/html/HTMLVideoElement.cpp</a></li>
<li><a href="#trunkSourceWebCorepageNavigatorBasecpp">trunk/Source/WebCore/page/NavigatorBase.cpp</a></li>
<li><a href="#trunkSourceWebCorepageSettingsh">trunk/Source/WebCore/page/Settings.h</a></li>
<li><a href="#trunkSourceWebCorepageViewportConfigurationcpp">trunk/Source/WebCore/page/ViewportConfiguration.cpp</a></li>
<li><a href="#trunkSourceWebCorepageiosUserAgentIOSmm">trunk/Source/WebCore/page/ios/UserAgentIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformPlatformScreenh">trunk/Source/WebCore/platform/PlatformScreen.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosPlatformScreenIOSmm">trunk/Source/WebCore/platform/ios/PlatformScreenIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSmm">trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKith">trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm">trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformioswakWAKWindowmm">trunk/Source/WebCore/platform/ios/wak/WAKWindow.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformioswakWKGraphicsmm">trunk/Source/WebCore/platform/ios/wak/WKGraphics.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacWebCoreSystemInterfaceh">trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h</a></li>
<li><a href="#trunkSourceWebCoreplatformspicocoaDynamicLinkerSPIh">trunk/Source/WebCore/platform/spi/cocoa/DynamicLinkerSPI.h</a></li>
<li><a href="#trunkSourceWebCoreplatformspiiosMobileGestaltSPIh">trunk/Source/WebCore/platform/spi/ios/MobileGestaltSPI.h</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderThemeIOSmm">trunk/Source/WebCore/rendering/RenderThemeIOS.mm</a></li>
<li><a href="#trunkSourceWebKitiosChangeLog">trunk/Source/WebKit/ios/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitiosMiscWebUIKitSupportmm">trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm</a></li>
<li><a href="#trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSmm">trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebSystemInterfacemm">trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebPreferencesmm">trunk/Source/WebKit/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebViewmm">trunk/Source/WebKit/mac/WebView/WebView.mm</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="#trunkSourceWebKit2SharedWebPreferencesStorecpp">trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessAPICocoaWKWebViewConfigurationmm">trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewmm">trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWKContentViewInteractionmm">trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessiosWebPageProxyIOSmm">trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj">trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebCoreSupportmacWebSystemInterfacemm">trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm">trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorepagecocoaSettingsCocoamm">trunk/Source/WebCore/page/cocoa/SettingsCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosDevicecpp">trunk/Source/WebCore/platform/ios/Device.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformiosDeviceh">trunk/Source/WebCore/platform/ios/Device.h</a></li>
<li><a href="#trunkSourceWebCoreplatformspiiosUIKitSPIh">trunk/Source/WebCore/platform/spi/ios/UIKitSPI.h</a></li>
<li>trunk/Source/WebKit2/Platform/ios/</li>
<li><a href="#trunkSourceWebKit2PlatformiosAccessibilityIOSh">trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.h</a></li>
<li><a href="#trunkSourceWebKit2PlatformiosAccessibilityIOSmm">trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.mm</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCorepagemacSettingsMacmm">trunk/Source/WebCore/page/mac/SettingsMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSh">trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h</a></li>
<li><a href="#trunkSourceWebCoreplatformspiiosUIColorSPIh">trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/ChangeLog        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1,3 +1,63 @@
</span><ins>+2015-10-31 Andy Estes <aestes@apple.com>
+
+ Replace iOS-only WebKitSystemInterface calls with SPI
+ https://bugs.webkit.org/show_bug.cgi?id=150763
+
+ Reviewed by Darin Adler.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ * config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
+ * css/MediaQueryEvaluator.cpp:
+ (WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
+ * html/HTMLObjectElement.cpp:
+ (WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
+ * html/HTMLVideoElement.cpp:
+ (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
+ * page/NavigatorBase.cpp:
+ * page/Settings.h:
+ * page/ViewportConfiguration.cpp:
+ (WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
+ * page/ios/UserAgentIOS.mm:
+ (WebCore::isClassic): Added to return -[UIApplication _isClassic].
+ (WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
+ (WebCore::deviceName): Ditto for wkGetDeviceName().
+ (WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
+ * page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
+ (WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
+ * platform/PlatformScreen.h:
+ * platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
+ (WebCore::deviceClass):
+ (WebCore::deviceName):
+ (WebCore::deviceHasIPadCapability):
+ * platform/ios/Device.h:
+ * platform/ios/PlatformScreenIOS.mm:
+ (WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
+ (WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
+ (WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
+ (WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
+ (WebCore::mobileGestaltFloatValue): Deleted.
+ * platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
+ (iosExecutableWasLinkedOnOrAfterVersion): Deleted.
+ (iosDeviceClass): Deleted.
+ * platform/ios/WebCoreSystemInterfaceIOS.mm:
+ * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
+ * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+ (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
+ (WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
+ * platform/ios/wak/WAKWindow.mm:
+ (-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
+ (-[WAKWindow initWithFrame:]): Ditto.
+ * platform/ios/wak/WKGraphics.mm:
+ (WKGraphicsCreateImageFromBundleWithName): Ditto.
+ (WKDrawPatternBitmap): Ditto.
+ * platform/mac/WebCoreSystemInterface.h:
+ * platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
+ * platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
+ * platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
+ * rendering/RenderThemeIOS.mm:
+
</ins><span class="cx"> 2015-11-02 Frederic Wang <fred.wang@free.fr>
</span><span class="cx">
</span><span class="cx"> [Win] Add support for the USE_TYPO_METRICS flag
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1359,7 +1359,6 @@
</span><span class="cx">                 31DEA4551B39F4D900F77178 /* WebSystemBackdropLayer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 31DEA4531B39F4D900F77178 /* WebSystemBackdropLayer.mm */; };
</span><span class="cx">                 31DEA4561B39F4D900F77178 /* WebSystemBackdropLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = 31DEA4541B39F4D900F77178 /* WebSystemBackdropLayer.h */; };
</span><span class="cx">                 31DF63571AF187DD0078FD91 /* NSColorSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 31DF63561AF187DD0078FD91 /* NSColorSPI.h */; };
</span><del>-                31DF63591AF194F00078FD91 /* UIColorSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 31DF63581AF194F00078FD91 /* UIColorSPI.h */; };
</del><span class="cx">                 31EAF97E121435A400E7C1BF /* DeviceMotionClientIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 31EAF97C121435A400E7C1BF /* DeviceMotionClientIOS.h */; };
</span><span class="cx">                 31EAF97F121435A400E7C1BF /* DeviceMotionClientIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 31EAF97D121435A400E7C1BF /* DeviceMotionClientIOS.mm */; };
</span><span class="cx">                 31EC1E2814FF60EE00C94662 /* JSNotificationPermissionCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 31EC1E2614FF60EE00C94662 /* JSNotificationPermissionCallback.cpp */; };
</span><span class="lines">@@ -1675,7 +1674,6 @@
</span><span class="cx">                 44A28AAF12DFB8BF00AE923B /* MathMLNames.h in Headers */ = {isa = PBXBuildFile; fileRef = 44A28AAE12DFB8BF00AE923B /* MathMLNames.h */; };
</span><span class="cx">                 44C363F00FAA7BB30097F8CC /* RuntimeApplicationChecksIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C363EE0FAA7BB30097F8CC /* RuntimeApplicationChecksIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 44C363F10FAA7BB30097F8CC /* RuntimeApplicationChecksIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44C363EF0FAA7BB30097F8CC /* RuntimeApplicationChecksIOS.mm */; };
</span><del>-                44C3CFE81556BE5D00013609 /* WebCoreSystemInterfaceIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C3CFE71556BE5D00013609 /* WebCoreSystemInterfaceIOS.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 44C991820F3D1E0D00586670 /* ScrollbarThemeIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = 44C991810F3D1E0D00586670 /* ScrollbarThemeIOS.mm */; };
</span><span class="cx">                 44C991860F3D1EBE00586670 /* ScrollbarThemeIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C991850F3D1EBE00586670 /* ScrollbarThemeIOS.h */; };
</span><span class="cx">                 44C9919F0F3D210E00586670 /* ThemeIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 44C9919D0F3D210E00586670 /* ThemeIOS.h */; };
</span><span class="lines">@@ -4029,6 +4027,7 @@
</span><span class="cx">                 A14978711ABAF3A500CEF7E4 /* PlatformContentFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A14978701ABAF3A500CEF7E4 /* PlatformContentFilter.h */; };
</span><span class="cx">                 A17C81220F2A5CF7005DAAEB /* HTMLElementFactory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A17C81200F2A5CF7005DAAEB /* HTMLElementFactory.cpp */; };
</span><span class="cx">                 A17C81230F2A5CF7005DAAEB /* HTMLElementFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = A17C81210F2A5CF7005DAAEB /* HTMLElementFactory.h */; };
</span><ins>+                A182D5B71BE722670087A7CC /* SettingsCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A182D5B61BE722620087A7CC /* SettingsCocoa.mm */; };
</ins><span class="cx">                 A18890AE1AA13F250026C301 /* ParentalControlsContentFilter.mm in Sources */ = {isa = PBXBuildFile; fileRef = A18890AC1AA13F250026C301 /* ParentalControlsContentFilter.mm */; };
</span><span class="cx">                 A18890AF1AA13F250026C301 /* ParentalControlsContentFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = A18890AD1AA13F250026C301 /* ParentalControlsContentFilter.h */; };
</span><span class="cx">                 A19AEA211AAA808600B52B25 /* JSMockContentFilterSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = A19AEA1E1AAA806E00B52B25 /* JSMockContentFilterSettings.h */; };
</span><span class="lines">@@ -4054,6 +4053,9 @@
</span><span class="cx">                 A1E1154613015C4E0054AC8C /* PointLightSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1E1154513015C4E0054AC8C /* PointLightSource.cpp */; };
</span><span class="cx">                 A1E1154813015C5D0054AC8C /* SpotLightSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1E1154713015C5D0054AC8C /* SpotLightSource.cpp */; };
</span><span class="cx">                 A1E5B31F1AAD1DA4006EBEFB /* JSMockContentFilterSettingsCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1E5B31D1AAD1DA4006EBEFB /* JSMockContentFilterSettingsCustom.cpp */; };
</span><ins>+                A1ED778C1BE3294000DC1791 /* Device.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1ED778A1BE3293F00DC1791 /* Device.cpp */; };
+                A1ED778D1BE3294000DC1791 /* Device.h in Headers */ = {isa = PBXBuildFile; fileRef = A1ED778B1BE3294000DC1791 /* Device.h */; settings = {ATTRIBUTES = (Private, ); }; };
+                A1ED778F1BE4291800DC1791 /* UIKitSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = A1ED778E1BE4291800DC1791 /* UIKitSPI.h */; };
</ins><span class="cx">                 A2B9217316C5CC420041DCD9 /* IntRectExtent.h in Headers */ = {isa = PBXBuildFile; fileRef = A2B9217216C5CC420041DCD9 /* IntRectExtent.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A31C4E4D16E02AA6002F7957 /* OESTextureHalfFloat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A31C4E4C16E02AA6002F7957 /* OESTextureHalfFloat.cpp */; };
</span><span class="cx">                 A31C4E4F16E02AB4002F7957 /* OESTextureHalfFloat.h in Headers */ = {isa = PBXBuildFile; fileRef = A31C4E4E16E02AB4002F7957 /* OESTextureHalfFloat.h */; };
</span><span class="lines">@@ -6061,7 +6063,7 @@
</span><span class="cx">                 CE12523D1A1676CD00864480 /* QuartzCoreSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE12523C1A1676CD00864480 /* QuartzCoreSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 CE1252411A16B1B600864480 /* MediaPlayerSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1252401A16B1B600864480 /* MediaPlayerSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 CE1252431A16C01A00864480 /* CoreUISPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1252421A16C01A00864480 /* CoreUISPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                CE1252451A16C22500864480 /* DynamicLinkerSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1252441A16C22500864480 /* DynamicLinkerSPI.h */; };
</del><ins>+                CE1252451A16C22500864480 /* DynamicLinkerSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1252441A16C22500864480 /* DynamicLinkerSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
</ins><span class="cx">                 CE1252471A16C2C200864480 /* NSPointerFunctionsSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1252461A16C2C200864480 /* NSPointerFunctionsSPI.h */; };
</span><span class="cx">                 CE1252491A16C3BC00864480 /* MobileGestaltSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1252481A16C3BC00864480 /* MobileGestaltSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 CE12524D1A1A77DE00864480 /* IOPMLibSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE12524C1A1A77DE00864480 /* IOPMLibSPI.h */; };
</span><span class="lines">@@ -6350,7 +6352,6 @@
</span><span class="cx">                 E1C266DB18319935003F8B33 /* CryptoAlgorithmRsaKeyParamsWithHash.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C266DA18319935003F8B33 /* CryptoAlgorithmRsaKeyParamsWithHash.h */; };
</span><span class="cx">                 E1C266DE18319F31003F8B33 /* CryptoKeyDataRSAComponents.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1C266DC18319F31003F8B33 /* CryptoKeyDataRSAComponents.cpp */; };
</span><span class="cx">                 E1C266DF18319F31003F8B33 /* CryptoKeyDataRSAComponents.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C266DD18319F31003F8B33 /* CryptoKeyDataRSAComponents.h */; };
</span><del>-                E1C2F24A1533A2120083F974 /* SettingsMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = E1C2F2481533A2120083F974 /* SettingsMac.mm */; };
</del><span class="cx">                 E1C362EF0EAF2AA9007410BC /* JSWorkerLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C362ED0EAF2AA9007410BC /* JSWorkerLocation.h */; };
</span><span class="cx">                 E1C362F00EAF2AA9007410BC /* JSWorkerLocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1C362EE0EAF2AA9007410BC /* JSWorkerLocation.cpp */; };
</span><span class="cx">                 E1C36C030EB076D6007410BC /* JSDOMGlobalObject.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C36C020EB076D6007410BC /* JSDOMGlobalObject.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -8698,7 +8699,6 @@
</span><span class="cx">                 31DEA4531B39F4D900F77178 /* WebSystemBackdropLayer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebSystemBackdropLayer.mm; sourceTree = "<group>"; };
</span><span class="cx">                 31DEA4541B39F4D900F77178 /* WebSystemBackdropLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSystemBackdropLayer.h; sourceTree = "<group>"; };
</span><span class="cx">                 31DF63561AF187DD0078FD91 /* NSColorSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSColorSPI.h; sourceTree = "<group>"; };
</span><del>-                31DF63581AF194F00078FD91 /* UIColorSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIColorSPI.h; sourceTree = "<group>"; };
</del><span class="cx">                 31E8D8BA160BC94B004CE8F5 /* RenderSnapshottedPlugIn.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSnapshottedPlugIn.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 31E8D8BB160BC94C004CE8F5 /* RenderSnapshottedPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSnapshottedPlugIn.h; sourceTree = "<group>"; };
</span><span class="cx">                 31EAF97C121435A400E7C1BF /* DeviceMotionClientIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceMotionClientIOS.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -9039,7 +9039,6 @@
</span><span class="cx">                 44A28AAE12DFB8BF00AE923B /* MathMLNames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MathMLNames.h; sourceTree = "<group>"; };
</span><span class="cx">                 44C363EE0FAA7BB30097F8CC /* RuntimeApplicationChecksIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RuntimeApplicationChecksIOS.h; sourceTree = "<group>"; };
</span><span class="cx">                 44C363EF0FAA7BB30097F8CC /* RuntimeApplicationChecksIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RuntimeApplicationChecksIOS.mm; sourceTree = "<group>"; };
</span><del>-                44C3CFE71556BE5D00013609 /* WebCoreSystemInterfaceIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreSystemInterfaceIOS.h; sourceTree = "<group>"; };
</del><span class="cx">                 44C991810F3D1E0D00586670 /* ScrollbarThemeIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollbarThemeIOS.mm; sourceTree = "<group>"; };
</span><span class="cx">                 44C991850F3D1EBE00586670 /* ScrollbarThemeIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollbarThemeIOS.h; sourceTree = "<group>"; };
</span><span class="cx">                 44C9919D0F3D210E00586670 /* ThemeIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThemeIOS.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -11560,6 +11559,7 @@
</span><span class="cx">                 A14978701ABAF3A500CEF7E4 /* PlatformContentFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformContentFilter.h; sourceTree = "<group>"; };
</span><span class="cx">                 A17C81200F2A5CF7005DAAEB /* HTMLElementFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLElementFactory.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A17C81210F2A5CF7005DAAEB /* HTMLElementFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLElementFactory.h; sourceTree = "<group>"; };
</span><ins>+                A182D5B61BE722620087A7CC /* SettingsCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SettingsCocoa.mm; sourceTree = "<group>"; };
</ins><span class="cx">                 A18890AC1AA13F250026C301 /* ParentalControlsContentFilter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ParentalControlsContentFilter.mm; sourceTree = "<group>"; };
</span><span class="cx">                 A18890AD1AA13F250026C301 /* ParentalControlsContentFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParentalControlsContentFilter.h; sourceTree = "<group>"; };
</span><span class="cx">                 A19AEA1C1AAA7C4900B52B25 /* MockContentFilterSettings.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = MockContentFilterSettings.idl; sourceTree = "<group>"; };
</span><span class="lines">@@ -11581,6 +11581,9 @@
</span><span class="cx">                 A1E1154513015C4E0054AC8C /* PointLightSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PointLightSource.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A1E1154713015C5D0054AC8C /* SpotLightSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SpotLightSource.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 A1E5B31D1AAD1DA4006EBEFB /* JSMockContentFilterSettingsCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMockContentFilterSettingsCustom.cpp; sourceTree = "<group>"; };
</span><ins>+                A1ED778A1BE3293F00DC1791 /* Device.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Device.cpp; sourceTree = "<group>"; };
+                A1ED778B1BE3294000DC1791 /* Device.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Device.h; sourceTree = "<group>"; };
+                A1ED778E1BE4291800DC1791 /* UIKitSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIKitSPI.h; sourceTree = "<group>"; };
</ins><span class="cx">                 A208E222A56A0C7575F2A72E /* RenderMathMLMenclose.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderMathMLMenclose.h; sourceTree = "<group>"; };
</span><span class="cx">                 A2B9217216C5CC420041DCD9 /* IntRectExtent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntRectExtent.h; sourceTree = "<group>"; };
</span><span class="cx">                 A31C4E4C16E02AA6002F7957 /* OESTextureHalfFloat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = OESTextureHalfFloat.cpp; sourceTree = "<group>"; };
</span><span class="lines">@@ -14214,7 +14217,6 @@
</span><span class="cx">                 E1C266DA18319935003F8B33 /* CryptoAlgorithmRsaKeyParamsWithHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoAlgorithmRsaKeyParamsWithHash.h; sourceTree = "<group>"; };
</span><span class="cx">                 E1C266DC18319F31003F8B33 /* CryptoKeyDataRSAComponents.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptoKeyDataRSAComponents.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 E1C266DD18319F31003F8B33 /* CryptoKeyDataRSAComponents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoKeyDataRSAComponents.h; sourceTree = "<group>"; };
</span><del>-                E1C2F2481533A2120083F974 /* SettingsMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SettingsMac.mm; sourceTree = "<group>"; };
</del><span class="cx">                 E1C362ED0EAF2AA9007410BC /* JSWorkerLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWorkerLocation.h; sourceTree = "<group>"; };
</span><span class="cx">                 E1C362EE0EAF2AA9007410BC /* JSWorkerLocation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWorkerLocation.cpp; sourceTree = "<group>"; };
</span><span class="cx">                 E1C36C020EB076D6007410BC /* JSDOMGlobalObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMGlobalObject.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -17082,6 +17084,7 @@
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="cx">                                 ADFE2B541BD5F41200DAB457 /* ResourceUsageOverlayCocoa.mm */,
</span><ins>+                                A182D5B61BE722620087A7CC /* SettingsCocoa.mm */,
</ins><span class="cx">                                 26255F0118878E110006E1FD /* UserAgent.h */,
</span><span class="cx">                                 5D5975B61963637B00D00878 /* UserAgent.mm */,
</span><span class="cx">                         );
</span><span class="lines">@@ -18600,7 +18603,6 @@
</span><span class="cx">                                 834DD4F31BE08989002C9C3E /* PageMac.mm */,
</span><span class="cx">                                 2D93AEE119DF5641002A86C3 /* ServicesOverlayController.h */,
</span><span class="cx">                                 2D93AEE219DF5641002A86C3 /* ServicesOverlayController.mm */,
</span><del>-                                E1C2F2481533A2120083F974 /* SettingsMac.mm */,
</del><span class="cx">                                 2D4F96F31A1ECC240098BF88 /* TextIndicatorWindow.h */,
</span><span class="cx">                                 2D4F96F41A1ECC240098BF88 /* TextIndicatorWindow.mm */,
</span><span class="cx">                                 26255F0218878E110006E1FD /* UserAgentMac.mm */,
</span><span class="lines">@@ -19471,7 +19473,7 @@
</span><span class="cx">                                 CE1252481A16C3BC00864480 /* MobileGestaltSPI.h */,
</span><span class="cx">                                 6FAD4A561A9D0FAE009F7D3C /* OpenGLESSPI.h */,
</span><span class="cx">                                 CE1252381A166FA000864480 /* QuickLookSPI.h */,
</span><del>-                                31DF63581AF194F00078FD91 /* UIColorSPI.h */,
</del><ins>+                                A1ED778E1BE4291800DC1791 /* UIKitSPI.h */,
</ins><span class="cx">                         );
</span><span class="cx">                         path = ios;
</span><span class="cx">                         sourceTree = "<group>";
</span><span class="lines">@@ -19490,6 +19492,8 @@
</span><span class="cx">                         children = (
</span><span class="cx">                                 A148328B187F506800DA63A6 /* wak */,
</span><span class="cx">                                 2655414B1489AA2B000DFC5D /* CursorIOS.cpp */,
</span><ins>+                                A1ED778A1BE3293F00DC1791 /* Device.cpp */,
+                                A1ED778B1BE3294000DC1791 /* Device.h */,
</ins><span class="cx">                                 31EAF97C121435A400E7C1BF /* DeviceMotionClientIOS.h */,
</span><span class="cx">                                 31EAF97D121435A400E7C1BF /* DeviceMotionClientIOS.mm */,
</span><span class="cx">                                 31403799124BEA7F00AF40E4 /* DeviceOrientationClientIOS.h */,
</span><span class="lines">@@ -19538,7 +19542,6 @@
</span><span class="cx">                                 1F72BF09187FD4270009BCB3 /* TileControllerMemoryHandlerIOS.h */,
</span><span class="cx">                                 31403797124BEA7F00AF40E4 /* WebCoreMotionManager.h */,
</span><span class="cx">                                 31403798124BEA7F00AF40E4 /* WebCoreMotionManager.mm */,
</span><del>-                                44C3CFE71556BE5D00013609 /* WebCoreSystemInterfaceIOS.h */,
</del><span class="cx">                                 E45390380EAFD637003695C8 /* WebCoreSystemInterfaceIOS.mm */,
</span><span class="cx">                                 FE0D84E810484348001A179E /* WebEvent.h */,
</span><span class="cx">                                 FE0D84EA1048436E001A179E /* WebEvent.mm */,
</span><span class="lines">@@ -25284,6 +25287,7 @@
</span><span class="cx">                                 85526CD20AB0B7D9000302EA /* DOMTreeWalker.h in Headers */,
</span><span class="cx">                                 850B41C30AD9E7E700A6ED4F /* DOMTreeWalkerInternal.h in Headers */,
</span><span class="cx">                                 85C7F4910AAF79DC004014DD /* DOMUIEvent.h in Headers */,
</span><ins>+                                A1ED778F1BE4291800DC1791 /* UIKitSPI.h in Headers */,
</ins><span class="cx">                                 85989DD00ACC8BBD00A0BC51 /* DOMUIEventInternal.h in Headers */,
</span><span class="cx">                                 FED13D2A0CEA91DF00D89466 /* DOMUIKitExtensions.h in Headers */,
</span><span class="cx">                                 2E37DFDB12DBAFB800A6B233 /* DOMURL.h in Headers */,
</span><span class="lines">@@ -27676,6 +27680,7 @@
</span><span class="cx">                                 C105DA640F3AA6B8001DD44F /* TextEncodingDetector.h in Headers */,
</span><span class="cx">                                 B2C3DA490D006C1D00EF6F26 /* TextEncodingRegistry.h in Headers */,
</span><span class="cx">                                 933A14300B7D188600A53FFD /* TextEvent.h in Headers */,
</span><ins>+                                A1ED778D1BE3294000DC1791 /* Device.h in Headers */,
</ins><span class="cx">                                 A77B41A012E675A90054343D /* TextEventInputType.h in Headers */,
</span><span class="cx">                                 F55B3DD81251F12D003EF269 /* TextFieldInputType.h in Headers */,
</span><span class="cx">                                 B2C3DA450D006C1D00EF6F26 /* TextFlags.h in Headers */,
</span><span class="lines">@@ -27755,7 +27760,6 @@
</span><span class="cx">                                 C375D7FE16639519006184AB /* TypeAhead.h in Headers */,
</span><span class="cx">                                 E46A2B1C17CA65B9000DBCD8 /* TypedElementDescendantIterator.h in Headers */,
</span><span class="cx">                                 93309E1A099E64920056E581 /* TypingCommand.h in Headers */,
</span><del>-                                31DF63591AF194F00078FD91 /* UIColorSPI.h in Headers */,
</del><span class="cx">                                 85031B4E0A44EFC700F992E0 /* UIEvent.h in Headers */,
</span><span class="cx">                                 85031B4F0A44EFC700F992E0 /* UIEventWithKeyState.h in Headers */,
</span><span class="cx">                                 AA4739D21757AFEC00E76767 /* UIRequestEvent.h in Headers */,
</span><span class="lines">@@ -27866,7 +27870,6 @@
</span><span class="cx">                                 E180810F16FCECDF00B80D07 /* WebCoreResourceHandleAsDelegate.h in Headers */,
</span><span class="cx">                                 E152551516FD2350003D7ADB /* WebCoreResourceHandleAsOperationQueueDelegate.h in Headers */,
</span><span class="cx">                                 93EB169709F880C00091F8FF /* WebCoreSystemInterface.h in Headers */,
</span><del>-                                44C3CFE81556BE5D00013609 /* WebCoreSystemInterfaceIOS.h in Headers */,
</del><span class="cx">                                 A14832C7187F66C800DA63A6 /* WebCoreThread.h in Headers */,
</span><span class="cx">                                 A14832C9187F676B00DA63A6 /* WebCoreThreadInternal.h in Headers */,
</span><span class="cx">                                 A14832CA187F678000DA63A6 /* WebCoreThreadMessage.h in Headers */,
</span><span class="lines">@@ -28652,6 +28655,7 @@
</span><span class="cx">                                 409EBDB216B7EE7400CBA3FC /* CSSFontFaceLoadEvent.cpp in Sources */,
</span><span class="cx">                                 A80E6CE70A1989CA007FB8C5 /* CSSFontFaceRule.cpp in Sources */,
</span><span class="cx">                                 BC64B4D70CB4298A005F2B62 /* CSSFontFaceSource.cpp in Sources */,
</span><ins>+                                A1ED778C1BE3294000DC1791 /* Device.cpp in Sources */,
</ins><span class="cx">                                 BC64B4D90CB4298A005F2B62 /* CSSFontFaceSrcValue.cpp in Sources */,
</span><span class="cx">                                 4A6E9FC313C17D1D0046A7F8 /* CSSFontFeatureValue.cpp in Sources */,
</span><span class="cx">                                 BC64B4DB0CB4298A005F2B62 /* CSSFontSelector.cpp in Sources */,
</span><span class="lines">@@ -30780,7 +30784,6 @@
</span><span class="cx">                                 93309E0F099E64920056E581 /* SetNodeAttributeCommand.cpp in Sources */,
</span><span class="cx">                                 B8DBDB4B130B0F8A00F5CDB1 /* SetSelectionCommand.cpp in Sources */,
</span><span class="cx">                                 14C9A5EA0B3D105F005A0232 /* Settings.cpp in Sources */,
</span><del>-                                E1C2F24A1533A2120083F974 /* SettingsMac.mm in Sources */,
</del><span class="cx">                                 0F3DD44F12F5EA1B000D9190 /* ShadowBlur.cpp in Sources */,
</span><span class="cx">                                 BC5EB8C30E82031B00B25965 /* ShadowData.cpp in Sources */,
</span><span class="cx">                                 A6D169621346B49B000EB770 /* ShadowRoot.cpp in Sources */,
</span><span class="lines">@@ -30858,6 +30861,7 @@
</span><span class="cx">                                 1A37636B1A2E68BB009A7EE2 /* StorageNamespaceProvider.cpp in Sources */,
</span><span class="cx">                                 8102C5881325BB1100DDE67A /* StringCallback.cpp in Sources */,
</span><span class="cx">                                 B23540F20D00782E002382FA /* StringTruncator.cpp in Sources */,
</span><ins>+                                A182D5B71BE722670087A7CC /* SettingsCocoa.mm in Sources */,
</ins><span class="cx">                                 BC5EB6A20E81DC4F00B25965 /* StyleBackgroundData.cpp in Sources */,
</span><span class="cx">                                 BC5EB67D0E81D42000B25965 /* StyleBoxData.cpp in Sources */,
</span><span class="cx">                                 8386A97019F61E4F00E1EC4A /* StyleBuilder.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCoreconfigh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/config.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/config.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/config.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -116,11 +116,6 @@
</span><span class="cx"> #endif
</span><span class="cx"> #endif /* USE(CG) */
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
-#define WEBCORE_NAVIGATOR_PLATFORM wkGetPlatformNameForNavigator();
-#define WEBCORE_NAVIGATOR_VENDOR wkGetVendorNameForNavigator();
-#endif
-
</del><span class="cx"> // FIXME: Move this to JavaScriptCore/wtf/Platform.h, which is where we define USE_AVFOUNDATION on the Mac.
</span><span class="cx"> // https://bugs.webkit.org/show_bug.cgi?id=67334
</span><span class="cx"> #if PLATFORM(WIN) && USE(CG) && HAVE(AVCF)
</span></span></pre></div>
<a id="trunkSourceWebCorecssMediaQueryEvaluatorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.cpp (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -57,7 +57,7 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-#include "WebCoreSystemInterface.h"
</del><ins>+#include "Device.h"
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -631,8 +631,8 @@
</span><span class="cx"> static inline bool isRunningOnIPhoneOrIPod()
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>- static wkDeviceClass deviceClass = iosDeviceClass();
- return deviceClass == wkDeviceClassiPhone || deviceClass == wkDeviceClassiPod;
</del><ins>+ static bool runningOnIPhoneOrIPod = deviceClass() == MGDeviceClassiPhone || deviceClass() == MGDeviceClassiPod;
+ return runningOnIPhoneOrIPod;
</ins><span class="cx"> #else
</span><span class="cx"> return false;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLMediaElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -110,6 +110,7 @@
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> #include "RuntimeApplicationChecksIOS.h"
</span><ins>+#include "WebVideoFullscreenInterfaceAVKit.h"
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if ENABLE(WIRELESS_PLAYBACK_TARGET)
</span><span class="lines">@@ -6434,7 +6435,7 @@
</span><span class="cx"> if (m_videoFullscreenMode & VideoFullscreenModePictureInPicture)
</span><span class="cx"> return true;
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>- if (m_videoFullscreenMode == VideoFullscreenModeStandard && wkIsOptimizedFullscreenSupported() && isPlaying())
</del><ins>+ if (m_videoFullscreenMode == VideoFullscreenModeStandard && supportsPictureInPicture() && isPlaying())
</ins><span class="cx"> return true;
</span><span class="cx"> #endif
</span><span class="cx"> return false;
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLObjectElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLObjectElement.cpp (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLObjectElement.cpp        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/html/HTMLObjectElement.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -55,8 +55,8 @@
</span><span class="cx"> #include <wtf/Ref.h>
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><ins>+#include "DynamicLinkerSPI.h"
</ins><span class="cx"> #include "RuntimeApplicationChecksIOS.h"
</span><del>-#include "WebCoreSystemInterface.h"
</del><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -159,7 +159,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> static bool shouldNotPerformURLAdjustment()
</span><span class="cx"> {
</span><del>- static bool shouldNotPerformURLAdjustment = applicationIsNASAHD() && !iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_5_0);
</del><ins>+ static bool shouldNotPerformURLAdjustment = applicationIsNASAHD() && dyld_get_program_sdk_version() < DYLD_IOS_VERSION_5_0;
</ins><span class="cx"> return shouldNotPerformURLAdjustment;
</span><span class="cx"> }
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCorehtmlHTMLVideoElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -43,6 +43,10 @@
</span><span class="cx"> #include "Settings.h"
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx">
</span><ins>+#if ENABLE(VIDEO_PRESENTATION_MODE)
+#include "WebVideoFullscreenInterfaceAVKit.h"
+#endif
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> using namespace HTMLNames;
</span><span class="lines">@@ -369,7 +373,7 @@
</span><span class="cx"> return mediaSession().fullscreenPermitted(*this) && supportsFullscreen();
</span><span class="cx">
</span><span class="cx"> if (mode == presentationModePictureInPicture())
</span><del>- return wkIsOptimizedFullscreenSupported() && mediaSession().allowsPictureInPicture(*this) && supportsFullscreen();
</del><ins>+ return supportsPictureInPicture() && mediaSession().allowsPictureInPicture(*this) && supportsFullscreen();
</ins><span class="cx">
</span><span class="cx"> if (mode == presentationModeInline())
</span><span class="cx"> return !mediaSession().requiresFullscreenForVideoPlayback(*this);
</span></span></pre></div>
<a id="trunkSourceWebCorepageNavigatorBasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/NavigatorBase.cpp (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/NavigatorBase.cpp        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/page/NavigatorBase.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -36,12 +36,12 @@
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-#include "WebCoreSystemInterface.h"
</del><ins>+#include "Device.h"
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> #ifndef WEBCORE_NAVIGATOR_PLATFORM
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-#define WEBCORE_NAVIGATOR_PLATFORM ""
</del><ins>+#define WEBCORE_NAVIGATOR_PLATFORM deviceName()
</ins><span class="cx"> #elif OS(MAC_OS_X) && (CPU(PPC) || CPU(PPC64))
</span><span class="cx"> #define WEBCORE_NAVIGATOR_PLATFORM "MacPPC"
</span><span class="cx"> #elif OS(MAC_OS_X) && (CPU(X86) || CPU(X86_64))
</span><span class="lines">@@ -69,7 +69,6 @@
</span><span class="cx"> #define WEBCORE_NAVIGATOR_VENDOR_SUB ""
</span><span class="cx"> #endif // ifndef WEBCORE_NAVIGATOR_VENDOR_SUB
</span><span class="cx">
</span><del>-
</del><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> NavigatorBase::~NavigatorBase()
</span></span></pre></div>
<a id="trunkSourceWebCorepageSettingsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/Settings.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/Settings.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/page/Settings.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -282,6 +282,10 @@
</span><span class="cx">
</span><span class="cx"> WEBCORE_EXPORT void setForcePendingWebGLPolicy(bool);
</span><span class="cx"> bool isForcePendingWebGLPolicy() const { return m_forcePendingWebGLPolicy; }
</span><ins>+
+#if PLATFORM(IOS)
+ WEBCORE_EXPORT static float defaultMinimumZoomFontSize();
+#endif
</ins><span class="cx">
</span><span class="cx"> private:
</span><span class="cx"> explicit Settings(Page*);
</span></span></pre></div>
<a id="trunkSourceWebCorepageViewportConfigurationcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ViewportConfiguration.cpp (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ViewportConfiguration.cpp        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/page/ViewportConfiguration.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> #include <wtf/text/CString.h>
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-#include "WebCoreSystemInterface.h"
</del><ins>+#include "PlatformScreen.h"
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="lines">@@ -213,7 +213,7 @@
</span><span class="cx"> Parameters parameters;
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>- parameters.width = static_cast<int>(wkGetScreenSize().width);
</del><ins>+ parameters.width = static_cast<int>(screenSize().width());
</ins><span class="cx"> #else
</span><span class="cx"> // FIXME: this needs to be unified with ViewportArguments on all ports.
</span><span class="cx"> parameters.width = 320;
</span></span></pre></div>
<a id="trunkSourceWebCorepagecocoaSettingsCocoammfromrev191901trunkSourceWebCorepagemacSettingsMacmm"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/page/cocoa/SettingsCocoa.mm (from rev 191901, trunk/Source/WebCore/page/mac/SettingsMac.mm) (0 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/cocoa/SettingsCocoa.mm         (rev 0)
+++ trunk/Source/WebCore/page/cocoa/SettingsCocoa.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -0,0 +1,132 @@
</span><ins>+/*
+ * Copyright (C) 2012 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "Settings.h"
+
+#if PLATFORM(IOS)
+#include "Device.h"
+#include "SoftLinking.h"
+#include "UIKitSPI.h"
+#endif
+
+#if PLATFORM(IOS)
+SOFT_LINK_FRAMEWORK(UIKit)
+SOFT_LINK_CLASS(UIKit, UIApplication)
+#endif
+
+namespace WebCore {
+
+static inline const char* sansSerifTraditionalHanFontFamily()
+{
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000) || PLATFORM(IOS)
+ return "PingFang TC";
+#else
+ return "Heiti TC";
+#endif
+}
+
+static inline const char* sansSerifSimplifiedHanFontFamily()
+{
+#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000) || PLATFORM(IOS)
+ return "PingFang SC";
+#else
+ return "Heiti SC";
+#endif
+}
+
+#if PLATFORM(MAC)
+
+void Settings::initializeDefaultFontFamilies()
+{
+ setStandardFontFamily("Songti TC", USCRIPT_TRADITIONAL_HAN);
+ setSerifFontFamily("Songti TC", USCRIPT_TRADITIONAL_HAN);
+ setFixedFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
+ setSansSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
+
+ setStandardFontFamily("Songti SC", USCRIPT_SIMPLIFIED_HAN);
+ setSerifFontFamily("Songti SC", USCRIPT_SIMPLIFIED_HAN);
+ setFixedFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
+ setSansSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
+
+ setStandardFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
+ setFixedFontFamily("Osaka-Mono", USCRIPT_KATAKANA_OR_HIRAGANA);
+ setSerifFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
+ setSansSerifFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
+
+ setStandardFontFamily("AppleMyungjo", USCRIPT_HANGUL);
+ setSerifFontFamily("AppleMyungjo", USCRIPT_HANGUL);
+ setFixedFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
+ setSansSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
+
+ setStandardFontFamily("Times", USCRIPT_COMMON);
+ setFixedFontFamily("Courier", USCRIPT_COMMON);
+ setSerifFontFamily("Times", USCRIPT_COMMON);
+ setSansSerifFontFamily("Helvetica", USCRIPT_COMMON);
+}
+
+#else
+
+void Settings::initializeDefaultFontFamilies()
+{
+ // There is no serif Chinese font in default iOS installation.
+ setStandardFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
+ setSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
+ setFixedFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
+ setSansSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
+
+ // There is no serif Chinese font in default iOS installation.
+ setStandardFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
+ setSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
+ setFixedFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
+ setSansSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
+
+ setStandardFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
+ setFixedFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
+ setSerifFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
+ setSansSerifFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
+
+ // There is no serif Korean font in default iOS installation.
+ setStandardFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
+ setSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
+ setFixedFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
+ setSansSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
+
+ setStandardFontFamily("Times", USCRIPT_COMMON);
+ setFixedFontFamily("Courier", USCRIPT_COMMON);
+ setSerifFontFamily("Times", USCRIPT_COMMON);
+ setSansSerifFontFamily("Helvetica", USCRIPT_COMMON);
+}
+
+float Settings::defaultMinimumZoomFontSize()
+{
+ if (deviceHasIPadCapability() && ![[getUIApplicationClass() sharedApplication] _isClassic])
+ return 0;
+ return 15;
+}
+
+#endif
+
+} // namespace WebCore
</ins></span></pre></div>
<a id="trunkSourceWebCorepageiosUserAgentIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/UserAgentIOS.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/UserAgentIOS.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/page/ios/UserAgentIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -26,16 +26,47 @@
</span><span class="cx"> #import "config.h"
</span><span class="cx"> #import "UserAgent.h"
</span><span class="cx">
</span><ins>+#import "Device.h"
+#import "MobileGestaltSPI.h"
+#import "SoftLinking.h"
</ins><span class="cx"> #import "SystemVersion.h"
</span><ins>+#import "UIKitSPI.h"
</ins><span class="cx"> #import "WebCoreSystemInterface.h"
</span><ins>+#import <wtf/RetainPtr.h>
</ins><span class="cx">
</span><ins>+SOFT_LINK_FRAMEWORK(UIKit);
+SOFT_LINK_CLASS(UIKit, UIApplication);
+
</ins><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><ins>+static inline bool isClassic()
+{
+ return [[getUIApplicationClass() sharedApplication] _isClassic];
+}
+
+static inline NSString *osNameForUserAgent()
+{
+ if (deviceHasIPadCapability() && !isClassic())
+ return @"OS";
+ return @"iPhone OS";
+}
+
+static inline NSString *deviceNameForUserAgent()
+{
+ if (isClassic())
+ return @"iPhone";
+
+ auto name = retainPtr((NSString *)deviceName());
+#if PLATFORM(IOS_SIMULATOR)
+ NSUInteger location = [name rangeOfString:@" Simulator" options:NSBackwardsSearch].location;
+ if (location != NSNotFound && location > 0)
+ return [name substringToIndex:location];
+#endif
+ return name.autorelease();
+}
+
</ins><span class="cx"> String standardUserAgentWithApplicationName(const String& applicationName, const String& fullWebKitVersionString)
</span><span class="cx"> {
</span><del>- if (CFStringRef overrideUserAgent = wkGetUserAgent())
- return overrideUserAgent;
-
</del><span class="cx"> // Check to see if there is a user agent override for all WebKit clients.
</span><span class="cx"> CFPropertyListRef override = CFPreferencesCopyAppValue(CFSTR("UserAgent"), CFSTR("com.apple.WebFoundation"));
</span><span class="cx"> if (override) {
</span><span class="lines">@@ -44,13 +75,12 @@
</span><span class="cx"> CFRelease(override);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+ // FIXME: We should implement this with String and/or StringBuilder instead.
</ins><span class="cx"> NSString *webKitVersion = userAgentBundleVersionFromFullVersionString(fullWebKitVersionString);
</span><del>- CFStringRef deviceName = wkGetDeviceName();
- CFStringRef osNameForUserAgent = wkGetOSNameForUserAgent();
</del><span class="cx"> NSString *osMarketingVersionString = systemMarketingVersionForUserAgentString();
</span><span class="cx"> if (applicationName.isEmpty())
</span><del>- return [NSString stringWithFormat:@"Mozilla/5.0 (%@; CPU %@ %@ like Mac OS X) AppleWebKit/%@ (KHTML, like Gecko)", deviceName, osNameForUserAgent, osMarketingVersionString, webKitVersion];
- return [NSString stringWithFormat:@"Mozilla/5.0 (%@; CPU %@ %@ like Mac OS X) AppleWebKit/%@ (KHTML, like Gecko) %@", deviceName, osNameForUserAgent, osMarketingVersionString, webKitVersion, static_cast<NSString *>(applicationName)];
</del><ins>+ return [NSString stringWithFormat:@"Mozilla/5.0 (%@; CPU %@ %@ like Mac OS X) AppleWebKit/%@ (KHTML, like Gecko)", deviceNameForUserAgent(), osNameForUserAgent(), osMarketingVersionString, webKitVersion];
+ return [NSString stringWithFormat:@"Mozilla/5.0 (%@; CPU %@ %@ like Mac OS X) AppleWebKit/%@ (KHTML, like Gecko) %@", deviceNameForUserAgent(), osNameForUserAgent(), osMarketingVersionString, webKitVersion, static_cast<NSString *>(applicationName)];
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore.
</span></span></pre></div>
<a id="trunkSourceWebCorepagemacSettingsMacmm"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/page/mac/SettingsMac.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/mac/SettingsMac.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/page/mac/SettingsMac.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1,112 +0,0 @@
</span><del>-/*
- * Copyright (C) 2012 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "Settings.h"
-
-namespace WebCore {
-
-static inline const char* sansSerifTraditionalHanFontFamily()
-{
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000) || PLATFORM(IOS)
- return "PingFang TC";
-#else
- return "Heiti TC";
-#endif
-}
-
-static inline const char* sansSerifSimplifiedHanFontFamily()
-{
-#if (PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000) || PLATFORM(IOS)
- return "PingFang SC";
-#else
- return "Heiti SC";
-#endif
-}
-
-#if PLATFORM(MAC)
-void Settings::initializeDefaultFontFamilies()
-{
- setStandardFontFamily("Songti TC", USCRIPT_TRADITIONAL_HAN);
- setSerifFontFamily("Songti TC", USCRIPT_TRADITIONAL_HAN);
- setFixedFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
- setSansSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
-
- setStandardFontFamily("Songti SC", USCRIPT_SIMPLIFIED_HAN);
- setSerifFontFamily("Songti SC", USCRIPT_SIMPLIFIED_HAN);
- setFixedFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
- setSansSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
-
- setStandardFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
- setFixedFontFamily("Osaka-Mono", USCRIPT_KATAKANA_OR_HIRAGANA);
- setSerifFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
- setSansSerifFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
-
- setStandardFontFamily("AppleMyungjo", USCRIPT_HANGUL);
- setSerifFontFamily("AppleMyungjo", USCRIPT_HANGUL);
- setFixedFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
- setSansSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
-
- setStandardFontFamily("Times", USCRIPT_COMMON);
- setFixedFontFamily("Courier", USCRIPT_COMMON);
- setSerifFontFamily("Times", USCRIPT_COMMON);
- setSansSerifFontFamily("Helvetica", USCRIPT_COMMON);
-}
-
-#else
-
-void Settings::initializeDefaultFontFamilies()
-{
- // There is no serif Chinese font in default iOS installation.
- setStandardFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
- setSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
- setFixedFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
- setSansSerifFontFamily(sansSerifTraditionalHanFontFamily(), USCRIPT_TRADITIONAL_HAN);
-
- // There is no serif Chinese font in default iOS installation.
- setStandardFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
- setSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
- setFixedFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
- setSansSerifFontFamily(sansSerifSimplifiedHanFontFamily(), USCRIPT_SIMPLIFIED_HAN);
-
- setStandardFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
- setFixedFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
- setSerifFontFamily("Hiragino Mincho ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
- setSansSerifFontFamily("Hiragino Kaku Gothic ProN", USCRIPT_KATAKANA_OR_HIRAGANA);
-
- // There is no serif Korean font in default iOS installation.
- setStandardFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
- setSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
- setFixedFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
- setSansSerifFontFamily("Apple SD Gothic Neo", USCRIPT_HANGUL);
-
- setStandardFontFamily("Times", USCRIPT_COMMON);
- setFixedFontFamily("Courier", USCRIPT_COMMON);
- setSerifFontFamily("Times", USCRIPT_COMMON);
- setSansSerifFontFamily("Helvetica", USCRIPT_COMMON);
-}
-#endif
-
-} // namespace WebCore
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformPlatformScreenh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/PlatformScreen.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/PlatformScreen.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/PlatformScreen.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -40,6 +40,10 @@
</span><span class="cx"> #endif
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#if PLATFORM(IOS)
+OBJC_CLASS UIScreen;
+#endif
+
</ins><span class="cx"> typedef uint32_t PlatformDisplayID;
</span><span class="cx">
</span><span class="cx"> typedef WTF::Vector<char> ColorProfile;
</span><span class="lines">@@ -47,6 +51,7 @@
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="cx"> class FloatRect;
</span><ins>+ class FloatSize;
</ins><span class="cx"> class Widget;
</span><span class="cx">
</span><span class="cx"> int screenDepth(Widget*);
</span><span class="lines">@@ -69,6 +74,9 @@
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> float screenPPIFactor();
</span><ins>+ WEBCORE_EXPORT FloatSize screenSize();
+ WEBCORE_EXPORT FloatSize availableScreenSize();
+ WEBCORE_EXPORT float screenScaleFactor(UIScreen * = nullptr);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosDevicecpp"></a>
<div class="addfile"><h4>Added: trunk/Source/WebCore/platform/ios/Device.cpp (0 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/Device.cpp         (rev 0)
+++ trunk/Source/WebCore/platform/ios/Device.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -0,0 +1,79 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "Device.h"
+
+#if PLATFORM(IOS)
+
+#include <mutex>
+#include <wtf/NeverDestroyed.h>
+#include <wtf/RetainPtr.h>
+#include <wtf/text/WTFString.h>
+
+namespace WebCore {
+
+MGDeviceClass deviceClass()
+{
+ static MGDeviceClass deviceClass;
+ static std::once_flag onceFlag;
+ std::call_once(onceFlag, [] {
+ int deviceClassNumber = MGGetSInt32Answer(kMGQDeviceClassNumber, MGDeviceClassInvalid);
+ switch (deviceClassNumber) {
+ case MGDeviceClassInvalid:
+ case MGDeviceClassiPhone:
+ case MGDeviceClassiPod:
+ case MGDeviceClassiPad:
+ case MGDeviceClassAppleTV:
+ case MGDeviceClassWatch:
+ deviceClass = static_cast<MGDeviceClass>(deviceClassNumber);
+ return;
+ }
+ ASSERT_NOT_REACHED();
+ });
+ return deviceClass;
+}
+
+const String& deviceName()
+{
+ static LazyNeverDestroyed<String> deviceName;
+ static std::once_flag onceFlag;
+ std::call_once(onceFlag, [] {
+ auto cfDeviceName = adoptCF(static_cast<CFStringRef>(MGCopyAnswer(kMGQDeviceName, nullptr)));
+ ASSERT(!cfDeviceName || CFGetTypeID(cfDeviceName.get()) == CFStringGetTypeID());
+ deviceName.construct(cfDeviceName.get());
+ });
+ return deviceName;
+}
+
+bool deviceHasIPadCapability()
+{
+ static bool deviceHasIPadCapability = MGGetBoolAnswer(kMGQiPadCapability);
+ return deviceHasIPadCapability;
+}
+
+} // namespace WebCore
+
+#endif // PLATFORM(IOS)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformiosDevicehfromrev191901trunkSourceWebCoreplatformspiiosUIColorSPIh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/ios/Device.h (from rev 191901, trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h) (0 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/Device.h         (rev 0)
+++ trunk/Source/WebCore/platform/ios/Device.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -0,0 +1,49 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef Device_h
+#define Device_h
+
+#if PLATFORM(IOS)
+
+#include "MobileGestaltSPI.h"
+
+namespace WTF {
+class String;
+}
+
+namespace WebCore {
+
+WEBCORE_EXPORT MGDeviceClass deviceClass();
+const WTF::String& deviceName();
+
+// FIXME: Isn't this the same as deviceClass() == MGDeviceClassiPad?
+bool deviceHasIPadCapability();
+
+}
+
+#endif // PLATFORM(IOS)
+
+#endif // Device_h
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformiosPlatformScreenIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/PlatformScreenIOS.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/PlatformScreenIOS.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/ios/PlatformScreenIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -26,19 +26,24 @@
</span><span class="cx"> #import "config.h"
</span><span class="cx"> #import "PlatformScreen.h"
</span><span class="cx">
</span><ins>+#import "Device.h"
</ins><span class="cx"> #import "FloatRect.h"
</span><ins>+#import "FloatSize.h"
</ins><span class="cx"> #import "FrameView.h"
</span><span class="cx"> #import "HostWindow.h"
</span><span class="cx"> #import "IntRect.h"
</span><span class="cx"> #import "MobileGestaltSPI.h"
</span><span class="cx"> #import "SoftLinking.h"
</span><ins>+#import "UIKitSPI.h"
</ins><span class="cx"> #import "WAKWindow.h"
</span><span class="cx"> #import "WebCoreSystemInterface.h"
</span><span class="cx"> #import "Widget.h"
</span><span class="cx">
</span><span class="cx"> SOFT_LINK_FRAMEWORK(UIKit)
</span><del>-SOFT_LINK(UIKit, UIAccessibilityIsGrayscaleEnabled, bool, (void), ())
-SOFT_LINK(UIKit, UIAccessibilityIsInvertColorsEnabled, bool, (void), ())
</del><ins>+SOFT_LINK_CLASS(UIKit, UIApplication)
+SOFT_LINK_CLASS(UIKit, UIScreen)
+SOFT_LINK(UIKit, UIAccessibilityIsGrayscaleEnabled, BOOL, (void), ())
+SOFT_LINK(UIKit, UIAccessibilityIsInvertColorsEnabled, BOOL, (void), ())
</ins><span class="cx">
</span><span class="cx"> namespace WebCore {
</span><span class="cx">
</span><span class="lines">@@ -98,25 +103,14 @@
</span><span class="cx"> return enclosingIntRect(FloatRect(FloatPoint(), widget->root()->hostWindow()->availableScreenSize()));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-static float mobileGestaltFloatValue(CFStringRef question)
-{
- float result = 0;
- if (CFTypeRef value = MGCopyAnswer(question, 0)) {
- if (CFGetTypeID(value) == CFNumberGetTypeID())
- CFNumberGetValue(static_cast<CFNumberRef>(value), kCFNumberFloatType, &result);
- CFRelease(value);
- }
- return result;
-}
-
</del><span class="cx"> float screenPPIFactor()
</span><span class="cx"> {
</span><span class="cx"> static float ppiFactor;
</span><span class="cx">
</span><span class="cx"> static dispatch_once_t onceToken;
</span><span class="cx"> dispatch_once(&onceToken, ^{
</span><del>- float pitch = mobileGestaltFloatValue(kMGQMainScreenPitch);
- float scale = mobileGestaltFloatValue(kMGQMainScreenScale);
</del><ins>+ int pitch = MGGetSInt32Answer(kMGQMainScreenPitch, 0);
+ float scale = MGGetFloat32Answer(kMGQMainScreenScale, 0);
</ins><span class="cx">
</span><span class="cx"> static const float originalIPhonePPI = 163;
</span><span class="cx"> float mainScreenPPI = (pitch && scale) ? pitch / scale : originalIPhonePPI;
</span><span class="lines">@@ -126,4 +120,33 @@
</span><span class="cx"> return ppiFactor;
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+FloatSize screenSize()
+{
+ if (deviceHasIPadCapability() && [[getUIApplicationClass() sharedApplication] _isClassic])
+ return { 320, 480 };
+ return FloatSize([[getUIScreenClass() mainScreen] _referenceBounds].size);
+}
+
+FloatSize availableScreenSize()
+{
+ if (deviceHasIPadCapability() && [[getUIApplicationClass() sharedApplication] _isClassic])
+ return { 320, 480 };
+ return FloatSize([getUIScreenClass() mainScreen].bounds.size);
+}
+
+float screenScaleFactor(UIScreen *screen)
+{
+ if (!screen)
+ screen = [getUIScreenClass() mainScreen];
+
+ CGFloat scale = screen.scale;
+
+ // We can remove this clamping once <rdar://problem/16395475> is fixed.
+ const CGFloat maximumClassicScreenScaleFactor = 2;
+ if ([[getUIApplicationClass() sharedApplication] _isClassic])
+ return std::min(scale, maximumClassicScreenScaleFactor);
+
+ return scale;
+}
+
</ins><span class="cx"> } // namespace WebCore
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1,79 +0,0 @@
</span><del>-/*
- * Copyright 2012 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef WebCoreSystemInterfaceIOS_h
-#define WebCoreSystemInterfaceIOS_h
-
-#include <Availability.h>
-
-typedef enum {
- wkIOSSystemVersion_3_0 = __IPHONE_3_0,
- wkIOSSystemVersion_4_2 = __IPHONE_4_2,
- wkIOSSystemVersion_5_0 = __IPHONE_5_0,
- wkIOSSystemVersion_6_0 = __IPHONE_6_0,
- wkIOSSystemVersion_9_0 = __IPHONE_9_0,
-} wkIOSSystemVersion;
-
-bool iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion);
-
-extern bool (*wkExecutableWasLinkedOnOrAfterIOSVersion)(int);
-
-extern bool (*wkIsGB18030ComplianceRequired)(void);
-
-inline bool iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion version)
-{
- return wkExecutableWasLinkedOnOrAfterIOSVersion(version);
-}
-
-typedef enum {
- wkDeviceClassInvalid = -1,
- wkDeviceClassiPad,
- wkDeviceClassiPhone,
- wkDeviceClassiPod,
-} wkDeviceClass;
-extern int (*wkGetDeviceClass)(void);
-inline wkDeviceClass iosDeviceClass(void)
-{
- int deviceClass = wkGetDeviceClass();
- switch (deviceClass) {
- case wkDeviceClassInvalid:
- case wkDeviceClassiPad:
- case wkDeviceClassiPhone:
- case wkDeviceClassiPod:
- return (wkDeviceClass)deviceClass;
- }
- assert(false);
- return wkDeviceClassInvalid;
-}
-
-extern CFStringRef (*wkGetUserAgent)(void);
-extern CFStringRef (*wkGetDeviceName)(void);
-extern CFStringRef (*wkGetOSNameForUserAgent)(void);
-extern CFStringRef (*wkGetPlatformNameForNavigator)(void);
-extern CFStringRef (*wkGetVendorNameForNavigator)(void);
-
-extern bool (*wkIsOptimizedFullscreenSupported)(void);
-
-#endif // WebCoreSystemInterfaceIOS_h
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebCoreSystemInterfaceIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -46,13 +46,7 @@
</span><span class="cx"> WEBCORE_EXPORT void (*wkSetCONNECTProxyAuthorizationForStream)(CFReadStreamRef, CFStringRef proxyAuthorizationString);
</span><span class="cx"> WEBCORE_EXPORT void (*wkSetCookieStoragePrivateBrowsingEnabled)(BOOL);
</span><span class="cx"> WEBCORE_EXPORT CFHTTPMessageRef (*wkCopyCONNECTProxyResponse)(CFReadStreamRef, CFURLRef responseURL, CFStringRef proxyHost, CFNumberRef proxyPort);
</span><del>-WEBCORE_EXPORT bool (*wkExecutableWasLinkedOnOrAfterIOSVersion)(int);
-WEBCORE_EXPORT int (*wkGetDeviceClass)(void);
-WEBCORE_EXPORT CGSize (*wkGetScreenSize)(void);
-WEBCORE_EXPORT CGSize (*wkGetAvailableScreenSize)(void);
</del><span class="cx"> WEBCORE_EXPORT void (*wkSetLayerContentsScale)(CALayer *);
</span><del>-WEBCORE_EXPORT float (*wkGetScreenScaleFactor)(void);
-WEBCORE_EXPORT bool (*wkIsGB18030ComplianceRequired)(void);
</del><span class="cx"> WEBCORE_EXPORT void (*wkCFURLRequestAllowAllPostCaching)(CFURLRequestRef);
</span><span class="cx"> WEBCORE_EXPORT CFArrayRef (*wkCopyNSURLResponseCertificateChain)(NSURLResponse*);
</span><span class="cx"> WEBCORE_EXPORT CFStringEncoding (*wkGetWebDefaultCFStringEncoding)(void);
</span><span class="lines">@@ -104,14 +98,6 @@
</span><span class="cx"> WEBCORE_EXPORT CFStringRef (*wkCachePartitionKey)(void);
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-WEBCORE_EXPORT CFStringRef (*wkGetUserAgent)(void);
-WEBCORE_EXPORT CFStringRef (*wkGetDeviceName)(void);
-WEBCORE_EXPORT CFStringRef (*wkGetOSNameForUserAgent)(void);
-WEBCORE_EXPORT CFStringRef (*wkGetPlatformNameForNavigator)(void);
-WEBCORE_EXPORT CFStringRef (*wkGetVendorNameForNavigator)(void);
-
-WEBCORE_EXPORT bool (*wkIsOptimizedFullscreenSupported)(void);
-
</del><span class="cx"> WEBCORE_EXPORT int (*wkExernalDeviceTypeForPlayer)(AVPlayer *);
</span><span class="cx"> WEBCORE_EXPORT NSString *(*wkExernalDeviceDisplayNameForPlayer)(AVPlayer *);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKith"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -158,6 +158,8 @@
</span><span class="cx"> void doEnterFullscreen();
</span><span class="cx"> };
</span><span class="cx">
</span><ins>+bool supportsPictureInPicture();
+
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWebVideoFullscreenInterfaceAVKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -26,8 +26,10 @@
</span><span class="cx">
</span><span class="cx"> #import "config.h"
</span><span class="cx">
</span><del>-#if PLATFORM(IOS) && HAVE(AVKIT)
</del><ins>+#if PLATFORM(IOS)
</ins><span class="cx">
</span><ins>+#if HAVE(AVKIT)
+
</ins><span class="cx"> #import "WebVideoFullscreenInterfaceAVKit.h"
</span><span class="cx">
</span><span class="cx"> #import "AVKitSPI.h"
</span><span class="lines">@@ -57,6 +59,7 @@
</span><span class="cx"> SOFT_LINK_CONSTANT(AVFoundation, AVLayerVideoGravityResizeAspectFill, NSString *)
</span><span class="cx">
</span><span class="cx"> SOFT_LINK_FRAMEWORK(AVKit)
</span><ins>+SOFT_LINK_CLASS(AVKit, AVPictureInPictureController)
</ins><span class="cx"> SOFT_LINK_CLASS(AVKit, AVPlayerController)
</span><span class="cx"> SOFT_LINK_CLASS(AVKit, AVPlayerViewController)
</span><span class="cx"> SOFT_LINK_CLASS(AVKit, AVValueTiming)
</span><span class="lines">@@ -1302,7 +1305,7 @@
</span><span class="cx">
</span><span class="cx"> bool WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture() const
</span><span class="cx"> {
</span><del>- return [m_playerController isPlaying] && m_mode == HTMLMediaElementEnums::VideoFullscreenModeStandard && wkIsOptimizedFullscreenSupported();
</del><ins>+ return [m_playerController isPlaying] && m_mode == HTMLMediaElementEnums::VideoFullscreenModeStandard && supportsPictureInPicture();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebVideoFullscreenInterfaceAVKit::fullscreenMayReturnToInline(std::function<void(bool)> callback)
</span><span class="lines">@@ -1438,4 +1441,15 @@
</span><span class="cx"> m_videoFullscreenModel->fullscreenModeChanged(m_mode);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+#endif // HAVE(AVKIT)
+
+bool WebCore::supportsPictureInPicture()
+{
+#if PLATFORM(IOS) && HAVE(AVKIT)
+ return [getAVPictureInPictureControllerClass() isPictureInPictureSupported];
+#else
+ return false;
</ins><span class="cx"> #endif
</span><ins>+}
+
+#endif // PLATFORM(IOS)
</ins></span></pre></div>
<a id="trunkSourceWebCoreplatformioswakWAKWindowmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/wak/WAKWindow.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/wak/WAKWindow.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/ios/wak/WAKWindow.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">
</span><span class="cx"> #import "LegacyTileCache.h"
</span><ins>+#import "PlatformScreen.h"
</ins><span class="cx"> #import "WAKViewInternal.h"
</span><span class="cx"> #import "WebCoreSystemInterface.h"
</span><span class="cx"> #import "WebCoreThreadRun.h"
</span><span class="lines">@@ -67,7 +68,7 @@
</span><span class="cx"> _hostLayer = [layer retain];
</span><span class="cx">
</span><span class="cx"> _frame = [_hostLayer frame];
</span><del>- _screenScale = wkGetScreenScaleFactor();
</del><ins>+ _screenScale = screenScaleFactor();
</ins><span class="cx">
</span><span class="cx"> _tileCache = new LegacyTileCache(self);
</span><span class="cx">
</span><span class="lines">@@ -86,7 +87,7 @@
</span><span class="cx"> return nil;
</span><span class="cx">
</span><span class="cx"> _frame = frame;
</span><del>- _screenScale = wkGetScreenScaleFactor();
</del><ins>+ _screenScale = screenScaleFactor();
</ins><span class="cx">
</span><span class="cx"> _exposedScrollViewRect = CGRectNull;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformioswakWKGraphicsmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/wak/WKGraphics.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/wak/WKGraphics.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/ios/wak/WKGraphics.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">
</span><span class="cx"> #import "CoreGraphicsSPI.h"
</span><span class="cx"> #import "FontCascade.h"
</span><del>-#import "WebCoreSystemInterface.h"
</del><ins>+#import "PlatformScreen.h"
</ins><span class="cx"> #import "WebCoreThread.h"
</span><span class="cx"> #import <ImageIO/ImageIO.h>
</span><span class="cx"> #import <wtf/StdLibExtras.h>
</span><span class="lines">@@ -113,9 +113,9 @@
</span><span class="cx">
</span><span class="cx"> CGImageRef image = nullptr;
</span><span class="cx"> NSData *imageData = nullptr;
</span><del>- for (unsigned scaleFactor = wkGetScreenScaleFactor(); scaleFactor > 0; --scaleFactor) {
</del><ins>+ for (unsigned scaleFactor = screenScaleFactor(); scaleFactor > 0; --scaleFactor) {
</ins><span class="cx"> imageData = [NSData dataWithContentsOfFile:imageResourcePath(image_file, scaleFactor)];
</span><del>- ASSERT(scaleFactor != wkGetScreenScaleFactor() || imageData);
</del><ins>+ ASSERT(scaleFactor != screenScaleFactor() || imageData);
</ins><span class="cx"> if (imageData)
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="lines">@@ -131,7 +131,7 @@
</span><span class="cx"> static void WKDrawPatternBitmap(void *info, CGContextRef c)
</span><span class="cx"> {
</span><span class="cx"> CGImageRef image = (CGImageRef)info;
</span><del>- CGFloat scale = wkGetScreenScaleFactor();
</del><ins>+ CGFloat scale = screenScaleFactor();
</ins><span class="cx"> CGContextDrawImage(c, CGRectMake(0, 0, CGImageGetWidth(image) / scale, CGImageGetHeight(image) / scale), image);
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -150,7 +150,7 @@
</span><span class="cx"> // retain image since it's freed by our callback
</span><span class="cx"> CGImageRetain(imageRef);
</span><span class="cx">
</span><del>- CGFloat scale = wkGetScreenScaleFactor();
</del><ins>+ CGFloat scale = screenScaleFactor();
</ins><span class="cx"> return CGPatternCreate((void*)imageRef, CGRectMake(0, 0, CGImageGetWidth(imageRef) / scale, CGImageGetHeight(imageRef) / scale), CGAffineTransformIdentity, CGImageGetWidth(imageRef) / scale, CGImageGetHeight(imageRef) / scale, kCGPatternTilingConstantSpacing, 1 /*isColored*/, &WKPatternBitmapCallbacks);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacWebCoreSystemInterfaceh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -28,10 +28,6 @@
</span><span class="cx">
</span><span class="cx"> #include <objc/objc.h>
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
-#include "WebCoreSystemInterfaceIOS.h"
-#endif
-
</del><span class="cx"> typedef const struct __CFString * CFStringRef;
</span><span class="cx"> typedef const struct __CFNumber * CFNumberRef;
</span><span class="cx"> typedef const struct __CFDictionary * CFDictionaryRef;
</span><span class="lines">@@ -237,10 +233,7 @@
</span><span class="cx"> #endif // !PLATFORM(IOS)
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>-extern CGSize (*wkGetScreenSize)(void);
-extern CGSize (*wkGetAvailableScreenSize)(void);
</del><span class="cx"> extern void (*wkSetLayerContentsScale)(CALayer *);
</span><del>-extern float (*wkGetScreenScaleFactor)(void);
</del><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> typedef const struct __CFURLStorageSession* CFURLStorageSessionRef;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspicocoaDynamicLinkerSPIh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/spi/cocoa/DynamicLinkerSPI.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/cocoa/DynamicLinkerSPI.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/spi/cocoa/DynamicLinkerSPI.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -35,8 +35,11 @@
</span><span class="cx"> #else
</span><span class="cx">
</span><span class="cx"> #define DYLD_IOS_VERSION_3_0 0x00030000
</span><del>-#define DYLD_IOS_VERSION_6_0 0x00060000;
-#define DYLD_IOS_VERSION_7_0 0x00070000;
</del><ins>+#define DYLD_IOS_VERSION_4_2 0x00040200
+#define DYLD_IOS_VERSION_5_0 0x00050000
+#define DYLD_IOS_VERSION_6_0 0x00060000
+#define DYLD_IOS_VERSION_7_0 0x00070000
+#define DYLD_IOS_VERSION_9_0 0x00090000
</ins><span class="cx">
</span><span class="cx"> #endif
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspiiosMobileGestaltSPIh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/spi/ios/MobileGestaltSPI.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/ios/MobileGestaltSPI.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/spi/ios/MobileGestaltSPI.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -41,7 +41,21 @@
</span><span class="cx"> EXTERN_C const CFStringRef kMGQAppleInternalInstallCapability = CFSTR("apple-internal-install");
</span><span class="cx"> EXTERN_C const CFStringRef kMGQMainScreenPitch = CFSTR("main-screen-pitch");
</span><span class="cx"> EXTERN_C const CFStringRef kMGQMainScreenScale = CFSTR("main-screen-scale");
</span><ins>+EXTERN_C const CFStringRef kMGQiPadCapability = CFSTR("ipad");
+EXTERN_C const CFStringRef kMGQDeviceName = CFSTR("DeviceName");
+EXTERN_C const CFStringRef kMGQDeviceClassNumber = CFSTR("DeviceClassNumber");
</ins><span class="cx">
</span><ins>+typedef enum {
+ MGDeviceClassInvalid = -1,
+ /* 0 is intentionally not in this enum */
+ MGDeviceClassiPhone = 1,
+ MGDeviceClassiPod = 2,
+ MGDeviceClassiPad = 3,
+ MGDeviceClassAppleTV = 4,
+ /* 5 is intentionally not in this enum */
+ MGDeviceClassWatch = 6,
+} MGDeviceClass;
+
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> EXTERN_C CFTypeRef MGCopyAnswer(CFStringRef question, CFDictionaryRef options);
</span><span class="lines">@@ -50,6 +64,14 @@
</span><span class="cx"> EXTERN_C bool MGGetBoolAnswer(CFStringRef question);
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#ifndef MGGetSInt32Answer
+EXTERN_C SInt32 MGGetSInt32Answer(CFStringRef question, SInt32 defaultValue);
</ins><span class="cx"> #endif
</span><span class="cx">
</span><ins>+#ifndef MGGetFloat32Answer
+EXTERN_C Float32 MGGetFloat32Answer(CFStringRef question, Float32 defaultValue);
+#endif
+
+#endif
+
</ins><span class="cx"> #endif // MobileGestaltSPI_h
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspiiosUIColorSPIh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1,46 +0,0 @@
</span><del>-/*
- * Copyright (C) 2015 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#if USE(APPLE_INTERNAL_SDK)
-
-#import <UIKit/UIInterface_Private.h>
-
-#else
-
-#import <UIKit/UIColor.h>
-
-@interface UIColor ()
-
-+ (UIColor *)systemBlueColor;
-+ (UIColor *)systemGrayColor;
-+ (UIColor *)systemGreenColor;
-+ (UIColor *)systemOrangeColor;
-+ (UIColor *)systemPinkColor;
-+ (UIColor *)systemRedColor;
-+ (UIColor *)systemYellowColor;
-
-@end
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformspiiosUIKitSPIhfromrev191901trunkSourceWebCoreplatformspiiosUIColorSPIh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebCore/platform/spi/ios/UIKitSPI.h (from rev 191901, trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h) (0 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/ios/UIKitSPI.h         (rev 0)
+++ trunk/Source/WebCore/platform/spi/ios/UIKitSPI.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -0,0 +1,60 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#if USE(APPLE_INTERNAL_SDK)
+
+#import <UIKit/UIApplication_Private.h>
+#import <UIKit/UIInterface_Private.h>
+#import <UIKit/UIScreen_Private.h>
+
+#else
+
+#import <UIKit/UIKit.h>
+
+@interface UIApplication ()
+
+- (BOOL)_isClassic;
+
+@end
+
+@interface UIColor ()
+
++ (UIColor *)systemBlueColor;
++ (UIColor *)systemGrayColor;
++ (UIColor *)systemGreenColor;
++ (UIColor *)systemOrangeColor;
++ (UIColor *)systemPinkColor;
++ (UIColor *)systemRedColor;
++ (UIColor *)systemYellowColor;
+
+@end
+
+@interface UIScreen ()
+
+@property (nonatomic, readonly) CGRect _referenceBounds;
+
+@end
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderThemeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderThemeIOS.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebCore/rendering/RenderThemeIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -56,7 +56,7 @@
</span><span class="cx"> #import "RenderThemeIOS.h"
</span><span class="cx"> #import "RenderView.h"
</span><span class="cx"> #import "SoftLinking.h"
</span><del>-#import "UIColorSPI.h"
</del><ins>+#import "UIKitSPI.h"
</ins><span class="cx"> #import "UserAgentScripts.h"
</span><span class="cx"> #import "UserAgentStyleSheets.h"
</span><span class="cx"> #import "WebCoreThreadRun.h"
</span></span></pre></div>
<a id="trunkSourceWebKitiosChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/ChangeLog (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/ChangeLog        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit/ios/ChangeLog        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1,3 +1,16 @@
</span><ins>+2015-10-31 Andy Estes <aestes@apple.com>
+
+ Replace iOS-only WebKitSystemInterface calls with SPI
+ https://bugs.webkit.org/show_bug.cgi?id=150763
+
+ Reviewed by Darin Adler.
+
+ * Misc/WebUIKitSupport.mm:
+ (linkedOnOrAfterIOS5): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
+ (WebKitGetMinimumZoomFontSize): Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize().
+ * WebCoreSupport/WebChromeClientIOS.mm:
+ (WebChromeClientIOS::screenSize): Used screenSize() instead of WKGetScreenSize().
+
</ins><span class="cx"> 2015-10-14 Zhuo Li <zachli@apple.com>
</span><span class="cx">
</span><span class="cx"> Augment <input type=search>’s recent search history with the time each entry was added,
</span></span></pre></div>
<a id="trunkSourceWebKitiosMiscWebUIKitSupportmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit/ios/Misc/WebUIKitSupport.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -33,8 +33,10 @@
</span><span class="cx"> #import "WebPlatformStrategies.h"
</span><span class="cx"> #import "WebSystemInterface.h"
</span><span class="cx"> #import "WebViewPrivate.h"
</span><ins>+#import <WebCore/DynamicLinkerSPI.h>
</ins><span class="cx"> #import <WebCore/PathUtilities.h>
</span><span class="cx"> #import <WebCore/ResourceRequest.h>
</span><ins>+#import <WebCore/Settings.h>
</ins><span class="cx"> #import <WebCore/TextBreakIterator.h>
</span><span class="cx"> #import <WebCore/WebCoreSystemInterface.h>
</span><span class="cx"> #import <WebCore/WebCoreThreadSystemInterface.h>
</span><span class="lines">@@ -46,7 +48,7 @@
</span><span class="cx">
</span><span class="cx"> static inline bool linkedOnOrAfterIOS5()
</span><span class="cx"> {
</span><del>- static bool s_linkedOnOrAfterIOS5 = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_5_0);
</del><ins>+ static bool s_linkedOnOrAfterIOS5 = dyld_get_program_sdk_version() >= DYLD_IOS_VERSION_5_0;
</ins><span class="cx"> return s_linkedOnOrAfterIOS5;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -83,7 +85,7 @@
</span><span class="cx">
</span><span class="cx"> float WebKitGetMinimumZoomFontSize(void)
</span><span class="cx"> {
</span><del>- return WKGetMinimumZoomFontSize();
</del><ins>+ return Settings::defaultMinimumZoomFontSize();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> int WebKitGetLastLineBreakInBuffer(UChar *characters, int position, int length)
</span></span></pre></div>
<a id="trunkSourceWebKitiosWebCoreSupportWebChromeClientIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit/ios/WebCoreSupport/WebChromeClientIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -54,6 +54,7 @@
</span><span class="cx"> #import <WebCore/HTMLNames.h>
</span><span class="cx"> #import <WebCore/IntRect.h>
</span><span class="cx"> #import <WebCore/Node.h>
</span><ins>+#import <WebCore/PlatformScreen.h>
</ins><span class="cx"> #import <WebCore/RenderBox.h>
</span><span class="cx"> #import <WebCore/RenderObject.h>
</span><span class="cx"> #import <WebCore/RuntimeApplicationChecksIOS.h>
</span><span class="lines">@@ -61,10 +62,6 @@
</span><span class="cx"> #import <WebCore/WAKWindow.h>
</span><span class="cx"> #import <WebCore/WebCoreThreadMessage.h>
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
-#include "WebKitSystemInterface.h"
-#endif
-
</del><span class="cx"> using namespace WebCore;
</span><span class="cx">
</span><span class="cx"> void WebChromeClientIOS::setWindowRect(const WebCore::FloatRect& r)
</span><span class="lines">@@ -174,7 +171,7 @@
</span><span class="cx">
</span><span class="cx"> FloatSize WebChromeClientIOS::screenSize() const
</span><span class="cx"> {
</span><del>- return FloatSize(WKGetScreenSize());
</del><ins>+ return FloatSize(screenSize());
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> FloatSize WebChromeClientIOS::availableScreenSize() const
</span></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit/mac/ChangeLog        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1,3 +1,18 @@
</span><ins>+2015-10-31 Andy Estes <aestes@apple.com>
+
+ Replace iOS-only WebKitSystemInterface calls with SPI
+ https://bugs.webkit.org/show_bug.cgi?id=150763
+
+ Reviewed by Darin Adler.
+
+ * WebCoreSupport/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Deleted.
+ * WebView/WebPreferences.mm:
+ (+[WebPreferences initialize]): Used deviceClass() and Settings::defaultMinimumZoomFontSize() instead of WKGetDeviceClass() and WKGetMinimumZoomFontSize().
+ * WebView/WebView.mm:
+ (shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
+ (-[WebView _updateScreenScaleFromWindow]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
+
</ins><span class="cx"> 2015-11-02 Youenn Fablet <youenn.fablet@crf.canon.fr>
</span><span class="cx">
</span><span class="cx"> Rename JSDOMWrapper.impl to JSDOMWrapper.wrapped
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebSystemInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -111,16 +111,6 @@
</span><span class="cx"> INIT(QTClearMediaDownloadCache);
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
- INIT(ExecutableWasLinkedOnOrAfterIOSVersion);
- INIT(GetDeviceClass);
- INIT(GetScreenSize);
- INIT(GetAvailableScreenSize);
- INIT(GetScreenScaleFactor);
- INIT(IsGB18030ComplianceRequired);
- INIT(IsOptimizedFullscreenSupported);
-#endif
-
</del><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> INIT(ExecutableWasLinkedOnOrBeforeSnowLeopard);
</span><span class="cx"> INIT(CopyDefaultSearchProviderDisplayName);
</span><span class="lines">@@ -170,14 +160,6 @@
</span><span class="cx">
</span><span class="cx"> INIT(CFURLRequestAllowAllPostCaching);
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
- INIT(GetUserAgent);
- INIT(GetDeviceName);
- INIT(GetOSNameForUserAgent);
- INIT(GetPlatformNameForNavigator);
- INIT(GetVendorNameForNavigator);
-#endif
-
</del><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> INIT(NSElasticDeltaForTimeDelta);
</span><span class="cx"> INIT(NSElasticDeltaForReboundDelta);
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -59,6 +59,7 @@
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> #import <AudioToolbox/AudioSession.h>
</span><ins>+#import <WebCore/Device.h>
</ins><span class="cx"> #import <WebCore/GraphicsContext.h>
</span><span class="cx"> #import <WebCore/ImageSource.h>
</span><span class="cx"> #import <WebCore/WebCoreThreadMessage.h>
</span><span class="lines">@@ -396,7 +397,7 @@
</span><span class="cx"> WTF::initializeMainThreadToProcessMainThread();
</span><span class="cx"> RunLoop::initializeMainRunLoop();
</span><span class="cx"> #else
</span><del>- bool allowsInlineMediaPlayback = WKGetDeviceClass() == WKDeviceClassiPad;
</del><ins>+ bool allowsInlineMediaPlayback = WebCore::deviceClass() == MGDeviceClassiPad;
</ins><span class="cx"> bool requiresPlaysInlineAttribute = !allowsInlineMediaPlayback;
</span><span class="cx"> #endif
</span><span class="cx"> InitWebCoreSystemInterface();
</span><span class="lines">@@ -576,7 +577,7 @@
</span><span class="cx"> @"", WebKitNetworkInterfaceNamePreferenceKey,
</span><span class="cx"> #endif
</span><span class="cx"> #if ENABLE(IOS_TEXT_AUTOSIZING)
</span><del>- [NSNumber numberWithFloat:WKGetMinimumZoomFontSize()], WebKitMinimumZoomFontSizePreferenceKey,
</del><ins>+ [NSNumber numberWithFloat:Settings::defaultMinimumZoomFontSize()], WebKitMinimumZoomFontSizePreferenceKey,
</ins><span class="cx"> #endif
</span><span class="cx"> [NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheTotalQuota,
</span><span class="cx"> [NSNumber numberWithLongLong:ApplicationCacheStorage::noQuota()], WebKitApplicationCacheDefaultOriginQuota,
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebView.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -243,6 +243,7 @@
</span><span class="cx"> #import "WebStorageManagerPrivate.h"
</span><span class="cx"> #import "WebUIKitSupport.h"
</span><span class="cx"> #import "WebVisiblePosition.h"
</span><ins>+#import <WebCore/DynamicLinkerSPI.h>
</ins><span class="cx"> #import <WebCore/EventNames.h>
</span><span class="cx"> #import <WebCore/FontCache.h>
</span><span class="cx"> #import <WebCore/GraphicsLayer.h>
</span><span class="lines">@@ -250,6 +251,7 @@
</span><span class="cx"> #import <WebCore/LegacyTileCache.h>
</span><span class="cx"> #import <WebCore/MobileGestaltSPI.h>
</span><span class="cx"> #import <WebCore/NetworkStateNotifier.h>
</span><ins>+#import <WebCore/PlatformScreen.h>
</ins><span class="cx"> #import <WebCore/RuntimeApplicationChecksIOS.h>
</span><span class="cx"> #import <WebCore/SQLiteDatabaseTracker.h>
</span><span class="cx"> #import <WebCore/SmartReplace.h>
</span><span class="lines">@@ -850,7 +852,7 @@
</span><span class="cx"> static bool shouldAllowPictureInPictureMediaPlayback()
</span><span class="cx"> {
</span><span class="cx"> #if PLATFORM(IOS)
</span><del>- static bool shouldAllowPictureInPictureMediaPlayback = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
</del><ins>+ static bool shouldAllowPictureInPictureMediaPlayback = dyld_get_program_sdk_version() >= DYLD_IOS_VERSION_9_0;
</ins><span class="cx"> return shouldAllowPictureInPictureMediaPlayback;
</span><span class="cx"> #else
</span><span class="cx"> return false;
</span><span class="lines">@@ -5398,7 +5400,7 @@
</span><span class="cx"> if (WAKWindow *window = [self window])
</span><span class="cx"> scaleFactor = [window screenScale];
</span><span class="cx"> else
</span><del>- scaleFactor = WKGetScreenScaleFactor();
</del><ins>+ scaleFactor = screenScaleFactor();
</ins><span class="cx">
</span><span class="cx"> _private->page->setDeviceScaleFactor(scaleFactor);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/ChangeLog        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1,3 +1,36 @@
</span><ins>+2015-10-31 Andy Estes <aestes@apple.com>
+
+ Replace iOS-only WebKitSystemInterface calls with SPI
+ https://bugs.webkit.org/show_bug.cgi?id=150763
+
+ Reviewed by Darin Adler.
+
+ * Platform/ios/AccessibilityIOS.h: Added.
+ * Platform/ios/AccessibilityIOS.mm: Added.
+ (WebKit::newAccessibilityRemoteToken): Upstreamed the implementation of WKAXRemoteToken() from WebKitSystemInterface.
+ * Shared/WebPreferencesDefinitions.h: Used Settings::defaultMinimumZoomFontSize() instead of WKGetMinimumZoomFontSize().
+ * Shared/WebPreferencesStore.cpp:
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (shouldAllowPictureInPictureMediaPlayback): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
+ (-[WKWebView _takeViewSnapshot]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
+ * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
+ (-[WKWebViewConfiguration init]): Used deviceClass() instead of WKGetDeviceClass().
+ * UIProcess/ios/WKContentView.mm:
+ (-[WKContentView _commonInitializationWithProcessPool:configuration:]): Used screenScaleFactor() instead of WKGetScaleFactorForScreen().
+ (-[WKContentView _updateForScreen:]): Ditto.
+ (storeAccessibilityRemoteConnectionInformation): Upstreamed the implementation of WKAXStoreRemoteConnectionInformation() from WebKitSystemInterface.
+ (-[WKContentView _accessibilityRegisterUIProcessTokens]): Used newAccessibilityRemoteToken() and storeAccessibilityRemoteConnectionInformation() instead of WKAXRemoteToken() and WKAXStoreRemoteConnectionInformation().
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ * UIProcess/ios/WebPageProxyIOS.mm:
+ (WebKit::WebPageProxy::screenSize): Used screenSize() instead of WKGetScreenSize().
+ (WebKit::WebPageProxy::availableScreenSize): Used availableScreenSize() instead of WKGetAvailableScreenSize().
+ (WebKit::WebPageProxy::textAutosizingWidth): Used screenSize() instead of WKGetScreenSize().
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
+ (InitWebCoreSystemInterface): Deleted.
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::platformInitializeAccessibility): Used newAccessibilityRemoteToken() instead of WKAXRemoteToken().
+
</ins><span class="cx"> 2015-11-02 Yongjun Zhang <yongjun_zhang@apple.com>
</span><span class="cx">
</span><span class="cx"> Add objC delegate callback for webProcessDidBecomeResponsive and webProcessDidBecomeUnresponsive.
</span></span></pre></div>
<a id="trunkSourceWebKit2PlatformiosAccessibilityIOShfromrev191901trunkSourceWebCoreplatformspiiosUIColorSPIh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.h (from rev 191901, trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h) (0 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.h         (rev 0)
+++ trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -0,0 +1,35 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <wtf/RetainPtr.h>
+
+OBJC_CLASS NSData;
+OBJC_CLASS NSUUID;
+
+namespace WebKit {
+
+NSData *newAccessibilityRemoteToken(NSUUID *);
+
+} // namespace WebKit
</ins></span></pre></div>
<a id="trunkSourceWebKit2PlatformiosAccessibilityIOSmmfromrev191901trunkSourceWebCoreplatformspiiosUIColorSPIh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.mm (from rev 191901, trunk/Source/WebCore/platform/spi/ios/UIColorSPI.h) (0 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.mm         (rev 0)
+++ trunk/Source/WebKit2/Platform/ios/AccessibilityIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -0,0 +1,42 @@
</span><ins>+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "AccessibilityIOS.h"
+
+#if PLATFORM(IOS)
+
+namespace WebKit {
+
+NSData *newAccessibilityRemoteToken(NSUUID *uuid)
+{
+ if (!uuid)
+ return nil;
+ return [NSKeyedArchiver archivedDataWithRootObject:@{ @"ax-pid" : @(getpid()), @"ax-uuid" : [uuid UUIDString], @"ax-register" : @YES }];
+}
+
+} // namespace WebKit
+
+#endif // PLATFORM(IOS)
</ins></span></pre></div>
<a id="trunkSourceWebKit2SharedWebPreferencesDefinitionsh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -55,7 +55,7 @@
</span><span class="cx"> #define DEFAULT_TEXT_AREAS_ARE_RESIZABLE false
</span><span class="cx"> #define DEFAULT_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY false
</span><span class="cx"> #define DEFAULT_SHOULD_RESPECT_IMAGE_ORIENTATION true
</span><del>-#define DEFAULT_MINIMUM_FONT_ZOOM_SIZE WKGetMinimumZoomFontSize()
</del><ins>+#define DEFAULT_MINIMUM_FONT_ZOOM_SIZE WebCore::Settings::defaultMinimumZoomFontSize()
</ins><span class="cx"> #define DEFAULT_PASSWORD_ECHO_ENABLED true
</span><span class="cx"> #define DEFAULT_ALLOWS_INLINE_MEDIA_PLAYBACK false
</span><span class="cx"> #define DEFAULT_INLINE_MEDIA_PLAYBACK_REQUIRES_PLAYS_INLINE_ATTRIBUTE true
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedWebPreferencesStorecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.cpp        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -33,10 +33,6 @@
</span><span class="cx"> #include <WebCore/TextEncodingRegistry.h>
</span><span class="cx"> #include <wtf/NeverDestroyed.h>
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
-#import <WebKitSystemInterfaceIOS.h>
-#endif
-
</del><span class="cx"> using namespace WebCore;
</span><span class="cx">
</span><span class="cx"> namespace WebKit {
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessAPICocoaWKWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -104,6 +104,7 @@
</span><span class="cx"> #import "WebVideoFullscreenManagerProxy.h"
</span><span class="cx"> #import <UIKit/UIApplication.h>
</span><span class="cx"> #import <WebCore/CoreGraphicsSPI.h>
</span><ins>+#import <WebCore/DynamicLinkerSPI.h>
</ins><span class="cx"> #import <WebCore/FrameLoaderTypes.h>
</span><span class="cx"> #import <WebCore/InspectorOverlay.h>
</span><span class="cx"> #import <WebCore/QuartzCoreSPI.h>
</span><span class="lines">@@ -280,7 +281,7 @@
</span><span class="cx">
</span><span class="cx"> static bool shouldAllowPictureInPictureMediaPlayback()
</span><span class="cx"> {
</span><del>- static bool shouldAllowPictureInPictureMediaPlayback = iosExecutableWasLinkedOnOrAfterVersion(wkIOSSystemVersion_9_0);
</del><ins>+ static bool shouldAllowPictureInPictureMediaPlayback = dyld_get_program_sdk_version() >= DYLD_IOS_VERSION_9_0;
</ins><span class="cx"> return shouldAllowPictureInPictureMediaPlayback;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1136,7 +1137,7 @@
</span><span class="cx">
</span><span class="cx"> - (PassRefPtr<WebKit::ViewSnapshot>)_takeViewSnapshot
</span><span class="cx"> {
</span><del>- float deviceScale = WKGetScreenScaleFactor();
</del><ins>+ float deviceScale = WebCore::screenScaleFactor();
</ins><span class="cx"> WebCore::FloatSize snapshotSize(self.bounds.size);
</span><span class="cx"> snapshotSize.scale(deviceScale, deviceScale);
</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 (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewConfiguration.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> #import "UIKitSPI.h"
</span><del>-#import "WebKitSystemInterfaceIOS.h"
</del><ins>+#import <WebCore/Device.h>
</ins><span class="cx"> #endif
</span><span class="cx">
</span><span class="cx"> template<typename T> class LazyInitialized {
</span><span class="lines">@@ -109,7 +109,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> _requiresUserActionForMediaPlayback = YES;
</span><span class="cx"> _allowsPictureInPictureMediaPlayback = YES;
</span><del>- _allowsInlineMediaPlayback = WKGetDeviceClass() == WKDeviceClassiPad;
</del><ins>+ _allowsInlineMediaPlayback = WebCore::deviceClass() == MGDeviceClassiPad;
</ins><span class="cx"> _inlineMediaPlaybackRequiresPlaysInlineAttribute = !_allowsInlineMediaPlayback;
</span><span class="cx"> _mediaDataLoadsAutomatically = NO;
</span><span class="cx"> #endif
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">
</span><span class="cx"> #import "APIPageConfiguration.h"
</span><ins>+#import "AccessibilityIOS.h"
</ins><span class="cx"> #import "ApplicationStateTracker.h"
</span><span class="cx"> #import "PageClientImplIOS.h"
</span><span class="cx"> #import "RemoteLayerTreeDrawingAreaProxy.h"
</span><span class="lines">@@ -44,7 +45,6 @@
</span><span class="cx"> #import "WKWebViewInternal.h"
</span><span class="cx"> #import "WebFrameProxy.h"
</span><span class="cx"> #import "WebKit2Initialize.h"
</span><del>-#import "WebKitSystemInterfaceIOS.h"
</del><span class="cx"> #import "WebPageGroup.h"
</span><span class="cx"> #import "WebProcessPool.h"
</span><span class="cx"> #import "WebSystemInterface.h"
</span><span class="lines">@@ -53,6 +53,7 @@
</span><span class="cx"> #import <WebCore/FrameView.h>
</span><span class="cx"> #import <WebCore/InspectorOverlay.h>
</span><span class="cx"> #import <WebCore/NotImplemented.h>
</span><ins>+#import <WebCore/PlatformScreen.h>
</ins><span class="cx"> #import <WebCore/QuartzCoreSPI.h>
</span><span class="cx"> #import <wtf/CurrentTime.h>
</span><span class="cx"> #import <wtf/RetainPtr.h>
</span><span class="lines">@@ -188,7 +189,7 @@
</span><span class="cx">
</span><span class="cx"> _page = processPool.createWebPage(*_pageClient, WTF::move(configuration));
</span><span class="cx"> _page->initializeWebPage();
</span><del>- _page->setIntrinsicDeviceScaleFactor(WKGetScaleFactorForScreen([UIScreen mainScreen]));
</del><ins>+ _page->setIntrinsicDeviceScaleFactor(screenScaleFactor([UIScreen mainScreen]));
</ins><span class="cx"> _page->setUseFixedLayout(true);
</span><span class="cx"> _page->setDelegatesScrolling(true);
</span><span class="cx">
</span><span class="lines">@@ -419,7 +420,7 @@
</span><span class="cx"> - (void)_updateForScreen:(UIScreen *)screen
</span><span class="cx"> {
</span><span class="cx"> ASSERT(screen);
</span><del>- _page->setIntrinsicDeviceScaleFactor(WKGetScaleFactorForScreen(screen));
</del><ins>+ _page->setIntrinsicDeviceScaleFactor(screenScaleFactor(screen));
</ins><span class="cx"> [self _accessibilityRegisterUIProcessTokens];
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -429,15 +430,23 @@
</span><span class="cx"> [self _accessibilityRegisterUIProcessTokens];
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+static void storeAccessibilityRemoteConnectionInformation(id element, pid_t pid, mach_port_t sendPort, NSUUID *uuid)
+{
+ // The accessibility bundle needs to know the uuid, pid and mach_port that this object will refer to.
+ objc_setAssociatedObject(element, (void*)[@"ax-uuid" hash], uuid, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+ objc_setAssociatedObject(element, (void*)[@"ax-pid" hash], @(pid), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+ objc_setAssociatedObject(element, (void*)[@"ax-machport" hash], @(sendPort), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
+}
+
</ins><span class="cx"> - (void)_accessibilityRegisterUIProcessTokens
</span><span class="cx"> {
</span><del>- RetainPtr<CFUUIDRef> uuid = adoptCF(CFUUIDCreate(kCFAllocatorDefault));
- NSData *remoteElementToken = WKAXRemoteToken(uuid.get());
</del><ins>+ auto uuid = [NSUUID UUID];
+ NSData *remoteElementToken = newAccessibilityRemoteToken(uuid);
</ins><span class="cx">
</span><span class="cx"> // Store information about the WebProcess that can later be retrieved by the iOS Accessibility runtime.
</span><span class="cx"> if (_page->process().state() == WebProcessProxy::State::Running) {
</span><span class="cx"> IPC::Connection* connection = _page->process().connection();
</span><del>- WKAXStoreRemoteConnectionInformation(self, _page->process().processIdentifier(), connection->identifier().port, uuid.get());
</del><ins>+ storeAccessibilityRemoteConnectionInformation(self, _page->process().processIdentifier(), connection->identifier().port, uuid);
</ins><span class="cx">
</span><span class="cx"> IPC::DataReference elementToken = IPC::DataReference(reinterpret_cast<const uint8_t*>([remoteElementToken bytes]), [remoteElementToken length]);
</span><span class="cx"> _page->registerUIProcessAccessibilityTokens(elementToken, elementToken);
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWKContentViewInteractionmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -72,7 +72,6 @@
</span><span class="cx"> #import <WebCore/WebCoreNSURLExtras.h>
</span><span class="cx"> #import <WebCore/WebEvent.h>
</span><span class="cx"> #import <WebKit/WebSelectionRect.h> // FIXME: WK2 should not include WebKit headers!
</span><del>-#import <WebKitSystemInterfaceIOS.h>
</del><span class="cx"> #import <wtf/RetainPtr.h>
</span><span class="cx">
</span><span class="cx"> @interface UIEvent(UIEventInternal)
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessiosWebPageProxyIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -40,12 +40,12 @@
</span><span class="cx"> #import "UserData.h"
</span><span class="cx"> #import "ViewUpdateDispatcherMessages.h"
</span><span class="cx"> #import "WKBrowsingContextControllerInternal.h"
</span><del>-#import "WebKitSystemInterfaceIOS.h"
</del><span class="cx"> #import "WebPageMessages.h"
</span><span class="cx"> #import "WebProcessProxy.h"
</span><span class="cx"> #import "WebVideoFullscreenManagerProxy.h"
</span><span class="cx"> #import <WebCore/FrameView.h>
</span><span class="cx"> #import <WebCore/NotImplemented.h>
</span><ins>+#import <WebCore/PlatformScreen.h>
</ins><span class="cx"> #import <WebCore/SharedBuffer.h>
</span><span class="cx"> #import <WebCore/UserAgent.h>
</span><span class="cx">
</span><span class="lines">@@ -765,17 +765,17 @@
</span><span class="cx">
</span><span class="cx"> FloatSize WebPageProxy::screenSize()
</span><span class="cx"> {
</span><del>- return FloatSize(WKGetScreenSize());
</del><ins>+ return WebCore::screenSize();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> FloatSize WebPageProxy::availableScreenSize()
</span><span class="cx"> {
</span><del>- return FloatSize(WKGetAvailableScreenSize());
</del><ins>+ return WebCore::availableScreenSize();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> float WebPageProxy::textAutosizingWidth()
</span><span class="cx"> {
</span><del>- return WKGetScreenSize().width;
</del><ins>+ return WebCore::screenSize().width();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void WebPageProxy::dynamicViewportUpdateChangedTarget(double newScale, const WebCore::FloatPoint& newScrollPosition, uint64_t dynamicViewportSizeUpdateID)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebKit2xcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -1236,6 +1236,8 @@
</span><span class="cx">                 A118A9EF1907AD6F00F7C92B /* QuickLookDocumentData.h in Headers */ = {isa = PBXBuildFile; fileRef = A118A9ED1907AD6F00F7C92B /* QuickLookDocumentData.h */; };
</span><span class="cx">                 A118A9F21908B8EA00F7C92B /* _WKNSFileManagerExtras.mm in Sources */ = {isa = PBXBuildFile; fileRef = A118A9F01908B8EA00F7C92B /* _WKNSFileManagerExtras.mm */; };
</span><span class="cx">                 A118A9F31908B8EA00F7C92B /* _WKNSFileManagerExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = A118A9F11908B8EA00F7C92B /* _WKNSFileManagerExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><ins>+                A182D5B41BE6BD250087A7CC /* AccessibilityIOS.mm in Sources */ = {isa = PBXBuildFile; fileRef = A182D5B21BE6BD250087A7CC /* AccessibilityIOS.mm */; };
+                A182D5B51BE6BD250087A7CC /* AccessibilityIOS.h in Headers */ = {isa = PBXBuildFile; fileRef = A182D5B31BE6BD250087A7CC /* AccessibilityIOS.h */; };
</ins><span class="cx">                 A1A4FE5A18DCE9FA00B5EA8A /* _WKDownload.h in Headers */ = {isa = PBXBuildFile; fileRef = A1A4FE5718DCE9FA00B5EA8A /* _WKDownload.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 A1A4FE5B18DCE9FA00B5EA8A /* _WKDownload.mm in Sources */ = {isa = PBXBuildFile; fileRef = A1A4FE5818DCE9FA00B5EA8A /* _WKDownload.mm */; };
</span><span class="cx">                 A1A4FE5C18DCE9FA00B5EA8A /* _WKDownloadInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = A1A4FE5918DCE9FA00B5EA8A /* _WKDownloadInternal.h */; };
</span><span class="lines">@@ -3460,6 +3462,8 @@
</span><span class="cx">                 A118A9ED1907AD6F00F7C92B /* QuickLookDocumentData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuickLookDocumentData.h; path = ios/QuickLookDocumentData.h; sourceTree = "<group>"; };
</span><span class="cx">                 A118A9F01908B8EA00F7C92B /* _WKNSFileManagerExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKNSFileManagerExtras.mm; sourceTree = "<group>"; };
</span><span class="cx">                 A118A9F11908B8EA00F7C92B /* _WKNSFileManagerExtras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKNSFileManagerExtras.h; sourceTree = "<group>"; };
</span><ins>+                A182D5B21BE6BD250087A7CC /* AccessibilityIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AccessibilityIOS.mm; sourceTree = "<group>"; };
+                A182D5B31BE6BD250087A7CC /* AccessibilityIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilityIOS.h; sourceTree = "<group>"; };
</ins><span class="cx">                 A1A4FE5718DCE9FA00B5EA8A /* _WKDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKDownload.h; sourceTree = "<group>"; };
</span><span class="cx">                 A1A4FE5818DCE9FA00B5EA8A /* _WKDownload.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = _WKDownload.mm; sourceTree = "<group>"; };
</span><span class="cx">                 A1A4FE5918DCE9FA00B5EA8A /* _WKDownloadInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = _WKDownloadInternal.h; sourceTree = "<group>"; };
</span><span class="lines">@@ -5958,6 +5962,15 @@
</span><span class="cx">                         path = mac;
</span><span class="cx">                         sourceTree = "<group>";
</span><span class="cx">                 };
</span><ins>+                A182D5B11BE6BCF40087A7CC /* ios */ = {
+                        isa = PBXGroup;
+                        children = (
+                                A182D5B31BE6BD250087A7CC /* AccessibilityIOS.h */,
+                                A182D5B21BE6BD250087A7CC /* AccessibilityIOS.mm */,
+                        );
+                        path = ios;
+                        sourceTree = "<group>";
+                };
</ins><span class="cx">                 A78CCDD5193AC9E3005ECC25 /* SandboxProfiles */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -6731,6 +6744,7 @@
</span><span class="cx">                                 1AA2E51A12E4C05600BC4966 /* cg */,
</span><span class="cx">                                 3709504218A88CDE0087AE5D /* foundation */,
</span><span class="cx">                                 1AE00D6818327C1200087DD7 /* IPC */,
</span><ins>+                                A182D5B11BE6BCF40087A7CC /* ios */,
</ins><span class="cx">                                 1A7E814E1152D2240003695B /* mac */,
</span><span class="cx">                                 CE1A0BCA1A48E6C60054EF74 /* spi */,
</span><span class="cx">                                 51B15A7D138439B200321AD8 /* unix */,
</span><span class="lines">@@ -8148,6 +8162,7 @@
</span><span class="cx">                                 3760881F150413E900FC82C7 /* WebRenderObject.h in Headers */,
</span><span class="cx">                                 510AFFBA16542048001BA05E /* WebResourceLoader.h in Headers */,
</span><span class="cx">                                 51F060E01654317F00F3281B /* WebResourceLoaderMessages.h in Headers */,
</span><ins>+                                A182D5B51BE6BD250087A7CC /* AccessibilityIOS.h in Headers */,
</ins><span class="cx">                                 7C361D731927FA360036A59D /* WebScriptMessageHandler.h in Headers */,
</span><span class="cx">                                 D3B9484911FF4B6500032B39 /* WebSearchPopupMenu.h in Headers */,
</span><span class="cx">                                 1A4832D71A9CDF96008B4DFE /* WebsiteData.h in Headers */,
</span><span class="lines">@@ -9480,6 +9495,7 @@
</span><span class="cx">                                 1AC1336E18565D2B00F3EC05 /* APIPageHandle.cpp in Sources */,
</span><span class="cx">                                 7CE4D21F1A4914CA00C7F152 /* APIProcessPoolConfiguration.cpp in Sources */,
</span><span class="cx">                                 FED3C1DC1B447EAC00E0EB7F /* APISerializedScriptValueCocoa.mm in Sources */,
</span><ins>+                                A182D5B41BE6BD250087A7CC /* AccessibilityIOS.mm in Sources */,
</ins><span class="cx">                                 75A8D2E2187DEC1E00C39C9E /* APISession.cpp in Sources */,
</span><span class="cx">                                 1AFDE6611954E9B100C48FFA /* APISessionState.cpp in Sources */,
</span><span class="cx">                                 BCE2315E122C30CA00D5C35A /* APIURLRequest.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebCoreSupportmacWebSystemInterfacemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/mac/WebSystemInterface.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -151,28 +151,11 @@
</span><span class="cx">
</span><span class="cx"> INIT(CFURLRequestAllowAllPostCaching);
</span><span class="cx">
</span><del>-#if PLATFORM(IOS)
- INIT(GetUserAgent);
- INIT(GetDeviceName);
- INIT(GetOSNameForUserAgent);
- INIT(GetPlatformNameForNavigator);
- INIT(GetVendorNameForNavigator);
-#endif
-
</del><span class="cx"> #if !PLATFORM(IOS)
</span><span class="cx"> INIT(NSElasticDeltaForTimeDelta);
</span><span class="cx"> INIT(NSElasticDeltaForReboundDelta);
</span><span class="cx"> INIT(NSReboundDeltaForElasticDelta);
</span><span class="cx"> #endif
</span><del>-#if PLATFORM(IOS)
- INIT(ExecutableWasLinkedOnOrAfterIOSVersion);
- INIT(GetDeviceClass);
- INIT(GetScreenSize);
- INIT(GetAvailableScreenSize);
- INIT(GetScreenScaleFactor);
- INIT(IsGB18030ComplianceRequired);
- INIT(IsOptimizedFullscreenSupported);
-#endif
</del><span class="cx">
</span><span class="cx"> #if ENABLE(PUBLIC_SUFFIX_LIST)
</span><span class="cx"> INIT(IsPublicSuffix);
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPageiosWebPageIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (191901 => 191902)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2015-11-02 18:52:44 UTC (rev 191901)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm        2015-11-02 19:09:09 UTC (rev 191902)
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx">
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx">
</span><ins>+#import "AccessibilityIOS.h"
</ins><span class="cx"> #import "AssistedNodeInformation.h"
</span><span class="cx"> #import "DataReference.h"
</span><span class="cx"> #import "DrawingArea.h"
</span><span class="lines">@@ -45,7 +46,6 @@
</span><span class="cx"> #import "WebFrame.h"
</span><span class="cx"> #import "WebImage.h"
</span><span class="cx"> #import "WebKitSystemInterface.h"
</span><del>-#import "WebKitSystemInterfaceIOS.h"
</del><span class="cx"> #import "WebPageProxyMessages.h"
</span><span class="cx"> #import "WebProcess.h"
</span><span class="cx"> #import <CoreText/CTFont.h>
</span><span class="lines">@@ -119,9 +119,7 @@
</span><span class="cx"> m_mockAccessibilityElement = adoptNS([[WKAccessibilityWebPageObject alloc] init]);
</span><span class="cx"> [m_mockAccessibilityElement setWebPage:this];
</span><span class="cx">
</span><del>- RetainPtr<CFUUIDRef> uuid = adoptCF(CFUUIDCreate(kCFAllocatorDefault));
- NSData *remoteToken = WKAXRemoteToken(uuid.get());
-
</del><ins>+ NSData *remoteToken = newAccessibilityRemoteToken([NSUUID UUID]);
</ins><span class="cx"> IPC::DataReference dataToken = IPC::DataReference(reinterpret_cast<const uint8_t*>([remoteToken bytes]), [remoteToken length]);
</span><span class="cx"> send(Messages::WebPageProxy::RegisterWebProcessAccessibilityToken(dataToken));
</span><span class="cx"> }
</span></span></pre>
</div>
</div>
</body>
</html>