Source/WebKit2/ChangeLog

 12012-10-09 Seokju Kwon <seokju.kwon@samsung.com>
 2
 3 [EFL][WK2] Add support for Inspector
 4 https://bugs.webkit.org/show_bug.cgi?id=98639
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Support inspector on WebKit2/Efl and add APIs to show and close the inspector.
 9
 10 * UIProcess/API/efl/ewk_view.cpp:
 11 (ewk_view_inspector_show):
 12 (ewk_view_inspector_close):
 13 * UIProcess/API/efl/ewk_view.h:
 14 * UIProcess/WebInspectorProxy.h:
 15 (WebInspectorProxy):
 16 * UIProcess/efl/WebInspectorProxyEfl.cpp:
 17 (WebKit::resizeInspectorWindow):
 18 (WebKit):
 19 (WebKit::destoryInspectorWindow):
 20 (WebKit::closeInspectorWindow):
 21 (WebKit::WebInspectorProxy::createInspectorWindow):
 22 (WebKit::WebInspectorProxy::platformCreateInspectorPage):
 23 (WebKit::WebInspectorProxy::platformOpen):
 24 (WebKit::WebInspectorProxy::platformDidClose):
 25
1262012-10-08 Simon Fraser <simon.fraser@apple.com>
227
328 Try to fix Windows build by exporting Frame::layerTreeAsText().

Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

6464#include "WebFullScreenManagerProxy.h"
6565#endif
6666
 67#if ENABLE(INSPECTOR)
 68#include "WebInspectorProxy.h"
 69#endif
 70
6771#if USE(ACCELERATED_COMPOSITING)
6872#include <Evas_GL.h>
6973#endif

@@Eina_Bool ewk_view_touch_events_enabled_get(const Evas_Object* ewkView)
19011905 return false;
19021906#endif
19031907}
 1908
 1909void ewk_view_inspector_show(Evas_Object* ewkView)
 1910{
 1911#if ENABLE(INSPECTOR)
 1912 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
 1913 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
 1914
 1915 WebInspectorProxy* inspector = priv->pageProxy->inspector();
 1916 if (inspector)
 1917 inspector->show();
 1918#endif
 1919}
 1920
 1921void ewk_view_inspector_close(Evas_Object* ewkView)
 1922{
 1923#if ENABLE(INSPECTOR)
 1924 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData);
 1925 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv);
 1926
 1927 WebInspectorProxy* inspector = priv->pageProxy->inspector();
 1928 if (inspector)
 1929 inspector->close();
 1930#endif
 1931}

Source/WebKit2/UIProcess/API/efl/ewk_view.h

@@EAPI Eina_Bool ewk_view_touch_events_enabled_set(Evas_Object *o, Eina_Bool enabl
757757 */
758758EAPI Eina_Bool ewk_view_touch_events_enabled_get(const Evas_Object *o);
759759
 760/**
 761 * Show the inspector to debug a web page.
 762 *
 763 * @param o The view to show the inspector.
 764 *
 765 * @see ewk_view_inspector_close()
 766 */
 767EAPI void ewk_view_inspector_show(Evas_Object *o);
 768
 769/**
 770 * Close the inspector
 771 *
 772 * @param o The view to close the inspector.
 773 *
 774 * @see ewk_view_inspector_show()
 775 */
 776EAPI void ewk_view_inspector_close(Evas_Object *o);
 777
760778#ifdef __cplusplus
761779}
762780#endif

Source/WebKit2/UIProcess/WebInspectorProxy.h

@@private:
189189 virtual void windowReceivedMessage(HWND, UINT message, WPARAM, LPARAM);
190190#endif
191191
192 #if PLATFORM(GTK)
 192#if PLATFORM(GTK) || PLATFORM(EFL)
193193 void createInspectorWindow();
194194#endif
195195

Source/WebKit2/UIProcess/efl/WebInspectorProxyEfl.cpp

2929#if ENABLE(INSPECTOR)
3030
3131#include "WebProcessProxy.h"
 32#include "ewk_settings.h"
3233#include "ewk_view.h"
3334#include "ewk_view_private.h"
3435#include <WebCore/NotImplemented.h>

3839
3940namespace WebKit {
4041
 42static void resizeInspectorWindow(Ecore_Evas* inspectorWindow)
 43{
 44 int width, height;
 45 ecore_evas_geometry_get(inspectorWindow, 0, 0, &width, &height);
 46
 47 Evas_Object* inspectorView = evas_object_name_find(ecore_evas_get(inspectorWindow), "inspector");
 48 if (inspectorView) {
 49 evas_object_move(inspectorView, 0, 0);
 50 evas_object_resize(inspectorView, width, height);
 51 }
 52}
 53
 54static void destoryInspectorWindow(Ecore_Evas* inspectorWindow)
 55{
 56 Evas_Object* inspectorView = evas_object_name_find(ecore_evas_get(inspectorWindow), "inspector");
 57 if (inspectorView)
 58 evas_object_smart_callback_call(inspectorView, "inspector,view,close", 0);
 59}
 60
 61static void closeInspectorWindow(void* userData, Evas_Object*, void*)
 62{
 63 WebInspectorProxy* inspectorProxy = static_cast<WebInspectorProxy*>(userData);
 64
 65 inspectorProxy->close();
 66}
 67
 68void WebInspectorProxy::createInspectorWindow()
 69{
 70 ecore_evas_title_set(m_inspectorWindow, "Web Inspector");
 71 ecore_evas_callback_resize_set(m_inspectorWindow, resizeInspectorWindow);
 72 ecore_evas_callback_delete_request_set(m_inspectorWindow, destoryInspectorWindow);
 73 ecore_evas_show(m_inspectorWindow);
 74
 75 evas_object_name_set(m_inspectorView, "inspector");
 76 evas_object_move(m_inspectorView, 0, 0);
 77 evas_object_resize(m_inspectorView, initialWindowWidth, initialWindowHeight);
 78 evas_object_show(m_inspectorView);
 79
 80 evas_object_focus_set(m_inspectorView, true);
 81}
 82
4183WebPageProxy* WebInspectorProxy::platformCreateInspectorPage()
4284{
4385 ASSERT(m_page);
4486
45  m_inspectorWindow = ecore_evas_buffer_new(initialWindowWidth, initialWindowHeight);
 87 m_inspectorWindow = ecore_evas_new(0, 0, 0, initialWindowWidth, initialWindowHeight, 0);
4688 if (!m_inspectorWindow)
4789 return 0;
4890
4991 m_inspectorView = ewk_view_base_add(ecore_evas_get(m_inspectorWindow), toAPI(page()->process()->context()), toAPI(inspectorPageGroup()));
5092 ewk_view_theme_set(m_inspectorView, TEST_THEME_DIR"/default.edj");
 93
 94 Ewk_Settings* settings = ewk_view_settings_get(m_inspectorView);
 95 ewk_settings_file_access_from_file_urls_allowed_set(settings, true);
 96
5197 return ewk_view_page_get(m_inspectorView);
5298}
5399
54100void WebInspectorProxy::platformOpen()
55101{
56  notImplemented();
 102 if (m_isAttached)
 103 platformAttach();
 104 else
 105 createInspectorWindow();
 106
 107 evas_object_smart_callback_add(m_inspectorView, "inspector,view,close", closeInspectorWindow, this);
57108}
58109
59110void WebInspectorProxy::platformDidClose()
60111{
61112 if (m_inspectorView) {
 113 evas_object_smart_callback_del(m_inspectorView, "inspector,view,close", closeInspectorWindow);
 114
62115 evas_object_del(m_inspectorView);
63116 m_inspectorView = 0;
64117 }

Tools/ChangeLog

 12012-10-09 Seokju Kwon <seokju.kwon@samsung.com>
 2
 3 [EFL][WK2] Add support for Inspector
 4 https://bugs.webkit.org/show_bug.cgi?id=98639
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Enable developer extensions when browser is created.
 9 And Inspector can be opened by pressing Ctrl+i on browser.
 10
 11 * MiniBrowser/efl/main.c:
 12 (on_key_down):
 13 (window_create):
 14
1152012-10-08 Dirk Pranke <dpranke@chromium.org>
216
317 results.html and garden-o-matic are ignoring IMAGE failures when expected to FAIL

Tools/MiniBrowser/efl/main.c

@@on_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
175175 info("Create new window (Ctrl+n) was pressed.\n");
176176 Browser_Window *window = window_create(DEFAULT_URL);
177177 windows = eina_list_append(windows, window);
 178 } else if (!strcmp(ev->key, "i") && ctrlPressed) {
 179 info("Show Inspector (Ctrl+i) was pressed.\n");
 180 ewk_view_inspector_show(obj);
178181 }
179182}
180183

@@static Browser_Window *window_create(const char *url)
348351
349352 Ewk_Settings *settings = ewk_view_settings_get(window->webview);
350353 ewk_settings_file_access_from_file_urls_allowed_set(settings, EINA_TRUE);
 354 ewk_settings_developer_extras_enabled_set(settings, EINA_TRUE);
351355
352356 evas_object_smart_callback_add(window->webview, "close,window", on_close_window, window);
353357 evas_object_smart_callback_add(window->webview, "create,window", on_new_window, window);