[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-10851-g50815da

weinig at apple.com weinig at apple.com
Wed Dec 22 18:33:20 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 456429db43b1e700fd93cefcdfcac6cd11555a93
Author: weinig at apple.com <weinig at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Dec 13 22:38:27 2010 +0000

    Change the WebKit2 public API so there is no explicit WKPageNamespace object
    https://bugs.webkit.org/show_bug.cgi?id=50898
    
    Reviewed by Anders Carlsson.
    
    WebKit2:
    
    * Shared/API/c/WKBase.h: Remove definition of WKPageNamespaceRef.
    * UIProcess/API/C/WKAPICast.h: Remove toAPI/toImpl for WKPageNamespaceRef.
    
    * UIProcess/API/C/WKPage.cpp:
    * UIProcess/API/C/WKPage.h:
    Replace WKPageGetPageNamespace with WKPageGetContext.
    
    * UIProcess/API/C/WKPageNamespace.cpp: Removed.
    * UIProcess/API/C/WKPageNamespace.h: Removed.
    
    * UIProcess/API/C/WebKit2.h: Remove #include of WKPageNamespace.h.
    
    * UIProcess/API/C/win/WKView.cpp:
    (WKViewCreate): Changed to take a WKContextRef instead of a WKPageNamespaceRef.
    (WKViewCreateUsingSharedProcess): Added. Similar to WKViewCreate except that
    all callers of it will have their views end up in the same shared process, whereas
    with WKViewCreate, a new internal page namespace will be created and could place
    the view's WebPage into a new process.
    (WKViewCreateForAssociatedPage): Added. Creates a view that is forced to use the
    same process as the passed in page.
    
    * UIProcess/win/WebView.cpp:
    (WebKit::WebView::WebView):
    (WebKit::WebView::initialize):
    * UIProcess/win/WebView.h:
    (WebKit::WebView::create):
    (WebKit::WebView::createUsingSharedProcess):
    (WebKit::WebView::createForAssociatedPage):
    Implementation of the WKView create functions.
    
    * UIProcess/API/C/win/WKView.h:
    * UIProcess/API/mac/WKView.h:
    * UIProcess/API/mac/WKView.mm:
    (-[WKView initWithFrame:]):
    (-[WKView initWithFrame:contextRef:]):
    (-[WKView initWithFrame:contextRef:pageGroupRef:]):
    (-[WKView initWithFrame:contextRef:usingSharedProcess:]):
    (-[WKView initWithFrame:contextRef:pageGroupRef:usingSharedProcess:]):
    (-[WKView initWithFrame:forAssociatedPageRef:]):
    (-[WKView initWithFrame:forAssociatedPageRef:pageGroupRef:]):
    (-[WKView initWithFrame:pageNamespace:pageGroup:]):
    Add new initializers for the objective-c WKView. It follows the same
    pattern as WKViewRef.
    
    * UIProcess/API/qt/qwkcontext.cpp:
    (QWKContext::QWKContext):
    * UIProcess/API/qt/qwkcontext.h:
    Remove uses of WKPageNamespaceRef.
    
    * UIProcess/WebContext.cpp:
    (WebKit::WebContext::sharedPageNamespace): Returns a shared
    page namespace used by the view's createUsingSharedProcess constructions.
    (WebKit::WebContext::createPageNamespace): Change to return
    a PassRefPtr to make things clearer.
    (WebKit::WebContext::pageNamespaceWasDestroyed): Clear the shared
    namespace if it is cleared.
    * UIProcess/WebContext.h:
    
    * UIProcess/WebPageNamespace.h: Remove unused "struct WKContextStatistics".
    
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::context):
    * UIProcess/WebPageProxy.h:
    Add context getter.
    
    * UIProcess/mac/WebInspectorProxyMac.mm:
    (WebKit::WebInspectorProxy::platformCreateInspectorPage):
    * UIProcess/win/WebInspectorProxyWin.cpp:
    (WebKit::WebInspectorProxy::platformCreateInspectorPage):
    Use forAssociatedPageRef constructor for the WebInspector view.
    
    * WebKit2.pro:
    * WebKit2.xcodeproj/project.pbxproj:
    * win/WebKit2.vcproj:
    * win/WebKit2Generated.make:
    Remove WKPageNamespace.h/cpp.
    
    WebKitTools:
    
    * MiniBrowser/mac/AppDelegate.h:
    * MiniBrowser/mac/AppDelegate.m:
    * MiniBrowser/mac/BrowserWindowController.h:
    * MiniBrowser/mac/BrowserWindowController.m:
    * MiniBrowser/win/BrowserView.cpp:
    Convert MiniBrowser to not use PageNamespaces.
    
    * TestWebKitAPI/PlatformWebView.h:
    * TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp:
    * TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp:
    * TestWebKitAPI/Tests/WebKit2/FailedLoad.cpp:
    * TestWebKitAPI/Tests/WebKit2/Find.cpp:
    * TestWebKitAPI/Tests/WebKit2/FrameMIMETypeHTML.cpp:
    * TestWebKitAPI/Tests/WebKit2/FrameMIMETypePNG.cpp:
    * TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic.cpp:
    * TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp:
    * TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp:
    * TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp:
    * TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp:
    * TestWebKitAPI/Tests/WebKit2/win/AltKeyGeneratesWMSysCommand.cpp:
    * TestWebKitAPI/Tests/WebKit2/win/WMCloseCallsUIClientClose.cpp:
    * TestWebKitAPI/mac/PlatformWebViewMac.mm:
    * TestWebKitAPI/win/PlatformWebViewWin.cpp:
    Convert TestWebKitAPI to not use PageNamespaces.
    
    * WebKitTestRunner/PlatformWebView.h:
    * WebKitTestRunner/TestController.cpp:
    * WebKitTestRunner/TestController.h:
    * WebKitTestRunner/mac/PlatformWebViewMac.mm:
    * WebKitTestRunner/qt/PlatformWebViewQt.cpp:
    * WebKitTestRunner/win/PlatformWebViewWin.cpp:
    Convert WebKitTestRunner to not use PageNamespaces.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73965 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 35446a3..ab56ff9 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,87 @@
+2010-12-13  Sam Weinig  <sam at webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        Change the WebKit2 public API so there is no explicit WKPageNamespace object
+        https://bugs.webkit.org/show_bug.cgi?id=50898
+
+        * Shared/API/c/WKBase.h: Remove definition of WKPageNamespaceRef.
+        * UIProcess/API/C/WKAPICast.h: Remove toAPI/toImpl for WKPageNamespaceRef.
+
+        * UIProcess/API/C/WKPage.cpp:
+        * UIProcess/API/C/WKPage.h:
+        Replace WKPageGetPageNamespace with WKPageGetContext.
+
+        * UIProcess/API/C/WKPageNamespace.cpp: Removed.
+        * UIProcess/API/C/WKPageNamespace.h: Removed.
+
+        * UIProcess/API/C/WebKit2.h: Remove #include of WKPageNamespace.h.
+
+        * UIProcess/API/C/win/WKView.cpp:
+        (WKViewCreate): Changed to take a WKContextRef instead of a WKPageNamespaceRef.
+        (WKViewCreateUsingSharedProcess): Added. Similar to WKViewCreate except that
+        all callers of it will have their views end up in the same shared process, whereas 
+        with WKViewCreate, a new internal page namespace will be created and could place
+        the view's WebPage into a new process.
+        (WKViewCreateForAssociatedPage): Added. Creates a view that is forced to use the
+        same process as the passed in page.
+
+        * UIProcess/win/WebView.cpp:
+        (WebKit::WebView::WebView):
+        (WebKit::WebView::initialize):
+        * UIProcess/win/WebView.h:
+        (WebKit::WebView::create):
+        (WebKit::WebView::createUsingSharedProcess):
+        (WebKit::WebView::createForAssociatedPage):
+        Implementation of the WKView create functions.
+
+        * UIProcess/API/C/win/WKView.h:
+        * UIProcess/API/mac/WKView.h:
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView initWithFrame:]):
+        (-[WKView initWithFrame:contextRef:]):
+        (-[WKView initWithFrame:contextRef:pageGroupRef:]):
+        (-[WKView initWithFrame:contextRef:usingSharedProcess:]):
+        (-[WKView initWithFrame:contextRef:pageGroupRef:usingSharedProcess:]):
+        (-[WKView initWithFrame:forAssociatedPageRef:]):
+        (-[WKView initWithFrame:forAssociatedPageRef:pageGroupRef:]):
+        (-[WKView initWithFrame:pageNamespace:pageGroup:]):
+        Add new initializers for the objective-c WKView. It follows the same
+        pattern as WKViewRef.
+
+        * UIProcess/API/qt/qwkcontext.cpp:
+        (QWKContext::QWKContext):
+        * UIProcess/API/qt/qwkcontext.h:
+        Remove uses of WKPageNamespaceRef.
+
+        * UIProcess/WebContext.cpp:
+        (WebKit::WebContext::sharedPageNamespace): Returns a shared
+        page namespace used by the view's createUsingSharedProcess constructions.
+        (WebKit::WebContext::createPageNamespace): Change to return
+        a PassRefPtr to make things clearer.
+        (WebKit::WebContext::pageNamespaceWasDestroyed): Clear the shared
+        namespace if it is cleared.
+        * UIProcess/WebContext.h:
+
+        * UIProcess/WebPageNamespace.h: Remove unused "struct WKContextStatistics".
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::context):
+        * UIProcess/WebPageProxy.h:
+        Add context getter.
+
+        * UIProcess/mac/WebInspectorProxyMac.mm:
+        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+        * UIProcess/win/WebInspectorProxyWin.cpp:
+        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
+        Use forAssociatedPageRef constructor for the WebInspector view.
+
+        * WebKit2.pro:
+        * WebKit2.xcodeproj/project.pbxproj:
+        * win/WebKit2.vcproj:
+        * win/WebKit2Generated.make:
+        Remove WKPageNamespace.h/cpp.
+
 2010-12-13  Brent Fulgham  <bfulgham at webkit.org>
 
         Unreviewed build fix.
diff --git a/WebKit2/Shared/API/c/WKBase.h b/WebKit2/Shared/API/c/WKBase.h
index f8d025d..08eb5e3 100644
--- a/WebKit2/Shared/API/c/WKBase.h
+++ b/WebKit2/Shared/API/c/WKBase.h
@@ -75,7 +75,6 @@ typedef const struct OpaqueWKInspector* WKInspectorRef;
 typedef const struct OpaqueWKNavigationData* WKNavigationDataRef;
 typedef const struct OpaqueWKPage* WKPageRef;
 typedef const struct OpaqueWKPageGroup* WKPageGroupRef;
-typedef const struct OpaqueWKPageNamespace* WKPageNamespaceRef;
 typedef const struct OpaqueWKPreferences* WKPreferencesRef;
 typedef const struct OpaqueWKProtectionSpace* WKProtectionSpaceRef;
 
diff --git a/WebKit2/UIProcess/API/C/WKAPICast.h b/WebKit2/UIProcess/API/C/WKAPICast.h
index a29d040..93c28a6 100644
--- a/WebKit2/UIProcess/API/C/WKAPICast.h
+++ b/WebKit2/UIProcess/API/C/WKAPICast.h
@@ -54,7 +54,6 @@ class WebFrameProxy;
 class WebInspectorProxy;
 class WebNavigationData;
 class WebPageGroup;
-class WebPageNamespace;
 class WebPageProxy;
 class WebPreferences;
 class WebProtectionSpace;
@@ -70,16 +69,16 @@ WK_ADD_API_MAPPING(WKDownloadRef, DownloadProxy)
 WK_ADD_API_MAPPING(WKFormSubmissionListenerRef, WebFormSubmissionListenerProxy)
 WK_ADD_API_MAPPING(WKFramePolicyListenerRef, WebFramePolicyListenerProxy)
 WK_ADD_API_MAPPING(WKFrameRef, WebFrameProxy)
-#if ENABLE(INSPECTOR)
-WK_ADD_API_MAPPING(WKInspectorRef, WebInspectorProxy)
-#endif
 WK_ADD_API_MAPPING(WKNavigationDataRef, WebNavigationData)
 WK_ADD_API_MAPPING(WKPageGroupRef, WebPageGroup)
-WK_ADD_API_MAPPING(WKPageNamespaceRef, WebPageNamespace)
 WK_ADD_API_MAPPING(WKPageRef, WebPageProxy)
 WK_ADD_API_MAPPING(WKPreferencesRef, WebPreferences)
 WK_ADD_API_MAPPING(WKProtectionSpaceRef, WebProtectionSpace)
 
+#if ENABLE(INSPECTOR)
+WK_ADD_API_MAPPING(WKInspectorRef, WebInspectorProxy)
+#endif
+
 /* Enum conversions */
 
 inline CacheModel toCacheModel(WKCacheModel wkCacheModel)
diff --git a/WebKit2/UIProcess/API/C/WKPage.cpp b/WebKit2/UIProcess/API/C/WKPage.cpp
index 2d44c81..6d09856 100644
--- a/WebKit2/UIProcess/API/C/WKPage.cpp
+++ b/WebKit2/UIProcess/API/C/WKPage.cpp
@@ -42,9 +42,9 @@ WKTypeID WKPageGetTypeID()
     return toAPI(WebPageProxy::APIType);
 }
 
-WKPageNamespaceRef WKPageGetPageNamespace(WKPageRef pageRef)
+WKContextRef WKPageGetContext(WKPageRef pageRef)
 {
-    return toAPI(toImpl(pageRef)->pageNamespace());
+    return toAPI(toImpl(pageRef)->context());
 }
 
 WKPageGroupRef WKPageGetPageGroup(WKPageRef pageRef)
diff --git a/WebKit2/UIProcess/API/C/WKPage.h b/WebKit2/UIProcess/API/C/WKPage.h
index c97b8aa..07ae075 100644
--- a/WebKit2/UIProcess/API/C/WKPage.h
+++ b/WebKit2/UIProcess/API/C/WKPage.h
@@ -217,7 +217,7 @@ typedef struct WKPageContextMenuClient WKPageContextMenuClient;
 
 WK_EXPORT WKTypeID WKPageGetTypeID();
 
-WK_EXPORT WKPageNamespaceRef WKPageGetPageNamespace(WKPageRef page);
+WK_EXPORT WKContextRef WKPageGetContext(WKPageRef page);
 WK_EXPORT WKPageGroupRef WKPageGetPageGroup(WKPageRef page);
 
 WK_EXPORT void WKPageLoadURL(WKPageRef page, WKURLRef url);
diff --git a/WebKit2/UIProcess/API/C/WKPageNamespace.cpp b/WebKit2/UIProcess/API/C/WKPageNamespace.cpp
deleted file mode 100644
index e587a5f..0000000
--- a/WebKit2/UIProcess/API/C/WKPageNamespace.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in the
- *    documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "WKPageNamespace.h"
-
-#include "WKAPICast.h"
-#include "WebPageNamespace.h"
-#include <wtf/PassRefPtr.h>
-#include <wtf/RefPtr.h>
-
-using namespace WebKit;
-
-WKTypeID WKPageNamespaceGetTypeID()
-{
-    return toAPI(WebPageNamespace::APIType);
-}
-
-WKPageNamespaceRef WKPageNamespaceCreate(WKContextRef ownerContextRef)
-{
-    return toAPI(toImpl(ownerContextRef)->createPageNamespace());
-}
-
-WKContextRef WKPageNamespaceGetContext(WKPageNamespaceRef pageNamespaceRef)
-{
-    return toAPI(toImpl(pageNamespaceRef)->context());
-}
diff --git a/WebKit2/UIProcess/API/C/WKPageNamespace.h b/WebKit2/UIProcess/API/C/WKPageNamespace.h
deleted file mode 100644
index b348c76..0000000
--- a/WebKit2/UIProcess/API/C/WKPageNamespace.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2010 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 WKPageNamespace_h
-#define WKPageNamespace_h
-
-#include <WebKit2/WKBase.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-WK_EXPORT WKTypeID WKPageNamespaceGetTypeID();
-
-WK_EXPORT WKPageNamespaceRef WKPageNamespaceCreate(WKContextRef ownerContext);
-
-WK_EXPORT WKContextRef WKPageNamespaceGetContext(WKPageNamespaceRef pageNamespace);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* WKPageNamespace_h */
diff --git a/WebKit2/UIProcess/API/C/WebKit2.h b/WebKit2/UIProcess/API/C/WebKit2.h
index 215addb..70d8aaf 100644
--- a/WebKit2/UIProcess/API/C/WebKit2.h
+++ b/WebKit2/UIProcess/API/C/WebKit2.h
@@ -45,7 +45,6 @@
 #include <WebKit2/WKNumber.h>
 #include <WebKit2/WKPage.h>
 #include <WebKit2/WKPageGroup.h>
-#include <WebKit2/WKPageNamespace.h>
 #include <WebKit2/WKPreferences.h>
 #include <WebKit2/WKString.h>
 #include <WebKit2/WKURL.h>
diff --git a/WebKit2/UIProcess/API/C/win/WKView.cpp b/WebKit2/UIProcess/API/C/win/WKView.cpp
index dca3139..1cb9ae6 100644
--- a/WebKit2/UIProcess/API/C/win/WKView.cpp
+++ b/WebKit2/UIProcess/API/C/win/WKView.cpp
@@ -35,9 +35,21 @@ WKTypeID WKViewGetTypeID()
     return toAPI(APIObject::TypeView);
 }
 
-WKViewRef WKViewCreate(RECT rect, WKPageNamespaceRef pageNamespaceRef, WKPageGroupRef pageGroupRef, HWND parentWindow)
+WKViewRef WKViewCreate(RECT rect, WKContextRef contextRef, WKPageGroupRef pageGroupRef, HWND parentWindow)
 {
-    RefPtr<WebView> view = WebView::create(rect, toImpl(pageNamespaceRef), toImpl(pageGroupRef), parentWindow);
+    RefPtr<WebView> view = WebView::create(rect, toImpl(contextRef), toImpl(pageGroupRef), parentWindow);
+    return toAPI(view.release().releaseRef());
+}
+
+WKViewRef WKViewCreateUsingSharedProcess(RECT rect, WKContextRef contextRef, WKPageGroupRef pageGroupRef, HWND parentWindow)
+{
+    RefPtr<WebView> view = WebView::createUsingSharedProcess(rect, toImpl(contextRef), toImpl(pageGroupRef), parentWindow);
+    return toAPI(view.release().releaseRef());
+}
+
+WKViewRef WKViewCreateForAssociatedPage(RECT rect, WKPageRef pageRef, WKPageGroupRef pageGroupRef, HWND parentWindow)
+{
+    RefPtr<WebView> view = WebView::createForAssociatedPage(rect, toImpl(pageRef), toImpl(pageGroupRef), parentWindow);
     return toAPI(view.release().releaseRef());
 }
 
diff --git a/WebKit2/UIProcess/API/C/win/WKView.h b/WebKit2/UIProcess/API/C/win/WKView.h
index 2b7be05..a02d98a 100644
--- a/WebKit2/UIProcess/API/C/win/WKView.h
+++ b/WebKit2/UIProcess/API/C/win/WKView.h
@@ -35,7 +35,9 @@ extern "C" {
 
 WK_EXPORT WKTypeID WKViewGetTypeID();
 
-WK_EXPORT WKViewRef WKViewCreate(RECT rect, WKPageNamespaceRef pageNamespace, WKPageGroupRef pageGroup, HWND parentWindow);
+WK_EXPORT WKViewRef WKViewCreate(RECT rect, WKContextRef context, WKPageGroupRef pageGroup, HWND parentWindow);
+WK_EXPORT WKViewRef WKViewCreateUsingSharedProcess(RECT rect, WKContextRef context, WKPageGroupRef pageGroup, HWND parentWindow);
+WK_EXPORT WKViewRef WKViewCreateForAssociatedPage(RECT rect, WKPageRef page, WKPageGroupRef pageGroup, HWND parentWindow);
 
 WK_EXPORT HWND WKViewGetWindow(WKViewRef view);
 
diff --git a/WebKit2/UIProcess/API/mac/WKView.h b/WebKit2/UIProcess/API/mac/WKView.h
index 64dbf83..dabf4dc 100644
--- a/WebKit2/UIProcess/API/mac/WKView.h
+++ b/WebKit2/UIProcess/API/mac/WKView.h
@@ -33,15 +33,18 @@ WK_EXPORT
     WKViewData *_data;
 }
 
-- (id)initWithFrame:(NSRect)frame pageNamespaceRef:(WKPageNamespaceRef)pageNamespaceRef;
-- (id)initWithFrame:(NSRect)frame pageNamespaceRef:(WKPageNamespaceRef)pageNamespaceRef pageGroupRef:(WKPageGroupRef)pageGroupRef;
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef;
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef;
 
-- (WKPageRef)pageRef;
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef usingSharedProcess:(BOOL)usingSharedProcess;
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef usingSharedProcess:(BOOL)usingSharedProcess;;
 
-- (void)setDrawsBackground:(BOOL)flag;
-- (BOOL)drawsBackground;
+- (id)initWithFrame:(NSRect)frame forAssociatedPageRef:(WKPageRef)pageRef;
+- (id)initWithFrame:(NSRect)frame forAssociatedPageRef:(WKPageRef)pageRef pageGroupRef:(WKPageGroupRef)pageGroupRef;
 
-- (void)setDrawsTransparentBackground:(BOOL)flag;
-- (BOOL)drawsTransparentBackground;
+ at property(readonly) WKPageRef pageRef;
+
+ at property BOOL drawsBackground;
+ at property BOOL drawsTransparentBackground;
 
 @end
diff --git a/WebKit2/UIProcess/API/mac/WKView.mm b/WebKit2/UIProcess/API/mac/WKView.mm
index c75e8a3..5d37a77 100644
--- a/WebKit2/UIProcess/API/mac/WKView.mm
+++ b/WebKit2/UIProcess/API/mac/WKView.mm
@@ -127,9 +127,54 @@ struct EditCommandState {
 - (BOOL)handleMouseEvent:(NSEvent *)event;
 @end
 
+ at interface WKView ()
+- (id)initWithFrame:(NSRect)frame pageNamespace:(WebPageNamespace*)pageNamespace pageGroup:(WebPageGroup*)pageGroup;
+ at end
+
 @implementation WKView
 
-- (id)initWithFrame:(NSRect)frame pageNamespaceRef:(WKPageNamespaceRef)pageNamespaceRef pageGroupRef:(WKPageGroupRef)pageGroupRef
+- (id)initWithFrame:(NSRect)frame
+{
+    return [self initWithFrame:frame contextRef:toAPI(WebContext::sharedProcessContext())];
+}
+
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef
+{   
+    return [self initWithFrame:frame contextRef:contextRef pageGroupRef:nil];
+}
+
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef
+{
+    return [self initWithFrame:frame contextRef:contextRef pageGroupRef:pageGroupRef usingSharedProcess:NO];
+}
+
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef usingSharedProcess:(BOOL)usingSharedProcess
+{
+    return [self initWithFrame:frame contextRef:contextRef pageGroupRef:nil usingSharedProcess:usingSharedProcess];
+}
+
+- (id)initWithFrame:(NSRect)frame contextRef:(WKContextRef)contextRef pageGroupRef:(WKPageGroupRef)pageGroupRef usingSharedProcess:(BOOL)usingSharedProcess
+{
+    RefPtr<WebPageNamespace> pageNamespace;
+    if (usingSharedProcess)
+        pageNamespace = toImpl(contextRef)->sharedPageNamespace();
+    else
+        pageNamespace = toImpl(contextRef)->createPageNamespace();
+
+    return [self initWithFrame:frame pageNamespace:pageNamespace.get() pageGroup:toImpl(pageGroupRef)];
+}
+
+- (id)initWithFrame:(NSRect)frame forAssociatedPageRef:(WKPageRef)pageRef
+{
+    return [self initWithFrame:frame forAssociatedPageRef:pageRef pageGroupRef:nil];
+}
+
+- (id)initWithFrame:(NSRect)frame forAssociatedPageRef:(WKPageRef)pageRef pageGroupRef:(WKPageGroupRef)pageGroupRef
+{
+    return [self initWithFrame:frame pageNamespace:toImpl(pageRef)->pageNamespace() pageGroup:toImpl(pageGroupRef)];
+}
+
+- (id)initWithFrame:(NSRect)frame pageNamespace:(WebPageNamespace*)pageNamespace pageGroup:(WebPageGroup*)pageGroup
 {
     self = [super initWithFrame:frame];
     if (!self)
@@ -148,7 +193,7 @@ struct EditCommandState {
     _data = [[WKViewData alloc] init];
 
     _data->_pageClient = PageClientImpl::create(self);
-    _data->_page = toImpl(pageNamespaceRef)->createWebPage(toImpl(pageGroupRef));
+    _data->_page = pageNamespace->createWebPage(pageGroup);
     _data->_page->setPageClient(_data->_pageClient.get());
     _data->_page->setDrawingArea(ChunkedUpdateDrawingAreaProxy::create(self));
     _data->_page->initializeWebPage(IntSize(frame.size));
@@ -168,17 +213,6 @@ struct EditCommandState {
     return self;
 }
 
-- (id)initWithFrame:(NSRect)frame pageNamespaceRef:(WKPageNamespaceRef)pageNamespaceRef
-{
-    return [self initWithFrame:frame pageNamespaceRef:pageNamespaceRef pageGroupRef:nil];
-}
-
-- (id)initWithFrame:(NSRect)frame
-{
-    WebContext* context = WebContext::sharedProcessContext();
-    return [self initWithFrame:frame pageNamespaceRef:toAPI(context->createPageNamespace())];
-}
-
 - (void)dealloc
 {
     _data->_page->close();
diff --git a/WebKit2/UIProcess/API/qt/qwkcontext.cpp b/WebKit2/UIProcess/API/qt/qwkcontext.cpp
index 5334183..9950f82 100644
--- a/WebKit2/UIProcess/API/qt/qwkcontext.cpp
+++ b/WebKit2/UIProcess/API/qt/qwkcontext.cpp
@@ -50,15 +50,23 @@ QWKContext::QWKContext(QObject* parent)
     , d(new QWKContextPrivate(this))
 {
     d->context = WebContext::create(String());
-    d->pageNamespace = d->context->createPageNamespace();
+    d->pageNamespace = d->context->sharedPageNamespace();
 }
 
-QWKContext::QWKContext(WKPageNamespaceRef pageNamespaceRef, QObject* parent)
+QWKContext::QWKContext(WKContextRef contextRef, QObject* parent)
     : QObject(parent)
     , d(new QWKContextPrivate(this))
 {
-    d->pageNamespace = toImpl(pageNamespaceRef);
-    d->context = d->pageNamespace->context();
+    d->context = toImpl(contextRef);
+    d->pageNamespace = d->context->sharedPageNamespace();
+}
+
+QWKContext::QWKContext(WKPageRef pageRef, QObject* parent)
+    : QObject(parent)
+    , d(new QWKContextPrivate(this))
+{
+    d->context = toImpl(pageRef)->context();
+    d->pageNamespace = d->context->sharedPageNamespace();
 }
 
 QWKContext::~QWKContext()
diff --git a/WebKit2/UIProcess/API/qt/qwkcontext.h b/WebKit2/UIProcess/API/qt/qwkcontext.h
index 8dff815..9aed501 100644
--- a/WebKit2/UIProcess/API/qt/qwkcontext.h
+++ b/WebKit2/UIProcess/API/qt/qwkcontext.h
@@ -22,7 +22,8 @@
 
 #include "qwebkitglobal.h"
 #include <QObject>
-#include <WebKit2/WKPageNamespace.h>
+#include <WebKit2/WKContext.h>
+#include <WebKit2/WKPage.h>
 
 class QWKContextPrivate;
 
@@ -33,7 +34,8 @@ public:
     virtual ~QWKContext();
 
     // Bridge from the C API
-    QWKContext(WKPageNamespaceRef pageNamespaceRef, QObject* parent = 0);
+    QWKContext(WKContextRef contextRef, QObject* parent = 0);
+    QWKContext(WKPageRef pageRef, QObject* parent = 0);
 
 private:
     QWKContextPrivate* d;
diff --git a/WebKit2/UIProcess/WebContext.cpp b/WebKit2/UIProcess/WebContext.cpp
index 1b68f0f..6a15c11 100644
--- a/WebKit2/UIProcess/WebContext.cpp
+++ b/WebKit2/UIProcess/WebContext.cpp
@@ -79,6 +79,7 @@ PassRefPtr<WebContext> WebContext::create(const String& injectedBundlePath)
     
 WebContext::WebContext(ProcessModel processModel, const String& injectedBundlePath)
     : m_processModel(processModel)
+    , m_sharedNamespace(0)
     , m_defaultPageGroup(WebPageGroup::create())
     , m_injectedBundlePath(injectedBundlePath)
     , m_visitedLinkProvider(this)
@@ -228,15 +229,25 @@ void WebContext::relaunchProcessIfNecessary()
     ensureWebProcess();
 }
 
-WebPageNamespace* WebContext::createPageNamespace()
+WebPageNamespace* WebContext::sharedPageNamespace()
+{
+    if (!m_sharedNamespace)
+        m_sharedNamespace = createPageNamespace();
+    return m_sharedNamespace.get();
+}
+
+PassRefPtr<WebPageNamespace> WebContext::createPageNamespace()
 {
     RefPtr<WebPageNamespace> pageNamespace = WebPageNamespace::create(this);
     m_pageNamespaces.add(pageNamespace.get());
-    return pageNamespace.release().releaseRef();
+    return pageNamespace.release();
 }
 
 void WebContext::pageNamespaceWasDestroyed(WebPageNamespace* pageNamespace)
 {
+    if (pageNamespace == m_sharedNamespace)
+        m_sharedNamespace = 0;
+
     ASSERT(m_pageNamespaces.contains(pageNamespace));
     m_pageNamespaces.remove(pageNamespace);
 }
diff --git a/WebKit2/UIProcess/WebContext.h b/WebKit2/UIProcess/WebContext.h
index 7e4b5b1..02f1c48 100644
--- a/WebKit2/UIProcess/WebContext.h
+++ b/WebKit2/UIProcess/WebContext.h
@@ -42,8 +42,6 @@
 #include <wtf/text/StringHash.h>
 #include <wtf/text/WTFString.h>
 
-struct WKContextStatistics;
-
 namespace WebKit {
 
 class DownloadProxy;
@@ -77,7 +75,8 @@ public:
 
     void relaunchProcessIfNecessary();
 
-    WebPageNamespace* createPageNamespace();
+    WebPageNamespace* sharedPageNamespace();
+    PassRefPtr<WebPageNamespace> createPageNamespace();
     void pageNamespaceWasDestroyed(WebPageNamespace*);
 
     const String& injectedBundlePath() const { return m_injectedBundlePath; }
@@ -164,6 +163,7 @@ private:
     // FIXME: In the future, this should be one or more WebProcessProxies.
     RefPtr<WebProcessProxy> m_process;
 
+    RefPtr<WebPageNamespace> m_sharedNamespace;
     HashSet<WebPageNamespace*> m_pageNamespaces;
 
     RefPtr<WebPageGroup> m_defaultPageGroup;
diff --git a/WebKit2/UIProcess/WebPageNamespace.h b/WebKit2/UIProcess/WebPageNamespace.h
index c852f39..f8955bb 100644
--- a/WebKit2/UIProcess/WebPageNamespace.h
+++ b/WebKit2/UIProcess/WebPageNamespace.h
@@ -31,8 +31,6 @@
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefPtr.h>
 
-struct WKContextStatistics;
-
 namespace WebKit {
 
 class WebContext;
diff --git a/WebKit2/UIProcess/WebPageProxy.cpp b/WebKit2/UIProcess/WebPageProxy.cpp
index 5ac0991..7751ce3 100644
--- a/WebKit2/UIProcess/WebPageProxy.cpp
+++ b/WebKit2/UIProcess/WebPageProxy.cpp
@@ -133,6 +133,11 @@ WebProcessProxy* WebPageProxy::process() const
     return m_pageNamespace->process();
 }
 
+WebContext* WebPageProxy::context() const
+{
+    return m_pageNamespace->context();
+}
+
 bool WebPageProxy::isValid()
 {
     // A page that has been explicitly closed is never valid.
diff --git a/WebKit2/UIProcess/WebPageProxy.h b/WebKit2/UIProcess/WebPageProxy.h
index 7f9a57b..51eeefe 100644
--- a/WebKit2/UIProcess/WebPageProxy.h
+++ b/WebKit2/UIProcess/WebPageProxy.h
@@ -71,8 +71,6 @@ namespace WebCore {
     struct WindowFeatures;
 }
 
-struct WKContextStatistics;
-
 namespace WebKit {
 
 class DrawingAreaProxy;
@@ -252,6 +250,7 @@ public:
 
     WebProcessProxy* process() const;
     WebPageNamespace* pageNamespace() const { return m_pageNamespace.get(); }
+    WebContext* context() const;
 
     WebPageGroup* pageGroup() const { return m_pageGroup.get(); }
 
diff --git a/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm b/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm
index a889739..5e64536 100644
--- a/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm
+++ b/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm
@@ -78,10 +78,10 @@ WebPageProxy* WebInspectorProxy::platformCreateInspectorPage()
     ASSERT(m_page);
     ASSERT(!m_inspectorView);
 
-    m_inspectorView.adoptNS([[WKView alloc] initWithFrame:NSZeroRect pageNamespaceRef:toAPI(m_page->pageNamespace()) pageGroupRef:toAPI(inspectorPageGroup())]);
+    m_inspectorView.adoptNS([[WKView alloc] initWithFrame:NSZeroRect forAssociatedPageRef:toAPI(page()) pageGroupRef:toAPI(inspectorPageGroup())]);
     ASSERT(m_inspectorView);
 
-    return toImpl([m_inspectorView.get() pageRef]);
+    return toImpl(m_inspectorView.get().pageRef);
 }
 
 void WebInspectorProxy::platformOpen()
diff --git a/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp b/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp
index b513b6e..42a41e5 100644
--- a/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp
+++ b/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp
@@ -152,8 +152,8 @@ WebPageProxy* WebInspectorProxy::platformCreateInspectorPage()
     ASSERT(!m_inspectorWindow);
 
     RECT emptyRect = {0};
-    m_inspectorView = WebView::create(emptyRect, m_page->pageNamespace(), inspectorPageGroup(), 0).leakRef();
-    
+    m_inspectorView = WebView::createForAssociatedPage(emptyRect, m_page, inspectorPageGroup(), 0).leakRef();
+
     return m_inspectorView->page();
 }
 
diff --git a/WebKit2/UIProcess/win/WebView.cpp b/WebKit2/UIProcess/win/WebView.cpp
index d434a3e..3eac543 100644
--- a/WebKit2/UIProcess/win/WebView.cpp
+++ b/WebKit2/UIProcess/win/WebView.cpp
@@ -182,7 +182,7 @@ bool WebView::registerWebViewWindowClass()
     return !!::RegisterClassEx(&wcex);
 }
 
-WebView::WebView(RECT rect, WebPageNamespace* pageNamespace, WebPageGroup* pageGroup, HWND parentWindow)
+WebView::WebView(RECT rect, WebContext* context, WebPageGroup* pageGroup, HWND parentWindow, bool usingSharedProcess)
     : m_rect(rect)
     , m_topLevelParentWindow(0)
     , m_toolTipWindow(0)
@@ -192,6 +192,30 @@ WebView::WebView(RECT rect, WebPageNamespace* pageNamespace, WebPageGroup* pageG
     , m_trackingMouseLeave(false)
     , m_isBeingDestroyed(false)
 {
+    RefPtr<WebPageNamespace> pageNamespace;
+    if (usingSharedProcess)
+        pageNamespace = context->sharedPageNamespace();
+    else
+        pageNamespace = context->createPageNamespace();
+
+    initialize(pageNamespace.get(), pageGroup, parentWindow);
+}
+
+WebView::WebView(RECT rect, WebPageProxy* page, WebPageGroup* pageGroup, HWND parentWindow)
+    : m_rect(rect)
+    , m_topLevelParentWindow(0)
+    , m_toolTipWindow(0)
+    , m_lastCursorSet(0)
+    , m_webCoreCursor(0)
+    , m_overrideCursor(0)
+    , m_trackingMouseLeave(false)
+    , m_isBeingDestroyed(false)
+{
+    initialize(page->pageNamespace(), pageGroup, parentWindow);
+}
+
+void WebView::initialize(WebPageNamespace* pageNamespace, WebPageGroup* pageGroup, HWND parentWindow)
+{
     registerWebViewWindowClass();
 
     m_page = pageNamespace->createWebPage(pageGroup);
@@ -199,10 +223,10 @@ WebView::WebView(RECT rect, WebPageNamespace* pageNamespace, WebPageGroup* pageG
     m_page->setDrawingArea(ChunkedUpdateDrawingAreaProxy::create(this));
 
     m_window = ::CreateWindowEx(0, kWebKit2WebViewWindowClassName, 0, WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
-        rect.top, rect.left, rect.right - rect.left, rect.bottom - rect.top, parentWindow ? parentWindow : HWND_MESSAGE, 0, instanceHandle(), this);
+        m_rect.top, m_rect.left, m_rect.right - m_rect.left, m_rect.bottom - m_rect.top, parentWindow ? parentWindow : HWND_MESSAGE, 0, instanceHandle(), this);
     ASSERT(::IsWindow(m_window));
 
-    m_page->initializeWebPage(IntRect(rect).size());
+    m_page->initializeWebPage(IntRect(m_rect).size());
 
     ::ShowWindow(m_window, SW_SHOW);
 
diff --git a/WebKit2/UIProcess/win/WebView.h b/WebKit2/UIProcess/win/WebView.h
index 994f23c..a3bf488 100644
--- a/WebKit2/UIProcess/win/WebView.h
+++ b/WebKit2/UIProcess/win/WebView.h
@@ -41,9 +41,17 @@ class WebPageNamespace;
 
 class WebView : public APIObject, public PageClient, WebCore::WindowMessageListener {
 public:
-    static PassRefPtr<WebView> create(RECT rect, WebPageNamespace* pageNamespace, WebPageGroup* pageGroup, HWND parentWindow)
+    static PassRefPtr<WebView> create(RECT rect, WebContext* context, WebPageGroup* pageGroup, HWND parentWindow)
     {
-        return adoptRef(new WebView(rect, pageNamespace, pageGroup, parentWindow));
+        return adoptRef(new WebView(rect, context, pageGroup, parentWindow, false));
+    }
+    static PassRefPtr<WebView> createUsingSharedProcess(RECT rect, WebContext* context, WebPageGroup* pageGroup, HWND parentWindow)
+    {
+        return adoptRef(new WebView(rect, context, pageGroup, parentWindow, true));
+    }
+    static PassRefPtr<WebView> createForAssociatedPage(RECT rect, WebPageProxy* page, WebPageGroup* pageGroup, HWND parentWindow)
+    {
+        return adoptRef(new WebView(rect, page, pageGroup, parentWindow));
     }
     ~WebView();
 
@@ -58,7 +66,10 @@ public:
     WebPageProxy* page() const { return m_page.get(); }
 
 private:
-    WebView(RECT, WebPageNamespace*, WebPageGroup*, HWND parentWindow);
+    WebView(RECT, WebContext*, WebPageGroup*, HWND parentWindow, bool usingSharedProcess);
+    WebView(RECT, WebPageProxy*, WebPageGroup*, HWND parentWindow);
+
+    void initialize(WebPageNamespace*, WebPageGroup*, HWND parentWindow);
 
     virtual Type type() const { return TypeView; }
 
diff --git a/WebKit2/WebKit2.pro b/WebKit2/WebKit2.pro
index 61c4977..3d640bc 100644
--- a/WebKit2/WebKit2.pro
+++ b/WebKit2/WebKit2.pro
@@ -288,7 +288,6 @@ HEADERS += \
     UIProcess/API/C/WKNavigationData.h \
     UIProcess/API/C/WKPage.h \
     UIProcess/API/C/WKPageGroup.h \
-    UIProcess/API/C/WKPageNamespace.h \
     UIProcess/API/C/WKPagePrivate.h \
     UIProcess/API/C/WKPreferences.h \
     UIProcess/API/C/WKPreferencesPrivate.h \
@@ -488,7 +487,6 @@ SOURCES += \
     UIProcess/API/C/WKNavigationData.cpp \
     UIProcess/API/C/WKPage.cpp \
     UIProcess/API/C/WKPageGroup.cpp \
-    UIProcess/API/C/WKPageNamespace.cpp \
     UIProcess/API/C/WKPreferences.cpp \
     UIProcess/API/C/WKProtectionSpace.cpp \
     UIProcess/API/cpp/qt/WKStringQt.cpp \
diff --git a/WebKit2/WebKit2.xcodeproj/project.pbxproj b/WebKit2/WebKit2.xcodeproj/project.pbxproj
index 089e9ab..5126d8b 100644
--- a/WebKit2/WebKit2.xcodeproj/project.pbxproj
+++ b/WebKit2/WebKit2.xcodeproj/project.pbxproj
@@ -541,8 +541,6 @@
 		BCEE966D112FAF57006BCC24 /* Attachment.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEE966B112FAF57006BCC24 /* Attachment.h */; };
 		BCEE98C6113314D7006BCC24 /* WebPageNamespace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEE98C4113314D7006BCC24 /* WebPageNamespace.cpp */; };
 		BCEE98C7113314D7006BCC24 /* WebPageNamespace.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEE98C5113314D7006BCC24 /* WebPageNamespace.h */; };
-		BCEE98CC1133174C006BCC24 /* WKPageNamespace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BCEE98CA1133174C006BCC24 /* WKPageNamespace.cpp */; };
-		BCEE98CD1133174C006BCC24 /* WKPageNamespace.h in Headers */ = {isa = PBXBuildFile; fileRef = BCEE98CB1133174C006BCC24 /* WKPageNamespace.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		BCF049E611FE20F600F86A58 /* WKBundleFramePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF049E411FE20F600F86A58 /* WKBundleFramePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		BCF049E711FE20F600F86A58 /* WKBundlePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF049E511FE20F600F86A58 /* WKBundlePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		BCF50121123ED3B3005955AE /* ThreadLauncher.h in Headers */ = {isa = PBXBuildFile; fileRef = BCF5011F123ED3B3005955AE /* ThreadLauncher.h */; };
@@ -1196,8 +1194,6 @@
 		BCEE966B112FAF57006BCC24 /* Attachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Attachment.h; sourceTree = "<group>"; };
 		BCEE98C4113314D7006BCC24 /* WebPageNamespace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebPageNamespace.cpp; sourceTree = "<group>"; };
 		BCEE98C5113314D7006BCC24 /* WebPageNamespace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebPageNamespace.h; sourceTree = "<group>"; };
-		BCEE98CA1133174C006BCC24 /* WKPageNamespace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKPageNamespace.cpp; sourceTree = "<group>"; };
-		BCEE98CB1133174C006BCC24 /* WKPageNamespace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKPageNamespace.h; sourceTree = "<group>"; };
 		BCF049E411FE20F600F86A58 /* WKBundleFramePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundleFramePrivate.h; sourceTree = "<group>"; };
 		BCF049E511FE20F600F86A58 /* WKBundlePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKBundlePrivate.h; sourceTree = "<group>"; };
 		BCF04C8C11FF9B7D00F86A58 /* APIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIObject.h; sourceTree = "<group>"; };
@@ -1970,8 +1966,6 @@
 				BCD597D5112B56DC00EC8C23 /* WKPage.h */,
 				BC7B633612A45ABA00D174A4 /* WKPageGroup.cpp */,
 				BC7B633512A45ABA00D174A4 /* WKPageGroup.h */,
-				BCEE98CA1133174C006BCC24 /* WKPageNamespace.cpp */,
-				BCEE98CB1133174C006BCC24 /* WKPageNamespace.h */,
 				BC177464118B9FF4007D9E9A /* WKPagePrivate.h */,
 				BCD597CF112B56AC00EC8C23 /* WKPreferences.cpp */,
 				BCD597CE112B56AC00EC8C23 /* WKPreferences.h */,
@@ -2510,7 +2504,6 @@
 				BCB9F6A51123DD0D00A137E0 /* WKFramePolicyListener.h in Headers */,
 				BCF69FA91176D1CB00471A52 /* WKNavigationData.h in Headers */,
 				BCD597D7112B56DC00EC8C23 /* WKPage.h in Headers */,
-				BCEE98CD1133174C006BCC24 /* WKPageNamespace.h in Headers */,
 				BC177465118B9FF4007D9E9A /* WKPagePrivate.h in Headers */,
 				BCD597D0112B56AC00EC8C23 /* WKPreferences.h in Headers */,
 				762B748D120BC75C00819339 /* WKPreferencesPrivate.h in Headers */,
@@ -2935,7 +2928,6 @@
 				BCB9F6A61123DD0D00A137E0 /* WKFramePolicyListener.cpp in Sources */,
 				BCF69FAA1176D1CB00471A52 /* WKNavigationData.cpp in Sources */,
 				BCD597D6112B56DC00EC8C23 /* WKPage.cpp in Sources */,
-				BCEE98CC1133174C006BCC24 /* WKPageNamespace.cpp in Sources */,
 				BCD597D1112B56AC00EC8C23 /* WKPreferences.cpp in Sources */,
 				BC8699B6116AADAA002A925B /* WKView.mm in Sources */,
 				BC2E6E8D1141971500A63B1E /* WorkQueue.cpp in Sources */,
diff --git a/WebKit2/win/WebKit2.vcproj b/WebKit2/win/WebKit2.vcproj
index 4970ae3..613de38 100755
--- a/WebKit2/win/WebKit2.vcproj
+++ b/WebKit2/win/WebKit2.vcproj
@@ -2281,14 +2281,6 @@
 						>
 					</File>
 					<File
-						RelativePath="..\UIProcess\API\C\WKPageNamespace.cpp"
-						>
-					</File>
-					<File
-						RelativePath="..\UIProcess\API\C\WKPageNamespace.h"
-						>
-					</File>
-					<File
 						RelativePath="..\UIProcess\API\C\WKPagePrivate.h"
 						>
 					</File>
diff --git a/WebKit2/win/WebKit2Generated.make b/WebKit2/win/WebKit2Generated.make
index a638196..32977b8 100644
--- a/WebKit2/win/WebKit2Generated.make
+++ b/WebKit2/win/WebKit2Generated.make
@@ -51,7 +51,6 @@ all:
     xcopy /y /d "..\UIProcess\API\C\WKNavigationData.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
     xcopy /y /d "..\UIProcess\API\C\WKPage.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
     xcopy /y /d "..\UIProcess\API\C\WKPageGroup.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
-    xcopy /y /d "..\UIProcess\API\C\WKPageNamespace.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
     xcopy /y /d "..\UIProcess\API\C\WKPreferences.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
     xcopy /y /d "..\UIProcess\API\C\WKPreferencesPrivate.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
     xcopy /y /d "..\UIProcess\API\C\WKProtectionSpace.h" "$(WEBKITOUTPUTDIR)\include\WebKit2"
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 2093405..2cdc1fc 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,43 @@
+2010-12-13  Sam Weinig  <sam at webkit.org>
+
+        Reviewed by Anders Carlsson.
+
+        Change the WebKit2 public API so there is no explicit WKPageNamespace object
+        https://bugs.webkit.org/show_bug.cgi?id=50898
+
+        * MiniBrowser/mac/AppDelegate.h:
+        * MiniBrowser/mac/AppDelegate.m:
+        * MiniBrowser/mac/BrowserWindowController.h:
+        * MiniBrowser/mac/BrowserWindowController.m:
+        * MiniBrowser/win/BrowserView.cpp:
+        Convert MiniBrowser to not use PageNamespaces.
+
+        * TestWebKitAPI/PlatformWebView.h:
+        * TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp:
+        * TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp:
+        * TestWebKitAPI/Tests/WebKit2/FailedLoad.cpp:
+        * TestWebKitAPI/Tests/WebKit2/Find.cpp:
+        * TestWebKitAPI/Tests/WebKit2/FrameMIMETypeHTML.cpp:
+        * TestWebKitAPI/Tests/WebKit2/FrameMIMETypePNG.cpp:
+        * TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic.cpp:
+        * TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp:
+        * TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp:
+        * TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp:
+        * TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp:
+        * TestWebKitAPI/Tests/WebKit2/win/AltKeyGeneratesWMSysCommand.cpp:
+        * TestWebKitAPI/Tests/WebKit2/win/WMCloseCallsUIClientClose.cpp:
+        * TestWebKitAPI/mac/PlatformWebViewMac.mm:
+        * TestWebKitAPI/win/PlatformWebViewWin.cpp:
+        Convert TestWebKitAPI to not use PageNamespaces.
+
+        * WebKitTestRunner/PlatformWebView.h:
+        * WebKitTestRunner/TestController.cpp:
+        * WebKitTestRunner/TestController.h:
+        * WebKitTestRunner/mac/PlatformWebViewMac.mm:
+        * WebKitTestRunner/qt/PlatformWebViewQt.cpp:
+        * WebKitTestRunner/win/PlatformWebViewWin.cpp:
+        Convert WebKitTestRunner to not use PageNamespaces.
+
 2010-12-13  Gabor Rapcsanyi  <rgabor at inf.u-szeged.hu>
 
         Reviewed by Eric Seidel.
diff --git a/WebKitTools/MiniBrowser/mac/AppDelegate.h b/WebKitTools/MiniBrowser/mac/AppDelegate.h
index 2173c93..bf79656 100644
--- a/WebKitTools/MiniBrowser/mac/AppDelegate.h
+++ b/WebKitTools/MiniBrowser/mac/AppDelegate.h
@@ -30,12 +30,12 @@ enum ProcessModel {
 typedef unsigned long ProcessModel;
 
 @interface BrowserAppDelegate : NSObject <NSApplicationDelegate> {
-    ProcessModel currentProcessModel;
-    WKPageNamespaceRef threadPageNamespace;
-    WKPageNamespaceRef processPageNamespace;
+    ProcessModel _currentProcessModel;
+    WKContextRef _threadContext;
+    WKContextRef _processContext;
 }
 
-- (WKPageNamespaceRef)getCurrentPageNamespace;
+- (WKContextRef)getCurrentContext;
 
 - (IBAction)setSharedProcessProcessModel:(id)sender;
 - (IBAction)setSharedThreadProcessModel:(id)sender;
diff --git a/WebKitTools/MiniBrowser/mac/AppDelegate.m b/WebKitTools/MiniBrowser/mac/AppDelegate.m
index 3747e28..a02193b 100644
--- a/WebKitTools/MiniBrowser/mac/AppDelegate.m
+++ b/WebKitTools/MiniBrowser/mac/AppDelegate.m
@@ -114,9 +114,9 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo)
     self = [super init];
     if (self) {
         if ([NSEvent modifierFlags] & NSShiftKeyMask)
-            currentProcessModel = kProcessModelSharedSecondaryThread;
+            _currentProcessModel = kProcessModelSharedSecondaryThread;
         else
-            currentProcessModel = kProcessModelSharedSecondaryProcess;
+            _currentProcessModel = kProcessModelSharedSecondaryProcess;
 
         WKContextHistoryClient historyClient = {
             0,
@@ -128,17 +128,14 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo)
             populateVisitedLinks
         };
 
-        WKContextRef threadContext = WKContextGetSharedThreadContext();
-        WKContextSetHistoryClient(threadContext, &historyClient);
-        WKContextSetCacheModel(threadContext, kWKCacheModelPrimaryWebBrowser);
-
-        threadPageNamespace = WKPageNamespaceCreate(threadContext);
-        WKRelease(threadContext);
+        _threadContext = WKContextGetSharedThreadContext();
+        WKContextSetHistoryClient(_threadContext, &historyClient);
+        WKContextSetCacheModel(_threadContext, kWKCacheModelPrimaryWebBrowser);
 
         CFStringRef bundlePathCF = (CFStringRef)[[NSBundle mainBundle] pathForAuxiliaryExecutable:@"WebBundle.bundle"];
         WKStringRef bundlePath = WKStringCreateWithCFString(bundlePathCF);
 
-        WKContextRef processContext = WKContextCreateWithInjectedBundlePath(bundlePath);
+        _processContext = WKContextCreateWithInjectedBundlePath(bundlePath);
         
         WKContextInjectedBundleClient bundleClient = {
             0,      /* version */
@@ -146,12 +143,9 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo)
             didRecieveMessageFromInjectedBundle,
             0
         };
-        WKContextSetInjectedBundleClient(processContext, &bundleClient);
-        WKContextSetHistoryClient(processContext, &historyClient);
-        WKContextSetCacheModel(processContext, kWKCacheModelPrimaryWebBrowser);
-
-        processPageNamespace = WKPageNamespaceCreate(processContext);
-        WKRelease(processContext);
+        WKContextSetInjectedBundleClient(_processContext, &bundleClient);
+        WKContextSetHistoryClient(_processContext, &historyClient);
+        WKContextSetCacheModel(_processContext, kWKCacheModelPrimaryWebBrowser);
 
         WKRelease(bundlePath);
     }
@@ -161,32 +155,32 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo)
 
 - (IBAction)newWindow:(id)sender
 {
-    BrowserWindowController *controller = [[BrowserWindowController alloc] initWithPageNamespace:[self getCurrentPageNamespace]];
+    BrowserWindowController *controller = [[BrowserWindowController alloc] initWithContext:[self getCurrentContext]];
     [[controller window] makeKeyAndOrderFront:sender];
     
     [controller loadURLString:defaultURL];
 }
 
-- (WKPageNamespaceRef)getCurrentPageNamespace
+- (WKContextRef)getCurrentContext
 {
-    return (currentProcessModel == kProcessModelSharedSecondaryThread) ? threadPageNamespace : processPageNamespace;
+    return (_currentProcessModel == kProcessModelSharedSecondaryThread) ? _threadContext : _processContext;
 }
 
 - (BOOL)validateMenuItem:(NSMenuItem *)menuItem
 {
     if ([menuItem action] == @selector(setSharedProcessProcessModel:))
-        [menuItem setState:currentProcessModel == kProcessModelSharedSecondaryProcess ? NSOnState : NSOffState];
+        [menuItem setState:_currentProcessModel == kProcessModelSharedSecondaryProcess ? NSOnState : NSOffState];
     else if ([menuItem action] == @selector(setSharedThreadProcessModel:))
-        [menuItem setState:currentProcessModel == kProcessModelSharedSecondaryThread ? NSOnState : NSOffState];
+        [menuItem setState:_currentProcessModel == kProcessModelSharedSecondaryThread ? NSOnState : NSOffState];
     return YES;
 }        
 
 - (void)_setProcessModel:(ProcessModel)processModel
 {
-    if (processModel == currentProcessModel)
+    if (processModel == _currentProcessModel)
         return;
  
-    currentProcessModel = processModel;
+    _currentProcessModel = processModel;
 }
 
 - (IBAction)setSharedProcessProcessModel:(id)sender
@@ -203,8 +197,8 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo)
 {
     static BrowserStatisticsWindowController* windowController;
     if (!windowController)
-        windowController = [[BrowserStatisticsWindowController alloc] initWithThreadedWKContextRef:WKPageNamespaceGetContext(threadPageNamespace) 
-                                                                               processWKContextRef:WKPageNamespaceGetContext(processPageNamespace)];
+        windowController = [[BrowserStatisticsWindowController alloc] initWithThreadedWKContextRef:_threadContext
+                                                                               processWKContextRef:_processContext];
 
     [[windowController window] makeKeyAndOrderFront:self];
 }
@@ -224,12 +218,9 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo)
             [controller applicationTerminating];
         }
     }
-    
-    WKRelease(threadPageNamespace);
-    threadPageNamespace = 0;
 
-    WKRelease(processPageNamespace);
-    processPageNamespace = 0;
+    WKRelease(_processContext);
+    _processContext = 0;
 }
 
 - (BrowserWindowController *)frontmostBrowserWindowController
@@ -265,7 +256,7 @@ static void populateVisitedLinks(WKContextRef context, const void *clientInfo)
 
     BrowserWindowController *controller = [self frontmostBrowserWindowController];
     if (!controller) {
-        controller = [[BrowserWindowController alloc] initWithPageNamespace:[self getCurrentPageNamespace]];
+        controller = [[BrowserWindowController alloc] initWithContext:[self getCurrentContext]];
         [[controller window] makeKeyAndOrderFront:self];
     }
     
diff --git a/WebKitTools/MiniBrowser/mac/BrowserWindowController.h b/WebKitTools/MiniBrowser/mac/BrowserWindowController.h
index 6b6aeb8..d132802 100644
--- a/WebKitTools/MiniBrowser/mac/BrowserWindowController.h
+++ b/WebKitTools/MiniBrowser/mac/BrowserWindowController.h
@@ -34,7 +34,7 @@
     
     IBOutlet NSWindow *findPanelWindow;
     
-    WKPageNamespaceRef _pageNamespace;
+    WKContextRef _context;
     WKView *_webView;
     BOOL _zoomTextOnly;
 }
@@ -47,7 +47,7 @@
 - (IBAction)showHideWebView:(id)sender;
 - (IBAction)removeReinsertWebView:(id)sender;
 
-- (id)initWithPageNamespace:(WKPageNamespaceRef)pageNamespace;
+- (id)initWithContext:(WKContextRef)context;
 - (void)loadURLString:(NSString *)urlString;
 - (void)applicationTerminating;
 
diff --git a/WebKitTools/MiniBrowser/mac/BrowserWindowController.m b/WebKitTools/MiniBrowser/mac/BrowserWindowController.m
index 6033a28..c900a27 100644
--- a/WebKitTools/MiniBrowser/mac/BrowserWindowController.m
+++ b/WebKitTools/MiniBrowser/mac/BrowserWindowController.m
@@ -43,10 +43,10 @@
 
 @implementation BrowserWindowController
 
-- (id)initWithPageNamespace:(WKPageNamespaceRef)pageNamespace
+- (id)initWithContext:(WKContextRef)context
 {
     if ((self = [super initWithWindowNibName:@"BrowserWindow"])) {
-        _pageNamespace = WKRetain(pageNamespace);
+        _context = WKRetain(context);
         _zoomTextOnly = NO;
     }
     
@@ -55,7 +55,7 @@
 
 - (void)dealloc
 {
-    assert(!_pageNamespace);
+    assert(!_context);
     [super dealloc];
 }
 
@@ -157,8 +157,8 @@
 
 - (void)windowWillClose:(NSNotification *)notification
 {
-    WKRelease(_pageNamespace);
-    _pageNamespace = 0;
+    WKRelease(_context);
+    _context = 0;
 }
 
 - (void)applicationTerminating
@@ -380,7 +380,7 @@ static void decidePolicyForMIMEType(WKPageRef page, WKStringRef MIMEType, WKURLR
 static WKPageRef createNewPage(WKPageRef page, WKDictionaryRef features, WKEventModifiers modifiers, WKEventMouseButton button, const void* clientInfo)
 {
     LOG(@"createNewPage");
-    BrowserWindowController *controller = [[BrowserWindowController alloc] initWithPageNamespace:WKPageGetPageNamespace(page)];
+    BrowserWindowController *controller = [[BrowserWindowController alloc] initWithContext:WKPageGetContext(page)];
     [controller loadWindow];
 
     return controller->_webView.pageRef;
@@ -537,7 +537,7 @@ static bool runBeforeUnloadConfirmPanel(WKPageRef page, WKStringRef message, WKF
 
 - (void)awakeFromNib
 {
-    _webView = [[WKView alloc] initWithFrame:[containerView frame] pageNamespaceRef:_pageNamespace];
+    _webView = [[WKView alloc] initWithFrame:[containerView frame] contextRef:_context];
 
     [containerView addSubview:_webView];
     [_webView setFrame:[containerView frame]];
diff --git a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
index bf763a4..743c91a 100644
--- a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
+++ b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
@@ -28,8 +28,6 @@
 
 #include "BrowserWindow.h"
 
-#include "WKPageNamespace.h"
-
 BrowserWindow::BrowserWindow(QGraphicsWKView::BackingStoreType type)
     : m_backingStoreType(type)
 {
diff --git a/WebKitTools/MiniBrowser/win/BrowserView.cpp b/WebKitTools/MiniBrowser/win/BrowserView.cpp
index 186dbd6..c89e10c 100644
--- a/WebKitTools/MiniBrowser/win/BrowserView.cpp
+++ b/WebKitTools/MiniBrowser/win/BrowserView.cpp
@@ -90,9 +90,7 @@ void BrowserView::create(RECT webViewRect, BrowserWindow* parentWindow)
     else
         context = WKContextGetSharedProcessContext();
 
-    WKPageNamespaceRef pageNamespace = WKPageNamespaceCreate(context);
-
-    m_webView = WKViewCreate(webViewRect, pageNamespace, 0, parentWindow->window());
+    m_webView = WKViewCreate(webViewRect, context, 0, parentWindow->window());
 
     WKPageUIClient uiClient = {
         0,              /* version */
diff --git a/WebKitTools/TestWebKitAPI/PlatformWebView.h b/WebKitTools/TestWebKitAPI/PlatformWebView.h
index 349d855..f401037 100644
--- a/WebKitTools/TestWebKitAPI/PlatformWebView.h
+++ b/WebKitTools/TestWebKitAPI/PlatformWebView.h
@@ -51,7 +51,8 @@ class WindowMessageObserver;
 
 class PlatformWebView {
 public:
-    PlatformWebView(WKPageNamespaceRef, WKPageGroupRef = 0);
+    PlatformWebView(WKContextRef, WKPageGroupRef = 0);
+    PlatformWebView(WKPageRef, WKPageGroupRef = 0);
     ~PlatformWebView();
 
     WKPageRef page();
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp
index b935b6f..fdda8c7 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/DocumentStartUserScriptAlertCrash.cpp
@@ -48,8 +48,7 @@ TEST(WebKit2, DocumentStartUserScriptAlertCrashTest)
     WKRetainPtr<WKPageGroupRef> pageGroup(AdoptWK, WKPageGroupCreateWithIdentifier(WKStringCreateWithUTF8CString("DocumentStartUserScriptAlertCrashTestPageGroup"))); 
 
     WKRetainPtr<WKContextRef> context(AdoptWK, Util::createContextForInjectedBundleTest("DocumentStartUserScriptAlertCrashTest", pageGroup.get()));
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-    PlatformWebView webView(pageNamespace.get(), pageGroup.get());
+    PlatformWebView webView(context.get(), pageGroup.get());
 
     WKPageUIClient uiClient;
     memset(&uiClient, 0, sizeof(uiClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp
index bbdece3..32bd563 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp
@@ -49,8 +49,7 @@ static void didRunJavaScript(WKStringRef resultString, WKErrorRef error, void* c
 TEST(WebKit2, EvaluateJavaScriptThatThrowsAnException)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKRetainPtr<WKStringRef> javaScriptString(AdoptWK, WKStringCreateWithUTF8CString("throw 'Hello'"));
     WKPageRunJavaScriptInMainFrame(webView.page(), javaScriptString.get(), reinterpret_cast<void*>(0x1234578), didRunJavaScript);
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/FailedLoad.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/FailedLoad.cpp
index 0ccee5a..fdb3693 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/FailedLoad.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/FailedLoad.cpp
@@ -49,8 +49,7 @@ static void didFailProvisionalLoadWithErrorForFrame(WKPageRef page, WKFrameRef f
 TEST(WebKit2, FailedLoad)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/Find.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/Find.cpp
index 63bcea8..f22c44d 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/Find.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/Find.cpp
@@ -51,9 +51,7 @@ static void didCountStringMatches(WKPageRef page, WKStringRef string, unsigned n
 TEST(WebKit2, Find)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-    
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
     
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypeHTML.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypeHTML.cpp
index a270357..1188bb2 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypeHTML.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypeHTML.cpp
@@ -57,8 +57,7 @@ static void didFinishLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef us
 TEST(WebKit2, FrameMIMETypeHTML)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypePNG.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypePNG.cpp
index 3588940..1b56bae 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypePNG.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/FrameMIMETypePNG.cpp
@@ -57,8 +57,7 @@ static void didFinishLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef us
 TEST(WebKit2, FrameMIMETypePNG)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic.cpp
index 1f4cce6..f28971d 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/InjectedBundleBasic.cpp
@@ -53,7 +53,6 @@ static void didFinishLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef us
 TEST(WebKit2, InjectedBundleBasic)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, Util::createContextForInjectedBundleTest("InjectedBundleBasicTest"));
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
 
     WKContextInjectedBundleClient injectedBundleClient;
     memset(&injectedBundleClient, 0, sizeof(injectedBundleClient));
@@ -62,7 +61,7 @@ TEST(WebKit2, InjectedBundleBasic)
     injectedBundleClient.didReceiveMessageFromInjectedBundle = didReceiveMessageFromInjectedBundle;
     WKContextSetInjectedBundleClient(context.get(), &injectedBundleClient);
  
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp
index c3af543..98a636c 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadBasic.cpp
@@ -113,9 +113,7 @@ TEST(WebKit2, PageLoadBasic)
     State state;
 
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
- 
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp
index bb66950..3cbe113 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/PageLoadDidChangeLocationWithinPageForFrame.cpp
@@ -60,9 +60,7 @@ static void didSameDocumentNavigationForFrame(WKPageRef, WKFrameRef, WKSameDocum
 TEST(WebKit2, PageLoadDidChangeLocationWithinPageForFrame)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp
index af3ed12..306174a 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp
@@ -48,8 +48,7 @@ static void didRunJavaScript(WKStringRef resultString, WKErrorRef error, void* c
 TEST(WebKit2, PreventEmptyUserAgent)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageSetCustomUserAgent(webView.page(), WKStringCreateWithUTF8CString(""));
     WKRetainPtr<WKStringRef> javaScriptString(AdoptWK, WKStringCreateWithUTF8CString("navigator.userAgent"));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp
index a88db9f..6d4783c 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/SpacebarScrolling.cpp
@@ -79,9 +79,7 @@ static bool runJSTest(WKPageRef page, const char* script, const char* expectedRe
 TEST(WebKit2, SpacebarScrolling)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageLoaderClient loaderClient;
     memset(&loaderClient, 0, sizeof(loaderClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/AltKeyGeneratesWMSysCommand.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/AltKeyGeneratesWMSysCommand.cpp
index c463cf0..1bca89b 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/AltKeyGeneratesWMSysCommand.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/AltKeyGeneratesWMSysCommand.cpp
@@ -61,9 +61,7 @@ static void didNotHandleKeyEventCallback(WKPageRef, WKNativeEventPtr event, cons
 TEST(WebKit2, AltKeyGeneratesWMSysCommand)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageUIClient uiClient;
     memset(&uiClient, 0, sizeof(uiClient));
diff --git a/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/WMCloseCallsUIClientClose.cpp b/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/WMCloseCallsUIClientClose.cpp
index a019f08..56e619e 100644
--- a/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/WMCloseCallsUIClientClose.cpp
+++ b/WebKitTools/TestWebKitAPI/Tests/WebKit2/win/WMCloseCallsUIClientClose.cpp
@@ -41,9 +41,7 @@ static void close(WKPageRef, const void*)
 TEST(WebKit2, WMCloseCallsUIClientClose)
 {
     WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate());
-    WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(context.get()));
-
-    PlatformWebView webView(pageNamespace.get());
+    PlatformWebView webView(context.get());
 
     WKPageUIClient uiClient;
     memset(&uiClient, 0, sizeof(uiClient));
diff --git a/WebKitTools/TestWebKitAPI/mac/PlatformWebViewMac.mm b/WebKitTools/TestWebKitAPI/mac/PlatformWebViewMac.mm
index e06e2e6..5219f1b 100644
--- a/WebKitTools/TestWebKitAPI/mac/PlatformWebViewMac.mm
+++ b/WebKitTools/TestWebKitAPI/mac/PlatformWebViewMac.mm
@@ -29,10 +29,24 @@
 
 namespace TestWebKitAPI {
 
-PlatformWebView::PlatformWebView(WKPageNamespaceRef pageNamespaceRef, WKPageGroupRef pageGroupRef)
+PlatformWebView::PlatformWebView(WKContextRef contextRef, WKPageGroupRef pageGroupRef)
 {
     NSRect rect = NSMakeRect(0, 0, 800, 600);
-    m_view = [[WKView alloc] initWithFrame:rect pageNamespaceRef:pageNamespaceRef pageGroupRef:pageGroupRef];
+    m_view = [[WKView alloc] initWithFrame:rect contextRef:contextRef pageGroupRef:pageGroupRef];
+
+    NSRect windowRect = NSOffsetRect(rect, -10000, [[[NSScreen screens] objectAtIndex:0] frame].size.height - rect.size.height + 10000);
+    m_window = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
+    [m_window setColorSpace:[[NSScreen mainScreen] colorSpace]];
+    [[m_window contentView] addSubview:m_view];
+    [m_window orderBack:nil];
+    [m_window setAutodisplay:NO];
+    [m_window setReleasedWhenClosed:NO];
+}
+
+PlatformWebView::PlatformWebView(WKPageRef pageRef, WKPageGroupRef pageGroupRef)
+{
+    NSRect rect = NSMakeRect(0, 0, 800, 600);
+    m_view = [[WKView alloc] initWithFrame:rect forAssociatedPageRef:pageRef pageGroupRef:pageGroupRef];
 
     NSRect windowRect = NSOffsetRect(rect, -10000, [[[NSScreen screens] objectAtIndex:0] frame].size.height - rect.size.height + 10000);
     m_window = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
diff --git a/WebKitTools/TestWebKitAPI/win/PlatformWebViewWin.cpp b/WebKitTools/TestWebKitAPI/win/PlatformWebViewWin.cpp
index 0a4060c..bfebecc 100644
--- a/WebKitTools/TestWebKitAPI/win/PlatformWebViewWin.cpp
+++ b/WebKitTools/TestWebKitAPI/win/PlatformWebViewWin.cpp
@@ -56,14 +56,25 @@ void PlatformWebView::registerWindowClass()
     ::RegisterClassExW(&wndClass);
 }
 
-PlatformWebView::PlatformWebView(WKPageNamespaceRef namespaceRef, WKPageGroupRef pageGroupRef)
+
+PlatformWebView::PlatformWebView(WKContextRef contextRef, WKPageGroupRef pageGroupRef)
+    : m_parentWindowMessageObserver(0)
+{
+    registerWindowClass();
+
+    RECT viewRect = {0, 0, 800, 600};
+    m_window = CreateWindowExW(0, hostWindowClassName, L"TestWebKitAPI", WS_OVERLAPPEDWINDOW, viewRect.left, viewRect.top, viewRect.right, viewRect.bottom, 0, 0, 0, this);
+    m_view = WKViewCreate(viewRect, contextRef, pageGroupRef, m_window);
+}
+
+PlatformWebView::PlatformWebView(WKPageRef pageRef, WKPageGroupRef pageGroupRef)
     : m_parentWindowMessageObserver(0)
 {
     registerWindowClass();
 
     RECT viewRect = {0, 0, 800, 600};
     m_window = CreateWindowExW(0, hostWindowClassName, L"TestWebKitAPI", WS_OVERLAPPEDWINDOW, viewRect.left, viewRect.top, viewRect.right, viewRect.bottom, 0, 0, 0, this);
-    m_view = WKViewCreate(viewRect, namespaceRef, pageGroupRef, m_window);
+    m_view = WKViewCreateForAssociatedPage(viewRect, pageRef, pageGroupRef, m_window);
 }
 
 PlatformWebView::~PlatformWebView()
diff --git a/WebKitTools/WebKitTestRunner/PlatformWebView.h b/WebKitTools/WebKitTestRunner/PlatformWebView.h
index abdf96e..cd393f0 100644
--- a/WebKitTools/WebKitTestRunner/PlatformWebView.h
+++ b/WebKitTools/WebKitTestRunner/PlatformWebView.h
@@ -52,7 +52,8 @@ namespace WTR {
 
 class PlatformWebView {
 public:
-    PlatformWebView(WKPageNamespaceRef, WKPageGroupRef);
+    PlatformWebView(WKContextRef, WKPageGroupRef);
+    PlatformWebView(WKPageRef, WKPageGroupRef);
     ~PlatformWebView();
 
     WKPageRef page();
diff --git a/WebKitTools/WebKitTestRunner/TestController.cpp b/WebKitTools/WebKitTestRunner/TestController.cpp
index 4c16387..27d16c9 100644
--- a/WebKitTools/WebKitTestRunner/TestController.cpp
+++ b/WebKitTools/WebKitTestRunner/TestController.cpp
@@ -106,7 +106,7 @@ static void closeOtherPage(WKPageRef page, const void* clientInfo)
 
 static WKPageRef createOtherPage(WKPageRef oldPage, WKDictionaryRef, WKEventModifiers, WKEventMouseButton, const void*)
 {
-    PlatformWebView* view = new PlatformWebView(WKPageGetPageNamespace(oldPage), WKPageGetPageGroup(oldPage));
+    PlatformWebView* view = new PlatformWebView(oldPage, WKPageGetPageGroup(oldPage));
     WKPageRef newPage = view->page();
 
     view->resizeTo(800, 600);
@@ -211,8 +211,7 @@ void TestController::initialize(int argc, const char* argv[])
 
     _WKContextSetAdditionalPluginsDirectory(m_context.get(), testPluginDirectory());
 
-    m_pageNamespace.adopt(WKPageNamespaceCreate(m_context.get()));
-    m_mainWebView = adoptPtr(new PlatformWebView(m_pageNamespace.get(), m_pageGroup.get()));
+    m_mainWebView = adoptPtr(new PlatformWebView(m_context.get(), m_pageGroup.get()));
 
     WKPageUIClient pageUIClient = {
         0,
diff --git a/WebKitTools/WebKitTestRunner/TestController.h b/WebKitTools/WebKitTestRunner/TestController.h
index 91ef404..ef41314 100644
--- a/WebKitTools/WebKitTestRunner/TestController.h
+++ b/WebKitTools/WebKitTestRunner/TestController.h
@@ -50,7 +50,6 @@ public:
     WKStringRef testPluginDirectory() { return m_testPluginDirectory.get(); }
 
     PlatformWebView* mainWebView() { return m_mainWebView.get(); }
-    WKPageNamespaceRef pageNamespace() { return m_pageNamespace.get(); }
     WKContextRef context() { return m_context.get(); }
 
     // Runs the run loop until `done` is true or the timeout elapses.
@@ -96,9 +95,8 @@ private:
 
     OwnPtr<PlatformWebView> m_mainWebView;
     WKRetainPtr<WKContextRef> m_context;
-    WKRetainPtr<WKPageNamespaceRef> m_pageNamespace;
     WKRetainPtr<WKPageGroupRef> m_pageGroup;
-    
+
     enum State {
         Initial,
         Resetting,
diff --git a/WebKitTools/WebKitTestRunner/mac/PlatformWebViewMac.mm b/WebKitTools/WebKitTestRunner/mac/PlatformWebViewMac.mm
index c2ba87f..0618f99 100644
--- a/WebKitTools/WebKitTestRunner/mac/PlatformWebViewMac.mm
+++ b/WebKitTools/WebKitTestRunner/mac/PlatformWebViewMac.mm
@@ -27,10 +27,24 @@
 
 namespace WTR {
 
-PlatformWebView::PlatformWebView(WKPageNamespaceRef namespaceRef, WKPageGroupRef pageGroupRef)
+PlatformWebView::PlatformWebView(WKContextRef contextRef, WKPageGroupRef pageGroupRef)
 {
     NSRect rect = NSMakeRect(0, 0, 800, 600);
-    m_view = [[WKView alloc] initWithFrame:rect pageNamespaceRef:namespaceRef pageGroupRef:pageGroupRef];
+    m_view = [[WKView alloc] initWithFrame:rect contextRef:contextRef pageGroupRef:pageGroupRef];
+
+    NSRect windowRect = NSOffsetRect(rect, -10000, [[[NSScreen screens] objectAtIndex:0] frame].size.height - rect.size.height + 10000);
+    m_window = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
+    [m_window setColorSpace:[[NSScreen mainScreen] colorSpace]];
+    [[m_window contentView] addSubview:m_view];
+    [m_window orderBack:nil];
+    [m_window setAutodisplay:NO];
+    [m_window setReleasedWhenClosed:NO];
+}
+
+PlatformWebView::PlatformWebView(WKPageRef pageRef, WKPageGroupRef pageGroupRef)
+{
+    NSRect rect = NSMakeRect(0, 0, 800, 600);
+    m_view = [[WKView alloc] initWithFrame:rect forAssociatedPageRef:pageRef pageGroupRef:pageGroupRef];
 
     NSRect windowRect = NSOffsetRect(rect, -10000, [[[NSScreen screens] objectAtIndex:0] frame].size.height - rect.size.height + 10000);
     m_window = [[NSWindow alloc] initWithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
diff --git a/WebKitTools/WebKitTestRunner/qt/PlatformWebViewQt.cpp b/WebKitTools/WebKitTestRunner/qt/PlatformWebViewQt.cpp
index bd991ad..30e22b4 100644
--- a/WebKitTools/WebKitTestRunner/qt/PlatformWebViewQt.cpp
+++ b/WebKitTools/WebKitTestRunner/qt/PlatformWebViewQt.cpp
@@ -33,7 +33,8 @@ namespace WTR {
 
 class WebView : public QGraphicsView {
 public:
-    WebView(WKPageNamespaceRef);
+    WebView(WKContextRef);
+    WebView(WKPageRef);
 
     QGraphicsWKView* wkView() const { return m_item; }
 
@@ -43,16 +44,33 @@ private:
     QGraphicsWKView* m_item;
 };
 
-WebView::WebView(WKPageNamespaceRef namespaceRef)
+WebView::WebView(WKContextRef contextRef)
     : QGraphicsView()
-    , m_item(new QGraphicsWKView(new QWKContext(namespaceRef, this)))
+    , m_item(new QGraphicsWKView(new QWKContext(contextRef, this)))
 {
     setScene(new QGraphicsScene(this));
     scene()->addItem(m_item);
 }
 
-PlatformWebView::PlatformWebView(WKPageNamespaceRef namespaceRef, WKPageGroupRef)
-    : m_view(new WebView(namespaceRef))
+WebView::WebView(WKPageRef pageRef)
+    : QGraphicsView()
+    , m_item(new QGraphicsWKView(new QWKContext(pageRef, this)))
+{
+    setScene(new QGraphicsScene(this));
+    scene()->addItem(m_item);
+}
+
+PlatformWebView::PlatformWebView(WKContextRef contextRef, WKPageGroupRef)
+    : m_view(new WebView(contextRef))
+    , m_window(new QMainWindow())
+{
+    m_view->setParent(m_window);
+    m_window->setCentralWidget(m_view);
+    m_window->setGeometry(0, 0, 800, 600);
+}
+
+PlatformWebView::PlatformWebView(WKPageRef pageRef, WKPageGroupRef)
+    : m_view(new WebView(pageRef))
     , m_window(new QMainWindow())
 {
     m_view->setParent(m_window);
diff --git a/WebKitTools/WebKitTestRunner/win/PlatformWebViewWin.cpp b/WebKitTools/WebKitTestRunner/win/PlatformWebViewWin.cpp
index 236ab4b..bbde38c 100644
--- a/WebKitTools/WebKitTestRunner/win/PlatformWebViewWin.cpp
+++ b/WebKitTools/WebKitTestRunner/win/PlatformWebViewWin.cpp
@@ -47,13 +47,22 @@ static void registerWindowClass()
     RegisterClassExW(&wndClass);
 }
 
-PlatformWebView::PlatformWebView(WKPageNamespaceRef namespaceRef, WKPageGroupRef pageGroupRef)
+PlatformWebView::PlatformWebView(WKContextRef contextRef, WKPageGroupRef pageGroupRef)
 {
     registerWindowClass();
 
     RECT viewRect = {0, 0, 800, 600};
     m_window = CreateWindowExW(0, hostWindowClassName, L"WebKitTestRunner", WS_OVERLAPPEDWINDOW, 0 /*XOFFSET*/, 0 /*YOFFSET*/, viewRect.right, viewRect.bottom, 0, 0, GetModuleHandle(0), 0);
-    m_view = WKViewCreate(viewRect, namespaceRef, pageGroupRef, m_window);
+    m_view = WKViewCreate(viewRect, contextRef, pageGroupRef, m_window);
+}
+
+PlatformWebView::PlatformWebView(WKPageRef pageRef, WKPageGroupRef pageGroupRef)
+{
+    registerWindowClass();
+
+    RECT viewRect = {0, 0, 800, 600};
+    m_window = CreateWindowExW(0, hostWindowClassName, L"WebKitTestRunner", WS_OVERLAPPEDWINDOW, 0 /*XOFFSET*/, 0 /*YOFFSET*/, viewRect.right, viewRect.bottom, 0, 0, GetModuleHandle(0), 0);
+    m_view = WKViewCreateForAssociatedPage(viewRect, pageRef, pageGroupRef, m_window);
 }
 
 PlatformWebView::~PlatformWebView()

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list