Title: [112312] trunk/Source
Revision
112312
Author
[email protected]
Date
2012-03-27 13:44:18 -0700 (Tue, 27 Mar 2012)

Log Message

Make WebKit properly load a staged framework when soft linking.

https://webkit.org/b/82371
rdar://problem/11125989

Reviewed by Dan Bernstein.

Source/WebCore:

* platform/mac/SoftLinking.h: Replaced SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL with
SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL and made it use the StagedFrameworks path
if the first dlopen failed.

Source/WebKit/mac:

* WebCoreSupport/WebInspectorClient.mm: Use SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL to properly
load the WebInspector framework.

Source/WebKit2:

* UIProcess/mac/WebInspectorProxyMac.mm: Use SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL to properly
load the WebInspector framework.
* WebProcess/WebPage/mac/WebInspectorMac.mm: Ditto.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (112311 => 112312)


--- trunk/Source/WebCore/ChangeLog	2012-03-27 20:33:31 UTC (rev 112311)
+++ trunk/Source/WebCore/ChangeLog	2012-03-27 20:44:18 UTC (rev 112312)
@@ -1,3 +1,16 @@
+2012-03-27  Timothy Hatcher  <[email protected]>
+
+        Make WebKit properly load a staged framework when soft linking.
+
+        https://webkit.org/b/82371
+        rdar://problem/11125989
+
+        Reviewed by Dan Bernstein.
+
+        * platform/mac/SoftLinking.h: Replaced SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL with
+        SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL and made it use the StagedFrameworks path
+        if the first dlopen failed.
+
 2012-03-26  Dirk Schulze  <[email protected]>
 
         Use enumeration for CSS parser mode

Modified: trunk/Source/WebCore/platform/mac/SoftLinking.h (112311 => 112312)


--- trunk/Source/WebCore/platform/mac/SoftLinking.h	2012-03-27 20:33:31 UTC (rev 112311)
+++ trunk/Source/WebCore/platform/mac/SoftLinking.h	2012-03-27 20:44:18 UTC (rev 112312)
@@ -52,10 +52,15 @@
         return frameworkLibrary; \
     }
 
-#define SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL(framework) \
+#define SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(framework, unstagedLocation) \
     static void* framework##Library() \
     { \
-        static void* frameworkLibrary = dlopen("/System/Library/PrivateFrameworks/" #framework ".framework/" #framework, RTLD_NOW); \
+        static void* frameworkLibrary = ^{ \
+            void* result = dlopen("/System/Library/" #unstagedLocation "/" #framework ".framework/" #framework, RTLD_LAZY); \
+            if (!result) \
+                result = dlopen("/System/Library/StagedFrameworks/Safari/" #framework ".framework/" #framework, RTLD_LAZY); \
+            return result; \
+        }; \
         return frameworkLibrary; \
     }
 

Modified: trunk/Source/WebKit/mac/ChangeLog (112311 => 112312)


--- trunk/Source/WebKit/mac/ChangeLog	2012-03-27 20:33:31 UTC (rev 112311)
+++ trunk/Source/WebKit/mac/ChangeLog	2012-03-27 20:44:18 UTC (rev 112312)
@@ -1,3 +1,15 @@
+2012-03-27  Timothy Hatcher  <[email protected]>
+
+        Make WebKit properly load a staged framework when soft linking.
+
+        https://webkit.org/b/82371
+        rdar://problem/11125989
+
+        Reviewed by Dan Bernstein.
+
+        * WebCoreSupport/WebInspectorClient.mm: Use SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL to properly
+        load the WebInspector framework.
+
 2012-03-26  Adam Barth  <[email protected]>
 
         FrameLoader::shouldAllowNavigation uses Frame for context rather than Document

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm (112311 => 112312)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm	2012-03-27 20:33:31 UTC (rev 112311)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebInspectorClient.mm	2012-03-27 20:44:18 UTC (rev 112312)
@@ -46,7 +46,7 @@
 #import <WebKitSystemInterface.h>
 #import <wtf/PassOwnPtr.h>
 
-SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL(WebInspector)
+SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks)
 
 using namespace WebCore;
 

Modified: trunk/Source/WebKit2/ChangeLog (112311 => 112312)


--- trunk/Source/WebKit2/ChangeLog	2012-03-27 20:33:31 UTC (rev 112311)
+++ trunk/Source/WebKit2/ChangeLog	2012-03-27 20:44:18 UTC (rev 112312)
@@ -1,3 +1,16 @@
+2012-03-27  Timothy Hatcher  <[email protected]>
+
+        Make WebKit properly load a staged framework when soft linking.
+
+        https://webkit.org/b/82371
+        rdar://problem/11125989
+
+        Reviewed by Dan Bernstein.
+
+        * UIProcess/mac/WebInspectorProxyMac.mm: Use SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL to properly
+        load the WebInspector framework.
+        * WebProcess/WebPage/mac/WebInspectorMac.mm: Ditto.
+
 2012-03-27  Anders Carlsson  <[email protected]>
 
         Don't update the layer hosting state unless the WKView is added to a window

Modified: trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm (112311 => 112312)


--- trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm	2012-03-27 20:33:31 UTC (rev 112311)
+++ trunk/Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm	2012-03-27 20:44:18 UTC (rev 112312)
@@ -42,7 +42,7 @@
 #import <WebCore/SoftLinking.h>
 #import <wtf/text/WTFString.h>
 
-SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL(WebInspector)
+SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks)
 
 using namespace WebCore;
 using namespace WebKit;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WebInspectorMac.mm (112311 => 112312)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WebInspectorMac.mm	2012-03-27 20:33:31 UTC (rev 112311)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WebInspectorMac.mm	2012-03-27 20:44:18 UTC (rev 112312)
@@ -28,7 +28,7 @@
 
 #import <WebCore/SoftLinking.h>
 
-SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL(WebInspector)
+SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL(WebInspector, PrivateFrameworks)
 
 namespace WebKit {
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to