Changeset 96616 in webkit


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

[GTK] Implement default error pages in WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=69255

Reviewed by Martin Robinson.

  • UIProcess/API/gtk/WebKitError.cpp:

(webkit_policy_error_quark): Add quark for policy errors.
(webkit_plugin_error_quark): Add quark for plugin errors.

  • UIProcess/API/gtk/WebKitError.h: Add policy and plugin errors.
  • UIProcess/API/gtk/WebKitWebLoaderClient.cpp:

(webkitWebLoaderClientLoadFailed): Load a custom error page when
load failed and signal has not been handled.
(webkit_web_loader_client_class_init): Add default implementation
for provisional_load_failed and load_failed virtual methods.

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r96614 r96616  
     12011-10-04  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Implement default error pages in WebKit2 GTK+ API
     4        https://bugs.webkit.org/show_bug.cgi?id=69255
     5
     6        Reviewed by Martin Robinson.
     7
     8        * UIProcess/API/gtk/WebKitError.cpp:
     9        (webkit_policy_error_quark): Add quark for policy errors.
     10        (webkit_plugin_error_quark): Add quark for plugin errors.
     11        * UIProcess/API/gtk/WebKitError.h: Add policy and plugin errors.
     12        * UIProcess/API/gtk/WebKitWebLoaderClient.cpp:
     13        (webkitWebLoaderClientLoadFailed): Load a custom error page when
     14        load failed and signal has not been handled.
     15        (webkit_web_loader_client_class_init): Add default implementation
     16        for provisional_load_failed and load_failed virtual methods.
     17
    1182011-10-04  Carlos Garcia Campos  <cgarcia@igalia.com>
    219
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitError.cpp

    r96225 r96616  
    2525#include <WebCore/ErrorsGtk.h>
    2626
    27 GQuark webkit_network_error_quark(void)
     27GQuark webkit_network_error_quark()
    2828{
    2929    return g_quark_from_static_string(WebCore::errorDomainNetwork);
     
    3535COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NETWORK_ERROR_CANCELLED, NetworkErrorCancelled);
    3636COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST, NetworkErrorFileDoesNotExist);
     37
     38GQuark webkit_policy_error_quark()
     39{
     40    return g_quark_from_static_string(WebCore::errorDomainPolicy);
     41}
     42
     43COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_FAILED, PolicyErrorFailed);
     44COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE, PolicyErrorCannotShowMimeType);
     45COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_CANNOT_SHOW_URL, PolicyErrorCannotShowURL);
     46COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE, PolicyErrorFrameLoadInterruptedByPolicyChange);
     47COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT, PolicyErrorCannotUseRestrictedPort);
     48
     49GQuark webkit_plugin_error_quark()
     50{
     51    return g_quark_from_static_string(WebCore::errorDomainPlugin);
     52}
     53
     54COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_FAILED, PluginErrorFailed);
     55COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN, PluginErrorCannotFindPlugin);
     56COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN, PluginErrorCannotLoadPlugin);
     57COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE, PluginErrorJavaUnavailable);
     58COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED, PluginErrorConnectionCancelled);
     59COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD, PluginErrorWillHandleLoad);
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitError.h

    r96606 r96616  
    3232
    3333#define WEBKIT_NETWORK_ERROR webkit_network_error_quark ()
     34#define WEBKIT_POLICY_ERROR  webkit_policy_error_quark ()
     35#define WEBKIT_PLUGIN_ERROR  webkit_plugin_error_quark ()
    3436
    3537/**
     
    5254} WebKitNetworkError;
    5355
     56typedef enum {
     57    WEBKIT_POLICY_ERROR_FAILED = 199,
     58    WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE = 100,
     59    WEBKIT_POLICY_ERROR_CANNOT_SHOW_URL = 101,
     60    WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE = 102,
     61    WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT = 103
     62} WebKitPolicyError;
     63
     64typedef enum {
     65    WEBKIT_PLUGIN_ERROR_FAILED = 299,
     66    WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN = 200,
     67    WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN = 201,
     68    WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE = 202,
     69    WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED = 203,
     70    WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD = 204,
     71} WebKitPluginError;
     72
    5473WK_EXPORT GQuark
    5574webkit_network_error_quark (void);
     75
     76WK_EXPORT GQuark
     77webkit_policy_error_quark  (void);
     78
     79WK_EXPORT GQuark
     80webkit_plugin_error_quark  (void);
    5681
    5782G_END_DECLS
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebLoaderClient.cpp

    r96606 r96616  
    2121#include "WebKitWebLoaderClient.h"
    2222
     23#include "WebKitError.h"
    2324#include "WebKitMarshal.h"
    2425#include "WebKitPrivate.h"
     
    159160}
    160161
     162static gboolean webkitWebLoaderClientLoadFailed(WebKitWebLoaderClient* client, const gchar* failingURI, GError* error)
     163{
     164    if (g_error_matches(error, WEBKIT_NETWORK_ERROR, WEBKIT_NETWORK_ERROR_CANCELLED)
     165        || g_error_matches(error, WEBKIT_POLICY_ERROR, WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE)
     166        || g_error_matches(error, WEBKIT_PLUGIN_ERROR, WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD))
     167        return FALSE;
     168
     169    GOwnPtr<char> htmlString(g_strdup_printf("<html><body>%s</body></html>", error->message));
     170    webkit_web_view_load_alternate_html(client->priv->view.get(), htmlString.get(), 0, failingURI);
     171
     172    return TRUE;
     173}
     174
    161175static void webkitWebLoaderClientSetProperty(GObject* object, guint propId, const GValue* value, GParamSpec* paramSpec)
    162176{
     
    207221    objectClass->finalize = webkitWebLoaderClientFinalize;
    208222
     223    clientClass->provisional_load_failed = webkitWebLoaderClientLoadFailed;
     224    clientClass->load_failed = webkitWebLoaderClientLoadFailed;
     225
    209226    /**
    210227     * WebKitWebView:web-view:
Note: See TracChangeset for help on using the changeset viewer.