--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/WebKit2/UIProcess/API/C/WKPage.cpp Fri Sep 17 09:02:29 2010 +0300
@@ -0,0 +1,212 @@
+/*
+ * 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 "WKPage.h"
+#include "WKPagePrivate.h"
+
+#include "WKAPICast.h"
+#include "WebBackForwardList.h"
+#include "WebPageProxy.h"
+
+#ifdef __BLOCKS__
+#include <Block.h>
+#endif
+
+using namespace WebKit;
+
+WKPageNamespaceRef WKPageGetPageNamespace(WKPageRef pageRef)
+{
+ return toRef(toWK(pageRef)->pageNamespace());
+}
+
+void WKPageLoadURL(WKPageRef pageRef, WKURLRef URLRef)
+{
+ toWK(pageRef)->loadURL(toWK(URLRef));
+}
+
+void WKPageStopLoading(WKPageRef pageRef)
+{
+ toWK(pageRef)->stopLoading();
+}
+
+void WKPageReload(WKPageRef pageRef)
+{
+ toWK(pageRef)->reload(false);
+}
+
+void WKPageReloadFromOrigin(WKPageRef pageRef)
+{
+ toWK(pageRef)->reload(true);
+}
+
+bool WKPageTryClose(WKPageRef pageRef)
+{
+ return toWK(pageRef)->tryClose();
+}
+
+void WKPageClose(WKPageRef pageRef)
+{
+ toWK(pageRef)->close();
+}
+
+bool WKPageIsClosed(WKPageRef pageRef)
+{
+ return toWK(pageRef)->isClosed();
+}
+
+void WKPageGoForward(WKPageRef pageRef)
+{
+ toWK(pageRef)->goForward();
+}
+
+bool WKPageCanGoForward(WKPageRef pageRef)
+{
+ return toWK(pageRef)->canGoForward();
+}
+
+void WKPageGoBack(WKPageRef pageRef)
+{
+ toWK(pageRef)->goBack();
+}
+
+bool WKPageCanGoBack(WKPageRef pageRef)
+{
+ return toWK(pageRef)->canGoBack();
+}
+
+void WKPageGoToBackForwardListItem(WKPageRef pageRef, WKBackForwardListItemRef itemRef)
+{
+ toWK(pageRef)->goToBackForwardItem(toWK(itemRef));
+}
+
+WKBackForwardListRef WKPageGetBackForwardList(WKPageRef pageRef)
+{
+ return toRef(toWK(pageRef)->backForwardList());
+}
+
+WKStringRef WKPageGetTitle(WKPageRef pageRef)
+{
+ return toRef(toWK(pageRef)->pageTitle().impl());
+}
+
+WKFrameRef WKPageGetMainFrame(WKPageRef pageRef)
+{
+ return toRef(toWK(pageRef)->mainFrame());
+}
+
+double WKPageGetEstimatedProgress(WKPageRef pageRef)
+{
+ return toWK(pageRef)->estimatedProgress();
+}
+
+void WKPageTerminate(WKPageRef pageRef)
+{
+ toWK(pageRef)->terminateProcess();
+}
+
+void WKPageSetPageLoaderClient(WKPageRef pageRef, WKPageLoaderClient* wkClient)
+{
+ if (wkClient && !wkClient->version)
+ toWK(pageRef)->initializeLoaderClient(wkClient);
+}
+
+void WKPageSetPagePolicyClient(WKPageRef pageRef, WKPagePolicyClient * wkClient)
+{
+ if (wkClient && !wkClient->version)
+ toWK(pageRef)->initializePolicyClient(wkClient);
+}
+
+void WKPageSetPageUIClient(WKPageRef pageRef, WKPageUIClient * wkClient)
+{
+ if (wkClient && !wkClient->version)
+ toWK(pageRef)->initializeUIClient(wkClient);
+}
+
+void WKPageSetPageHistoryClient(WKPageRef pageRef, WKPageHistoryClient * wkClient)
+{
+ if (wkClient && !wkClient->version)
+ toWK(pageRef)->initializeHistoryClient(wkClient);
+}
+
+void WKPageRunJavaScriptInMainFrame(WKPageRef pageRef, WKStringRef scriptRef, void* context, WKPageRunJavaScriptFunction callback, WKPageRunJavaScriptDisposeFunction disposeFunction)
+{
+ toWK(pageRef)->runJavaScriptInMainFrame(toWK(scriptRef), ScriptReturnValueCallback::create(context, callback, disposeFunction));
+}
+
+#ifdef __BLOCKS__
+static void callRunJavaScriptBlockAndRelease(WKStringRef resultValue, void* context)
+{
+ WKPageRunJavaScriptBlock block = (WKPageRunJavaScriptBlock)context;
+ block(resultValue);
+ Block_release(block);
+}
+
+static void disposeRunJavaScriptBlock(void* context)
+{
+ WKPageRunJavaScriptBlock block = (WKPageRunJavaScriptBlock)context;
+ Block_release(block);
+}
+
+void WKPageRunJavaScriptInMainFrame_b(WKPageRef pageRef, WKStringRef scriptRef, WKPageRunJavaScriptBlock block)
+{
+ WKPageRunJavaScriptInMainFrame(pageRef, scriptRef, Block_copy(block), callRunJavaScriptBlockAndRelease, disposeRunJavaScriptBlock);
+}
+#endif
+
+void WKPageRenderTreeExternalRepresentation(WKPageRef pageRef, void *context, WKPageRenderTreeExternalRepresentationFunction callback, WKPageRenderTreeExternalRepresentationDisposeFunction disposeFunction)
+{
+ toWK(pageRef)->getRenderTreeExternalRepresentation(RenderTreeExternalRepresentationCallback::create(context, callback, disposeFunction));
+}
+
+#ifdef __BLOCKS__
+static void callRenderTreeExternalRepresentationBlockAndDispose(WKStringRef resultValue, void* context)
+{
+ WKPageRenderTreeExternalRepresentationBlock block = (WKPageRenderTreeExternalRepresentationBlock)context;
+ block(resultValue);
+ Block_release(block);
+}
+
+static void disposeRenderTreeExternalRepresentationBlock(void* context)
+{
+ WKPageRenderTreeExternalRepresentationBlock block = (WKPageRenderTreeExternalRepresentationBlock)context;
+ Block_release(block);
+}
+
+void WKPageRenderTreeExternalRepresentation_b(WKPageRef pageRef, WKPageRenderTreeExternalRepresentationBlock block)
+{
+ WKPageRenderTreeExternalRepresentation(pageRef, Block_copy(block), callRenderTreeExternalRepresentationBlockAndDispose, disposeRenderTreeExternalRepresentationBlock);
+}
+#endif
+
+WKPageRef WKPageRetain(WKPageRef pageRef)
+{
+ toWK(pageRef)->ref();
+ return pageRef;
+}
+
+void WKPageRelease(WKPageRef pageRef)
+{
+ toWK(pageRef)->deref();
+}