Changeset 96614 in webkit


Ignore:
Timestamp:
Oct 4, 2011 11:11:55 AM (13 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK] Add webkit_web_view_load_alternate_html() to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=69254

Reviewed by Martin Robinson.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_load_alternate_html):

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

(loadAlternateContentLoadFinished):
(loadAlternateContentLoadFailed):
(testLoadAlternateContent):
(main):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r96613 r96614  
     12011-10-04  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Add webkit_web_view_load_alternate_html() to WebKit2 GTK+ API
     4        https://bugs.webkit.org/show_bug.cgi?id=69254
     5
     6        Reviewed by Martin Robinson.
     7
     8        * UIProcess/API/gtk/WebKitWebView.cpp:
     9        (webkit_web_view_load_alternate_html):
     10        * UIProcess/API/gtk/WebKitWebView.h:
     11        * UIProcess/API/gtk/tests/testloading.c:
     12        (loadAlternateContentLoadFinished):
     13        (loadAlternateContentLoadFailed):
     14        (testLoadAlternateContent):
     15        (main):
     16
    1172011-10-03  Jon Lee  <jonlee@apple.com>
    218
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp

    r96606 r96614  
    224224
    225225/**
     226 * webkit_web_view_load_alternate_html:
     227 * @web_view: a #WebKitWebView
     228 * @content: the alternate content to display as the main page of the @web_view
     229 * @base_uri: the base URI for relative locations
     230 * @unreachable_uri: the URI for the alternate page content
     231 *
     232 * Request loading of an alternate content for a URI that is unreachable. This allows clients
     233 * to display page-loading errors in the #WebKitWebView itself. This is typically called from
     234 * #WebKitWebLoaderClient::provisional-load-failed or #WebKitWebLoaderClient::load-failed
     235 * signals.
     236 * When called from those signals this method will preserve the back-forward list. The URI passed in
     237 * @base_uri has to be an absolute URI.
     238 * You can monitor the status of the load operation using the
     239 * #WebKitWebLoaderClient of @web_view. See webkit_web_view_get_loader_client().
     240 */
     241void webkit_web_view_load_alternate_html(WebKitWebView* webView, const gchar* content, const gchar* baseURI, const gchar* unreachableURI)
     242{
     243    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
     244    g_return_if_fail(content);
     245
     246    WKStringRef htmlString = WKStringCreateWithUTF8CString(content);
     247    WKURLRef baseURL = baseURI ? WKURLCreateWithUTF8CString(baseURI) : 0;
     248    WKURLRef unreachableURL = unreachableURI ? WKURLCreateWithUTF8CString(unreachableURI) : 0;
     249    WebPageProxy* page = webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView));
     250    WKPageLoadAlternateHTMLString(toAPI(page), htmlString, baseURL, unreachableURL);
     251    WKRelease(htmlString);
     252    if (baseURL)
     253        WKRelease(baseURL);
     254    if (unreachableURL)
     255        WKRelease(unreachableURL);
     256}
     257
     258/**
    226259 * webkit_web_view_go_back:
    227260 * @web_view: a #WebKitWebView
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h

    r96324 r96614  
    6767
    6868WK_EXPORT GType
    69 webkit_web_view_get_type          (void);
     69webkit_web_view_get_type            (void);
    7070
    7171WK_EXPORT GtkWidget *
    72 webkit_web_view_new               (void);
     72webkit_web_view_new                 (void);
    7373
    7474WK_EXPORT GtkWidget *
    75 webkit_web_view_new_with_context  (WebKitWebContext      *context);
     75webkit_web_view_new_with_context    (WebKitWebContext      *context);
    7676
    7777WK_EXPORT WebKitWebContext *
    78 webkit_web_view_get_context       (WebKitWebView         *web_view);
     78webkit_web_view_get_context         (WebKitWebView         *web_view);
    7979
    8080WK_EXPORT WebKitWebLoaderClient *
    81 webkit_web_view_get_loader_client (WebKitWebView         *web_view);
     81webkit_web_view_get_loader_client   (WebKitWebView         *web_view);
    8282
    8383WK_EXPORT void
    84 webkit_web_view_set_loader_client (WebKitWebView         *web_view,
    85                                    WebKitWebLoaderClient *loader_client);
     84webkit_web_view_set_loader_client   (WebKitWebView         *web_view,
     85                                     WebKitWebLoaderClient *loader_client);
    8686
    8787WK_EXPORT void
    88 webkit_web_view_load_uri          (WebKitWebView         *web_view,
    89                                    const gchar           *uri);
     88webkit_web_view_load_uri            (WebKitWebView         *web_view,
     89                                     const gchar           *uri);
    9090
    9191WK_EXPORT void
    92 webkit_web_view_go_back           (WebKitWebView         *web_view);
     92webkit_web_view_load_alternate_html (WebKitWebView         *web_view,
     93                                     const gchar           *content,
     94                                     const gchar           *base_uri,
     95                                     const gchar           *unreachable_uri);
    9396
    9497WK_EXPORT void
    95 webkit_web_view_go_forward        (WebKitWebView         *web_view);
     98webkit_web_view_go_back             (WebKitWebView         *web_view);
     99
     100WK_EXPORT void
     101webkit_web_view_go_forward          (WebKitWebView         *web_view);
    96102
    97103G_END_DECLS
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/testloading.c

    r96511 r96614  
    224224}
    225225
     226static gboolean loadAlternateContentLoadFinished(WebKitWebLoaderClient *client, WebLoadingFixture *fixture)
     227{
     228    g_main_loop_quit(fixture->loop);
     229
     230    return TRUE;
     231}
     232
     233static gboolean loadAlternateContentLoadFailed(WebKitWebLoaderClient *client, const gchar *failingURI, GError *error, WebLoadingFixture *fixture)
     234{
     235    g_assert_not_reached();
     236    return TRUE;
     237}
     238
     239static void testLoadAlternateContent(WebLoadingFixture *fixture, gconstpointer data)
     240{
     241    char *uriString;
     242    WebKitWebLoaderClient *client = webkit_web_view_get_loader_client(fixture->webView);
     243
     244    g_signal_connect(client, "load-finished", G_CALLBACK(loadAlternateContentLoadFinished), fixture);
     245    g_signal_connect(client, "provisional-load-failed", G_CALLBACK(loadAlternateContentLoadFailed), fixture);
     246    g_signal_connect(client, "load-failed", G_CALLBACK(loadAlternateContentLoadFailed), fixture);
     247
     248    uriString = getURIForPath("/alternate");
     249    webkit_web_view_load_alternate_html(fixture->webView, "<html><body>Alternate Content</body></html>", NULL, uriString);
     250    g_free(uriString);
     251
     252    g_main_loop_run(fixture->loop);
     253}
     254
    226255int main(int argc, char **argv)
    227256{
     
    252281               testLoadingError,
    253282               webLoadingFixtureTeardown);
     283    g_test_add("/webkit2/loading/alternate_content",
     284               WebLoadingFixture, NULL,
     285               webLoadingFixtureSetup,
     286               testLoadAlternateContent,
     287               webLoadingFixtureTeardown);
    254288
    255289    return g_test_run();
Note: See TracChangeset for help on using the changeset viewer.