<!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>[201038] 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/201038">201038</a></dd>
<dt>Author</dt> <dd>fpizlo@apple.com</dd>
<dt>Date</dt> <dd>2016-05-17 12:38:51 -0700 (Tue, 17 May 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>WTF should know about Language
https://bugs.webkit.org/show_bug.cgi?id=157756

Source/JavaScriptCore:

Reviewed by Geoffrey Garen.

Teach our scripts that a ObjC class beginning with WTF is totally cool.

* JavaScriptCore.xcodeproj/project.pbxproj:

Source/WebCore:

Reviewed by Geoffrey Garen.

No new tests because this does not change behavior.

This change is all about moving some language functionality to WTF. Quoting the WTF
ChangeLog, this contains two changes:

- Move everything that WebCore's logic for getting the platform user preferred language
  depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.

- Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages().
  This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC
  use this to detect the platform user preferred language when running standalone.

The changes in WebCore are mostly about rewiring #includes and #imports and removing the
code that we moved to WTF. But there is one logic change: previously,
platformUserPreferredLanguages() would call WebCore::languageDidChange(). It can't do that
directly anymore, but WTF gives WebCore some API for registering the callback. So in
Language.cpp we now register languageDidChange anytime we do something that would
necessitate it, like calling platformUserPreferredLanguages(). This also registers the
callback inside addLanguageChangeObserver(), since it's possible for that to be called
after JSC had called platformUserPreferredLanguages() but before WebCore does so.

* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformMac.cmake:
* PlatformWin.cmake:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMCustomXPathNSResolver.mm:
* editing/ios/EditorIOS.mm:
* editing/mac/DictionaryLookup.mm:
* editing/mac/EditorMac.mm:
* page/CaptionUserPreferencesMediaAF.cpp:
* page/ios/EventHandlerIOS.mm:
* page/ios/FrameIOS.mm:
* page/mac/ChromeMac.mm:
* page/mac/EventHandlerMac.mm:
* platform/Language.cpp:
(WebCore::registerLanguageDidChangeCallbackIfNecessary):
(WebCore::observerMap):
(WebCore::addLanguageChangeObserver):
(WebCore::overrideUserPreferredLanguages):
(WebCore::userPreferredLanguages):
* platform/Language.h:
* platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
* platform/graphics/cocoa/FontCocoa.mm:
* platform/graphics/mac/ColorMac.mm:
* platform/graphics/mac/GraphicsContext3DMac.mm:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
* platform/ios/PlatformSpeechSynthesizerIOS.mm:
* platform/ios/ScrollViewIOS.mm:
* platform/ios/WidgetIOS.mm:
* platform/mac/BlockExceptions.h: Removed.
* platform/mac/BlockExceptions.mm: Removed.
* platform/mac/CursorMac.mm:
* platform/mac/Language.mm: Removed.
* platform/mac/ScrollAnimatorMac.mm:
* platform/mac/ScrollViewMac.mm:
* platform/mac/ScrollbarThemeMac.mm:
* platform/mac/ThemeMac.mm:
* platform/mac/WidgetMac.mm:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
* platform/network/mac/CookieJarMac.mm:
* platform/network/mac/ResourceErrorMac.mm:
* platform/network/mac/ResourceHandleMac.mm:
* platform/spi/cf/CFBundleSPI.h: Removed.
* platform/unix/LanguageUnix.cpp: Removed.
* platform/win/LanguageWin.cpp: Removed.

Source/WebKit/mac:

Reviewed by Geoffrey Garen.

Rewires a bunch of includes/imports.

* WebCoreSupport/PopupMenuMac.mm:
* WebCoreSupport/WebChromeClient.mm:
* WebCoreSupport/WebFrameLoaderClient.mm:
* WebCoreSupport/WebGeolocationClient.mm:
* WebCoreSupport/WebNotificationClient.mm:
* WebCoreSupport/WebPlatformStrategies.mm:
* WebCoreSupport/WebUserMediaClient.mm:
* WebCoreSupport/WebVisitedLinkStore.mm:
* WebView/WebHTMLView.mm:

Source/WebKit2:

Reviewed by Geoffrey Garen and Alexey Proskuryakov.

Rewires a bunch of includes/imports.

* Shared/mac/RemoteLayerTreePropertyApplier.mm:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
* UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

Source/WTF:

Reviewed by Geoffrey Garen.

This contains two changes:

- Move everything that WebCore's logic for getting the platform user preferred language
  depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.

- Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages().
  This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC
  use this to detect the platform user preferred language when running standalone.

Moving the dependencies accounts for a huge chunk of this change, since we have to rewire
all of the references to those headers in all of WebKit.

Moving platformUserPreferredLanguages() is mostly easy except for the weird callback.
That function would call languageDidChange(), which needs to stay in WebCore. So, this
gives WebCore the ability to register a languageDidChange callback. Other than this new
logic, the code being added to WTF is just being lifted out of WebCore.

* WTF.xcodeproj/project.pbxproj:
* wtf/BlockObjCExceptions.h: Added.
* wtf/BlockObjCExceptions.mm: Added.
(ReportBlockedObjCException):
* wtf/PlatformEfl.cmake:
* wtf/PlatformGTK.cmake:
* wtf/PlatformJSCOnly.cmake:
* wtf/PlatformMac.cmake:
* wtf/PlatformUserPreferredLanguages.h: Added.
* wtf/PlatformUserPreferredLanguagesMac.mm: Added.
(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::preferredLanguages):
(+[WTFLanguageChangeObserver languagePreferencesDidChange:]):
(WTF::httpStyleLanguageCode):
(WTF::isValidICUCountryCode):
(WTF::platformUserPreferredLanguages):
* wtf/PlatformUserPreferredLanguagesUnix.cpp: Added.
(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):
* wtf/PlatformUserPreferredLanguagesWin.cpp: Added.
(WTF::setPlatformUserPreferredLanguagesChangedCallback):
(WTF::localeInfo):
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):
* wtf/PlatformWin.cmake:
* wtf/spi/cf: Added.
* wtf/spi/cf/CFBundleSPI.h: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj">trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFWTFxcodeprojprojectpbxproj">trunk/Source/WTF/WTF.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWTFwtfPlatformEflcmake">trunk/Source/WTF/wtf/PlatformEfl.cmake</a></li>
<li><a href="#trunkSourceWTFwtfPlatformGTKcmake">trunk/Source/WTF/wtf/PlatformGTK.cmake</a></li>
<li><a href="#trunkSourceWTFwtfPlatformJSCOnlycmake">trunk/Source/WTF/wtf/PlatformJSCOnly.cmake</a></li>
<li><a href="#trunkSourceWTFwtfPlatformMaccmake">trunk/Source/WTF/wtf/PlatformMac.cmake</a></li>
<li><a href="#trunkSourceWTFwtfPlatformWincmake">trunk/Source/WTF/wtf/PlatformWin.cmake</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCorePlatformEflcmake">trunk/Source/WebCore/PlatformEfl.cmake</a></li>
<li><a href="#trunkSourceWebCorePlatformGTKcmake">trunk/Source/WebCore/PlatformGTK.cmake</a></li>
<li><a href="#trunkSourceWebCorePlatformMaccmake">trunk/Source/WebCore/PlatformMac.cmake</a></li>
<li><a href="#trunkSourceWebCorePlatformWincmake">trunk/Source/WebCore/PlatformWin.cmake</a></li>
<li><a href="#trunkSourceWebCoreWebCorexcodeprojprojectpbxproj">trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkSourceWebCorebindingsobjcDOMCustomXPathNSResolvermm">trunk/Source/WebCore/bindings/objc/DOMCustomXPathNSResolver.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingiosEditorIOSmm">trunk/Source/WebCore/editing/ios/EditorIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmacDictionaryLookupmm">trunk/Source/WebCore/editing/mac/DictionaryLookup.mm</a></li>
<li><a href="#trunkSourceWebCoreeditingmacEditorMacmm">trunk/Source/WebCore/editing/mac/EditorMac.mm</a></li>
<li><a href="#trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp">trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp</a></li>
<li><a href="#trunkSourceWebCorepageiosEventHandlerIOSmm">trunk/Source/WebCore/page/ios/EventHandlerIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepageiosFrameIOSmm">trunk/Source/WebCore/page/ios/FrameIOS.mm</a></li>
<li><a href="#trunkSourceWebCorepagemacChromeMacmm">trunk/Source/WebCore/page/mac/ChromeMac.mm</a></li>
<li><a href="#trunkSourceWebCorepagemacEventHandlerMacmm">trunk/Source/WebCore/page/mac/EventHandlerMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformLanguagecpp">trunk/Source/WebCore/platform/Language.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformLanguageh">trunk/Source/WebCore/platform/Language.h</a></li>
<li><a href="#trunkSourceWebCoreplatformcocoaContentFilterUnblockHandlerCocoamm">trunk/Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcInbandTextTrackPrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm">trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscacocoaPlatformCAFiltersCocoamm">trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscacocoaPlatformCALayerCocoamm">trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicscocoaFontCocoamm">trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacColorMacmm">trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacGraphicsContext3DMacmm">trunk/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKitmm">trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosPlatformSpeechSynthesizerIOSmm">trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosScrollViewIOSmm">trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformiosWidgetIOSmm">trunk/Source/WebCore/platform/ios/WidgetIOS.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacCursorMacmm">trunk/Source/WebCore/platform/mac/CursorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacScrollAnimatorMacmm">trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacScrollViewMacmm">trunk/Source/WebCore/platform/mac/ScrollViewMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacScrollbarThemeMacmm">trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacThemeMacmm">trunk/Source/WebCore/platform/mac/ThemeMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacWidgetMacmm">trunk/Source/WebCore/platform/mac/WidgetMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm">trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacCookieJarMacmm">trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacResourceErrorMacmm">trunk/Source/WebCore/platform/network/mac/ResourceErrorMac.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm">trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm</a></li>
<li><a href="#trunkSourceWebKitmacChangeLog">trunk/Source/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportPopupMenuMacmm">trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebChromeClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebGeolocationClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebNotificationClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesmm">trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebUserMediaClientmm">trunk/Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebCoreSupportWebVisitedLinkStoremm">trunk/Source/WebKit/mac/WebCoreSupport/WebVisitedLinkStore.mm</a></li>
<li><a href="#trunkSourceWebKitmacWebViewWebHTMLViewmm">trunk/Source/WebKit/mac/WebView/WebHTMLView.mm</a></li>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2SharedmacRemoteLayerTreePropertyAppliermm">trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessLaunchermacProcessLauncherMacmm">trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm</a></li>
<li><a href="#trunkSourceWebKit2UIProcessScrollingiosScrollingTreeOverflowScrollingNodeIOSmm">trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm</a></li>
<li><a href="#trunkSourceWebKit2WebProcessWebPagemacPlatformCAAnimationRemotemm">trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkSourceWTFwtfBlockObjCExceptionsh">trunk/Source/WTF/wtf/BlockObjCExceptions.h</a></li>
<li><a href="#trunkSourceWTFwtfBlockObjCExceptionsmm">trunk/Source/WTF/wtf/BlockObjCExceptions.mm</a></li>
<li><a href="#trunkSourceWTFwtfPlatformUserPreferredLanguagesh">trunk/Source/WTF/wtf/PlatformUserPreferredLanguages.h</a></li>
<li><a href="#trunkSourceWTFwtfPlatformUserPreferredLanguagesMacmm">trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesMac.mm</a></li>
<li><a href="#trunkSourceWTFwtfPlatformUserPreferredLanguagesUnixcpp">trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesUnix.cpp</a></li>
<li><a href="#trunkSourceWTFwtfPlatformUserPreferredLanguagesWincpp">trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesWin.cpp</a></li>
<li>trunk/Source/WTF/wtf/spi/cf/</li>
<li><a href="#trunkSourceWTFwtfspicfCFBundleSPIh">trunk/Source/WTF/wtf/spi/cf/CFBundleSPI.h</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreplatformmacBlockExceptionsh">trunk/Source/WebCore/platform/mac/BlockExceptions.h</a></li>
<li><a href="#trunkSourceWebCoreplatformmacBlockExceptionsmm">trunk/Source/WebCore/platform/mac/BlockExceptions.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformmacLanguagemm">trunk/Source/WebCore/platform/mac/Language.mm</a></li>
<li><a href="#trunkSourceWebCoreplatformspicfCFBundleSPIh">trunk/Source/WebCore/platform/spi/cf/CFBundleSPI.h</a></li>
<li><a href="#trunkSourceWebCoreplatformunixLanguageUnixcpp">trunk/Source/WebCore/platform/unix/LanguageUnix.cpp</a></li>
<li><a href="#trunkSourceWebCoreplatformwinLanguageWincpp">trunk/Source/WebCore/platform/win/LanguageWin.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,3 +1,14 @@
</span><ins>+2016-05-17  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        WTF should know about Language
+        https://bugs.webkit.org/show_bug.cgi?id=157756
+
+        Reviewed by Geoffrey Garen.
+
+        Teach our scripts that a ObjC class beginning with WTF is totally cool.
+
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+
</ins><span class="cx"> 2016-05-17  Joseph Pecoraro  &lt;pecoraro@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         console namespace breaks putting properties on console.__proto__
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreJavaScriptCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -8408,7 +8408,7 @@
</span><span class="cx">                         );
</span><span class="cx">                         runOnlyForDeploymentPostprocessing = 0;
</span><span class="cx">                         shellPath = /bin/sh;
</span><del>-                        shellScript = &quot;set -e\n\nif [ \&quot;${ACTION}\&quot; = \&quot;installhdrs\&quot; ]; then\n    exit 0;\nfi\n\nif [ -f ../../Tools/Scripts/check-for-inappropriate-objc-class-names ]; then\n    ../../Tools/Scripts/check-for-inappropriate-objc-class-names JS\nfi&quot;;
</del><ins>+                        shellScript = &quot;set -e\n\nif [ \&quot;${ACTION}\&quot; = \&quot;installhdrs\&quot; ]; then\n    exit 0;\nfi\n\nif [ -f ../../Tools/Scripts/check-for-inappropriate-objc-class-names ]; then\n    ../../Tools/Scripts/check-for-inappropriate-objc-class-names JS WTF\nfi&quot;;
</ins><span class="cx">                 };
</span><span class="cx">                 3732811A17FCD235004AD519 /* Postprocess Headers */ = {
</span><span class="cx">                         isa = PBXShellScriptBuildPhase;
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WTF/ChangeLog        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,3 +1,56 @@
</span><ins>+2016-05-17  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        WTF should know about Language
+        https://bugs.webkit.org/show_bug.cgi?id=157756
+
+        Reviewed by Geoffrey Garen.
+
+        This contains two changes:
+
+        - Move everything that WebCore's logic for getting the platform user preferred language
+          depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.
+
+        - Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages().
+          This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC
+          use this to detect the platform user preferred language when running standalone.
+
+        Moving the dependencies accounts for a huge chunk of this change, since we have to rewire
+        all of the references to those headers in all of WebKit.
+
+        Moving platformUserPreferredLanguages() is mostly easy except for the weird callback.
+        That function would call languageDidChange(), which needs to stay in WebCore. So, this
+        gives WebCore the ability to register a languageDidChange callback. Other than this new
+        logic, the code being added to WTF is just being lifted out of WebCore.
+
+        * WTF.xcodeproj/project.pbxproj:
+        * wtf/BlockObjCExceptions.h: Added.
+        * wtf/BlockObjCExceptions.mm: Added.
+        (ReportBlockedObjCException):
+        * wtf/PlatformEfl.cmake:
+        * wtf/PlatformGTK.cmake:
+        * wtf/PlatformJSCOnly.cmake:
+        * wtf/PlatformMac.cmake:
+        * wtf/PlatformUserPreferredLanguages.h: Added.
+        * wtf/PlatformUserPreferredLanguagesMac.mm: Added.
+        (WTF::setPlatformUserPreferredLanguagesChangedCallback):
+        (WTF::preferredLanguages):
+        (+[WTFLanguageChangeObserver languagePreferencesDidChange:]):
+        (WTF::httpStyleLanguageCode):
+        (WTF::isValidICUCountryCode):
+        (WTF::platformUserPreferredLanguages):
+        * wtf/PlatformUserPreferredLanguagesUnix.cpp: Added.
+        (WTF::setPlatformUserPreferredLanguagesChangedCallback):
+        (WTF::platformLanguage):
+        (WTF::platformUserPreferredLanguages):
+        * wtf/PlatformUserPreferredLanguagesWin.cpp: Added.
+        (WTF::setPlatformUserPreferredLanguagesChangedCallback):
+        (WTF::localeInfo):
+        (WTF::platformLanguage):
+        (WTF::platformUserPreferredLanguages):
+        * wtf/PlatformWin.cmake:
+        * wtf/spi/cf: Added.
+        * wtf/spi/cf/CFBundleSPI.h: Added.
+
</ins><span class="cx"> 2016-05-17  Youenn Fablet  &lt;youenn.fablet@crf.canon.fr&gt;
</span><span class="cx"> 
</span><span class="cx">         DOMPromise should only restrict the resolution type
</span></span></pre></div>
<a id="trunkSourceWTFWTFxcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -301,6 +301,11 @@
</span><span class="cx">                 CD5497AD15857D0300B5BC30 /* MediaTime.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5497AB15857D0300B5BC30 /* MediaTime.h */; };
</span><span class="cx">                 CE46516E19DB1FB4003ECA05 /* NSMapTableSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE46516D19DB1FB4003ECA05 /* NSMapTableSPI.h */; };
</span><span class="cx">                 CE73E02519DCB7AB00580D5C /* XPCSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = CE73E02419DCB7AB00580D5C /* XPCSPI.h */; };
</span><ins>+                DCEE21FB1CEA7538000C2396 /* CFBundleSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = DCEE21FA1CEA7538000C2396 /* CFBundleSPI.h */; };
+                DCEE22001CEA7551000C2396 /* BlockObjCExceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = DCEE21FC1CEA7551000C2396 /* BlockObjCExceptions.h */; };
+                DCEE22011CEA7551000C2396 /* BlockObjCExceptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = DCEE21FD1CEA7551000C2396 /* BlockObjCExceptions.mm */; };
+                DCEE22021CEA7551000C2396 /* PlatformUserPreferredLanguages.h in Headers */ = {isa = PBXBuildFile; fileRef = DCEE21FE1CEA7551000C2396 /* PlatformUserPreferredLanguages.h */; };
+                DCEE22031CEA7551000C2396 /* PlatformUserPreferredLanguagesMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = DCEE21FF1CEA7551000C2396 /* PlatformUserPreferredLanguagesMac.mm */; };
</ins><span class="cx">                 DE5A09FC1BA36992003D4424 /* CommonCryptoSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = DE5A09FB1BA36992003D4424 /* CommonCryptoSPI.h */; };
</span><span class="cx">                 E15556F518A0CC18006F48FB /* CryptographicUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E15556F318A0CC18006F48FB /* CryptographicUtilities.cpp */; };
</span><span class="cx">                 E15556F618A0CC18006F48FB /* CryptographicUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E15556F418A0CC18006F48FB /* CryptographicUtilities.h */; };
</span><span class="lines">@@ -622,6 +627,11 @@
</span><span class="cx">                 CD5497AB15857D0300B5BC30 /* MediaTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaTime.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 CE46516D19DB1FB4003ECA05 /* NSMapTableSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSMapTableSPI.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 CE73E02419DCB7AB00580D5C /* XPCSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPCSPI.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><ins>+                DCEE21FA1CEA7538000C2396 /* CFBundleSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CFBundleSPI.h; path = cf/CFBundleSPI.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                DCEE21FC1CEA7551000C2396 /* BlockObjCExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BlockObjCExceptions.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                DCEE21FD1CEA7551000C2396 /* BlockObjCExceptions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlockObjCExceptions.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
+                DCEE21FE1CEA7551000C2396 /* PlatformUserPreferredLanguages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformUserPreferredLanguages.h; sourceTree = &quot;&lt;group&gt;&quot;; };
+                DCEE21FF1CEA7551000C2396 /* PlatformUserPreferredLanguagesMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformUserPreferredLanguagesMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</ins><span class="cx">                 DE5A09FB1BA36992003D4424 /* CommonCryptoSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommonCryptoSPI.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E15556F318A0CC18006F48FB /* CryptographicUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CryptographicUtilities.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E15556F418A0CC18006F48FB /* CryptographicUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptographicUtilities.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -768,6 +778,8 @@
</span><span class="cx">                                 A8A4725F151A825A004123FF /* Bitmap.h */,
</span><span class="cx">                                 A8A47260151A825A004123FF /* BitVector.cpp */,
</span><span class="cx">                                 A8A47261151A825A004123FF /* BitVector.h */,
</span><ins>+                                DCEE21FC1CEA7551000C2396 /* BlockObjCExceptions.h */,
+                                DCEE21FD1CEA7551000C2396 /* BlockObjCExceptions.mm */,
</ins><span class="cx">                                 1A944F461C3D8814005BD28C /* BlockPtr.h */,
</span><span class="cx">                                 A8A47264151A825A004123FF /* BlockStack.h */,
</span><span class="cx">                                 A8A47265151A825A004123FF /* BloomFilter.h */,
</span><span class="lines">@@ -882,6 +894,8 @@
</span><span class="cx">                                 0F824A651B7443A0002E345D /* ParkingLot.h */,
</span><span class="cx">                                 A8A472ED151A825B004123FF /* PassRefPtr.h */,
</span><span class="cx">                                 A876DBD7151816E500DADB95 /* Platform.h */,
</span><ins>+                                DCEE21FE1CEA7551000C2396 /* PlatformUserPreferredLanguages.h */,
+                                DCEE21FF1CEA7551000C2396 /* PlatformUserPreferredLanguagesMac.mm */,
</ins><span class="cx">                                 0FF860941BCCBD740045127F /* PointerComparison.h */,
</span><span class="cx">                                 0F9D335D165DBA73005AD387 /* PrintStream.cpp */,
</span><span class="cx">                                 0F9D335E165DBA73005AD387 /* PrintStream.h */,
</span><span class="lines">@@ -1101,12 +1115,21 @@
</span><span class="cx">                 CEF4820C19DA347600CC04B8 /* spi */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><ins>+                                DCEE21F91CEA752F000C2396 /* cf */,
</ins><span class="cx">                                 CE46516C19DB1FB4003ECA05 /* cocoa */,
</span><span class="cx">                                 CE73E02319DCB7AB00580D5C /* darwin */,
</span><span class="cx">                         );
</span><span class="cx">                         path = spi;
</span><span class="cx">                         sourceTree = &quot;&lt;group&gt;&quot;;
</span><span class="cx">                 };
</span><ins>+                DCEE21F91CEA752F000C2396 /* cf */ = {
+                        isa = PBXGroup;
+                        children = (
+                                DCEE21FA1CEA7538000C2396 /* CFBundleSPI.h */,
+                        );
+                        name = cf;
+                        sourceTree = &quot;&lt;group&gt;&quot;;
+                };
</ins><span class="cx">                 E4A0AD3B1A96251900536DF6 /* cocoa */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><span class="lines">@@ -1139,6 +1162,7 @@
</span><span class="cx">                                 9BD8F40B176C2B470002D865 /* AtomicStringTable.h in Headers */,
</span><span class="cx">                                 1469419C16EAB10A0024E146 /* AutodrainedPool.h in Headers */,
</span><span class="cx">                                 0FB14E19180FA218009B6B4D /* Bag.h in Headers */,
</span><ins>+                                DCEE22001CEA7551000C2396 /* BlockObjCExceptions.h in Headers */,
</ins><span class="cx">                                 0FB14E1B1810E1DC009B6B4D /* BagToHashMap.h in Headers */,
</span><span class="cx">                                 8134013915B092FD001FF0B8 /* Base64.h in Headers */,
</span><span class="cx">                                 A8A473A9151A825B004123FF /* bignum-dtoa.h in Headers */,
</span><span class="lines">@@ -1295,6 +1319,7 @@
</span><span class="cx">                                 A8A4743F151A825B004123FF /* StringHash.h in Headers */,
</span><span class="cx">                                 A748745417A0BDAE00FA04CB /* StringHashDumpContext.h in Headers */,
</span><span class="cx">                                 A8A47441151A825B004123FF /* StringImpl.h in Headers */,
</span><ins>+                                DCEE21FB1CEA7538000C2396 /* CFBundleSPI.h in Headers */,
</ins><span class="cx">                                 A8A47442151A825B004123FF /* StringOperators.h in Headers */,
</span><span class="cx">                                 0FDDBFA81666DFA300C55FEF /* StringPrintStream.h in Headers */,
</span><span class="cx">                                 1A6EB1E0187D0BD30030126F /* StringView.h in Headers */,
</span><span class="lines">@@ -1312,6 +1337,7 @@
</span><span class="cx">                                 A8A47455151A825B004123FF /* ThreadSpecific.h in Headers */,
</span><span class="cx">                                 553071CA1C40427200384898 /* TinyLRUCache.h in Headers */,
</span><span class="cx">                                 0FED67B61B22D4D80066CE15 /* TinyPtrSet.h in Headers */,
</span><ins>+                                DCEE22021CEA7551000C2396 /* PlatformUserPreferredLanguages.h in Headers */,
</ins><span class="cx">                                 149EF16316BBFE0D000A4331 /* TriState.h in Headers */,
</span><span class="cx">                                 83FBA93219DF459700F30ADB /* TypeCasts.h in Headers */,
</span><span class="cx">                                 1AFDE648195201C300C48FFA /* TypeCastsCF.h in Headers */,
</span><span class="lines">@@ -1460,6 +1486,7 @@
</span><span class="cx">                                 A8A473B3151A825B004123FF /* fast-dtoa.cc in Sources */,
</span><span class="cx">                                 0F885E0F1845AEA900F1E3FA /* FastBitVector.cpp in Sources */,
</span><span class="cx">                                 A8A473C3151A825B004123FF /* FastMalloc.cpp in Sources */,
</span><ins>+                                DCEE22011CEA7551000C2396 /* BlockObjCExceptions.mm in Sources */,
</ins><span class="cx">                                 0F9D3360165DBA73005AD387 /* FilePrintStream.cpp in Sources */,
</span><span class="cx">                                 A8A473B5151A825B004123FF /* fixed-dtoa.cc in Sources */,
</span><span class="cx">                                 1A1D8B9E1731879800141DA4 /* FunctionDispatcher.cpp in Sources */,
</span><span class="lines">@@ -1510,6 +1537,7 @@
</span><span class="cx">                                 A8A47469151A825B004123FF /* UTF8.cpp in Sources */,
</span><span class="cx">                                 1FA47C8A152502DA00568D1B /* WebCoreThread.cpp in Sources */,
</span><span class="cx">                                 0FE4479C1B7AAA03009498EB /* WordLock.cpp in Sources */,
</span><ins>+                                DCEE22031CEA7551000C2396 /* PlatformUserPreferredLanguagesMac.mm in Sources */,
</ins><span class="cx">                                 E4A0AD391A96245500536DF6 /* WorkQueue.cpp in Sources */,
</span><span class="cx">                                 E4A0AD3D1A96253C00536DF6 /* WorkQueueCocoa.cpp in Sources */,
</span><span class="cx">                                 A8A47445151A825B004123FF /* WTFString.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWTFwtfBlockObjCExceptionshfromrev201036trunkSourceWebCoreplatformmacBlockExceptionsh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WTF/wtf/BlockObjCExceptions.h (from rev 201036, trunk/Source/WebCore/platform/mac/BlockExceptions.h) (0 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/BlockObjCExceptions.h                                (rev 0)
+++ trunk/Source/WTF/wtf/BlockObjCExceptions.h        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+/*
+ * Copyright (C) 2003, 2016 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. 
+ */
+
+#import &lt;Foundation/NSException.h&gt;
+
+WTF_EXPORT_PRIVATE NO_RETURN_DUE_TO_ASSERT void ReportBlockedObjCException(NSException *);
+
+#define BEGIN_BLOCK_OBJC_EXCEPTIONS @try {
+#define END_BLOCK_OBJC_EXCEPTIONS } @catch(NSException *localException) { ReportBlockedObjCException(localException); }
+
</ins></span></pre></div>
<a id="trunkSourceWTFwtfBlockObjCExceptionsmmfromrev201036trunkSourceWebCoreplatformmacBlockExceptionsmm"></a>
<div class="copfile"><h4>Copied: trunk/Source/WTF/wtf/BlockObjCExceptions.mm (from rev 201036, trunk/Source/WebCore/platform/mac/BlockExceptions.mm) (0 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/BlockObjCExceptions.mm                                (rev 0)
+++ trunk/Source/WTF/wtf/BlockObjCExceptions.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -0,0 +1,41 @@
</span><ins>+/*
+ * Copyright (C) 2003, 2007, 2016 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. 
+ */
+
+#import &quot;config.h&quot;
+#import &quot;BlockObjCExceptions.h&quot;
+
+#import &lt;wtf/Assertions.h&gt;
+
+void ReportBlockedObjCException(NSException *exception)
+{
+    // FIXME: This is probably going to be confusing when JavaScriptCore is used standalone. JSC
+    // will call this code as part of default locale detection.
+    // https://bugs.webkit.org/show_bug.cgi?id=157804
+#if ASSERT_DISABLED
+    NSLog(@&quot;*** WebKit discarding exception: &lt;%@&gt; %@&quot;, [exception name], [exception reason]);
+#else
+    ASSERT_WITH_MESSAGE(0, &quot;Uncaught exception - %@&quot;, exception);
+#endif
+}
</ins></span></pre></div>
<a id="trunkSourceWTFwtfPlatformEflcmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/PlatformEfl.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformEfl.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WTF/wtf/PlatformEfl.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,4 +1,6 @@
</span><span class="cx"> list(APPEND WTF_SOURCES
</span><ins>+    PlatformUserPreferredLanguagesUnix.cpp
+
</ins><span class="cx">     efl/DispatchQueueEfl.cpp
</span><span class="cx">     efl/MainThreadEfl.cpp
</span><span class="cx">     efl/RunLoopEfl.cpp
</span></span></pre></div>
<a id="trunkSourceWTFwtfPlatformGTKcmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/PlatformGTK.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformGTK.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WTF/wtf/PlatformGTK.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -7,6 +7,7 @@
</span><span class="cx">     glib/GRefPtr.cpp
</span><span class="cx">     glib/MainThreadGLib.cpp
</span><span class="cx">     glib/RunLoopGLib.cpp
</span><ins>+    PlatformUserPreferredLanguagesUnix.cpp
</ins><span class="cx"> )
</span><span class="cx"> 
</span><span class="cx"> list(APPEND WTF_LIBRARIES
</span></span></pre></div>
<a id="trunkSourceWTFwtfPlatformJSCOnlycmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/PlatformJSCOnly.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformJSCOnly.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WTF/wtf/PlatformJSCOnly.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,3 +1,7 @@
</span><ins>+list(APPEND WTF_SOURCES
+    PlatformUserPreferredLanguagesUnix.cpp
+)
+
</ins><span class="cx"> if (LOWERCASE_EVENT_LOOP_TYPE STREQUAL &quot;glib&quot;)
</span><span class="cx">     list(APPEND WTF_SOURCES
</span><span class="cx">         glib/GRefPtr.cpp
</span></span></pre></div>
<a id="trunkSourceWTFwtfPlatformMaccmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/PlatformMac.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformMac.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WTF/wtf/PlatformMac.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -12,6 +12,8 @@
</span><span class="cx"> 
</span><span class="cx"> list(APPEND WTF_SOURCES
</span><span class="cx">     AutodrainedPoolMac.mm
</span><ins>+    BlockObjCExceptions.mm
+    PlatformUserPreferredLanguagesMac.mm
</ins><span class="cx">     RunLoopTimerCF.cpp
</span><span class="cx">     SchedulePairCF.cpp
</span><span class="cx">     SchedulePairMac.mm
</span></span></pre></div>
<a id="trunkSourceWTFwtfPlatformUserPreferredLanguageshfromrev201036trunkSourceWebCoreplatformLanguageh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WTF/wtf/PlatformUserPreferredLanguages.h (from rev 201036, trunk/Source/WebCore/platform/Language.h) (0 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformUserPreferredLanguages.h                                (rev 0)
+++ trunk/Source/WTF/wtf/PlatformUserPreferredLanguages.h        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+/*
+ * Copyright (C) 2016 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 PlatformUserPreferredLanguages_h
+#define PlatformUserPreferredLanguages_h
+
+#include &lt;wtf/Vector.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WTF {
+
+WTF_EXPORT_PRIVATE void setPlatformUserPreferredLanguagesChangedCallback(void (*)());
+
+WTF_EXPORT_PRIVATE Vector&lt;String&gt; platformUserPreferredLanguages();
+
+} // namespace WTF
+
+using WTF::setPlatformUserPreferredLanguagesChangedCallback;
+using WTF::platformUserPreferredLanguages;
+
+#endif // PlatformUserPreferredLanguages_h
+
</ins></span></pre></div>
<a id="trunkSourceWTFwtfPlatformUserPreferredLanguagesMacmmfromrev201036trunkSourceWebCoreplatformmacLanguagemm"></a>
<div class="copfile"><h4>Copied: trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesMac.mm (from rev 201036, trunk/Source/WebCore/platform/mac/Language.mm) (0 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesMac.mm                                (rev 0)
+++ trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -0,0 +1,179 @@
</span><ins>+/*
+ * Copyright (C) 2003, 2005, 2006, 2010, 2011, 2016 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 &quot;config.h&quot;
+#import &quot;PlatformUserPreferredLanguages.h&quot;
+
+#import &quot;BlockObjCExceptions.h&quot;
+#import &lt;mutex&gt;
+#import &lt;unicode/uloc.h&gt;
+#import &lt;wtf/Assertions.h&gt;
+#import &lt;wtf/Lock.h&gt;
+#import &lt;wtf/NeverDestroyed.h&gt;
+#import &lt;wtf/RetainPtr.h&gt;
+#import &lt;wtf/spi/cf/CFBundleSPI.h&gt;
+#import &lt;wtf/text/WTFString.h&gt;
+
+namespace WTF {
+
+static void (*callback)();
+
+void setPlatformUserPreferredLanguagesChangedCallback(void (*passedCallback)())
+{
+    callback = passedCallback;
+}
+
+static StaticLock preferredLanguagesMutex;
+
+static Vector&lt;String&gt;&amp; preferredLanguages()
+{
+    static NeverDestroyed&lt;Vector&lt;String&gt;&gt; languages;
+    return languages;
+}
+
+}
+
+@interface WTFLanguageChangeObserver : NSObject
+@end
+
+@implementation WTFLanguageChangeObserver
+
++ (void)languagePreferencesDidChange:(NSNotification *)notification
+{
+    UNUSED_PARAM(notification);
+
+    {
+        std::lock_guard&lt;StaticLock&gt; lock(WTF::preferredLanguagesMutex);
+        WTF::preferredLanguages().clear();
+    }
+    
+    if (WTF::callback)
+        WTF::callback();
+}
+
+@end
+
+namespace WTF {
+
+static String httpStyleLanguageCode(NSString *language, NSString *country)
+{
+    SInt32 languageCode;
+    SInt32 regionCode; 
+    SInt32 scriptCode; 
+    CFStringEncoding stringEncoding;
+    
+    bool languageDidSpecifyExplicitVariant = [language rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@&quot;-_&quot;]].location != NSNotFound;
+
+    // FIXME: This transformation is very wrong:
+    // 1. There is no reason why CFBundle localization names would be at all related to language names as used on the Web.
+    // 2. Script Manager codes cannot represent all languages that are now supported by the platform, so the conversion is lossy.
+    // 3. This should probably match what is sent by the network layer as Accept-Language, but currently, that's implemented separately.
+    CFBundleGetLocalizationInfoForLocalization((CFStringRef)language, &amp;languageCode, &amp;regionCode, &amp;scriptCode, &amp;stringEncoding);
+    RetainPtr&lt;CFStringRef&gt; preferredLanguageCode = adoptCF(CFBundleCopyLocalizationForLocalizationInfo(languageCode, regionCode, scriptCode, stringEncoding));
+    if (preferredLanguageCode)
+        language = (NSString *)preferredLanguageCode.get();
+
+    // Make the string lowercase.
+    NSString *lowercaseLanguageCode = [language lowercaseString];
+    NSString *lowercaseCountryCode = [country lowercaseString];
+    
+    // If we see a &quot;_&quot; after a 2-letter language code:
+    // If the country is valid and the language did not specify a variant, replace the &quot;_&quot; and
+    // whatever comes after it with &quot;-&quot; followed by the country code.
+    // Otherwise, replace the &quot;_&quot; with a &quot;-&quot; and use whatever country
+    // CFBundleCopyLocalizationForLocalizationInfo() returned.
+    if ([lowercaseLanguageCode length] &gt;= 3 &amp;&amp; [lowercaseLanguageCode characterAtIndex:2] == '_') {
+        if (country &amp;&amp; !languageDidSpecifyExplicitVariant)
+            return [NSString stringWithFormat:@&quot;%@-%@&quot;, [lowercaseLanguageCode substringWithRange:NSMakeRange(0, 2)], lowercaseCountryCode];
+        
+        // Fall back to older behavior, which used the original language-based code but just changed
+        // the &quot;_&quot; to a &quot;-&quot;.
+        RetainPtr&lt;NSMutableString&gt; mutableLanguageCode = adoptNS([lowercaseLanguageCode mutableCopy]);
+        [mutableLanguageCode.get() replaceCharactersInRange:NSMakeRange(2, 1) withString:@&quot;-&quot;];
+        return mutableLanguageCode.get();
+    }
+
+    return lowercaseLanguageCode;
+}
+
+static bool isValidICUCountryCode(NSString* countryCode)
+{
+    if (!countryCode)
+        return false;
+    const char* const* countries = uloc_getISOCountries();
+    const char* countryUTF8 = [countryCode UTF8String];
+    for (unsigned i = 0; countries[i]; ++i) {
+        const char* possibleCountry = countries[i];
+        if (!strcmp(countryUTF8, possibleCountry))
+            return true;
+    }
+    return false;
+}
+
+Vector&lt;String&gt; platformUserPreferredLanguages()
+{
+#if PLATFORM(MAC)
+    static dispatch_once_t onceToken;
+    dispatch_once(&amp;onceToken, ^{
+        [[NSDistributedNotificationCenter defaultCenter] addObserver:[WTFLanguageChangeObserver self] selector:@selector(languagePreferencesDidChange:) name:@&quot;AppleLanguagePreferencesChangedNotification&quot; object:nil];
+    });
+#endif
+
+    BEGIN_BLOCK_OBJC_EXCEPTIONS;
+
+    std::lock_guard&lt;StaticLock&gt; lock(preferredLanguagesMutex);
+    Vector&lt;String&gt;&amp; userPreferredLanguages = preferredLanguages();
+
+    if (userPreferredLanguages.isEmpty()) {
+        RetainPtr&lt;CFLocaleRef&gt; locale = adoptCF(CFLocaleCopyCurrent());
+        NSString *countryCode = (NSString *)CFLocaleGetValue(locale.get(), kCFLocaleCountryCode);
+        
+        if (!isValidICUCountryCode(countryCode))
+            countryCode = nil;
+        
+        RetainPtr&lt;CFArrayRef&gt; languages = adoptCF(CFLocaleCopyPreferredLanguages());
+        CFIndex languageCount = CFArrayGetCount(languages.get());
+        if (!languageCount)
+            userPreferredLanguages.append(&quot;en&quot;);
+        else {
+            for (CFIndex i = 0; i &lt; languageCount; i++)
+                userPreferredLanguages.append(httpStyleLanguageCode((NSString *)CFArrayGetValueAtIndex(languages.get(), i), countryCode));
+        }
+    }
+
+    Vector&lt;String&gt; userPreferredLanguagesCopy;
+    userPreferredLanguagesCopy.reserveInitialCapacity(userPreferredLanguages.size());
+
+    for (auto&amp; language : userPreferredLanguages)
+        userPreferredLanguagesCopy.uncheckedAppend(language.isolatedCopy());
+
+    return userPreferredLanguagesCopy;
+
+    END_BLOCK_OBJC_EXCEPTIONS;
+
+    return Vector&lt;String&gt;();
+}
+
+} // namespace WTF
</ins></span></pre></div>
<a id="trunkSourceWTFwtfPlatformUserPreferredLanguagesUnixcppfromrev201036trunkSourceWebCoreplatformunixLanguageUnixcpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesUnix.cpp (from rev 201036, trunk/Source/WebCore/platform/unix/LanguageUnix.cpp) (0 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesUnix.cpp                                (rev 0)
+++ trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesUnix.cpp        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+/*
+ * Copyright (C) 2007 Alp Toker &lt;alp@atoker.com&gt;
+ * Copyright (C) 2016 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include &quot;config.h&quot;
+#include &quot;PlatformUserPreferredLanguages.h&quot;
+
+#include &lt;locale.h&gt;
+#include &lt;wtf/Vector.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WTF {
+
+void setPlatformUserPreferredLanguagesChangedCallback(void (*)()) { }
+
+// Using pango_language_get_default() here is not an option, because
+// it doesn't support changing the locale in runtime, so it returns
+// always the same value.
+static String platformLanguage()
+{
+    String localeDefault(setlocale(LC_CTYPE, nullptr));
+    if (localeDefault.isEmpty())
+        return String(&quot;c&quot;);
+
+    String normalizedDefault = localeDefault.convertToASCIILowercase();
+    normalizedDefault.replace('_', '-');
+    normalizedDefault.truncate(normalizedDefault.find('.'));
+    return normalizedDefault;
+}
+
+Vector&lt;String&gt; platformUserPreferredLanguages()
+{
+    return { platformLanguage() };
+}
+
+} // namespace WTF
</ins></span></pre></div>
<a id="trunkSourceWTFwtfPlatformUserPreferredLanguagesWincppfromrev201036trunkSourceWebCoreplatformwinLanguageWincpp"></a>
<div class="copfile"><h4>Copied: trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesWin.cpp (from rev 201036, trunk/Source/WebCore/platform/win/LanguageWin.cpp) (0 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesWin.cpp                                (rev 0)
+++ trunk/Source/WTF/wtf/PlatformUserPreferredLanguagesWin.cpp        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -0,0 +1,79 @@
</span><ins>+/*
+ * Copyright (C) 2007, 2016 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. 
+ */
+
+#include &quot;config.h&quot;
+#include &quot;PlatformUserPreferredLanguages.h&quot;
+
+#include &lt;windows.h&gt;
+#include &lt;wtf/Vector.h&gt;
+#include &lt;wtf/text/WTFString.h&gt;
+
+namespace WTF {
+
+void setPlatformUserPreferredLanguagesChangedCallback(void (*)()) { }
+
+static String localeInfo(LCTYPE localeType, const String&amp; fallback)
+{
+    LANGID langID = GetUserDefaultUILanguage();
+    int localeChars = GetLocaleInfo(langID, localeType, 0, 0);
+    if (!localeChars)
+        return fallback;
+    UChar* localeNameBuf;
+    String localeName = String::createUninitialized(localeChars, localeNameBuf);
+    localeChars = GetLocaleInfo(langID, localeType, localeNameBuf, localeChars);
+    if (!localeChars)
+        return fallback;
+    if (localeName.isEmpty())
+        return fallback;
+
+    localeName.truncate(localeName.length() - 1);
+    return localeName;
+}
+
+static String platformLanguage()
+{
+    static String computedDefaultLanguage;
+    if (!computedDefaultLanguage.isEmpty())
+        return computedDefaultLanguage;
+
+    String languageName = localeInfo(LOCALE_SISO639LANGNAME, &quot;en&quot;);
+    String countryName = localeInfo(LOCALE_SISO3166CTRYNAME, String());
+
+    if (countryName.isEmpty())
+        computedDefaultLanguage = languageName;
+    else
+        computedDefaultLanguage = languageName + '-' + countryName;
+
+    return computedDefaultLanguage;
+}
+
+Vector&lt;String&gt; platformUserPreferredLanguages()
+{
+    Vector&lt;String&gt; userPreferredLanguages;
+    userPreferredLanguages.append(platformLanguage());
+    return userPreferredLanguages;
+}
+
+} // namespace WTF
</ins></span></pre></div>
<a id="trunkSourceWTFwtfPlatformWincmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/PlatformWin.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/PlatformWin.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WTF/wtf/PlatformWin.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,4 +1,6 @@
</span><span class="cx"> list(APPEND WTF_SOURCES
</span><ins>+    PLatformUserPreferredLanguagesWin.cpp
+
</ins><span class="cx">     text/cf/AtomicStringImplCF.cpp
</span><span class="cx">     text/cf/StringCF.cpp
</span><span class="cx">     text/cf/StringImplCF.cpp
</span></span></pre></div>
<a id="trunkSourceWTFwtfspicfCFBundleSPIhfromrev201036trunkSourceWebCoreplatformspicfCFBundleSPIh"></a>
<div class="copfile"><h4>Copied: trunk/Source/WTF/wtf/spi/cf/CFBundleSPI.h (from rev 201036, trunk/Source/WebCore/platform/spi/cf/CFBundleSPI.h) (0 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/spi/cf/CFBundleSPI.h                                (rev 0)
+++ trunk/Source/WTF/wtf/spi/cf/CFBundleSPI.h        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -0,0 +1,44 @@
</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. ``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 CFBundleSPI_h
+#define CFBundleSPI_h
+
+#include &lt;CoreFoundation/CoreFoundation.h&gt;
+
+#if USE(APPLE_INTERNAL_SDK)
+#import &lt;CoreFoundation/CFPriv.h&gt;
+#else
+#include &lt;wtf/spi/darwin/XPCSPI.h&gt;
+#endif
+
+extern &quot;C&quot; {
+void _CFBundleSetupXPCBootstrap(xpc_object_t bootstrap);
+
+Boolean CFBundleGetLocalizationInfoForLocalization(CFStringRef localizationName, SInt32 *languageCode, SInt32 *regionCode, SInt32 *scriptCode, CFStringEncoding *stringEncoding);
+CFStringRef CFBundleCopyLocalizationForLocalizationInfo(SInt32 languageCode, SInt32 regionCode, SInt32 scriptCode, CFStringEncoding stringEncoding);
+}
+
+#endif
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/ChangeLog        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,3 +1,82 @@
</span><ins>+2016-05-17  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        WTF should know about Language
+        https://bugs.webkit.org/show_bug.cgi?id=157756
+
+        Reviewed by Geoffrey Garen.
+
+        No new tests because this does not change behavior.
+
+        This change is all about moving some language functionality to WTF. Quoting the WTF
+        ChangeLog, this contains two changes:
+
+        - Move everything that WebCore's logic for getting the platform user preferred language
+          depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp.
+
+        - Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages().
+          This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC
+          use this to detect the platform user preferred language when running standalone.
+
+        The changes in WebCore are mostly about rewiring #includes and #imports and removing the
+        code that we moved to WTF. But there is one logic change: previously,
+        platformUserPreferredLanguages() would call WebCore::languageDidChange(). It can't do that
+        directly anymore, but WTF gives WebCore some API for registering the callback. So in
+        Language.cpp we now register languageDidChange anytime we do something that would
+        necessitate it, like calling platformUserPreferredLanguages(). This also registers the
+        callback inside addLanguageChangeObserver(), since it's possible for that to be called
+        after JSC had called platformUserPreferredLanguages() but before WebCore does so.
+
+        * PlatformEfl.cmake:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+        * PlatformWin.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/objc/DOMCustomXPathNSResolver.mm:
+        * editing/ios/EditorIOS.mm:
+        * editing/mac/DictionaryLookup.mm:
+        * editing/mac/EditorMac.mm:
+        * page/CaptionUserPreferencesMediaAF.cpp:
+        * page/ios/EventHandlerIOS.mm:
+        * page/ios/FrameIOS.mm:
+        * page/mac/ChromeMac.mm:
+        * page/mac/EventHandlerMac.mm:
+        * platform/Language.cpp:
+        (WebCore::registerLanguageDidChangeCallbackIfNecessary):
+        (WebCore::observerMap):
+        (WebCore::addLanguageChangeObserver):
+        (WebCore::overrideUserPreferredLanguages):
+        (WebCore::userPreferredLanguages):
+        * platform/Language.h:
+        * platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
+        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        * platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
+        * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
+        * platform/graphics/cocoa/FontCocoa.mm:
+        * platform/graphics/mac/ColorMac.mm:
+        * platform/graphics/mac/GraphicsContext3DMac.mm:
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        * platform/ios/PlatformSpeechSynthesizerIOS.mm:
+        * platform/ios/ScrollViewIOS.mm:
+        * platform/ios/WidgetIOS.mm:
+        * platform/mac/BlockExceptions.h: Removed.
+        * platform/mac/BlockExceptions.mm: Removed.
+        * platform/mac/CursorMac.mm:
+        * platform/mac/Language.mm: Removed.
+        * platform/mac/ScrollAnimatorMac.mm:
+        * platform/mac/ScrollViewMac.mm:
+        * platform/mac/ScrollbarThemeMac.mm:
+        * platform/mac/ThemeMac.mm:
+        * platform/mac/WidgetMac.mm:
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        * platform/network/mac/CookieJarMac.mm:
+        * platform/network/mac/ResourceErrorMac.mm:
+        * platform/network/mac/ResourceHandleMac.mm:
+        * platform/spi/cf/CFBundleSPI.h: Removed.
+        * platform/unix/LanguageUnix.cpp: Removed.
+        * platform/win/LanguageWin.cpp: Removed.
+
</ins><span class="cx"> 2016-05-16  Dean Jackson  &lt;dino@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Tidy unused parameters with build flags in isValidKeywordPropertyAndValue
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformEflcmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformEfl.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformEfl.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/PlatformEfl.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -218,7 +218,6 @@
</span><span class="cx"> 
</span><span class="cx">     platform/text/hyphen/HyphenationLibHyphen.cpp
</span><span class="cx"> 
</span><del>-    platform/unix/LanguageUnix.cpp
</del><span class="cx">     platform/unix/LoggingUnix.cpp
</span><span class="cx"> 
</span><span class="cx">     rendering/RenderThemeEfl.cpp
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformGTKcmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformGTK.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformGTK.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/PlatformGTK.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -183,7 +183,6 @@
</span><span class="cx"> 
</span><span class="cx">     platform/text/hyphen/HyphenationLibHyphen.cpp
</span><span class="cx"> 
</span><del>-    platform/unix/LanguageUnix.cpp
</del><span class="cx">     platform/unix/LoggingUnix.cpp
</span><span class="cx"> )
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformMaccmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformMac.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformMac.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/PlatformMac.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -461,7 +461,6 @@
</span><span class="cx">     platform/graphics/opentype/OpenTypeCG.cpp
</span><span class="cx">     platform/graphics/opentype/OpenTypeMathData.cpp
</span><span class="cx"> 
</span><del>-    platform/mac/BlockExceptions.mm
</del><span class="cx">     platform/mac/CursorMac.mm
</span><span class="cx">     platform/mac/DragDataMac.mm
</span><span class="cx">     platform/mac/DragImageMac.mm
</span><span class="lines">@@ -471,7 +470,6 @@
</span><span class="cx">     platform/mac/HIDGamepadProvider.cpp
</span><span class="cx">     platform/mac/KeyEventMac.mm
</span><span class="cx">     platform/mac/KillRingMac.mm
</span><del>-    platform/mac/Language.mm
</del><span class="cx">     platform/mac/LocalCurrentGraphicsContext.mm
</span><span class="cx">     platform/mac/LoggingMac.mm
</span><span class="cx">     platform/mac/NSScrollerImpDetails.mm
</span></span></pre></div>
<a id="trunkSourceWebCorePlatformWincmake"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/PlatformWin.cmake (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/PlatformWin.cmake        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/PlatformWin.cmake        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -123,7 +123,6 @@
</span><span class="cx">     platform/win/GDIObjectCounter.cpp
</span><span class="cx">     platform/win/GDIUtilities.cpp
</span><span class="cx">     platform/win/KeyEventWin.cpp
</span><del>-    platform/win/LanguageWin.cpp
</del><span class="cx">     platform/win/LocalizedStringsWin.cpp
</span><span class="cx">     platform/win/LoggingWin.cpp
</span><span class="cx">     platform/win/MemoryPressureHandlerWin.cpp
</span></span></pre></div>
<a id="trunkSourceWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -3635,7 +3635,6 @@
</span><span class="cx">                 934FE9E50B5CA539003E4A73 /* FileChooser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 934FE9E40B5CA539003E4A73 /* FileChooser.cpp */; };
</span><span class="cx">                 93500F3213FDE3BE0099EC24 /* NSScrollerImpDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = 93500F3113FDE3BE0099EC24 /* NSScrollerImpDetails.h */; };
</span><span class="cx">                 935207BE09BD410A00F2038D /* LocalizedStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = 935207BD09BD410A00F2038D /* LocalizedStrings.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                9352084509BD43B900F2038D /* Language.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9352084409BD43B900F2038D /* Language.mm */; };
</del><span class="cx">                 9353676B09AED88B00D35CD6 /* ScrollViewMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9353676A09AED88B00D35CD6 /* ScrollViewMac.mm */; };
</span><span class="cx">                 935C476309AC4CE600A6AAB4 /* MouseEventWithHitTestResults.h in Headers */ = {isa = PBXBuildFile; fileRef = 935C476209AC4CE600A6AAB4 /* MouseEventWithHitTestResults.h */; };
</span><span class="cx">                 935C476809AC4D4300A6AAB4 /* PlatformKeyboardEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 935C476609AC4D4300A6AAB4 /* PlatformKeyboardEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="lines">@@ -3735,7 +3734,6 @@
</span><span class="cx">                 93F199A808245E59001E9ABC /* WebCoreFrameView.h in Headers */ = {isa = PBXBuildFile; fileRef = F587854C02DE375901EA4122 /* WebCoreFrameView.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 93F199B808245E59001E9ABC /* Scrollbar.h in Headers */ = {isa = PBXBuildFile; fileRef = BC7B2AF80450824100A8000F /* Scrollbar.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 93F199BB08245E59001E9ABC /* WebCoreKeyboardUIMode.h in Headers */ = {isa = PBXBuildFile; fileRef = BE983D95052A2E0A00892D85 /* WebCoreKeyboardUIMode.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><del>-                93F199BE08245E59001E9ABC /* BlockExceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 65A640F00533BB1F0085E777 /* BlockExceptions.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 93F199DE08245E59001E9ABC /* Position.h in Headers */ = {isa = PBXBuildFile; fileRef = BE91FC8B06133666005E3790 /* Position.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 93F199E508245E59001E9ABC /* HTMLCanvasElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 51F6A3D60663BF04004D2919 /* HTMLCanvasElement.h */; settings = {ATTRIBUTES = (Private, ); }; };
</span><span class="cx">                 93F199EC08245E59001E9ABC /* XSLStyleSheet.h in Headers */ = {isa = PBXBuildFile; fileRef = BC06F24A06D18A7E004A6FA3 /* XSLStyleSheet.h */; };
</span><span class="lines">@@ -3747,7 +3745,6 @@
</span><span class="cx">                 93F19A9D08245E59001E9ABC /* TextResourceDecoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D27802DE43D7018635CA /* TextResourceDecoder.cpp */; };
</span><span class="cx">                 93F19AB908245E59001E9ABC /* Range.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F523D30302DE4476018635CA /* Range.cpp */; };
</span><span class="cx">                 93F19AD508245E59001E9ABC /* RenderTreeAsText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93955A4203D72932008635CE /* RenderTreeAsText.cpp */; };
</span><del>-                93F19AE108245E59001E9ABC /* BlockExceptions.mm in Sources */ = {isa = PBXBuildFile; fileRef = 65F80697054D9F86008BF776 /* BlockExceptions.mm */; };
</del><span class="cx">                 93F19AE608245E59001E9ABC /* SSLKeyGeneratorMac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84B2B24F056BF15F00D2B771 /* SSLKeyGeneratorMac.cpp */; };
</span><span class="cx">                 93F19AF808245E59001E9ABC /* Position.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE91FC8C06133666005E3790 /* Position.cpp */; };
</span><span class="cx">                 93F19AFD08245E59001E9ABC /* HTMLCanvasElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51F6A3D50663BF04004D2919 /* HTMLCanvasElement.cpp */; };
</span><span class="lines">@@ -6360,7 +6357,6 @@
</span><span class="cx">                 E0FEF372B47C53EAC1C1FBEE /* JSEventSource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E0FEF371B47C53EAC1C1FBEE /* JSEventSource.cpp */; };
</span><span class="cx">                 E107400D0E77BDC00033AF24 /* JSMessageChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E107400B0E77BDC00033AF24 /* JSMessageChannel.cpp */; };
</span><span class="cx">                 E107400E0E77BDC00033AF24 /* JSMessageChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = E107400C0E77BDC00033AF24 /* JSMessageChannel.h */; };
</span><del>-                E10A39E21AE84E7100A29AE3 /* CFBundleSPI.h in Headers */ = {isa = PBXBuildFile; fileRef = E10A39E11AE84E7100A29AE3 /* CFBundleSPI.h */; settings = {ATTRIBUTES = (Private, ); }; };
</del><span class="cx">                 E10B937C0B73C00A003ED890 /* JSCustomXPathNSResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = E10B937B0B73C00A003ED890 /* JSCustomXPathNSResolver.h */; };
</span><span class="cx">                 E10B93C30B73C291003ED890 /* JSCustomXPathNSResolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E10B93C20B73C291003ED890 /* JSCustomXPathNSResolver.cpp */; };
</span><span class="cx">                 E10B9B6C0B747599003ED890 /* NativeXPathNSResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = E10B9B6A0B747599003ED890 /* NativeXPathNSResolver.h */; };
</span><span class="lines">@@ -10096,7 +10092,6 @@
</span><span class="cx">                 65A21467097A329100B9050A /* Page.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Page.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 65A21482097A3F5300B9050A /* FrameTree.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = FrameTree.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 65A21483097A3F5300B9050A /* FrameTree.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = FrameTree.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                65A640F00533BB1F0085E777 /* BlockExceptions.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = BlockExceptions.h; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 8; usesTabs = 0; };
</del><span class="cx">                 65BF02290974816300C43196 /* Frame.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Frame.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 65BF022A0974816300C43196 /* Frame.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Frame.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 65C97AF208EA908800ACD273 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 4; usesTabs = 0; };
</span><span class="lines">@@ -10129,7 +10124,6 @@
</span><span class="cx">                 65DF323609D1DE65000BE325 /* JSCanvasPattern.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSCanvasPattern.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 65DF323609D1DE65001BE325 /* JSCanvasProxy.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = JSCanvasProxy.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 65E0E9431133C89F00B4CB10 /* JSDOMWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMWrapper.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                65F80697054D9F86008BF776 /* BlockExceptions.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlockExceptions.mm; sourceTree = &quot;&lt;group&gt;&quot;; tabWidth = 8; usesTabs = 0; };
</del><span class="cx">                 65FEA86809833ADE00BED4AB /* Page.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Page.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 697101071C6BE1550018C7F1 /* AccessibilitySVGElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilitySVGElement.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 697101081C6BE1550018C7F1 /* AccessibilitySVGElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySVGElement.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -11302,7 +11296,6 @@
</span><span class="cx">                 934FE9E40B5CA539003E4A73 /* FileChooser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileChooser.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 93500F3113FDE3BE0099EC24 /* NSScrollerImpDetails.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSScrollerImpDetails.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 935207BD09BD410A00F2038D /* LocalizedStrings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalizedStrings.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                9352084409BD43B900F2038D /* Language.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Language.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 9353676A09AED88B00D35CD6 /* ScrollViewMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollViewMac.mm; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 935C476209AC4CE600A6AAB4 /* MouseEventWithHitTestResults.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MouseEventWithHitTestResults.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 935C476609AC4D4300A6AAB4 /* PlatformKeyboardEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformKeyboardEvent.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -14412,7 +14405,6 @@
</span><span class="cx">                 E0FEF371B47C53EAC1C1FBEE /* JSEventSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSEventSource.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E107400B0E77BDC00033AF24 /* JSMessageChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMessageChannel.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E107400C0E77BDC00033AF24 /* JSMessageChannel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMessageChannel.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><del>-                E10A39E11AE84E7100A29AE3 /* CFBundleSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFBundleSPI.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</del><span class="cx">                 E10B937B0B73C00A003ED890 /* JSCustomXPathNSResolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomXPathNSResolver.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E10B93C20B73C291003ED890 /* JSCustomXPathNSResolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomXPathNSResolver.cpp; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="cx">                 E10B9B6A0B747599003ED890 /* NativeXPathNSResolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeXPathNSResolver.h; sourceTree = &quot;&lt;group&gt;&quot;; };
</span><span class="lines">@@ -17585,7 +17577,6 @@
</span><span class="cx">                 65086DA619AC1719009AF46B /* cf */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                E10A39E11AE84E7100A29AE3 /* CFBundleSPI.h */,
</del><span class="cx">                                 65086DA719AC1719009AF46B /* CFLocaleSPI.h */,
</span><span class="cx">                                 A10D7FEB1C2676D100C6C115 /* CFNetworkConnectionCacheSPI.h */,
</span><span class="cx">                                 CE12525A1A1C018200864480 /* CFNetworkSPI.h */,
</span><span class="lines">@@ -17871,8 +17862,6 @@
</span><span class="cx">                 6582A14809999D6C00BEEB6D /* mac */ = {
</span><span class="cx">                         isa = PBXGroup;
</span><span class="cx">                         children = (
</span><del>-                                65A640F00533BB1F0085E777 /* BlockExceptions.h */,
-                                65F80697054D9F86008BF776 /* BlockExceptions.mm */,
</del><span class="cx">                                 F58784F002DE375901EA4122 /* CursorMac.mm */,
</span><span class="cx">                                 A795463D0B5C4C80007B438F /* DragDataMac.mm */,
</span><span class="cx">                                 A7CFB3D40B7ED1180070C32D /* DragImageMac.mm */,
</span><span class="lines">@@ -17885,7 +17874,6 @@
</span><span class="cx">                                 5179CE35195CAC7E0019C198 /* HIDGamepadProvider.h */,
</span><span class="cx">                                 935C476E09AC4D7300A6AAB4 /* KeyEventMac.mm */,
</span><span class="cx">                                 521D46F511AEC98100514613 /* KillRingMac.mm */,
</span><del>-                                9352084409BD43B900F2038D /* Language.mm */,
</del><span class="cx">                                 06E81ED60AB5D5E900C87837 /* LocalCurrentGraphicsContext.h */,
</span><span class="cx">                                 06E81EEB0AB5DA9700C87837 /* LocalCurrentGraphicsContext.mm */,
</span><span class="cx">                                 1402645D0AFDC19B005919E2 /* LoggingMac.mm */,
</span><span class="lines">@@ -25223,7 +25211,6 @@
</span><span class="cx">                                 2EDEF1F7121B0EFC00726DB2 /* BlobRegistryImpl.h in Headers */,
</span><span class="cx">                                 2EB4BCD3121F03E300EC4885 /* BlobResourceHandle.h in Headers */,
</span><span class="cx">                                 976D6C7F122B8A3D001FD1F7 /* BlobURL.h in Headers */,
</span><del>-                                93F199BE08245E59001E9ABC /* BlockExceptions.h in Headers */,
</del><span class="cx">                                 BC5EB5E10E81BE8700B25965 /* BorderData.h in Headers */,
</span><span class="cx">                                 589556ED18D4A44000764B03 /* BorderEdge.h in Headers */,
</span><span class="cx">                                 BC5EB5DB0E81B7EA00B25965 /* BorderValue.h in Headers */,
</span><span class="lines">@@ -25290,7 +25277,6 @@
</span><span class="cx">                                 CDE8B5F11A69778B00B4B66A /* CDMSessionClearKey.h in Headers */,
</span><span class="cx">                                 CDE595971BF26E2100A1CBE8 /* CDMSessionMediaSourceAVFObjC.h in Headers */,
</span><span class="cx">                                 5FA904CA178E61F5004C8A2D /* CertificateInfo.h in Headers */,
</span><del>-                                E10A39E21AE84E7100A29AE3 /* CFBundleSPI.h in Headers */,
</del><span class="cx">                                 A10D7FEC1C2676D100C6C115 /* CFNetworkConnectionCacheSPI.h in Headers */,
</span><span class="cx">                                 CE12525B1A1C018200864480 /* CFNetworkSPI.h in Headers */,
</span><span class="cx">                                 E1A8E56717552B2A007488E7 /* CFURLExtras.h in Headers */,
</span><span class="lines">@@ -29189,7 +29175,6 @@
</span><span class="cx">                                 2EDEF1F6121B0EFC00726DB2 /* BlobRegistryImpl.cpp in Sources */,
</span><span class="cx">                                 2EB4BCD2121F03E300EC4885 /* BlobResourceHandle.cpp in Sources */,
</span><span class="cx">                                 976D6C7E122B8A3D001FD1F7 /* BlobURL.cpp in Sources */,
</span><del>-                                93F19AE108245E59001E9ABC /* BlockExceptions.mm in Sources */,
</del><span class="cx">                                 58AEE2F418D4BCCF0022E7FE /* BorderEdge.cpp in Sources */,
</span><span class="cx">                                 6ED8C379183BFF8C009E53BD /* BoxShape.cpp in Sources */,
</span><span class="cx">                                 BCEA4854097D93020094C9E4 /* break_lines.cpp in Sources */,
</span><span class="lines">@@ -30926,7 +30911,6 @@
</span><span class="cx">                                 450CEBF015073BBE002BB149 /* LabelableElement.cpp in Sources */,
</span><span class="cx">                                 A456FA2611AD4A830020B420 /* LabelsNodeList.cpp in Sources */,
</span><span class="cx">                                 E18772F1126E2629003DD586 /* Language.cpp in Sources */,
</span><del>-                                9352084509BD43B900F2038D /* Language.mm in Sources */,
</del><span class="cx">                                 2917B5611473496C0052C9D0 /* LayerFlushScheduler.cpp in Sources */,
</span><span class="cx">                                 2917B566147349950052C9D0 /* LayerFlushSchedulerMac.cpp in Sources */,
</span><span class="cx">                                 7AA3A69F194B59B6001CBD24 /* LayerPool.cpp in Sources */,
</span></span></pre></div>
<a id="trunkSourceWebCorebindingsobjcDOMCustomXPathNSResolvermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/bindings/objc/DOMCustomXPathNSResolver.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/bindings/objc/DOMCustomXPathNSResolver.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/bindings/objc/DOMCustomXPathNSResolver.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;DOMCustomXPathNSResolver.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;BlockExceptions.h&quot;
</del><ins>+#include &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingiosEditorIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/ios/EditorIOS.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/editing/ios/EditorIOS.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;Editor.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;BlockExceptions.h&quot;
</del><span class="cx"> #include &quot;CachedImage.h&quot;
</span><span class="cx"> #include &quot;CSSComputedStyleDeclaration.h&quot;
</span><span class="cx"> #include &quot;CSSPrimitiveValueMappings.h&quot;
</span><span class="lines">@@ -58,6 +57,7 @@
</span><span class="cx"> #include &quot;WAKAppKitStubs.h&quot;
</span><span class="cx"> #include &quot;htmlediting.h&quot;
</span><span class="cx"> #include &quot;markup.h&quot;
</span><ins>+#include &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK(AppSupport)
</span><span class="cx"> SOFT_LINK(AppSupport, CPSharedResourcesDirectory, CFStringRef, (void), ())
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacDictionaryLookupmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/DictionaryLookup.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/DictionaryLookup.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/editing/mac/DictionaryLookup.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if PLATFORM(MAC)
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;Document.h&quot;
</span><span class="cx"> #import &quot;FocusController.h&quot;
</span><span class="cx"> #import &quot;Frame.h&quot;
</span><span class="lines">@@ -47,6 +46,7 @@
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #import &quot;htmlediting.h&quot;
</span><span class="cx"> #import &lt;PDFKit/PDFKit.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/RefPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_CONSTANT_MAY_FAIL(Lookup, LUTermOptionDisableSearchTermIndicator, NSString *)
</span></span></pre></div>
<a id="trunkSourceWebCoreeditingmacEditorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/editing/mac/EditorMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/editing/mac/EditorMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;Editor.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;CSSPrimitiveValueMappings.h&quot;
</span><span class="cx"> #import &quot;CSSValuePool.h&quot;
</span><span class="cx"> #import &quot;CachedResourceLoader.h&quot;
</span><span class="lines">@@ -65,6 +64,7 @@
</span><span class="cx"> #import &quot;WebNSAttributedStringExtras.h&quot;
</span><span class="cx"> #import &quot;htmlediting.h&quot;
</span><span class="cx"> #import &quot;markup.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageCaptionUserPreferencesMediaAFcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/page/CaptionUserPreferencesMediaAF.cpp        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -42,6 +42,7 @@
</span><span class="cx"> #include &quot;UserStyleSheetTypes.h&quot;
</span><span class="cx"> #include &quot;VTTCue.h&quot;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><ins>+#include &lt;wtf/PlatformUserPreferredLanguages.h&gt;
</ins><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/CString.h&gt;
</span><span class="cx"> #include &lt;wtf/text/StringBuilder.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCorepageiosEventHandlerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/EventHandlerIOS.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/EventHandlerIOS.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/page/ios/EventHandlerIOS.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #import &quot;EventHandler.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AXObjectCache.h&quot;
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;Chrome.h&quot;
</span><span class="cx"> #import &quot;ChromeClient.h&quot;
</span><span class="cx"> #import &quot;FocusController.h&quot;
</span><span class="lines">@@ -42,6 +41,7 @@
</span><span class="cx"> #import &quot;WAKView.h&quot;
</span><span class="cx"> #import &quot;WAKWindow.h&quot;
</span><span class="cx"> #import &quot;WebEvent.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #import &lt;wtf/Noncopyable.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCorepageiosFrameIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/ios/FrameIOS.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/ios/FrameIOS.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/page/ios/FrameIOS.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AnimationController.h&quot;
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;DOMCSSStyleDeclarationInternal.h&quot;
</span><span class="cx"> #import &quot;DOMCore.h&quot;
</span><span class="cx"> #import &quot;DOMInternal.h&quot;
</span><span class="lines">@@ -70,6 +69,7 @@
</span><span class="cx"> #import &quot;WAKWindow.h&quot;
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #import &lt;runtime/JSLock.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore::HTMLNames;
</span><span class="cx"> using namespace WTF::Unicode;
</span></span></pre></div>
<a id="trunkSourceWebCorepagemacChromeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/mac/ChromeMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/mac/ChromeMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/page/mac/ChromeMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -20,8 +20,8 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;Chrome.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;ChromeClient.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> #include &quot;WAKResponder.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCorepagemacEventHandlerMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/page/mac/EventHandlerMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/page/mac/EventHandlerMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/page/mac/EventHandlerMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #include &quot;EventHandler.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #include &quot;AXObjectCache.h&quot;
</span><del>-#include &quot;BlockExceptions.h&quot;
</del><span class="cx"> #include &quot;Chrome.h&quot;
</span><span class="cx"> #include &quot;ChromeClient.h&quot;
</span><span class="cx"> #include &quot;DataTransfer.h&quot;
</span><span class="lines">@@ -61,6 +60,7 @@
</span><span class="cx"> #include &quot;ShadowRoot.h&quot;
</span><span class="cx"> #include &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #include &quot;WheelEventTestTrigger.h&quot;
</span><ins>+#include &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #include &lt;wtf/MainThread.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #include &lt;wtf/ObjcRuntimeExtras.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLanguagecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Language.cpp (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Language.cpp        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/Language.cpp        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*
</span><del>- * Copyright (C) 2010, 2013 Apple Inc. All rights reserved.
</del><ins>+ * Copyright (C) 2010, 2013, 2016 Apple Inc. All rights reserved.
</ins><span class="cx">  *
</span><span class="cx">  * Redistribution and use in source and binary forms, with or without
</span><span class="cx">  * modification, are permitted provided that the following conditions
</span><span class="lines">@@ -28,6 +28,7 @@
</span><span class="cx"> 
</span><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><ins>+#include &lt;wtf/PlatformUserPreferredLanguages.h&gt;
</ins><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #include &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -37,6 +38,16 @@
</span><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> 
</span><ins>+static void registerLanguageDidChangeCallbackIfNecessary()
+{
+    static std::once_flag once;
+    std::call_once(
+        once,
+        [] {
+            setPlatformUserPreferredLanguagesChangedCallback(languageDidChange);
+        });
+}
+
</ins><span class="cx"> typedef HashMap&lt;void*, LanguageChangeObserverFunction&gt; ObserverMap;
</span><span class="cx"> static ObserverMap&amp; observerMap()
</span><span class="cx"> {
</span><span class="lines">@@ -46,6 +57,7 @@
</span><span class="cx"> 
</span><span class="cx"> void addLanguageChangeObserver(void* context, LanguageChangeObserverFunction customObserver)
</span><span class="cx"> {
</span><ins>+    registerLanguageDidChangeCallbackIfNecessary();
</ins><span class="cx">     observerMap().set(context, customObserver);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -87,13 +99,14 @@
</span><span class="cx">     preferredLanguagesOverride() = override;
</span><span class="cx">     languageDidChange();
</span><span class="cx"> }
</span><del>-    
</del><ins>+
</ins><span class="cx"> Vector&lt;String&gt; userPreferredLanguages()
</span><span class="cx"> {
</span><span class="cx">     Vector&lt;String&gt;&amp; override = preferredLanguagesOverride();
</span><span class="cx">     if (!override.isEmpty())
</span><span class="cx">         return override;
</span><span class="cx">     
</span><ins>+    registerLanguageDidChangeCallbackIfNecessary();
</ins><span class="cx">     return platformUserPreferredLanguages();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformLanguageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/Language.h (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/Language.h        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/Language.h        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -42,8 +42,6 @@
</span><span class="cx"> WEBCORE_EXPORT void addLanguageChangeObserver(void* context, LanguageChangeObserverFunction);
</span><span class="cx"> WEBCORE_EXPORT void removeLanguageChangeObserver(void* context);
</span><span class="cx"> 
</span><del>-Vector&lt;String&gt; platformUserPreferredLanguages();
-
</del><span class="cx"> String displayNameForLanguageLocale(const String&amp;);
</span><span class="cx"> 
</span><span class="cx"> // Called from platform specific code when the user's preferred language(s) change.
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformcocoaContentFilterUnblockHandlerCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -28,10 +28,10 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CONTENT_FILTERING)
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;ContentFilter.h&quot;
</span><span class="cx"> #import &quot;Logging.h&quot;
</span><span class="cx"> #import &quot;ResourceRequest.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if !LOG_DISABLED
</span><span class="cx"> #import &lt;wtf/text/CString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcInbandTextTrackPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> 
</span><span class="cx"> #import &quot;InbandTextTrackPrivateAVFObjC.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;FloatConversion.h&quot;
</span><span class="cx"> #import &quot;InbandTextTrackPrivate.h&quot;
</span><span class="cx"> #import &quot;InbandTextTrackPrivateAVF.h&quot;
</span><span class="lines">@@ -37,6 +36,7 @@
</span><span class="cx"> #import &quot;SoftLinking.h&quot;
</span><span class="cx"> #import &lt;AVFoundation/AVFoundation.h&gt;
</span><span class="cx"> #import &lt;objc/runtime.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation)
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateAVFoundationObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -33,7 +33,6 @@
</span><span class="cx"> #import &quot;AudioSourceProviderAVFObjC.h&quot;
</span><span class="cx"> #import &quot;AudioTrackPrivateAVFObjC.h&quot;
</span><span class="cx"> #import &quot;AuthenticationChallenge.h&quot;
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;CDMSessionAVFoundationObjC.h&quot;
</span><span class="cx"> #import &quot;Cookie.h&quot;
</span><span class="cx"> #import &quot;ExceptionCodePlaceholder.h&quot;
</span><span class="lines">@@ -78,6 +77,7 @@
</span><span class="cx"> #import &lt;runtime/Uint16Array.h&gt;
</span><span class="cx"> #import &lt;runtime/Uint32Array.h&gt;
</span><span class="cx"> #import &lt;runtime/Uint8Array.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> #import &lt;wtf/ListHashSet.h&gt;
</span><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsavfoundationobjcSourceBufferPrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(MEDIA_SOURCE) &amp;&amp; USE(AVFOUNDATION)
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;CDMSessionAVContentKeySession.h&quot;
</span><span class="cx"> #import &quot;CDMSessionMediaSourceAVFObjC.h&quot;
</span><span class="cx"> #import &quot;ExceptionCodePlaceholder.h&quot;
</span><span class="lines">@@ -50,6 +49,7 @@
</span><span class="cx"> #import &lt;objc/runtime.h&gt;
</span><span class="cx"> #import &lt;wtf/text/AtomicString.h&gt;
</span><span class="cx"> #import &lt;wtf/text/CString.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/HashCountedSet.h&gt;
</span><span class="cx"> #import &lt;wtf/MainThread.h&gt;
</span><span class="cx"> #import &lt;wtf/WeakPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscacocoaPlatformCAFiltersCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,12 +26,12 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #import &quot;PlatformCAFilters.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;FloatConversion.h&quot;
</span><span class="cx"> #import &quot;LengthFunctions.h&quot; // This is a layering violation.
</span><span class="cx"> #import &quot;PlatformCALayerCocoa.h&quot;
</span><span class="cx"> #import &quot;QuartzCoreSPI.h&quot;
</span><span class="cx"> #import &lt;QuartzCore/QuartzCore.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscacocoaPlatformCALayerCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #import &quot;PlatformCALayerCocoa.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AnimationUtilities.h&quot;
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;GraphicsContext.h&quot;
</span><span class="cx"> #import &quot;GraphicsLayerCA.h&quot;
</span><span class="cx"> #import &quot;LengthFunctions.h&quot;
</span><span class="lines">@@ -48,6 +47,7 @@
</span><span class="cx"> #import &lt;AVFoundation/AVFoundation.h&gt;
</span><span class="cx"> #import &lt;QuartzCore/QuartzCore.h&gt;
</span><span class="cx"> #import &lt;objc/runtime.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicscocoaFontCocoamm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/cocoa/FontCocoa.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;Font.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;Color.h&quot;
</span><span class="cx"> #import &quot;CoreGraphicsSPI.h&quot;
</span><span class="cx"> #import &quot;CoreTextSPI.h&quot;
</span><span class="lines">@@ -40,6 +39,7 @@
</span><span class="cx"> #import &lt;float.h&gt;
</span><span class="cx"> #import &lt;unicode/uchar.h&gt;
</span><span class="cx"> #import &lt;wtf/Assertions.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #import &lt;wtf/StdLibExtras.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacColorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/mac/ColorMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;ColorMac.h&quot;
</span><span class="cx"> 
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #import &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacGraphicsContext3DMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> #include &quot;GraphicsContext3DIOS.h&quot;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #include &quot;CanvasRenderingContext.h&quot;
</span><span class="cx"> #include &lt;CoreGraphics/CGBitmapContext.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformgraphicsmacMediaPlayerPrivateQTKitmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> 
</span><span class="cx"> #import &quot;MediaPlayerPrivateQTKit.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;DocumentLoader.h&quot;
</span><span class="cx"> #import &quot;GraphicsContext.h&quot;
</span><span class="cx"> #import &quot;URL.h&quot;
</span><span class="lines">@@ -43,6 +42,7 @@
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #import &lt;QTKit/QTKit.h&gt;
</span><span class="cx"> #import &lt;objc/runtime.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK(QTKit)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosPlatformSpeechSynthesizerIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/ios/PlatformSpeechSynthesizerIOS.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -29,11 +29,11 @@
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(SPEECH_SYNTHESIS)
</span><span class="cx"> 
</span><del>-#include &quot;BlockExceptions.h&quot;
</del><span class="cx"> #include &quot;PlatformSpeechSynthesisUtterance.h&quot;
</span><span class="cx"> #include &quot;PlatformSpeechSynthesisVoice.h&quot;
</span><span class="cx"> #include &quot;SoftLinking.h&quot;
</span><span class="cx"> #include &lt;AVFoundation/AVSpeechSynthesis.h&gt;
</span><ins>+#include &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #include &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> SOFT_LINK_FRAMEWORK(AVFoundation)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosScrollViewIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;ScrollView.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;FloatRect.h&quot;
</span><span class="cx"> #import &quot;IntRect.h&quot;
</span><span class="cx"> #import &quot;Logging.h&quot;
</span><span class="lines">@@ -38,6 +37,7 @@
</span><span class="cx"> #import &quot;WAKWindow.h&quot;
</span><span class="cx"> #import &quot;WKViewPrivate.h&quot;
</span><span class="cx"> #import &quot;WebCoreFrameView.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace std;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformiosWidgetIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/ios/WidgetIOS.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/ios/WidgetIOS.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/ios/WidgetIOS.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;Widget.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;Cursor.h&quot;
</span><span class="cx"> #import &quot;Document.h&quot;
</span><span class="cx"> #import &quot;FontCascade.h&quot;
</span><span class="lines">@@ -40,6 +39,7 @@
</span><span class="cx"> #import &quot;WAKWindow.h&quot;
</span><span class="cx"> #import &quot;WebCoreFrameView.h&quot;
</span><span class="cx"> #import &quot;WebCoreView.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span><span class="cx"> @interface NSView (WebSetSelectedMethods)
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacBlockExceptionsh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mac/BlockExceptions.h (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/BlockExceptions.h        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/BlockExceptions.h        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,32 +0,0 @@
</span><del>-/*
- * Copyright (C) 2003 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. 
- */
-
-#import &lt;Foundation/NSException.h&gt;
-
-WEBCORE_EXPORT NO_RETURN_DUE_TO_ASSERT void ReportBlockedObjCException(NSException *);
-
-#define BEGIN_BLOCK_OBJC_EXCEPTIONS @try {
-#define END_BLOCK_OBJC_EXCEPTIONS } @catch(NSException *localException) { ReportBlockedObjCException(localException); }
-
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmacBlockExceptionsmm"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mac/BlockExceptions.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/BlockExceptions.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/BlockExceptions.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,38 +0,0 @@
</span><del>-/*
- * Copyright (C) 2003, 2007 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. 
- */
-
-#import &quot;config.h&quot;
-#import &quot;BlockExceptions.h&quot;
-
-#import &lt;wtf/Assertions.h&gt;
-
-void ReportBlockedObjCException(NSException *exception)
-{
-#if ASSERT_DISABLED
-    NSLog(@&quot;*** WebKit discarding exception: &lt;%@&gt; %@&quot;, [exception name], [exception reason]);
-#else
-    ASSERT_WITH_MESSAGE(0, &quot;Uncaught exception - %@&quot;, exception);
-#endif
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmacCursorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/CursorMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/CursorMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/CursorMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,8 +26,8 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;Cursor.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> 
</span><span class="cx"> @interface WebCoreCursorBundle : NSObject { }
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacLanguagemm"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/mac/Language.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/Language.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/Language.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,172 +0,0 @@
</span><del>-/*
- * Copyright (C) 2003, 2005, 2006, 2010, 2011, 2016 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 &quot;config.h&quot;
-#import &quot;Language.h&quot;
-
-#import &quot;BlockExceptions.h&quot;
-#import &quot;CFBundleSPI.h&quot;
-#import &quot;WebCoreNSStringExtras.h&quot;
-#import &lt;mutex&gt;
-#import &lt;unicode/uloc.h&gt;
-#import &lt;wtf/Assertions.h&gt;
-#import &lt;wtf/Lock.h&gt;
-#import &lt;wtf/NeverDestroyed.h&gt;
-#import &lt;wtf/RetainPtr.h&gt;
-#import &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-static StaticLock preferredLanguagesMutex;
-
-static Vector&lt;String&gt;&amp; preferredLanguages()
-{
-    static NeverDestroyed&lt;Vector&lt;String&gt;&gt; languages;
-    return languages;
-}
-
-}
-
-@interface WebLanguageChangeObserver : NSObject
-@end
-
-@implementation WebLanguageChangeObserver
-
-+ (void)languagePreferencesDidChange:(NSNotification *)notification
-{
-    UNUSED_PARAM(notification);
-
-    {
-        std::lock_guard&lt;StaticLock&gt; lock(WebCore::preferredLanguagesMutex);
-        WebCore::preferredLanguages().clear();
-    }
-
-    WebCore::languageDidChange();
-}
-
-@end
-
-namespace WebCore {
-
-static String httpStyleLanguageCode(NSString *language, NSString *country)
-{
-    SInt32 languageCode;
-    SInt32 regionCode; 
-    SInt32 scriptCode; 
-    CFStringEncoding stringEncoding;
-    
-    bool languageDidSpecifyExplicitVariant = [language rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@&quot;-_&quot;]].location != NSNotFound;
-
-    // FIXME: This transformation is very wrong:
-    // 1. There is no reason why CFBundle localization names would be at all related to language names as used on the Web.
-    // 2. Script Manager codes cannot represent all languages that are now supported by the platform, so the conversion is lossy.
-    // 3. This should probably match what is sent by the network layer as Accept-Language, but currently, that's implemented separately.
-    CFBundleGetLocalizationInfoForLocalization((CFStringRef)language, &amp;languageCode, &amp;regionCode, &amp;scriptCode, &amp;stringEncoding);
-    RetainPtr&lt;CFStringRef&gt; preferredLanguageCode = adoptCF(CFBundleCopyLocalizationForLocalizationInfo(languageCode, regionCode, scriptCode, stringEncoding));
-    if (preferredLanguageCode)
-        language = (NSString *)preferredLanguageCode.get();
-
-    // Make the string lowercase.
-    NSString *lowercaseLanguageCode = [language lowercaseString];
-    NSString *lowercaseCountryCode = [country lowercaseString];
-    
-    // If we see a &quot;_&quot; after a 2-letter language code:
-    // If the country is valid and the language did not specify a variant, replace the &quot;_&quot; and
-    // whatever comes after it with &quot;-&quot; followed by the country code.
-    // Otherwise, replace the &quot;_&quot; with a &quot;-&quot; and use whatever country
-    // CFBundleCopyLocalizationForLocalizationInfo() returned.
-    if ([lowercaseLanguageCode length] &gt;= 3 &amp;&amp; [lowercaseLanguageCode characterAtIndex:2] == '_') {
-        if (country &amp;&amp; !languageDidSpecifyExplicitVariant)
-            return [NSString stringWithFormat:@&quot;%@-%@&quot;, [lowercaseLanguageCode substringWithRange:NSMakeRange(0, 2)], lowercaseCountryCode];
-        
-        // Fall back to older behavior, which used the original language-based code but just changed
-        // the &quot;_&quot; to a &quot;-&quot;.
-        RetainPtr&lt;NSMutableString&gt; mutableLanguageCode = adoptNS([lowercaseLanguageCode mutableCopy]);
-        [mutableLanguageCode.get() replaceCharactersInRange:NSMakeRange(2, 1) withString:@&quot;-&quot;];
-        return mutableLanguageCode.get();
-    }
-
-    return lowercaseLanguageCode;
-}
-
-static bool isValidICUCountryCode(NSString* countryCode)
-{
-    if (!countryCode)
-        return false;
-    const char* const* countries = uloc_getISOCountries();
-    const char* countryUTF8 = [countryCode UTF8String];
-    for (unsigned i = 0; countries[i]; ++i) {
-        const char* possibleCountry = countries[i];
-        if (!strcmp(countryUTF8, possibleCountry))
-            return true;
-    }
-    return false;
-}
-
-Vector&lt;String&gt; platformUserPreferredLanguages()
-{
-#if PLATFORM(MAC)
-    static dispatch_once_t onceToken;
-    dispatch_once(&amp;onceToken, ^{
-        [[NSDistributedNotificationCenter defaultCenter] addObserver:[WebLanguageChangeObserver self] selector:@selector(languagePreferencesDidChange:) name:@&quot;AppleLanguagePreferencesChangedNotification&quot; object:nil];
-    });
-#endif
-
-    BEGIN_BLOCK_OBJC_EXCEPTIONS;
-
-    std::lock_guard&lt;StaticLock&gt; lock(preferredLanguagesMutex);
-    Vector&lt;String&gt;&amp; userPreferredLanguages = preferredLanguages();
-
-    if (userPreferredLanguages.isEmpty()) {
-        RetainPtr&lt;CFLocaleRef&gt; locale = adoptCF(CFLocaleCopyCurrent());
-        NSString *countryCode = (NSString *)CFLocaleGetValue(locale.get(), kCFLocaleCountryCode);
-        
-        if (!isValidICUCountryCode(countryCode))
-            countryCode = nil;
-        
-        RetainPtr&lt;CFArrayRef&gt; languages = adoptCF(CFLocaleCopyPreferredLanguages());
-        CFIndex languageCount = CFArrayGetCount(languages.get());
-        if (!languageCount)
-            userPreferredLanguages.append(&quot;en&quot;);
-        else {
-            for (CFIndex i = 0; i &lt; languageCount; i++)
-                userPreferredLanguages.append(httpStyleLanguageCode((NSString *)CFArrayGetValueAtIndex(languages.get(), i), countryCode));
-        }
-    }
-
-    Vector&lt;String&gt; userPreferredLanguagesCopy;
-    userPreferredLanguagesCopy.reserveInitialCapacity(userPreferredLanguages.size());
-
-    for (auto&amp; language : userPreferredLanguages)
-        userPreferredLanguagesCopy.uncheckedAppend(language.isolatedCopy());
-
-    return userPreferredLanguagesCopy;
-
-    END_BLOCK_OBJC_EXCEPTIONS;
-
-    return Vector&lt;String&gt;();
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollAnimatorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> 
</span><span class="cx"> #include &quot;ScrollAnimatorMac.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;BlockExceptions.h&quot;
</del><span class="cx"> #include &quot;FloatPoint.h&quot;
</span><span class="cx"> #include &quot;GraphicsLayer.h&quot;
</span><span class="cx"> #include &quot;Logging.h&quot;
</span><span class="lines">@@ -42,6 +41,7 @@
</span><span class="cx"> #include &quot;ScrollbarThemeMac.h&quot;
</span><span class="cx"> #include &quot;TextStream.h&quot;
</span><span class="cx"> #include &quot;WebCoreSystemInterface.h&quot;
</span><ins>+#include &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollViewMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollViewMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollViewMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/ScrollViewMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,13 +26,13 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;ScrollView.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;FloatRect.h&quot;
</span><span class="cx"> #import &quot;FloatSize.h&quot;
</span><span class="cx"> #import &quot;IntRect.h&quot;
</span><span class="cx"> #import &quot;Logging.h&quot;
</span><span class="cx"> #import &quot;NotImplemented.h&quot;
</span><span class="cx"> #import &quot;WebCoreFrameView.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> @interface NSScrollView ()
</span><span class="cx"> - (NSEdgeInsets)contentInsets;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacScrollbarThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;ScrollbarThemeMac.h&quot;
</span><span class="cx"> 
</span><del>-#include &quot;BlockExceptions.h&quot;
</del><span class="cx"> #include &quot;ColorMac.h&quot;
</span><span class="cx"> #include &quot;GraphicsLayer.h&quot;
</span><span class="cx"> #include &quot;ImageBuffer.h&quot;
</span><span class="lines">@@ -38,6 +37,7 @@
</span><span class="cx"> #include &quot;ScrollView.h&quot;
</span><span class="cx"> #include &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #include &lt;Carbon/Carbon.h&gt;
</span><ins>+#include &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #include &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #include &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #include &lt;wtf/StdLibExtras.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacThemeMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/ThemeMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/ThemeMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/ThemeMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -27,7 +27,6 @@
</span><span class="cx"> #import &quot;ThemeMac.h&quot;
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AXObjectCache.h&quot;
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;GraphicsContext.h&quot;
</span><span class="cx"> #import &quot;ImageBuffer.h&quot;
</span><span class="cx"> #import &quot;LocalCurrentGraphicsContext.h&quot;
</span><span class="lines">@@ -35,6 +34,7 @@
</span><span class="cx"> #import &quot;ScrollView.h&quot;
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #import &lt;Carbon/Carbon.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #import &lt;wtf/StdLibExtras.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmacWidgetMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mac/WidgetMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mac/WidgetMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mac/WidgetMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;Widget.h&quot;
</span><span class="cx"> 
</span><del>-
-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;Chrome.h&quot;
</span><span class="cx"> #import &quot;Cursor.h&quot;
</span><span class="cx"> #import &quot;Document.h&quot;
</span><span class="lines">@@ -40,6 +38,7 @@
</span><span class="cx"> #import &quot;RuntimeApplicationChecks.h&quot;
</span><span class="cx"> #import &quot;WebCoreFrameView.h&quot;
</span><span class="cx"> #import &quot;WebCoreView.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/Ref.h&gt;
</span><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformmediastreammacAVVideoCaptureSourcemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -29,7 +29,6 @@
</span><span class="cx"> #if ENABLE(MEDIA_STREAM) &amp;&amp; USE(AVFOUNDATION)
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AVCaptureDeviceManager.h&quot;
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;GraphicsContextCG.h&quot;
</span><span class="cx"> #import &quot;ImageBuffer.h&quot;
</span><span class="cx"> #import &quot;IntRect.h&quot;
</span><span class="lines">@@ -41,6 +40,7 @@
</span><span class="cx"> #import &quot;RealtimeMediaSourceSettings.h&quot;
</span><span class="cx"> #import &lt;AVFoundation/AVFoundation.h&gt;
</span><span class="cx"> #import &lt;objc/runtime.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #import &quot;CoreMediaSoftLink.h&quot;
</span><span class="cx"> #import &quot;CoreVideoSoftLink.h&quot;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacCookieJarMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/network/mac/CookieJarMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,10 +26,10 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;PlatformCookieJar.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;CFNetworkSPI.h&quot;
</span><span class="cx"> #import &quot;NetworkStorageSession.h&quot;
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> namespace WebCore {
</span><span class="cx"> static NSHTTPCookieStorage *cookieStorage(const NetworkStorageSession&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacResourceErrorMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/ResourceErrorMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/ResourceErrorMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/network/mac/ResourceErrorMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,10 +26,10 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;ResourceError.h&quot;
</span><span class="cx"> 
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;URL.h&quot;
</span><span class="cx"> #import &lt;CoreFoundation/CFError.h&gt;
</span><span class="cx"> #import &lt;Foundation/Foundation.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS) &amp;&amp; USE(CFNETWORK)
</span><span class="cx"> #import &lt;CFNetwork/CFSocketStreamPriv.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformnetworkmacResourceHandleMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -28,7 +28,6 @@
</span><span class="cx"> 
</span><span class="cx"> #import &quot;AuthenticationChallenge.h&quot;
</span><span class="cx"> #import &quot;AuthenticationMac.h&quot;
</span><del>-#import &quot;BlockExceptions.h&quot;
</del><span class="cx"> #import &quot;CFNetworkSPI.h&quot;
</span><span class="cx"> #import &quot;CookieStorage.h&quot;
</span><span class="cx"> #import &quot;CredentialStorage.h&quot;
</span><span class="lines">@@ -53,6 +52,7 @@
</span><span class="cx"> #import &quot;SynchronousLoaderClient.h&quot;
</span><span class="cx"> #import &quot;WebCoreSystemInterface.h&quot;
</span><span class="cx"> #import &quot;WebCoreURLResponse.h&quot;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/Ref.h&gt;
</span><span class="cx"> #import &lt;wtf/SchedulePair.h&gt;
</span><span class="cx"> #import &lt;wtf/text/Base64.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebCoreplatformspicfCFBundleSPIh"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/spi/cf/CFBundleSPI.h (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/spi/cf/CFBundleSPI.h        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/spi/cf/CFBundleSPI.h        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,44 +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. ``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 CFBundleSPI_h
-#define CFBundleSPI_h
-
-#include &lt;CoreFoundation/CoreFoundation.h&gt;
-
-#if USE(APPLE_INTERNAL_SDK)
-#import &lt;CoreFoundation/CFPriv.h&gt;
-#else
-#include &lt;wtf/spi/darwin/XPCSPI.h&gt;
-#endif
-
-extern &quot;C&quot; {
-void _CFBundleSetupXPCBootstrap(xpc_object_t bootstrap);
-
-Boolean CFBundleGetLocalizationInfoForLocalization(CFStringRef localizationName, SInt32 *languageCode, SInt32 *regionCode, SInt32 *scriptCode, CFStringEncoding *stringEncoding);
-CFStringRef CFBundleCopyLocalizationForLocalizationInfo(SInt32 languageCode, SInt32 regionCode, SInt32 scriptCode, CFStringEncoding stringEncoding);
-}
-
-#endif
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformunixLanguageUnixcpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/unix/LanguageUnix.cpp (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/unix/LanguageUnix.cpp        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/unix/LanguageUnix.cpp        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,49 +0,0 @@
</span><del>-/*
- * Copyright (C) 2007 Alp Toker &lt;alp@atoker.com&gt;
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include &quot;config.h&quot;
-#include &quot;Language.h&quot;
-
-#include &lt;locale.h&gt;
-#include &lt;wtf/Vector.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-// Using pango_language_get_default() here is not an option, because
-// it doesn't support changing the locale in runtime, so it returns
-// always the same value.
-static String platformLanguage()
-{
-    String localeDefault(setlocale(LC_CTYPE, nullptr));
-    if (localeDefault.isEmpty())
-        return String(&quot;c&quot;);
-
-    String normalizedDefault = localeDefault.convertToASCIILowercase();
-    normalizedDefault.replace('_', '-');
-    normalizedDefault.truncate(normalizedDefault.find('.'));
-    return normalizedDefault;
-}
-
-Vector&lt;String&gt; platformUserPreferredLanguages()
-{
-    return { platformLanguage() };
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebCoreplatformwinLanguageWincpp"></a>
<div class="delfile"><h4>Deleted: trunk/Source/WebCore/platform/win/LanguageWin.cpp (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/platform/win/LanguageWin.cpp        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebCore/platform/win/LanguageWin.cpp        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,77 +0,0 @@
</span><del>-/*
- * Copyright (C) 2007 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. 
- */
-
-#include &quot;config.h&quot;
-#include &quot;Language.h&quot;
-
-#include &lt;windows.h&gt;
-#include &lt;wtf/Vector.h&gt;
-#include &lt;wtf/text/WTFString.h&gt;
-
-namespace WebCore {
-
-static String localeInfo(LCTYPE localeType, const String&amp; fallback)
-{
-    LANGID langID = GetUserDefaultUILanguage();
-    int localeChars = GetLocaleInfo(langID, localeType, 0, 0);
-    if (!localeChars)
-        return fallback;
-    UChar* localeNameBuf;
-    String localeName = String::createUninitialized(localeChars, localeNameBuf);
-    localeChars = GetLocaleInfo(langID, localeType, localeNameBuf, localeChars);
-    if (!localeChars)
-        return fallback;
-    if (localeName.isEmpty())
-        return fallback;
-
-    localeName.truncate(localeName.length() - 1);
-    return localeName;
-}
-
-static String platformLanguage()
-{
-    static String computedDefaultLanguage;
-    if (!computedDefaultLanguage.isEmpty())
-        return computedDefaultLanguage;
-
-    String languageName = localeInfo(LOCALE_SISO639LANGNAME, &quot;en&quot;);
-    String countryName = localeInfo(LOCALE_SISO3166CTRYNAME, String());
-
-    if (countryName.isEmpty())
-        computedDefaultLanguage = languageName;
-    else
-        computedDefaultLanguage = languageName + '-' + countryName;
-
-    return computedDefaultLanguage;
-}
-
-Vector&lt;String&gt; platformUserPreferredLanguages()
-{
-    Vector&lt;String&gt; userPreferredLanguages;
-    userPreferredLanguages.append(platformLanguage());
-    return userPreferredLanguages;
-}
-
-}
</del></span></pre></div>
<a id="trunkSourceWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/ChangeLog (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/ChangeLog        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/ChangeLog        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,3 +1,22 @@
</span><ins>+2016-05-17  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        WTF should know about Language
+        https://bugs.webkit.org/show_bug.cgi?id=157756
+
+        Reviewed by Geoffrey Garen.
+
+        Rewires a bunch of includes/imports.
+
+        * WebCoreSupport/PopupMenuMac.mm:
+        * WebCoreSupport/WebChromeClient.mm:
+        * WebCoreSupport/WebFrameLoaderClient.mm:
+        * WebCoreSupport/WebGeolocationClient.mm:
+        * WebCoreSupport/WebNotificationClient.mm:
+        * WebCoreSupport/WebPlatformStrategies.mm:
+        * WebCoreSupport/WebUserMediaClient.mm:
+        * WebCoreSupport/WebVisitedLinkStore.mm:
+        * WebView/WebHTMLView.mm:
+
</ins><span class="cx"> 2016-05-13  Enrica Casucci  &lt;enrica@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove unused initializer for WebEvent on iOS.
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportPopupMenuMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/PopupMenuMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -24,7 +24,6 @@
</span><span class="cx"> #import &quot;WebFrameInternal.h&quot;
</span><span class="cx"> #import &lt;WebCore/IntRect.h&gt;
</span><span class="cx"> #import &lt;WebCore/AXObjectCache.h&gt;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/Chrome.h&gt;
</span><span class="cx"> #import &lt;WebCore/ChromeClient.h&gt;
</span><span class="cx"> #import &lt;WebCore/EventHandler.h&gt;
</span><span class="lines">@@ -34,6 +33,7 @@
</span><span class="cx"> #import &lt;WebCore/Page.h&gt;
</span><span class="cx"> #import &lt;WebCore/PopupMenuClient.h&gt;
</span><span class="cx"> #import &lt;WebKitSystemInterface.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebChromeClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -54,7 +54,6 @@
</span><span class="cx"> #import &quot;WebView.h&quot;
</span><span class="cx"> #import &quot;WebViewInternal.h&quot;
</span><span class="cx"> #import &lt;Foundation/Foundation.h&gt;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/ColorChooser.h&gt;
</span><span class="cx"> #import &lt;WebCore/ContextMenu.h&gt;
</span><span class="cx"> #import &lt;WebCore/ContextMenuController.h&gt;
</span><span class="lines">@@ -82,6 +81,7 @@
</span><span class="cx"> #import &lt;WebCore/SerializedCryptoKeyWrap.h&gt;
</span><span class="cx"> #import &lt;WebCore/Widget.h&gt;
</span><span class="cx"> #import &lt;WebCore/WindowFeatures.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #import &lt;wtf/Vector.h&gt;
</span><span class="cx"> #import &lt;wtf/text/WTFString.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebFrameLoaderClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -76,7 +76,6 @@
</span><span class="cx"> #import &lt;WebCore/AuthenticationMac.h&gt;
</span><span class="cx"> #import &lt;WebCore/BackForwardController.h&gt;
</span><span class="cx"> #import &lt;WebCore/BackForwardList.h&gt;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/CachedFrame.h&gt;
</span><span class="cx"> #import &lt;WebCore/Chrome.h&gt;
</span><span class="cx"> #import &lt;WebCore/DNS.h&gt;
</span><span class="lines">@@ -123,6 +122,7 @@
</span><span class="cx"> #import &lt;WebKitLegacy/DOMHTMLFormElement.h&gt;
</span><span class="cx"> #import &lt;WebKitSystemInterface.h&gt;
</span><span class="cx"> #import &lt;runtime/InitializeThreading.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/MainThread.h&gt;
</span><span class="cx"> #import &lt;wtf/PassRefPtr.h&gt;
</span><span class="cx"> #import &lt;wtf/RunLoop.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebGeolocationClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebGeolocationClient.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -33,10 +33,10 @@
</span><span class="cx"> #import &quot;WebSecurityOriginInternal.h&quot;
</span><span class="cx"> #import &quot;WebUIDelegatePrivate.h&quot;
</span><span class="cx"> #import &quot;WebViewInternal.h&quot;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/Document.h&gt;
</span><span class="cx"> #import &lt;WebCore/Frame.h&gt;
</span><span class="cx"> #import &lt;WebCore/Geolocation.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> #import &lt;WebCore/WAKResponder.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebNotificationClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebNotificationClient.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -32,9 +32,9 @@
</span><span class="cx"> #import &quot;WebSecurityOriginInternal.h&quot;
</span><span class="cx"> #import &quot;WebUIDelegatePrivate.h&quot;
</span><span class="cx"> #import &quot;WebViewInternal.h&quot;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/Page.h&gt;
</span><span class="cx"> #import &lt;WebCore/ScriptExecutionContext.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #endif
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(NOTIFICATIONS)
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebPlatformStrategiesmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebPlatformStrategies.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -30,7 +30,6 @@
</span><span class="cx"> #import &quot;WebPluginPackage.h&quot;
</span><span class="cx"> #import &quot;WebResourceLoadScheduler.h&quot;
</span><span class="cx"> #import &lt;WebCore/BlobRegistryImpl.h&gt;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/Color.h&gt;
</span><span class="cx"> #import &lt;WebCore/MainFrame.h&gt;
</span><span class="cx"> #import &lt;WebCore/Page.h&gt;
</span><span class="lines">@@ -40,6 +39,7 @@
</span><span class="cx"> #import &lt;WebCore/SharedBuffer.h&gt;
</span><span class="cx"> #import &lt;WebCore/SubframeLoader.h&gt;
</span><span class="cx"> #import &lt;WebKitSystemInterface.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebUserMediaClientmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebUserMediaClient.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -31,11 +31,11 @@
</span><span class="cx"> #import &quot;WebSecurityOriginInternal.h&quot;
</span><span class="cx"> #import &quot;WebUIDelegatePrivate.h&quot;
</span><span class="cx"> #import &quot;WebViewInternal.h&quot;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/Page.h&gt;
</span><span class="cx"> #import &lt;WebCore/ScriptExecutionContext.h&gt;
</span><span class="cx"> #import &lt;WebCore/UserMediaPermissionCheck.h&gt;
</span><span class="cx"> #import &lt;WebCore/UserMediaRequest.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/HashMap.h&gt;
</span><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> #import &lt;wtf/RefPtr.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebCoreSupportWebVisitedLinkStoremm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebVisitedLinkStore.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebCoreSupport/WebVisitedLinkStore.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebVisitedLinkStore.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -29,8 +29,8 @@
</span><span class="cx"> #import &quot;WebFrameInternal.h&quot;
</span><span class="cx"> #import &quot;WebHistoryInternal.h&quot;
</span><span class="cx"> #import &quot;WebViewInternal.h&quot;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/PageCache.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/NeverDestroyed.h&gt;
</span><span class="cx"> 
</span><span class="cx"> using namespace WebCore;
</span></span></pre></div>
<a id="trunkSourceWebKitmacWebViewWebHTMLViewmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit/mac/WebView/WebHTMLView.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit/mac/WebView/WebHTMLView.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -72,7 +72,6 @@
</span><span class="cx"> #import &quot;WebTypesInternal.h&quot;
</span><span class="cx"> #import &quot;WebUIDelegatePrivate.h&quot;
</span><span class="cx"> #import &quot;WebViewInternal.h&quot;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/CSSStyleDeclaration.h&gt;
</span><span class="cx"> #import &lt;WebCore/CachedImage.h&gt;
</span><span class="cx"> #import &lt;WebCore/CachedResourceClient.h&gt;
</span><span class="lines">@@ -133,6 +132,7 @@
</span><span class="cx"> #import &lt;dlfcn.h&gt;
</span><span class="cx"> #import &lt;limits&gt;
</span><span class="cx"> #import &lt;runtime/InitializeThreading.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/MainThread.h&gt;
</span><span class="cx"> #import &lt;wtf/MathExtras.h&gt;
</span><span class="cx"> #import &lt;wtf/ObjcRuntimeExtras.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit2/ChangeLog        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -1,3 +1,17 @@
</span><ins>+2016-05-17  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        WTF should know about Language
+        https://bugs.webkit.org/show_bug.cgi?id=157756
+
+        Reviewed by Geoffrey Garen and Alexey Proskuryakov.
+
+        Rewires a bunch of includes/imports.
+
+        * Shared/mac/RemoteLayerTreePropertyApplier.mm:
+        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
+        * UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
+        * WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
+
</ins><span class="cx"> 2016-05-17  Jer Noble  &lt;jer.noble@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Unreviewed GTK+ and EFL bulid fix; make the audio playback user gesture requirement
</span></span></pre></div>
<a id="trunkSourceWebKit2SharedmacRemoteLayerTreePropertyAppliermm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -30,10 +30,10 @@
</span><span class="cx"> #import &quot;PlatformCALayerRemote.h&quot;
</span><span class="cx"> #import &quot;RemoteLayerTreeHost.h&quot;
</span><span class="cx"> #import &lt;QuartzCore/QuartzCore.h&gt;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/PlatformCAFilters.h&gt;
</span><span class="cx"> #import &lt;WebCore/QuartzCoreSPI.h&gt;
</span><span class="cx"> #import &lt;WebCore/ScrollbarThemeMac.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> 
</span><span class="cx"> #if PLATFORM(IOS)
</span><span class="cx"> #import &lt;UIKit/UIView.h&gt;
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessLaunchermacProcessLauncherMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit2/UIProcess/Launcher/mac/ProcessLauncherMac.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -26,7 +26,6 @@
</span><span class="cx"> #import &quot;config.h&quot;
</span><span class="cx"> #import &quot;ProcessLauncher.h&quot;
</span><span class="cx"> 
</span><del>-#import &lt;WebCore/CFBundleSPI.h&gt;
</del><span class="cx"> #import &lt;WebCore/ServersSPI.h&gt;
</span><span class="cx"> #import &lt;WebCore/SoftLinking.h&gt;
</span><span class="cx"> #import &lt;WebCore/WebCoreNSStringExtras.h&gt;
</span><span class="lines">@@ -41,6 +40,7 @@
</span><span class="cx"> #import &lt;wtf/RunLoop.h&gt;
</span><span class="cx"> #import &lt;wtf/Threading.h&gt;
</span><span class="cx"> #import &lt;wtf/spi/darwin/XPCSPI.h&gt;
</span><ins>+#import &lt;wtf/spi/cf/CFBundleSPI.h&gt;
</ins><span class="cx"> #import &lt;wtf/text/CString.h&gt;
</span><span class="cx"> #import &lt;wtf/text/WTFString.h&gt;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2UIProcessScrollingiosScrollingTreeOverflowScrollingNodeIOSmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -30,11 +30,11 @@
</span><span class="cx"> #if ENABLE(ASYNC_SCROLLING)
</span><span class="cx"> 
</span><span class="cx"> #import &lt;QuartzCore/QuartzCore.h&gt;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/ScrollingStateOverflowScrollingNode.h&gt;
</span><span class="cx"> #import &lt;WebCore/ScrollingTree.h&gt;
</span><span class="cx"> #import &lt;UIKit/UIPanGestureRecognizer.h&gt;
</span><span class="cx"> #import &lt;UIKit/UIScrollView.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/TemporaryChange.h&gt;
</span><span class="cx"> 
</span><span class="cx"> #if ENABLE(CSS_SCROLL_SNAP)
</span></span></pre></div>
<a id="trunkSourceWebKit2WebProcessWebPagemacPlatformCAAnimationRemotemm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm (201037 => 201038)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm        2016-05-17 19:12:24 UTC (rev 201037)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm        2016-05-17 19:38:51 UTC (rev 201038)
</span><span class="lines">@@ -29,13 +29,13 @@
</span><span class="cx"> #import &quot;ArgumentCoders.h&quot;
</span><span class="cx"> #import &quot;RemoteLayerTreeHost.h&quot;
</span><span class="cx"> #import &quot;WebCoreArgumentCoders.h&quot;
</span><del>-#import &lt;WebCore/BlockExceptions.h&gt;
</del><span class="cx"> #import &lt;WebCore/GraphicsLayer.h&gt;
</span><span class="cx"> #import &lt;WebCore/PlatformCAAnimationCocoa.h&gt;
</span><span class="cx"> #import &lt;WebCore/PlatformCAFilters.h&gt;
</span><span class="cx"> #import &lt;WebCore/QuartzCoreSPI.h&gt;
</span><span class="cx"> #import &lt;WebCore/TextStream.h&gt;
</span><span class="cx"> #import &lt;WebCore/TimingFunction.h&gt;
</span><ins>+#import &lt;wtf/BlockObjCExceptions.h&gt;
</ins><span class="cx"> #import &lt;wtf/CurrentTime.h&gt;
</span><span class="cx"> #import &lt;wtf/RetainPtr.h&gt;
</span><span class="cx"> #import &lt;QuartzCore/QuartzCore.h&gt;
</span></span></pre>
</div>
</div>

</body>
</html>