Changeset 98245 in webkit
- Timestamp:
- Oct 24, 2011 8:24:08 AM (13 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 6 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r98241 r98245 1 2011-10-24 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Initial implementation of back forward list for WebKit2 GTK+ API 4 https://bugs.webkit.org/show_bug.cgi?id=69343 5 6 Reviewed by Martin Robinson. 7 8 * GNUmakefile.am: Add new files to compilation. 9 * UIProcess/API/gtk/WebKitBackForwardList.cpp: Added. 10 (webkitBackForwardListFinalize): 11 (webkit_back_forward_list_init): 12 (webkit_back_forward_list_class_init): 13 (webkitBackForwardListGetOrCreateItem): Helper function that 14 creates a new WebKitBackForwardListItem for the given 15 WebBackForwardListItem or returns it from the cache if it's 16 already cached. 17 (webkitBackForwardListCreateList): Helper function to convert a 18 WKArray of WebBackForwardListItems into a GList of 19 WebKitBackForwardListItems. 20 (webkitBackForwardListCreate): Create a new WebKitBackForwardList. 21 (webkitBackForwardListChanged): Emits changed signal when the back 22 forward list changes. 23 (webkit_back_forward_list_get_current_item): 24 (webkit_back_forward_list_get_back_item): 25 (webkit_back_forward_list_get_forward_item): 26 (webkit_back_forward_list_get_nth_item): 27 (webkit_back_forward_list_get_length): 28 (webkit_back_forward_list_get_back_list): 29 (webkit_back_forward_list_get_back_list_with_limit): 30 (webkit_back_forward_list_get_forward_list): 31 (webkit_back_forward_list_get_forward_list_with_limit): 32 * UIProcess/API/gtk/WebKitBackForwardList.h: Added. 33 * UIProcess/API/gtk/WebKitBackForwardListItem.cpp: Added. 34 (webkitBackForwardListItemFinalize): 35 (webkit_back_forward_list_item_init): 36 (webkit_back_forward_list_item_class_init): 37 (historyItemsMap): Global cache for WebKitBackForwardListItems. 38 (webkitBackForwardListItemFinalized): 39 (webkitBackForwardListItemGetOrCreate): Helper function that 40 creates a new WebKitBackForwardListItem for the given 41 WebBackForwardListItem or returns it from the global cache if it's 42 already cached. 43 (webkit_back_forward_list_item_get_uri): 44 (webkit_back_forward_list_item_get_title): 45 (webkit_back_forward_list_item_get_original_uri): 46 * UIProcess/API/gtk/WebKitBackForwardListItem.h: Added. 47 * UIProcess/API/gtk/WebKitBackForwardListPrivate.h: Added. 48 * UIProcess/API/gtk/WebKitWebLoaderClient.cpp: 49 (didChangeBackForwardList): Call webkitBackForwardListChanged() to 50 notify that the list has changed. 51 (webkitWebLoaderClientAttachLoaderClientToPage): Add 52 implementation for didChangeBackForwardList. 53 * UIProcess/API/gtk/WebKitWebView.cpp: 54 (webkitWebViewConstructed): 55 (webkit_web_view_get_back_forward_list): Return the back forward 56 list of the view. 57 * UIProcess/API/gtk/WebKitWebView.h: 58 * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test. 59 * UIProcess/API/gtk/tests/TestBackForwardList.cpp: Added. 60 (serverCallback): 61 (testBackForwardListNavigation): 62 (testBackForwardListLimitAndCache): 63 (beforeAll): 64 (afterAll): 65 * UIProcess/API/gtk/tests/TestMain.h: 66 (Test::~Test): Check there are no objects leaked. 67 (Test::objectFinalized): Callback called when a GObject is 68 deleted, used to remove the watched object the list. 69 (Test::assertObjectIsDeletedWhenTestFinishes): Add an object to 70 the list of watched objects and add a weak pointer to remove it 71 from the list when the object is finalized. If there aren't 72 objects leaked, the list should be empty when the test finishes. 73 * UIProcess/API/gtk/tests/WebViewTest.cpp: 74 (WebViewTest::WebViewTest): Watch the web view to make sure it's 75 not leaked. 76 * UIProcess/API/gtk/tests/WebViewTest.h: Make WebViewTest inherit 77 from Test class. 78 * UIProcess/API/gtk/webkit2.h: Include WebKitBackForwardList.h and 79 WebKitBackForwardListItem.h. 80 * UIProcess/API/gtk/webkit2marshal.list: 81 1 82 2011-10-24 Carlos Garcia Campos <cgarcia@igalia.com> 2 83 -
trunk/Source/WebKit2/GNUmakefile.am
r97960 r98245 72 72 libwebkit2gtkincludedir = $(libwebkitgtkincludedir)/webkit2 73 73 webkit2gtk_headers = \ 74 $(WebKit2)/UIProcess/API/gtk/WebKitBackForwardList.h \ 75 $(WebKit2)/UIProcess/API/gtk/WebKitBackForwardListItem.h \ 74 76 $(WebKit2)/UIProcess/API/gtk/WebKitDefines.h \ 75 77 $(WebKit2)/UIProcess/API/gtk/WebKitError.h \ … … 475 477 Source/WebKit2/UIProcess/API/gtk/PageClientImpl.h \ 476 478 Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp \ 479 Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.h \ 480 Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardList.cpp \ 481 Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListItem.h \ 482 Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListItem.cpp \ 483 Source/WebKit2/UIProcess/API/gtk/WebKitBackForwardListPrivate.h \ 477 484 Source/WebKit2/UIProcess/API/gtk/WebKitDefines.h \ 478 485 Source/WebKit2/UIProcess/API/gtk/WebKitError.h \ -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebLoaderClient.cpp
r97960 r98245 21 21 #include "WebKitWebLoaderClient.h" 22 22 23 #include "WebKitBackForwardListPrivate.h" 23 24 #include "WebKitError.h" 24 25 #include "WebKitMarshal.h" … … 124 125 WebKitWebView* webView = WEBKIT_WEB_VIEW(toImpl(page)->viewWidget()); 125 126 webkitWebViewSetEstimatedLoadProgress(webView, WKPageGetEstimatedProgress(page)); 127 } 128 129 static void didChangeBackForwardList(WKPageRef page, WKBackForwardListItemRef addedItem, WKArrayRef removedItems, const void* clientInfo) 130 { 131 WebKitWebView* webView = WEBKIT_WEB_VIEW(toImpl(page)->viewWidget()); 132 webkitBackForwardListChanged(webkit_web_view_get_back_forward_list(webView), addedItem, removedItems); 126 133 } 127 134 … … 153 160 0, // didBecomeResponsive 154 161 0, // processDidCrash 155 0, // didChangeBackForwardList162 didChangeBackForwardList, 156 163 0, // shouldGoToBackForwardListItem 157 164 0 // didFailToInitializePlugin -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
r98241 r98245 21 21 #include "WebKitWebView.h" 22 22 23 #include "WebKitBackForwardListPrivate.h" 23 24 #include "WebKitWebContextPrivate.h" 24 25 #include "WebKitWebLoaderClient.h" … … 51 52 52 53 GRefPtr<WebKitWebLoaderClient> loaderClient; 54 GRefPtr<WebKitBackForwardList> backForwardList; 53 55 }; 54 56 … … 76 78 static GRefPtr<WebKitWebLoaderClient> defaultLoaderClient = adoptGRef(WEBKIT_WEB_LOADER_CLIENT(g_object_new(WEBKIT_TYPE_WEB_LOADER_CLIENT, NULL))); 77 79 webkitWebViewSetLoaderClient(webView, defaultLoaderClient.get(), toAPI(page)); 80 81 priv->backForwardList = adoptGRef(webkitBackForwardListCreate(WKPageGetBackForwardList(toAPI(page)))); 78 82 } 79 83 … … 463 467 return webView->priv->estimatedLoadProgress; 464 468 } 469 470 /** 471 * webkit_web_view_get_back_forward_list: 472 * @web_view: a #WebKitWebView 473 * 474 * Obtains the #WebKitBackForwardList associated with the given #WebKitWebView. The 475 * #WebKitBackForwardList is owned by the #WebKitWebView. 476 * 477 * Returns: (transfer none): the #WebKitBackForwardList 478 */ 479 WebKitBackForwardList* webkit_web_view_get_back_forward_list(WebKitWebView* webView) 480 { 481 g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); 482 483 return webView->priv->backForwardList.get(); 484 } -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h
r98089 r98245 28 28 #define WebKitWebView_h 29 29 30 #include <webkit2/WebKitBackForwardList.h> 30 31 #include <webkit2/WebKitDefines.h> 31 32 #include <webkit2/WebKitWebContext.h> … … 112 113 webkit_web_view_go_forward (WebKitWebView *web_view); 113 114 115 WEBKIT_API WebKitBackForwardList * 116 webkit_web_view_get_back_forward_list (WebKitWebView *web_view); 117 114 118 WEBKIT_API gboolean 115 119 webkit_web_view_can_go_forward (WebKitWebView *web_view); -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am
r97458 r98245 3 3 Programs/WebKit2APITests/TestWebKitWebView \ 4 4 Programs/WebKit2APITests/TestWebKitWebLoaderClient \ 5 Programs/WebKit2APITests/TestWebKitSettings 5 Programs/WebKit2APITests/TestWebKitSettings \ 6 Programs/WebKit2APITests/TestBackForwardList 6 7 7 8 noinst_PROGRAMS += $(TEST_PROGS) … … 69 70 Programs_WebKit2APITests_TestWebKitSettings_LDADD = $(webkit2_tests_ldadd) 70 71 Programs_WebKit2APITests_TestWebKitSettings_LDFLAGS = $(webkit2_tests_ldflags) 72 73 Programs_WebKit2APITests_TestBackForwardList_SOURCES = \ 74 Source/WebKit2/UIProcess/API/gtk/tests/TestBackForwardList.cpp 75 Programs_WebKit2APITests_TestBackForwardList_CPPFLAGS = $(webkit2_tests_cppflags) 76 Programs_WebKit2APITests_TestBackForwardList_LDADD = $(webkit2_tests_ldadd) 77 Programs_WebKit2APITests_TestBackForwardList_LDFLAGS = $(webkit2_tests_ldflags) 78 -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestMain.h
r97226 r98245 21 21 #define TestMain_h 22 22 23 #include <glib .h>23 #include <glib-object.h> 24 24 #include <JavaScriptCore/GOwnPtr.h> 25 #include <JavaScriptCore/HashSet.h> 25 26 26 27 #define MAKE_GLIB_TEST_FIXTURE(ClassName) \ … … 43 44 public: 44 45 MAKE_GLIB_TEST_FIXTURE(Test); 46 47 ~Test() 48 { 49 g_assert(m_watchedObjects.isEmpty()); 50 } 51 52 static void objectFinalized(Test* test, GObject* finalizedObject) 53 { 54 test->m_watchedObjects.remove(finalizedObject); 55 } 56 57 void assertObjectIsDeletedWhenTestFinishes(GObject* object) 58 { 59 m_watchedObjects.add(object); 60 g_object_weak_ref(object, reinterpret_cast<GWeakNotify>(objectFinalized), this); 61 } 62 63 HashSet<GObject*> m_watchedObjects; 45 64 }; 46 65 -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.cpp
r97226 r98245 25 25 , m_mainLoop(g_main_loop_new(0, TRUE)) 26 26 { 27 assertObjectIsDeletedWhenTestFinishes(G_OBJECT(m_webView)); 27 28 } 28 29 -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/WebViewTest.h
r97226 r98245 24 24 #include <webkit2/webkit2.h> 25 25 26 class WebViewTest {26 class WebViewTest: public Test { 27 27 public: 28 28 MAKE_GLIB_TEST_FIXTURE(WebViewTest); -
trunk/Source/WebKit2/UIProcess/API/gtk/webkit2.h
r97438 r98245 24 24 #define __WEBKIT2_H_INSIDE__ 25 25 26 #include <webkit2/WebKitBackForwardList.h> 27 #include <webkit2/WebKitBackForwardListItem.h> 26 28 #include <webkit2/WebKitDefines.h> 27 29 #include <webkit2/WebKitEnumTypes.h> -
trunk/Source/WebKit2/UIProcess/API/gtk/webkit2marshal.list
r97920 r98245 2 2 BOOLEAN:OBJECT 3 3 BOOLEAN:VOID 4 VOID:OBJECT,POINTER 4 5
Note: See TracChangeset
for help on using the changeset viewer.