[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

hyatt at apple.com hyatt at apple.com
Thu Apr 8 01:14:38 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 75529ab4e365e75cb20bd79ae51eefce480c9b2a
Author: hyatt at apple.com <hyatt at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Jan 19 17:53:23 2010 +0000

    WebKit/mac: Add an API to obtain the WebScriptWorld for a given JSGlobalContextRef.
    
    Reviewed by Adam Roben.
    
    * WebView/WebScriptWorld.h:
    * WebView/WebScriptWorld.mm:
    (+[WebScriptWorld scriptWorldForGlobalContext:]):
    
    WebKit/win: Add an API to obtain a WebScriptWorld from a JSGlobalContextRef.
    
    Reviewed by Adam Roben.
    
    * Interfaces/IWebScriptWorld.idl:
    * WebScriptWorld.cpp:
    (WebScriptWorld::scriptWorldForGlobalContext):
    * WebScriptWorld.h:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@53470 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/mac/ChangeLog b/WebKit/mac/ChangeLog
index e1065bb..65bc486 100644
--- a/WebKit/mac/ChangeLog
+++ b/WebKit/mac/ChangeLog
@@ -1,3 +1,13 @@
+2010-01-19  Dave Hyatt  <hyatt at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Add an API to obtain the WebScriptWorld for a given JSGlobalContextRef.
+
+        * WebView/WebScriptWorld.h:
+        * WebView/WebScriptWorld.mm:
+        (+[WebScriptWorld scriptWorldForGlobalContext:]):
+
 2010-01-19  Steve Block  <steveblock at google.com>
 
         Unreviewed build fix.
diff --git a/WebKit/mac/WebView/WebScriptWorld.h b/WebKit/mac/WebView/WebScriptWorld.h
index 9204975..7059b76 100644
--- a/WebKit/mac/WebView/WebScriptWorld.h
+++ b/WebKit/mac/WebView/WebScriptWorld.h
@@ -22,6 +22,8 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+typedef struct OpaqueJSContext* JSGlobalContextRef;
+
 @class WebScriptWorldPrivate;
 
 @interface WebScriptWorld : NSObject {
@@ -31,4 +33,7 @@
 
 + (WebScriptWorld *)standardWorld;
 + (WebScriptWorld *)world;
+
++ (WebScriptWorld *)scriptWorldForGlobalContext:(JSGlobalContextRef)globalContext;
+
 @end
diff --git a/WebKit/mac/WebView/WebScriptWorld.mm b/WebKit/mac/WebView/WebScriptWorld.mm
index 0310701..7dab1b3 100644
--- a/WebKit/mac/WebView/WebScriptWorld.mm
+++ b/WebKit/mac/WebView/WebScriptWorld.mm
@@ -27,6 +27,8 @@
 #import "WebScriptWorldInternal.h"
 #import <WebCore/JSDOMBinding.h>
 #import <WebCore/ScriptController.h>
+#import <JavaScriptCore/APICast.h>
+
 #import <wtf/RefPtr.h>
 
 using namespace WebCore;
@@ -94,6 +96,11 @@ static WorldMap& allWorlds()
     return [[[self alloc] init] autorelease];
 }
 
++ (WebScriptWorld *)scriptWorldForGlobalContext:(JSGlobalContextRef)context
+{
+    return [self findOrCreateWorld:currentWorld(toJS(context))];
+}
+
 @end
 
 @implementation WebScriptWorld (WebInternal)
diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index e6636ac..96cc7d8 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,14 @@
+2010-01-19  Dave Hyatt  <hyatt at apple.com>
+
+        Reviewed by Adam Roben.
+
+        Add an API to obtain a WebScriptWorld from a JSGlobalContextRef.
+
+        * Interfaces/IWebScriptWorld.idl:
+        * WebScriptWorld.cpp:
+        (WebScriptWorld::scriptWorldForGlobalContext):
+        * WebScriptWorld.h:
+
 2010-01-18  Adam Roben  <aroben at apple.com>
 
         Add IWebViewPrivate::setDomainRelaxationForbiddenForURLScheme
diff --git a/WebKit/win/Interfaces/IWebScriptWorld.idl b/WebKit/win/Interfaces/IWebScriptWorld.idl
index 255255c..1c79199 100644
--- a/WebKit/win/Interfaces/IWebScriptWorld.idl
+++ b/WebKit/win/Interfaces/IWebScriptWorld.idl
@@ -25,6 +25,7 @@
 #ifndef DO_NO_IMPORTS
 import "oaidl.idl";
 import "ocidl.idl";
+import "JavaScriptCoreAPITypes.idl";
 #endif
 
 [
@@ -35,4 +36,5 @@ import "ocidl.idl";
 ]
 interface IWebScriptWorld : IUnknown {
     HRESULT standardWorld([out, retval] IWebScriptWorld**);
+    HRESULT scriptWorldForGlobalContext([in] JSGlobalContextRef, [out, retval] IWebScriptWorld**);
 }
diff --git a/WebKit/win/WebScriptWorld.cpp b/WebKit/win/WebScriptWorld.cpp
index 03eede7..17e2ea2 100644
--- a/WebKit/win/WebScriptWorld.cpp
+++ b/WebKit/win/WebScriptWorld.cpp
@@ -128,3 +128,10 @@ HRESULT WebScriptWorld::standardWorld(IWebScriptWorld** outWorld)
     (*outWorld)->AddRef();
     return S_OK;
 }
+
+HRESULT WebScriptWorld::scriptWorldForGlobalContext(JSGlobalContextRef context, IWebScriptWorld** outWorld)
+{
+    if (!outWorld)
+        return E_POINTER;
+    return findOrCreateWorld(currentWorld(toJS(context))).copyRefTo(outWorld);
+}
diff --git a/WebKit/win/WebScriptWorld.h b/WebKit/win/WebScriptWorld.h
index b800225..dc7e9db 100644
--- a/WebKit/win/WebScriptWorld.h
+++ b/WebKit/win/WebScriptWorld.h
@@ -51,6 +51,7 @@ private:
 
     virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID, void** ppvObject);
     virtual HRESULT STDMETHODCALLTYPE standardWorld(IWebScriptWorld**);
+    virtual HRESULT STDMETHODCALLTYPE scriptWorldForGlobalContext(JSGlobalContextRef, IWebScriptWorld**);
 
     ULONG m_refCount;
     RefPtr<WebCore::DOMWrapperWorld> m_world;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list