Changeset 96226 in webkit


Ignore:
Timestamp:
Sep 28, 2011 9:24:23 AM (13 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Loader client implementation for WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=68085

Reviewed by Martin Robinson.

Adds a new object, WebKitWebLoaderClient, that emits signals for
every page loader callback.

  • GNUmakefile.am: Add new files to compilation.
  • UIProcess/API/gtk/WebKitWebLoaderClient.cpp: Added.

(didStartProvisionalLoadForFrame):
(didReceiveServerRedirectForProvisionalLoadForFrame):
(didFailProvisionalLoadWithErrorForFrame):
(didCommitLoadForFrame):
(didFinishLoadForFrame):
(didFailLoadWithErrorForFrame):
(webkitWebLoaderClientConstructed):
(webkitWebLoaderClientSetProperty):
(webkitWebLoaderClientGetProperty):
(webkit_web_loader_client_init):
(webkit_web_loader_client_class_init):

  • UIProcess/API/gtk/WebKitWebLoaderClient.h: Added.
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewConstructed): Create the loader client for the view.
(webkit_web_view_init):
(webkit_web_view_get_loader_client): Get the current loader client.
(webkit_web_view_set_loader_client): Set a new loader client.

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/tests/testloading.c: Added.

(serverCallback):
(webLoadingFixtureSetup):
(webLoadingFixtureTeardown):
(getURIForPath):
(loadStatusProvisionalLoadStarted):
(loadStatusProvisionalLoadReceivedServerRedirect):
(loadStatusProvisionalLoadFailed):
(loadStatusLoadCommitted):
(loadStatusLoadFinished):
(loadStatusLoadFailed):
(testLoadingStatus):
(loadErrorProvisionalLoadStarted):
(loadErrorProvisionalLoadFailed):
(loadErrorLoadFinished):
(testLoadingError):
(main):

  • UIProcess/API/gtk/webkit2marshal.list: Added.
Location:
trunk/Source/WebKit2
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r96225 r96226  
     12011-09-28  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Loader client implementation for WebKit2 GTK+ API
     4        https://bugs.webkit.org/show_bug.cgi?id=68085
     5
     6        Reviewed by Martin Robinson.
     7
     8        Adds a new object, WebKitWebLoaderClient, that emits signals for
     9        every page loader callback.
     10
     11        * GNUmakefile.am: Add new files to compilation.
     12        * UIProcess/API/gtk/WebKitWebLoaderClient.cpp: Added.
     13        (didStartProvisionalLoadForFrame):
     14        (didReceiveServerRedirectForProvisionalLoadForFrame):
     15        (didFailProvisionalLoadWithErrorForFrame):
     16        (didCommitLoadForFrame):
     17        (didFinishLoadForFrame):
     18        (didFailLoadWithErrorForFrame):
     19        (webkitWebLoaderClientConstructed):
     20        (webkitWebLoaderClientSetProperty):
     21        (webkitWebLoaderClientGetProperty):
     22        (webkit_web_loader_client_init):
     23        (webkit_web_loader_client_class_init):
     24        * UIProcess/API/gtk/WebKitWebLoaderClient.h: Added.
     25        * UIProcess/API/gtk/WebKitWebView.cpp:
     26        (webkitWebViewConstructed): Create the loader client for the view.
     27        (webkit_web_view_init):
     28        (webkit_web_view_get_loader_client): Get the current loader client.
     29        (webkit_web_view_set_loader_client): Set a new loader client.
     30        * UIProcess/API/gtk/WebKitWebView.h:
     31        * UIProcess/API/gtk/tests/testloading.c: Added.
     32        (serverCallback):
     33        (webLoadingFixtureSetup):
     34        (webLoadingFixtureTeardown):
     35        (getURIForPath):
     36        (loadStatusProvisionalLoadStarted):
     37        (loadStatusProvisionalLoadReceivedServerRedirect):
     38        (loadStatusProvisionalLoadFailed):
     39        (loadStatusLoadCommitted):
     40        (loadStatusLoadFinished):
     41        (loadStatusLoadFailed):
     42        (testLoadingStatus):
     43        (loadErrorProvisionalLoadStarted):
     44        (loadErrorProvisionalLoadFailed):
     45        (loadErrorLoadFinished):
     46        (testLoadingError):
     47        (main):
     48        * UIProcess/API/gtk/webkit2marshal.list: Added.
     49
    1502011-09-28  Carlos Garcia Campos  <cgarcia@igalia.com>
    251
  • trunk/Source/WebKit2/GNUmakefile.am

    r96225 r96226  
    7272        $(WebKit2)/UIProcess/API/gtk/WebKitError.h \
    7373        $(WebKit2)/UIProcess/API/gtk/WebKitWebContext.h \
     74        $(WebKit2)/UIProcess/API/gtk/WebKitWebLoaderClient.h \
    7475        $(WebKit2)/UIProcess/API/gtk/WebKitWebView.h \
    7576        $(WebKit2)/UIProcess/API/gtk/WebKitWebViewBase.h \
     
    149150        DerivedSources/WebKit2/WebProcessProxyMessageReceiver.cpp \
    150151        DerivedSources/WebKit2/WebProcessProxyMessages.h
     152
    151153BUILT_SOURCES += $(webkit2_built_sources)
    152 nodist_libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES =$(webkit2_built_sources)
     154
     155webkit2gtk_built_sources = \
     156        DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitEnumTypes.cpp \
     157        DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitEnumTypes.h \
     158        DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitMarshal.cpp \
     159        DerivedSources/WebKit2/webkit2gtk/webkit2/WebKitMarshal.h
     160
     161BUILT_SOURCES += $(webkit2gtk_built_sources)
     162
     163nodist_libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
     164        $(webkit2_built_sources) \
     165        $(webkit2gtk_built_sources)
    153166
    154167libwebkit2gtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \
     
    461474        Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp \
    462475        Source/WebKit2/UIProcess/API/gtk/WebKitWebContextPrivate.h \
     476        Source/WebKit2/UIProcess/API/gtk/WebKitWebLoaderClient.h \
     477        Source/WebKit2/UIProcess/API/gtk/WebKitWebLoaderClient.cpp \
    463478        Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h \
    464479        Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp \
     
    863878        -I$(top_builddir)/DerivedSources/WebKit2/webkit2gtk \
    864879        -I$(top_builddir)/DerivedSources/WebKit2/webkit2gtk/include \
     880        -I$(top_builddir)/DerivedSources/WebKit2/webkit2gtk/webkit2 \
    865881        -I$(top_builddir)/DerivedSources/WebKit2/include/JavaScriptCore \
    866882        -I$(top_builddir)/DerivedSources/WebKit2/include/WebCore \
     
    10331049        && rm -f xgen-gtc
    10341050
    1035 
    1036 BUILT_SOURCES += \
    1037         $(GENSOURCES_WEBKIT2)/webkit2gtk/webkit2/WebKitEnumTypes.cpp \
    1038         $(GENSOURCES_WEBKIT2)/webkit2gtk/webkit2/WebKitEnumTypes.h
     1051WEBKIT2_MARSHAL_LIST = $(WebKit2)/UIProcess/API/gtk/webkit2marshal.list
     1052
     1053$(GENSOURCES_WEBKIT2)/webkit2gtk/webkit2/WebKitMarshal.cpp: stamp-webkit2marshal.cpp
     1054        @true
     1055$(GENSOURCES_WEBKIT2)/webkit2gtk/webkit2/WebKitMarshal.h: stamp-webkit2marshal.h
     1056        @true
     1057
     1058stamp-webkit2marshal.cpp: $(WEBKIT2_MARSHAL_LIST)
     1059        $(AM_V_GEN) echo "extern \"C\" {" > $(webkit2gtk_built_headers_dir)/WebKitMarshal.cpp && \
     1060        $(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT2_MARSHAL_LIST) --body >> $(webkit2gtk_built_headers_dir)/WebKitMarshal.cpp && \
     1061        echo '}' >> $(webkit2gtk_built_headers_dir)/WebKitMarshal.cpp && \
     1062        echo timestamp > $(@F)
     1063
     1064stamp-webkit2marshal.h: $(WEBKIT2_MARSHAL_LIST)
     1065        $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT2_MARSHAL_LIST) --header > $(webkit2gtk_built_headers_dir)/WebKitMarshal.h && \
     1066        echo timestamp > $(@F)
    10391067
    10401068CLEANFILES += \
    10411069        $(BUILT_SOURCES) \
    10421070        $(top_builddir)/stamp-webkit2enumtypes \
     1071        $(top_builddir)/stamp-webkit2marshal.cpp \
     1072        $(top_builddir)/stamp-webkit2marshal.h \
    10431073        $(top_builddir)/Programs/WebKitWebProcess
    10441074
     
    10491079TEST_PROGS += \
    10501080        Programs/unittests/webkit2/testwebcontext \
    1051         Programs/unittests/webkit2/testwebview
     1081        Programs/unittests/webkit2/testwebview \
     1082        Programs/unittests/webkit2/testloading
    10521083
    10531084noinst_PROGRAMS += $(TEST_PROGS)
     
    10861117Programs_unittests_webkit2_testwebview_LDADD = $(webkit2_tests_ldadd)
    10871118Programs_unittests_webkit2_testwebview_LDFLAGS = $(webkit2_tests_ldflags)
     1119
     1120Programs_unittests_webkit2_testloading_SOURCES = Source/WebKit2/UIProcess/API/gtk/tests/testloading.c
     1121Programs_unittests_webkit2_testloading_CFLAGS = $(webkit2_tests_cflags)
     1122Programs_unittests_webkit2_testloading_LDADD = $(webkit2_tests_ldadd)
     1123Programs_unittests_webkit2_testloading_LDFLAGS = $(webkit2_tests_ldflags)
    10881124
    10891125# WebKitWebProcess
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp

    r96136 r96226  
    2121#include "WebKitWebView.h"
    2222
    23 #include "NotImplemented.h"
    2423#include "WebKitWebContextPrivate.h"
     24#include "WebKitWebLoaderClient.h"
    2525#include "WebKitWebViewBasePrivate.h"
    2626#include "WebKitPrivate.h"
     
    2828#include <WebKit2/WKBase.h>
    2929#include <WebKit2/WKURL.h>
     30#include <wtf/gobject/GRefPtr.h>
     31#include <wtf/text/CString.h>
    3032
    3133using namespace WebKit;
     
    4042struct _WebKitWebViewPrivate {
    4143    WebKitWebContext* context;
     44
     45    GRefPtr<WebKitWebLoaderClient> loaderClient;
    4246};
    4347
     
    4751{
    4852    WebKitWebView* webView = WEBKIT_WEB_VIEW(object);
    49 
    50     webkitWebViewBaseCreateWebPage(WEBKIT_WEB_VIEW_BASE(webView),
    51                                    webkitWebContextGetWKContext(webView->priv->context), 0);
     53    WebKitWebViewPrivate* priv = webView->priv;
     54
     55    webkitWebViewBaseCreateWebPage(WEBKIT_WEB_VIEW_BASE(webView), webkitWebContextGetWKContext(priv->context), 0);
     56
     57    priv->loaderClient = adoptGRef(WEBKIT_WEB_LOADER_CLIENT(g_object_new(WEBKIT_TYPE_WEB_LOADER_CLIENT, "web-view", webView, NULL)));
    5258}
    5359
     
    8086static void webkit_web_view_init(WebKitWebView* webView)
    8187{
    82     webView->priv = G_TYPE_INSTANCE_GET_PRIVATE(webView, WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate);
     88    WebKitWebViewPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(webView, WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate);
     89    webView->priv = priv;
     90    new (priv) WebKitWebViewPrivate();
    8391}
    8492
     
    152160}
    153161
     162/**
     163 * webkit_web_view_get_loader_client:
     164 * @web_view: a #WebKitWebView
     165 *
     166 * Returns the #WebKitWebLoaderClient of @web_view. You can use it
     167 * to monitor the status of load operations happening on @web_view.
     168 *
     169 * Returns: (trasnfer-none): the #WebKitWebLoaderClient of @web_view.
     170 */
     171WebKitWebLoaderClient* webkit_web_view_get_loader_client(WebKitWebView* webView)
     172{
     173    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
     174
     175    return webView->priv->loaderClient.get();
     176}
     177
     178/**
     179 * webkit_web_view_set_loader_client:
     180 * @web_view: a #WebKitWebView
     181 * @loader_client: a #WebKitWebLoaderClient
     182 *
     183 * Sets the #WebKitWebLoaderClient that the view will use during
     184 * load operations.
     185 */
     186void webkit_web_view_set_loader_client(WebKitWebView* webView, WebKitWebLoaderClient* loaderClient)
     187{
     188    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     189    g_return_if_fail(WEBKIT_IS_WEB_LOADER_CLIENT(loaderClient));
     190
     191    WebKitWebViewPrivate* priv = webView->priv;
     192    if (priv->loaderClient.get() == loaderClient)
     193        return;
     194
     195    priv->loaderClient = loaderClient;
     196}
     197
     198/**
     199 * webkit_web_view_load_uri:
     200 * @web_view: a #WebKitWebView
     201 * @uri: an URI string
     202 *
     203 * Requests loading of the specified URI string.
     204 * You can monitor the status of the load operation using the
     205 * #WebKitWebLoaderClient of @web_view. See webkit_web_view_get_loader_client().
     206 */
    154207void webkit_web_view_load_uri(WebKitWebView* webView, const gchar* uri)
    155208{
     
    161214}
    162215
     216/**
     217 * webkit_web_view_go_back:
     218 * @web_view: a #WebKitWebView
     219 *
     220 * Loads the previous history item.
     221 * You can monitor the status of the load operation using the
     222 * #WebKitWebLoaderClient of @web_view. See webkit_web_view_get_loader_client().
     223 */
    163224void webkit_web_view_go_back(WebKitWebView* webView)
    164225{
     
    169230}
    170231
     232/**
     233 * webkit_web_view_go_forward:
     234 * @web_view: a #WebKitWebView
     235 *
     236 * Loads the next history item.
     237 * You can monitor the status of the load operation using the
     238 * #WebKitWebLoaderClient of @web_view. See webkit_web_view_get_loader_client().
     239 */
    171240void webkit_web_view_go_forward(WebKitWebView* webView)
    172241{
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h

    r96136 r96226  
    2525
    2626#include <webkit2/WebKitWebContext.h>
     27#include <webkit2/WebKitWebLoaderClient.h>
    2728#include <webkit2/WebKitWebViewBase.h>
    2829
     
    6263
    6364WK_EXPORT GType
    64 webkit_web_view_get_type         (void);
     65webkit_web_view_get_type          (void);
    6566
    6667WK_EXPORT GtkWidget *
    67 webkit_web_view_new              (void);
     68webkit_web_view_new               (void);
    6869
    6970WK_EXPORT GtkWidget *
    70 webkit_web_view_new_with_context (WebKitWebContext *context);
     71webkit_web_view_new_with_context  (WebKitWebContext      *context);
    7172
    7273WK_EXPORT WebKitWebContext *
    73 webkit_web_view_get_context      (WebKitWebView    *web_view);
     74webkit_web_view_get_context       (WebKitWebView         *web_view);
     75
     76WK_EXPORT WebKitWebLoaderClient *
     77webkit_web_view_get_loader_client (WebKitWebView         *web_view);
    7478
    7579WK_EXPORT void
    76 webkit_web_view_load_uri         (WebKitWebView    *webView,
    77                                   const gchar      *uri);
     80webkit_web_view_set_loader_client (WebKitWebView         *web_view,
     81                                   WebKitWebLoaderClient *loader_client);
    7882
    7983WK_EXPORT void
    80 webkit_web_view_go_back          (WebKitWebView    *webView);
     84webkit_web_view_load_uri          (WebKitWebView         *web_view,
     85                                   const gchar           *uri);
    8186
    8287WK_EXPORT void
    83 webkit_web_view_go_forward       (WebKitWebView    *webView);
     88webkit_web_view_go_back           (WebKitWebView         *web_view);
     89
     90WK_EXPORT void
     91webkit_web_view_go_forward        (WebKitWebView         *web_view);
    8492
    8593G_END_DECLS
Note: See TracChangeset for help on using the changeset viewer.