Changeset 187024 in webkit


Ignore:
Timestamp:
Jul 20, 2015 10:42:01 AM (9 years ago)
Author:
commit-queue@webkit.org
Message:

[GTK] Add selection-changed signal to the WebKit2 API
https://bugs.webkit.org/show_bug.cgi?id=137116

Patch by Tomas Popela <tpopela@redhat.com> on 2015-07-20
Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Add a new object WebKitWebEditor where the editing capabilities of a
WebPage will be grouped and exposed. Add the selection-changed signal
there (we used the same name as in WK1 API).

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp: Added.

(didChangeSelection):
(webkitWebEditorCreate):
(webkit_web_editor_get_page):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h: Added.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h: Added.
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(webkitWebPageGetPage):
(webkit_web_page_get_editor):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h:
  • WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:

Tools:

Add a new WebProcess test TestEditor that is testing the WebKitWebEditor
(namely the selection-changed signal).

  • TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
  • TestWebKitAPI/Tests/WebKit2Gtk/EditorTest.cpp: Added.

(WebKitWebEditorTest::create):
(WebKitWebEditorTest::selectionChangedCallback):
(WebKitWebEditorTest::testSelectionSelectAll):
(WebKitWebEditorTest::testSelectionCollapse):
(WebKitWebEditorTest::testSelectionModifyMove):
(WebKitWebEditorTest::testSelectionModifyExtend):
(WebKitWebEditorTest::testSelectionUnselect):
(registerTests):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestEditor.cpp: Added.

(testWebKitWebEditorSelectionChanged):
(beforeAll):
(afterAll):

Location:
trunk
Files:
3 added
9 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r187023 r187024  
     12015-07-20  Tomas Popela  <tpopela@redhat.com>
     2
     3        [GTK] Add selection-changed signal to the WebKit2 API
     4        https://bugs.webkit.org/show_bug.cgi?id=137116
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Add a new object WebKitWebEditor where the editing capabilities of a
     9        WebPage will be grouped and exposed. Add the selection-changed signal
     10        there (we used the same name as in WK1 API).
     11
     12        * PlatformGTK.cmake:
     13        * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
     14        * WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp: Added.
     15        (didChangeSelection):
     16        (webkitWebEditorCreate):
     17        (webkit_web_editor_get_page):
     18        * WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h: Added.
     19        * WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h: Added.
     20        * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:
     21        (webkitWebPageGetPage):
     22        (webkit_web_page_get_editor):
     23        * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h:
     24        * WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h:
     25        * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:
     26
    1272015-07-16  Anders Carlsson  <andersca@apple.com>
    228
  • trunk/Source/WebKit2/PlatformGTK.cmake

    r187011 r187024  
    315315    WebProcess/InjectedBundle/API/gtk/WebKitFrame.cpp
    316316    WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.cpp
     317    WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.cpp
    317318    WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.cpp
    318319    WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.cpp
     
    419420    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/WebKitFrame.h
    420421    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.h
     422    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/WebKitWebEditor.h
    421423    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/WebKitWebExtension.h
    422424    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/WebKitWebHitTestResult.h
  • trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt

    r185950 r187024  
    12031203webkit_web_page_get_uri
    12041204webkit_web_page_get_main_frame
     1205webkit_web_page_get_editor
    12051206
    12061207<SUBSECTION Standard>
     
    12191220
    12201221<SECTION>
     1222<FILE>WebKitWebEditor</FILE>
     1223WebKitWebEditor
     1224webkit_web_editor_get_page
     1225
     1226<SUBSECTION Standard>
     1227WebKitWebEditorClass
     1228WEBKIT_TYPE_WEB_EDITOR
     1229WEBKIT_WEB_EDITOR
     1230WEBKIT_IS_WEB_EDITOR
     1231WEBKIT_WEB_EDITOR_CLASS
     1232WEBKIT_IS_WEB_EDITOR_CLASS
     1233WEBKIT_WEB_EDITOR_GET_CLASS
     1234
     1235<SUBSECTION Private>
     1236WebKitWebEditorPrivate
     1237webkit_web_editor_get_type
     1238</SECTION>
     1239
     1240<SECTION>
    12211241<FILE>WebKitFrame</FILE>
    12221242WebKitFrame
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebEditorPrivate.h

    r187023 r187024  
    11/*
    2  * Copyright (C) 2012 Igalia S.L.
     2 * Copyright (C) 2015 Red Hat Inc.
    33 *
    44 * This library is free software; you can redistribute it and/or
     
    1818 */
    1919
    20 #ifndef WebKitWebPagePrivate_h
    21 #define WebKitWebPagePrivate_h
     20#ifndef WebKitWebEditorPrivate_h
     21#define WebKitWebEditorPrivate_h
    2222
    23 #include "APIDictionary.h"
     23#include "WebKitWebEditor.h"
    2424#include "WebKitWebPage.h"
    25 #include "WebPage.h"
    2625
    27 WebKitWebPage* webkitWebPageCreate(WebKit::WebPage*);
    28 void webkitWebPageDidReceiveMessage(WebKitWebPage*, const String& messageName, API::Dictionary& message);
     26WebKitWebEditor* webkitWebEditorCreate(WebKitWebPage*);
    2927
    30 #endif // WebKitWebPagePrivate_h
     28#endif // WebKitWebEditor_h
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp

    r183462 r187024  
    3737#include "WebKitURIRequestPrivate.h"
    3838#include "WebKitURIResponsePrivate.h"
     39#include "WebKitWebEditorPrivate.h"
    3940#include "WebKitWebHitTestResultPrivate.h"
    4041#include "WebKitWebPagePrivate.h"
     
    7172
    7273    CString uri;
     74
     75    GRefPtr<WebKitWebEditor> webEditor;
    7376};
    7477
     
    393396        WEBKIT_TYPE_CONTEXT_MENU,
    394397        WEBKIT_TYPE_WEB_HIT_TEST_RESULT);
     398}
     399
     400WebPage* webkitWebPageGetPage(WebKitWebPage *webPage)
     401{
     402    return webPage->priv->webPage;
    395403}
    396404
     
    576584    return webkitFrameGetOrCreate(webPage->priv->webPage->mainWebFrame());
    577585}
     586
     587/**
     588 * webkit_web_page_get_editor:
     589 * @web_page: a #WebKitWebPage
     590 *
     591 * Gets the #WebKitWebEditor of a #WebKitWebPage.
     592 *
     593 * Returns: (transfer none): the #WebKitWebEditor
     594 *
     595 * Since: 2.10
     596 */
     597WebKitWebEditor* webkit_web_page_get_editor(WebKitWebPage* webPage)
     598{
     599    g_return_val_if_fail(WEBKIT_IS_WEB_PAGE(webPage), nullptr);
     600
     601    if (!webPage->priv->webEditor)
     602        webPage->priv->webEditor = adoptGRef(webkitWebEditorCreate(webPage));
     603
     604    return webPage->priv->webEditor.get();
     605}
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h

    r154540 r187024  
    2828#include <webkit2/WebKitDefines.h>
    2929#include <webkit2/WebKitFrame.h>
     30#include <webkit2/WebKitWebEditor.h>
    3031#include <webkitdom/webkitdom.h>
    3132
     
    4243typedef struct _WebKitWebPageClass   WebKitWebPageClass;
    4344typedef struct _WebKitWebPagePrivate WebKitWebPagePrivate;
     45
     46/* Forward declarations */
     47typedef struct _WebKitWebEditor      WebKitWebEditor;
    4448
    4549struct _WebKitWebPage {
     
    6872webkit_web_page_get_main_frame   (WebKitWebPage *web_page);
    6973
     74WEBKIT_API WebKitWebEditor *
     75webkit_web_page_get_editor       (WebKitWebPage *web_page);
     76
    7077G_END_DECLS
    7178
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/WebKitWebPagePrivate.h

    r177721 r187024  
    2727WebKitWebPage* webkitWebPageCreate(WebKit::WebPage*);
    2828void webkitWebPageDidReceiveMessage(WebKitWebPage*, const String& messageName, API::Dictionary& message);
     29WebKit::WebPage* webkitWebPageGetPage(WebKitWebPage*);
    2930
    3031#endif // WebKitWebPagePrivate_h
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h

    r175694 r187024  
    3535#include <webkit2/WebKitURIResponse.h>
    3636#include <webkit2/WebKitVersion.h>
     37#include <webkit2/WebKitWebEditor.h>
    3738#include <webkit2/WebKitWebExtension.h>
    3839#include <webkit2/WebKitWebHitTestResult.h>
  • trunk/Tools/ChangeLog

    r187022 r187024  
     12015-07-20  Tomas Popela  <tpopela@redhat.com>
     2
     3        [GTK] Add selection-changed signal to the WebKit2 API
     4        https://bugs.webkit.org/show_bug.cgi?id=137116
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Add a new WebProcess test TestEditor that is testing the WebKitWebEditor
     9        (namely the selection-changed signal).
     10
     11        * TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
     12        * TestWebKitAPI/Tests/WebKit2Gtk/EditorTest.cpp: Added.
     13        (WebKitWebEditorTest::create):
     14        (WebKitWebEditorTest::selectionChangedCallback):
     15        (WebKitWebEditorTest::testSelectionSelectAll):
     16        (WebKitWebEditorTest::testSelectionCollapse):
     17        (WebKitWebEditorTest::testSelectionModifyMove):
     18        (WebKitWebEditorTest::testSelectionModifyExtend):
     19        (WebKitWebEditorTest::testSelectionUnselect):
     20        (registerTests):
     21        * TestWebKitAPI/Tests/WebKit2Gtk/TestEditor.cpp: Added.
     22        (testWebKitWebEditorSelectionChanged):
     23        (beforeAll):
     24        (afterAll):
     25
    1262015-07-20  Alex Christensen  <achristensen@webkit.org>
    227
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt

    r185806 r187024  
    9090
    9191ADD_WK2_TEST_WEB_EXTENSION(WebExtensionTest WebExtensionTest.cpp)
    92 ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest DOMNodeTest.cpp DOMNodeFilterTest.cpp DOMXPathNSResolverTest.cpp FrameTest.cpp WebProcessTest.cpp)
     92ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest DOMNodeTest.cpp DOMNodeFilterTest.cpp DOMXPathNSResolverTest.cpp FrameTest.cpp WebProcessTest.cpp EditorTest.cpp)
    9393
    9494ADD_WK2_TEST(InspectorTestServer InspectorTestServer.cpp)
     
    120120ADD_WK2_TEST(TestWebKitWebView TestWebKitWebView.cpp)
    121121ADD_WK2_TEST(TestWebKitUserContentManager TestWebKitUserContentManager.cpp)
     122ADD_WK2_TEST(TestEditor TestEditor.cpp)
    122123
    123124if (ATSPI_FOUND)
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestEditor.cpp

    r187023 r187024  
    11/*
    2  * Copyright (C) 2012 Igalia S.L.
     2 * Copyright (C) 2015 Red Hat Inc.
    33 *
    44 * This library is free software; you can redistribute it and/or
     
    1818 */
    1919
    20 #ifdef __WEBKIT_2_H__
    21 #error "Headers <webkit2/webkit2.h> and <webkit2/webkit-web-extension.h> cannot be included together."
    22 #endif
     20#include "config.h"
    2321
    24 #ifndef __WEBKIT_WEB_EXTENSION_H__
    25 #define __WEBKIT_WEB_EXTENSION_H__
     22#include "WebViewTest.h"
     23#include <gtk/gtk.h>
     24#include <webkit2/webkit2.h>
    2625
    27 #define __WEBKIT_WEB_EXTENSION_H_INSIDE__
     26static void testWebKitWebEditorSelectionChanged(WebViewTest* test, gconstpointer)
     27{
     28    static const gchar* testHTML = "<html><body>All work and no play make Jack a dull boy.</body></html>";
     29    test->loadHtml(testHTML, nullptr);
     30    test->waitUntilLoadFinished();
    2831
    29 #include <webkit2/WebKitContextMenu.h>
    30 #include <webkit2/WebKitContextMenuActions.h>
    31 #include <webkit2/WebKitContextMenuItem.h>
    32 #include <webkit2/WebKitFrame.h>
    33 #include <webkit2/WebKitScriptWorld.h>
    34 #include <webkit2/WebKitURIRequest.h>
    35 #include <webkit2/WebKitURIResponse.h>
    36 #include <webkit2/WebKitVersion.h>
    37 #include <webkit2/WebKitWebExtension.h>
    38 #include <webkit2/WebKitWebHitTestResult.h>
    39 #include <webkit2/WebKitWebPage.h>
     32    g_assert(test->runWebProcessTest("WebKitWebEditor", "selection-changed"));
     33}
    4034
    41 #undef __WEBKIT_WEB_EXTENSION_H_INSIDE__
     35void beforeAll()
     36{
     37    WebViewTest::add("WebKitWebEditor", "selection-changed", testWebKitWebEditorSelectionChanged);
     38}
    4239
    43 #endif
     40void afterAll()
     41{
     42}
Note: See TracChangeset for help on using the changeset viewer.