Changeset 37982 in webkit


Ignore:
Timestamp:
Oct 29, 2008 3:39:18 PM (15 years ago)
Author:
zecke@webkit.org
Message:

2008-10-29 Gustavo Noronha Silva <Gustavo Noronha Silva>

Reviewed by Holger Freyther.

Added all the files that need to be installed for the Inspector to
work.

WebCore/ChangeLog:
2008-10-29 Gustavo Noronha Silva <Gustavo Noronha Silva>

Reviewed and slightly changed by Holger Freyther.

Added all the files that need to be installed for the Inspector to
work.

  • GNUmakefile.am: Invoke the shell to get the files.

WebKit/gtk:
2008-10-29 Gustavo Noronha Silva <Gustavo Noronha Silva>

Reviewed and slightly changed by Holger Freyther.

Implemented a new WebKitWebInspector class to provide a GObject
API for the Web Inspector. Also implemented InspectorClient.

  • WebCoreSupport/InspectorClientGtk.cpp: (WebKit::notifyWebViewDestroyed): (WebKit::InspectorClient::InspectorClient): (WebKit::InspectorClient::inspectorDestroyed): (WebKit::InspectorClient::webViewDestroyed): (WebKit::InspectorClient::createPage): (WebKit::InspectorClient::showWindow): (WebKit::InspectorClient::closeWindow): (WebKit::InspectorClient::attachWindow): (WebKit::InspectorClient::detachWindow): (WebKit::InspectorClient::inspectedURLChanged):
  • WebCoreSupport/InspectorClientGtk.h:
  • webkit/webkit.h:
  • webkit/webkit-marshal.list:
  • webkit/webkitdefines.h:
  • webkit/webkitprivate.h:
  • webkit/webkitwebinspector.cpp: Added. (_WebKitWebInspectorPrivate::webkit_inspect_web_view_request_handled): (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): (_WebKitWebInspectorPrivate::webkit_web_inspector_init): (_WebKitWebInspectorPrivate::webkit_web_inspector_finalize): (_WebKitWebInspectorPrivate::webkit_web_inspector_set_property): (_WebKitWebInspectorPrivate::webkit_web_inspector_get_property): (_WebKitWebInspectorPrivate::webkit_web_inspector_set_web_view):
  • webkit/webkitwebinspector.h: Added.
  • webkit/webkitwebsettings.cpp: (_WebKitWebSettingsPrivate::): (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): (_WebKitWebSettingsPrivate::webkit_web_settings_copy):
  • webkit/webkitwebview.cpp:
  • webkit/webkitwebview.h:
Location:
trunk
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r37977 r37982  
     12008-10-29  Gustavo Noronha Silva  <gns@gnome.org>
     2
     3        Reviewed by Holger Freyther.
     4
     5        Added all the files that need to be installed for the Inspector to
     6        work.
     7
    182008-10-29  Mike Hommey  <glandium@debian.org>
    29
  • trunk/GNUmakefile.am

    r37977 r37982  
    310310        WebKit/gtk/webkit/webkitwebframe.h \
    311311        WebKit/gtk/webkit/webkitwebhistoryitem.h \
     312        WebKit/gtk/webkit/webkitwebinspector.h \
    312313        WebKit/gtk/webkit/webkitwebsettings.h \
    313314        WebKit/gtk/webkit/webkitwebview.h
     
    341342        WebKit/gtk/webkit/webkitwebframe.cpp \
    342343        WebKit/gtk/webkit/webkitwebhistoryitem.cpp \
     344        WebKit/gtk/webkit/webkitwebinspector.cpp \
    343345        WebKit/gtk/webkit/webkitwebsettings.cpp \
    344346        WebKit/gtk/webkit/webkitwebview.cpp
  • trunk/WebCore/ChangeLog

    r37980 r37982  
     12008-10-29  Gustavo Noronha Silva  <gns@gnome.org>
     2
     3        Reviewed and slightly changed by Holger Freyther.
     4
     5        Added all the files that need to be installed for the Inspector to
     6        work.
     7
     8        * GNUmakefile.am: Invoke the shell to get the files.
     9
    1102008-10-29  Andrew Scherkus  <scherkus@chromium.org>
    211
  • trunk/WebCore/GNUmakefile.am

    r37966 r37982  
    29552955        WebCore/xml/XPathGrammar.y
    29562956
     2957# Installing web inspector files
     2958webcore_cppflags += -DDATA_DIR=\"${datadir}\"
     2959
     2960webinspectordir = ${datadir}/webkit-1.0/webinspector
     2961dist_webinspector_DATA = \
     2962        $(shell ls $(WebCore)/inspector/front-end/*.{js,html,css})
     2963
     2964webinspectorimagesdir = ${datadir}/webkit-1.0/webinspector/Images
     2965dist_webinspectorimages_DATA = \
     2966        $(shell ls $(WebCore)/inspector/front-end/Images/*.png)
     2967
    29572968# Clean rules for WebCore
    29582969
  • trunk/WebKit/gtk/ChangeLog

    r37903 r37982  
     12008-10-29  Gustavo Noronha Silva  <gns@gnome.org>
     2
     3        Reviewed and slightly changed by Holger Freyther.
     4
     5        Implemented a new WebKitWebInspector class to provide a GObject
     6        API for the Web Inspector. Also implemented InspectorClient.
     7
     8        * WebCoreSupport/InspectorClientGtk.cpp:
     9        (WebKit::notifyWebViewDestroyed):
     10        (WebKit::InspectorClient::InspectorClient):
     11        (WebKit::InspectorClient::inspectorDestroyed):
     12        (WebKit::InspectorClient::webViewDestroyed):
     13        (WebKit::InspectorClient::createPage):
     14        (WebKit::InspectorClient::showWindow):
     15        (WebKit::InspectorClient::closeWindow):
     16        (WebKit::InspectorClient::attachWindow):
     17        (WebKit::InspectorClient::detachWindow):
     18        (WebKit::InspectorClient::inspectedURLChanged):
     19        * WebCoreSupport/InspectorClientGtk.h:
     20        * webkit/webkit.h:
     21        * webkit/webkit-marshal.list:
     22        * webkit/webkitdefines.h:
     23        * webkit/webkitprivate.h:
     24        * webkit/webkitwebinspector.cpp: Added.
     25        (_WebKitWebInspectorPrivate::webkit_inspect_web_view_request_handled):
     26        (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init):
     27        (_WebKitWebInspectorPrivate::webkit_web_inspector_init):
     28        (_WebKitWebInspectorPrivate::webkit_web_inspector_finalize):
     29        (_WebKitWebInspectorPrivate::webkit_web_inspector_set_property):
     30        (_WebKitWebInspectorPrivate::webkit_web_inspector_get_property):
     31        (_WebKitWebInspectorPrivate::webkit_web_inspector_set_web_view):
     32        * webkit/webkitwebinspector.h: Added.
     33        * webkit/webkitwebsettings.cpp:
     34        (_WebKitWebSettingsPrivate::):
     35        (_WebKitWebSettingsPrivate::webkit_web_settings_class_init):
     36        (_WebKitWebSettingsPrivate::webkit_web_settings_set_property):
     37        (_WebKitWebSettingsPrivate::webkit_web_settings_get_property):
     38        (_WebKitWebSettingsPrivate::webkit_web_settings_copy):
     39        * webkit/webkitwebview.cpp:
     40        * webkit/webkitwebview.h:
     41
    1422008-10-27  Michael Tross  <michael@tross.org>
    243
  • trunk/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp

    r37848 r37982  
    11/*
     2 * Copyright (C) 2008 Gustavo Noronha Silva
     3 *
    24 *  This library is free software; you can redistribute it and/or
    35 *  modify it under the terms of the GNU Lesser General Public
     
    1820#include "InspectorClientGtk.h"
    1921
     22#include "webkitwebview.h"
     23#include "webkitwebinspector.h"
     24#include "webkitprivate.h"
     25#include "CString.h"
     26#include "InspectorController.h"
    2027#include "NotImplemented.h"
    2128#include "PlatformString.h"
     
    2532namespace WebKit {
    2633
     34static void notifyWebViewDestroyed(WebKitWebView* webView, InspectorClient* inspectorClient)
     35{
     36    inspectorClient->webViewDestroyed();
     37}
     38
     39InspectorClient::InspectorClient(WebKitWebView* webView)
     40    : m_webView(0)
     41    , m_inspectedWebView(webView)
     42    , m_webInspector(0)
     43{}
     44
    2745void InspectorClient::inspectorDestroyed()
    2846{
     47    if (m_webView) {
     48        gboolean handled = FALSE;
     49        g_signal_emit_by_name(m_webInspector, "destroy", &handled);
     50
     51        /* we can now dispose our own reference */
     52        g_object_unref(m_webInspector);
     53    }
     54
    2955    delete this;
     56}
     57
     58void InspectorClient::webViewDestroyed()
     59{
     60    m_webView = 0;
     61    core(m_inspectedWebView)->inspectorController()->pageDestroyed();
     62
     63    // createPage will be called again, if the user chooses to inspect
     64    // something else, and the inspector will be referenced again,
     65    // there.
     66    g_object_unref(m_webInspector);
    3067}
    3168
    3269Page* InspectorClient::createPage()
    3370{
    34     notImplemented();
    35     return 0;
     71    if (m_webView)
     72      return core(m_webView);
     73
     74    // This g_object_get will ref the inspector. We're not doing an
     75    // unref if this method succeeds because the inspector object must
     76    // be alive even after the inspected WebView is destroyed - the
     77    // close-window and destroy signals still need to be
     78    // emitted.
     79    WebKitWebInspector* webInspector;
     80    g_object_get(G_OBJECT(m_inspectedWebView), "web-inspector", &webInspector, NULL);
     81    m_webInspector = webInspector;
     82
     83    g_signal_emit_by_name(m_webInspector, "inspect-web-view", m_inspectedWebView, &m_webView);
     84
     85    if (!m_webView) {
     86        g_object_unref(m_webInspector);
     87        return 0;
     88    }
     89
     90    webkit_web_inspector_set_web_view(m_webInspector, m_webView);
     91
     92    g_signal_connect(G_OBJECT(m_webView), "destroy",
     93                     G_CALLBACK(notifyWebViewDestroyed), (gpointer)this);
     94
     95    webkit_web_view_open(m_webView, "file://"DATA_DIR"/webkit-1.0/webinspector/inspector.html");
     96    gtk_widget_show(GTK_WIDGET(m_webView));
     97
     98    return core(m_webView);
    3699}
    37100
     
    44107void InspectorClient::showWindow()
    45108{
    46     notImplemented();
     109    if (!m_webView)
     110        return;
     111
     112    gboolean handled = FALSE;
     113    g_signal_emit_by_name(m_webInspector, "show-window", &handled);
     114
     115    core(m_inspectedWebView)->inspectorController()->setWindowVisible(true);
    47116}
    48117
    49118void InspectorClient::closeWindow()
    50119{
    51     notImplemented();
     120    if (!m_webView)
     121        return;
     122
     123    gboolean handled = FALSE;
     124    g_signal_emit_by_name(m_webInspector, "close-window", &handled);
     125
     126    core(m_inspectedWebView)->inspectorController()->setWindowVisible(false);
    52127}
    53128
    54129void InspectorClient::attachWindow()
    55130{
    56     notImplemented();
     131    if (!m_webView)
     132        return;
     133
     134    gboolean handled = FALSE;
     135    g_signal_emit_by_name(m_webInspector, "attach-window", &handled);
    57136}
    58137
    59138void InspectorClient::detachWindow()
    60139{
    61     notImplemented();
     140    if (!m_webView)
     141        return;
     142
     143    gboolean handled = FALSE;
     144    g_signal_emit_by_name(m_webInspector, "dettach-window", &handled);
    62145}
    63146
     
    77160}
    78161
    79 void InspectorClient::inspectedURLChanged(const String&)
     162void InspectorClient::inspectedURLChanged(const String& newURL)
    80163{
    81     notImplemented();
     164    if (!m_webView)
     165        return;
     166
     167    webkit_web_inspector_set_inspected_uri(m_webInspector, newURL.utf8().data());
    82168}
    83169
  • trunk/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h

    r37848 r37982  
    3131
    3232#include "InspectorClient.h"
     33#include "webkitwebview.h"
     34#include "webkitwebinspector.h"
    3335
    3436namespace WebCore {
     
    4244    class InspectorClient : public WebCore::InspectorClient {
    4345    public:
     46        InspectorClient(WebKitWebView* webView);
     47
    4448        virtual void inspectorDestroyed();
     49        void webViewDestroyed();
    4550
    4651        virtual WebCore::Page* createPage();
     
    6368        virtual void storeSetting(const WebCore::String& key, const WebCore::InspectorController::Setting&);
    6469        virtual void removeSetting(const WebCore::String& key);
     70
     71    private:
     72        WebKitWebView* m_webView;
     73        WebKitWebView* m_inspectedWebView;
     74        WebKitWebInspector* m_webInspector;
    6575    };
    6676}
  • trunk/WebKit/gtk/webkit/webkit.h

    r34649 r37982  
    2626#include <webkit/webkitwebframe.h>
    2727#include <webkit/webkitwebsettings.h>
     28#include <webkit/webkitwebinspector.h>
    2829#include <webkit/webkitwebview.h>
    2930#include <webkit/webkitwebbackforwardlist.h>
  • trunk/WebKit/gtk/webkit/webkitdefines.h

    r31184 r37982  
    5656typedef struct _WebKitWebSettingsClass WebKitWebSettingsClass;
    5757
     58typedef struct _WebKitWebInspector WebKitWebInspector;
     59typedef struct _WebKitWebInspectorClass WebKitWebInspectorClass;
     60
    5861typedef struct _WebKitWebView WebKitWebView;
    5962typedef struct _WebKitWebViewClass WebKitWebViewClass;
  • trunk/WebKit/gtk/webkit/webkitprivate.h

    r35816 r37982  
    3838#include "Page.h"
    3939#include "Frame.h"
     40#include "InspectorClientGtk.h"
    4041#include "FrameLoaderClient.h"
    4142
     
    6869        WebCore::Page* corePage;
    6970        WebKitWebSettings* webSettings;
     71        WebKitWebInspector* webInspector;
    7072
    7173        WebKitWebFrame* mainFrame;
     
    111113    webkit_web_history_item_new_with_core_item(WebCore::HistoryItem*);
    112114
     115    void
     116    webkit_web_inspector_set_inspector_client(WebKitWebInspector*, WebKit::InspectorClient*);
     117
     118    void
     119    webkit_web_inspector_set_web_view(WebKitWebInspector *web_inspector, WebKitWebView *web_view);
     120
     121    void
     122    webkit_web_inspector_set_inspected_uri(WebKitWebInspector* web_inspector, const gchar* inspected_uri);
     123
    113124    // FIXME: Move these to webkitwebframe.h once their API has been discussed.
    114125
  • trunk/WebKit/gtk/webkit/webkitwebsettings.cpp

    r34387 r37982  
    4949    gchar* user_stylesheet_uri;
    5050    gfloat zoom_step;
     51    gboolean enable_developer_extras;
    5152};
    5253
     
    7475    PROP_RESIZABLE_TEXT_AREAS,
    7576    PROP_USER_STYLESHEET_URI,
    76     PROP_ZOOM_STEP
     77    PROP_ZOOM_STEP,
     78    PROP_ENABLE_DEVELOPER_EXTRAS
    7779};
    7880
     
    267269                                    "The value by which the zoom level is changed when zooming in or out.",
    268270                                    0.0f, G_MAXFLOAT, 0.1f,
     271                                    flags));
     272
     273    /**
     274    * WebKitWebSettings:enable-developer-extras:
     275    *
     276    * Whether developer extensions should be enabled. This enables,
     277    * for now, the Web Inspector, which can be controlled using the
     278    * #WebKitWebInspector instance held by the #WebKitWebView this
     279    * setting is enabled for.
     280    *
     281    * Since: 1.0.2
     282    */
     283    g_object_class_install_property(gobject_class,
     284                                    PROP_ENABLE_DEVELOPER_EXTRAS,
     285                                    g_param_spec_boolean(
     286                                    "enable-developer-extras",
     287                                    "Enable Developer Extras",
     288                                    "Enables special extensions that help developers",
     289                                    FALSE,
    269290                                    flags));
    270291
     
    365386        priv->zoom_step = g_value_get_float(value);
    366387        break;
     388    case PROP_ENABLE_DEVELOPER_EXTRAS:
     389        priv->enable_developer_extras = g_value_get_boolean(value);
     390        break;
    367391    default:
    368392        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
     
    433457    case PROP_ZOOM_STEP:
    434458        g_value_set_float(value, priv->zoom_step);
     459        break;
     460    case PROP_ENABLE_DEVELOPER_EXTRAS:
     461        g_value_set_boolean(value, priv->enable_developer_extras);
    435462        break;
    436463    default:
     
    484511                 "user-stylesheet-uri", priv->user_stylesheet_uri,
    485512                 "zoom-step", priv->zoom_step,
     513                 "enable-developer-extras", priv->enable_developer_extras,
    486514                 NULL));
    487515
  • trunk/WebKit/gtk/webkit/webkitwebview.cpp

    r37903 r37982  
    2828#include "webkitmarshal.h"
    2929#include "webkitprivate.h"
     30#include "webkitwebinspector.h"
    3031#include "webkitwebbackforwardlist.h"
    3132#include "webkitwebhistoryitem.h"
     
    102103    PROP_EDITABLE,
    103104    PROP_SETTINGS,
     105    PROP_WEB_INSPECTOR,
    104106    PROP_TRANSPARENT,
    105107    PROP_ZOOM_LEVEL,
     
    240242    case PROP_SETTINGS:
    241243        g_value_set_object(value, webkit_web_view_get_settings(webView));
     244        break;
     245    case PROP_WEB_INSPECTOR:
     246        g_value_set_object(value, webkit_web_view_get_inspector(webView));
    242247        break;
    243248    case PROP_TRANSPARENT:
     
    764769    g_signal_handlers_disconnect_by_func(priv->webSettings, (gpointer)webkit_web_view_settings_notify, webView);
    765770    g_object_unref(priv->webSettings);
     771    g_object_unref(priv->webInspector);
    766772    g_object_unref(priv->mainFrame);
    767773    g_object_unref(priv->imContext);
     
    12661272                                                        WEBKIT_PARAM_READWRITE));
    12671273
     1274    /**
     1275    * WebKitWebView:web-inspector:
     1276    *
     1277    * The associated WebKitWebInspector instance.
     1278    *
     1279    * Since: 1.0.2
     1280    */
     1281    g_object_class_install_property(objectClass, PROP_WEB_INSPECTOR,
     1282                                    g_param_spec_object("web-inspector",
     1283                                                        "Web Inspector",
     1284                                                        "The associated WebKitWebInspector instance",
     1285                                                        WEBKIT_TYPE_WEB_INSPECTOR,
     1286                                                        WEBKIT_PARAM_READABLE));
     1287
    12681288    g_object_class_install_property(objectClass, PROP_EDITABLE,
    12691289                                    g_param_spec_boolean("editable",
     
    13521372
    13531373    gchar* defaultEncoding, *cursiveFontFamily, *defaultFontFamily, *fantasyFontFamily, *monospaceFontFamily, *sansSerifFontFamily, *serifFontFamily, *userStylesheetUri;
    1354     gboolean autoLoadImages, autoShrinkImages, printBackgrounds, enableScripts, enablePlugins, resizableTextAreas;
     1374    gboolean autoLoadImages, autoShrinkImages, printBackgrounds, enableScripts, enablePlugins, enableDeveloperExtras, resizableTextAreas;
    13551375
    13561376    g_object_get(G_OBJECT(webSettings),
     
    13691389                 "resizable-text-areas", &resizableTextAreas,
    13701390                 "user-stylesheet-uri", &userStylesheetUri,
     1391                 "enable-developer-extras", &enableDeveloperExtras,
    13711392                 NULL);
    13721393
     
    13851406    settings->setTextAreasAreResizable(resizableTextAreas);
    13861407    settings->setUserStyleSheetLocation(KURL(userStylesheetUri));
     1408    settings->setDeveloperExtrasEnabled(enableDeveloperExtras);
    13871409
    13881410    g_free(defaultEncoding);
     
    14541476
    14551477    priv->imContext = gtk_im_multicontext_new();
    1456     priv->corePage = new Page(new WebKit::ChromeClient(webView), new WebKit::ContextMenuClient(webView), new WebKit::EditorClient(webView), new WebKit::DragClient, new WebKit::InspectorClient);
     1478
     1479    WebKit::InspectorClient* inspectorClient = new WebKit::InspectorClient(webView);
     1480    priv->corePage = new Page(new WebKit::ChromeClient(webView), new WebKit::ContextMenuClient(webView), new WebKit::EditorClient(webView), new WebKit::DragClient, inspectorClient);
     1481
     1482    // We also add a simple wrapper class to provide the public
     1483    // interface for the Web Inspector.
     1484    priv->webInspector = WEBKIT_WEB_INSPECTOR(g_object_new(WEBKIT_TYPE_WEB_INSPECTOR, NULL));
     1485    webkit_web_inspector_set_inspector_client(priv->webInspector, inspectorClient);
    14571486
    14581487    priv->horizontalAdjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
     
    15301559
    15311560/**
     1561 * webkit_web_view_get_inspector:
     1562 * @webView: a #WebKitWebView
     1563 *
     1564 * Obtains the #WebKitWebInspector associated with the
     1565 * #WebKitWebView. Every #WebKitWebView object has a
     1566 * #WebKitWebInspector object attached to it as soon as it is created,
     1567 * so this function will only return NULL if the argument is not a
     1568 * valid #WebKitWebView.
     1569 *
     1570 * Returns: the #WebKitWebInspector instance associated with the
     1571 * #WebKitWebView; %NULL is only returned if the argument is not a
     1572 * valid #WebKitWebView.
     1573 *
     1574 * Since: 1.0.2
     1575 */
     1576WebKitWebInspector* webkit_web_view_get_inspector(WebKitWebView* webView)
     1577{
     1578    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
     1579
     1580    WebKitWebViewPrivate* priv = webView->priv;
     1581    return priv->webInspector;
     1582}
     1583
     1584/**
    15321585 * webkit_web_view_set_maintains_back_forward_list:
    15331586 * @webView: a #WebKitWebView
  • trunk/WebKit/gtk/webkit/webkitwebview.h

    r34477 r37982  
    248248webkit_web_view_get_settings                    (WebKitWebView        *web_view);
    249249
     250WEBKIT_API WebKitWebInspector *
     251webkit_web_view_get_inspector                   (WebKitWebView        *web_view);
     252
    250253WEBKIT_API gboolean
    251254webkit_web_view_get_transparent                 (WebKitWebView        *web_view);
Note: See TracChangeset for help on using the changeset viewer.