Title: [110638] trunk/Source/WebKit2
Revision
110638
Author
[email protected]
Date
2012-03-13 16:39:11 -0700 (Tue, 13 Mar 2012)

Log Message

Support loading a WKPage from web archive data
https://bugs.webkit.org/show_bug.cgi?id=81044

This code was written by Jessie Berlin.

Reviewed by Brady Eidson.

* UIProcess/API/C/WKPage.cpp:
(WKPageLoadWebArchiveData): Added.
        
* UIProcess/API/C/WKPage.h: Added WKPageLoadWebArchiveData().
        
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadWebArchiveData): Added.
        
* UIProcess/WebPageProxy.h: Added loadWebArchiveData().

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadWebArchiveData): Added.
        
* WebProcess/WebPage/WebPage.h: Added loadWebArchiveData().

* WebProcess/WebPage/WebPage.messages.in: Added LoadWebArchiveData message.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (110637 => 110638)


--- trunk/Source/WebKit2/ChangeLog	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/ChangeLog	2012-03-13 23:39:11 UTC (rev 110638)
@@ -1,3 +1,29 @@
+2012-03-13  Jeff Miller  <[email protected]>
+
+        Support loading a WKPage from web archive data
+        https://bugs.webkit.org/show_bug.cgi?id=81044
+
+        This code was written by Jessie Berlin.
+
+        Reviewed by Brady Eidson.
+
+        * UIProcess/API/C/WKPage.cpp:
+        (WKPageLoadWebArchiveData): Added.
+        
+        * UIProcess/API/C/WKPage.h: Added WKPageLoadWebArchiveData().
+        
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::loadWebArchiveData): Added.
+        
+        * UIProcess/WebPageProxy.h: Added loadWebArchiveData().
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::loadWebArchiveData): Added.
+        
+        * WebProcess/WebPage/WebPage.h: Added loadWebArchiveData().
+
+        * WebProcess/WebPage/WebPage.messages.in: Added LoadWebArchiveData message.
+
 2012-03-13  Adam Barth  <[email protected]> && Benjamin Poulain  <[email protected]>
 
         Always enable ENABLE(CLIENT_BASED_GEOLOCATION)

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp (110637 => 110638)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp	2012-03-13 23:39:11 UTC (rev 110638)
@@ -82,6 +82,11 @@
     toImpl(pageRef)->loadPlainTextString(toWTFString(plainTextStringRef));    
 }
 
+void WKPageLoadWebArchiveData(WKPageRef pageRef, WKDataRef webArchiveDataRef)
+{
+    toImpl(pageRef)->loadWebArchiveData(toImpl(webArchiveDataRef));
+}
+
 void WKPageStopLoading(WKPageRef pageRef)
 {
     toImpl(pageRef)->stopLoading();

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPage.h (110637 => 110638)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPage.h	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPage.h	2012-03-13 23:39:11 UTC (rev 110638)
@@ -319,6 +319,7 @@
 WK_EXPORT void WKPageLoadHTMLString(WKPageRef page, WKStringRef htmlString, WKURLRef baseURL);
 WK_EXPORT void WKPageLoadAlternateHTMLString(WKPageRef page, WKStringRef htmlString, WKURLRef baseURL, WKURLRef unreachableURL);
 WK_EXPORT void WKPageLoadPlainTextString(WKPageRef page, WKStringRef plainTextString);
+WK_EXPORT void WKPageLoadWebArchiveData(WKPageRef page, WKDataRef webArchiveData);
 
 WK_EXPORT void WKPageStopLoading(WKPageRef page);
 WK_EXPORT void WKPageReload(WKPageRef page);

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (110637 => 110638)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2012-03-13 23:39:11 UTC (rev 110638)
@@ -504,6 +504,15 @@
     process()->responsivenessTimer()->start();
 }
 
+void WebPageProxy::loadWebArchiveData(const WebData* webArchiveData)
+{
+    if (!isValid())
+        reattachToWebProcess();
+
+    process()->send(Messages::WebPage::LoadWebArchiveData(webArchiveData->dataReference()), m_pageID);
+    process()->responsivenessTimer()->start();
+}
+
 void WebPageProxy::stopLoading()
 {
     if (!isValid())

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (110637 => 110638)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2012-03-13 23:39:11 UTC (rev 110638)
@@ -254,6 +254,7 @@
     void loadHTMLString(const String& htmlString, const String& baseURL);
     void loadAlternateHTMLString(const String& htmlString, const String& baseURL, const String& unreachableURL);
     void loadPlainTextString(const String& string);
+    void loadWebArchiveData(const WebData*);
 
     void stopLoading();
     void reload(bool reloadFromOrigin);

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (110637 => 110638)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-03-13 23:39:11 UTC (rev 110638)
@@ -682,6 +682,12 @@
     loadData(sharedBuffer, "text/plain", "utf-16", blankURL(), KURL());
 }
 
+void WebPage::loadWebArchiveData(const CoreIPC::DataReference& webArchiveData)
+{
+    RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(reinterpret_cast<const char*>(webArchiveData.data()), webArchiveData.size() * sizeof(uint8_t));
+    loadData(sharedBuffer, "application/x-webarchive", "utf-16", blankURL(), KURL());
+}
+
 void WebPage::linkClicked(const String& url, const WebMouseEvent& event)
 {
     Frame* frame = m_page->mainFrame();

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (110637 => 110638)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2012-03-13 23:39:11 UTC (rev 110638)
@@ -540,6 +540,7 @@
     void loadHTMLString(const String& htmlString, const String& baseURL);
     void loadAlternateHTMLString(const String& htmlString, const String& baseURL, const String& unreachableURL);
     void loadPlainTextString(const String&);
+    void loadWebArchiveData(const CoreIPC::DataReference&);
     void linkClicked(const String& url, const WebMouseEvent&);
     void reload(bool reloadFromOrigin, const SandboxExtension::Handle&);
     void goForward(uint64_t);

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in (110637 => 110638)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2012-03-13 23:31:50 UTC (rev 110637)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in	2012-03-13 23:39:11 UTC (rev 110638)
@@ -57,6 +57,7 @@
     LoadHTMLString(WTF::String htmlString, WTF::String baseURL)
     LoadAlternateHTMLString(WTF::String htmlString, WTF::String baseURL, WTF::String unreachableURL); 
     LoadPlainTextString(WTF::String string)
+    LoadWebArchiveData(CoreIPC::DataReference webArchiveData)
     LoadURL(WTF::String url, WebKit::SandboxExtension::Handle sandboxExtensionHandle)
     LoadURLRequest(WebCore::ResourceRequest request, WebKit::SandboxExtension::Handle sandboxExtensionHandle)
     LinkClicked(WTF::String url, WebKit::WebMouseEvent event)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to