Changeset 214215 in webkit


Ignore:
Timestamp:
Mar 21, 2017 2:11:05 AM (7 years ago)
Author:
commit-queue@webkit.org
Message:

[GTK] Add function webkit_dom_element_get_bounding_client_rect
https://bugs.webkit.org/show_bug.cgi?id=163892

Patch by Aidan Holm <aidanholm+webkit@gmail.com> on 2017-03-21
Reviewed by Carlos Garcia Campos.

Wrap WebCore::ClientRect as WebKitDOMClientRect.
Wrap WebCore::ClientRectList as WebKitDOMClientRectList.
Implement webkit_dom_element_get_bounding_client_rect().
Implement webkit_dom_element_get_client_rects().

  • PlatformGTK.cmake:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp: Added.
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp: Added.

(WebKit::kit):
(WebKit::core):
(WebKit::wrapClientRect):
(webkit_dom_client_rect_finalize):
(webkit_dom_client_rect_get_property):
(webkit_dom_client_rect_constructed):
(webkit_dom_client_rect_class_init):
(webkit_dom_client_rect_init):
(webkit_dom_client_rect_get_top):
(webkit_dom_client_rect_get_right):
(webkit_dom_client_rect_get_bottom):
(webkit_dom_client_rect_get_left):
(webkit_dom_client_rect_get_width):
(webkit_dom_client_rect_get_height):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.h: Added.
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectPrivate.h: Added.
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h: Added.
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectListPrivate.h: Added.
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:

(webkit_dom_element_get_property):
(webkit_dom_element_class_init):
(webkit_dom_element_get_scroll_height):
(webkit_dom_element_get_bounding_client_rect):
(webkit_dom_element_get_client_rects):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp:

(WebKit::wrap):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
  • WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h:
Location:
trunk
Files:
8 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r214201 r214215  
     12017-03-21  Aidan Holm  <aidanholm+webkit@gmail.com>
     2
     3        [GTK] Add function webkit_dom_element_get_bounding_client_rect
     4        https://bugs.webkit.org/show_bug.cgi?id=163892
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        Wrap WebCore::ClientRect as WebKitDOMClientRect.
     9        Wrap WebCore::ClientRectList as WebKitDOMClientRectList.
     10        Implement webkit_dom_element_get_bounding_client_rect().
     11        Implement webkit_dom_element_get_client_rects().
     12
     13        * PlatformGTK.cmake:
     14        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp: Added.
     15        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp: Added.
     16        (WebKit::kit):
     17        (WebKit::core):
     18        (WebKit::wrapClientRect):
     19        (webkit_dom_client_rect_finalize):
     20        (webkit_dom_client_rect_get_property):
     21        (webkit_dom_client_rect_constructed):
     22        (webkit_dom_client_rect_class_init):
     23        (webkit_dom_client_rect_init):
     24        (webkit_dom_client_rect_get_top):
     25        (webkit_dom_client_rect_get_right):
     26        (webkit_dom_client_rect_get_bottom):
     27        (webkit_dom_client_rect_get_left):
     28        (webkit_dom_client_rect_get_width):
     29        (webkit_dom_client_rect_get_height):
     30        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.h: Added.
     31        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectPrivate.h: Added.
     32        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h: Added.
     33        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectListPrivate.h: Added.
     34        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:
     35        (webkit_dom_element_get_property):
     36        (webkit_dom_element_class_init):
     37        (webkit_dom_element_get_scroll_height):
     38        (webkit_dom_element_get_bounding_client_rect):
     39        (webkit_dom_element_get_client_rects):
     40        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h:
     41        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp:
     42        (WebKit::wrap):
     43        * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h:
     44        * WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
     45        * WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h:
     46        * WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups.h:
     47        * WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h:
     48
    1492017-03-20  Alex Christensen  <achristensen@webkit.org>
    250
  • trunk/Source/WebKit2/PlatformGTK.cmake

    r213844 r214215  
    360360    WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp
    361361    WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp
     362    WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp
     363    WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp
    362364    WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp
    363365    WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp
     
    605607    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h
    606608    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h
     609    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.h
     610    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h
    607611    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h
    608612    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h
     
    716720    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h
    717721    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h
     722    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.h
     723    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h
    718724    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h
    719725    ${WEBKIT2_DIR}/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp

    r208476 r214215  
    2323#include <WebCore/CSSImportRule.h>
    2424#include "DOMObjectCache.h"
     25#include <WebCore/ClientRect.h>
     26#include <WebCore/ClientRectList.h>
    2527#include <WebCore/Document.h>
    2628#include <WebCore/ExceptionCode.h>
     
    3133#include "WebKitDOMAttrPrivate.h"
    3234#include "WebKitDOMCSSStyleDeclarationPrivate.h"
     35#include "WebKitDOMClientRectListPrivate.h"
     36#include "WebKitDOMClientRectPrivate.h"
    3337#include "WebKitDOMDOMTokenListPrivate.h"
    3438#include "WebKitDOMElementPrivate.h"
     
    12221226}
    12231227
     1228WebKitDOMClientRect* webkit_dom_element_get_bounding_client_rect(WebKitDOMElement* self)
     1229{
     1230    WebCore::JSMainThreadNullState state;
     1231    g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), nullptr);
     1232    WebCore::Element* item = WebKit::core(self);
     1233    auto clientRect = item->getBoundingClientRect();
     1234    return WebKit::kit(clientRect.ptr());
     1235}
     1236
     1237WebKitDOMClientRectList* webkit_dom_element_get_client_rects(WebKitDOMElement* self)
     1238{
     1239    WebCore::JSMainThreadNullState state;
     1240    g_return_val_if_fail(WEBKIT_DOM_IS_ELEMENT(self), nullptr);
     1241    WebCore::Element* item = WebKit::core(self);
     1242    auto clientRects = item->getClientRects();
     1243    return WebKit::kit(clientRects.ptr());
     1244}
     1245
    12241246WebKitDOMElement* webkit_dom_element_get_offset_parent(WebKitDOMElement* self)
    12251247{
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h

    r207735 r214215  
    517517
    518518/**
     519 * webkit_dom_element_get_bounding_client_rect:
     520 * @self: A #WebKitDOMElement
     521 *
     522 * Returns a #WebKitDOMClientRect representing the size and position of @self
     523 * relative to the viewport.
     524 *
     525 * Returns: (transfer full): A #WebKitDOMClientRect
     526 *
     527 * Since: 2.18
     528**/
     529WEBKIT_API WebKitDOMClientRect*
     530webkit_dom_element_get_bounding_client_rect(WebKitDOMElement* self);
     531
     532/**
     533 * webkit_dom_element_get_client_rects:
     534 * @self: A #WebKitDOMElement
     535 *
     536 * Returns a collection of #WebKitDOMClientRect objects, each of which describe
     537 * the size and position of a CSS border box relative to the viewport.
     538 *
     539 * Returns: (transfer full): A #WebKitDOMClientRectList
     540 *
     541 * Since: 2.18
     542**/
     543WEBKIT_API WebKitDOMClientRectList*
     544webkit_dom_element_get_client_rects(WebKitDOMElement* self);
     545
     546/**
    519547 * webkit_dom_element_get_offset_parent:
    520548 * @self: A #WebKitDOMElement
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt

    r206906 r214215  
    648648webkit_dom_element_get_scroll_width
    649649webkit_dom_element_get_scroll_height
     650webkit_dom_element_get_bounding_client_rect
     651webkit_dom_element_get_client_rects
    650652webkit_dom_element_get_offset_parent
    651653webkit_dom_element_get_inner_html
     
    32023204</SECTION>
    32033205
     3206<SECTION>
     3207<FILE>WebKitDOMClientRect</FILE>
     3208<TITLE>WebKitDOMClientRect</TITLE>
     3209WebKitDOMClientRect
     3210
     3211webkit_dom_client_rect_get_top
     3212webkit_dom_client_rect_get_right
     3213webkit_dom_client_rect_get_bottom
     3214webkit_dom_client_rect_get_left
     3215webkit_dom_client_rect_get_width
     3216webkit_dom_client_rect_get_height
     3217
     3218<SUBSECTION Standard>
     3219WebKitDOMClientRectClass
     3220WEBKIT_DOM_TYPE_CLIENT_RECT
     3221WEBKIT_DOM_CLIENT_RECT
     3222WEBKIT_DOM_IS_CLIENT_RECT
     3223WEBKIT_DOM_CLIENT_RECT_CLASS
     3224WEBKIT_DOM_IS_CLIENT_RECT_CLASS
     3225WEBKIT_DOM_CLIENT_RECT_GET_CLASS
     3226
     3227<SUBSECTION Private>
     3228webkit_dom_client_rect_get_type
     3229</SECTION>
     3230
     3231<SECTION>
     3232<FILE>WebKitDOMClientRectList</FILE>
     3233<TITLE>WebKitDOMClientRectList</TITLE>
     3234WebKitDOMClientRectList
     3235
     3236webkit_dom_client_rect_list_item
     3237webkit_dom_client_rect_list_get_length
     3238
     3239<SUBSECTION Standard>
     3240WebKitDOMClientRectClass
     3241WEBKIT_DOM_TYPE_CLIENT_RECT_LIST
     3242WEBKIT_DOM_CLIENT_RECT_LIST
     3243WEBKIT_DOM_IS_CLIENT_RECT_LIST
     3244WEBKIT_DOM_CLIENT_RECT_LIST_CLASS
     3245WEBKIT_DOM_IS_CLIENT_RECT_LIST_CLASS
     3246WEBKIT_DOM_CLIENT_RECT_LIST_GET_CLASS
     3247
     3248<SUBSECTION Private>
     3249webkit_dom_client_rect_list_get_type
     3250</SECTION>
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h

    r208035 r214215  
    3131#include <webkitdom/WebKitDOMCSSValue.h>
    3232#include <webkitdom/WebKitDOMCharacterData.h>
     33#include <webkitdom/WebKitDOMClientRect.h>
     34#include <webkitdom/WebKitDOMClientRectList.h>
    3335#include <webkitdom/WebKitDOMComment.h>
    3436#include <webkitdom/WebKitDOMCustom.h>
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups.h

    r207735 r214215  
    3434G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCSSValue, g_object_unref)
    3535G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMCharacterData, g_object_unref)
     36G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMClientRect, g_object_unref)
     37G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMClientRectList, g_object_unref)
    3638G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMComment, g_object_unref)
    3739G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitDOMDOMImplementation, g_object_unref)
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h

    r207735 r214215  
    6565typedef struct _WebKitDOMCharacterDataClass WebKitDOMCharacterDataClass;
    6666
     67typedef struct _WebKitDOMClientRect WebKitDOMClientRect;
     68typedef struct _WebKitDOMClientRectClass WebKitDOMClientRectClass;
     69
     70typedef struct _WebKitDOMClientRectList WebKitDOMClientRectList;
     71typedef struct _WebKitDOMClientRectListClass WebKitDOMClientRectListClass;
     72
    6773typedef struct _WebKitDOMComment WebKitDOMComment;
    6874typedef struct _WebKitDOMCommentClass WebKitDOMCommentClass;
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt

    r211079 r214215  
    9494
    9595ADD_WK2_TEST_WEB_EXTENSION(WebExtensionTest WebExtensionTest.cpp)
    96 ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest AutocleanupsTest.cpp DOMNodeTest.cpp DOMNodeFilterTest.cpp DOMXPathNSResolverTest.cpp FrameTest.cpp WebProcessTest.cpp EditorTest.cpp)
     96ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest AutocleanupsTest.cpp DOMClientRectTest.cpp DOMNodeTest.cpp DOMNodeFilterTest.cpp DOMXPathNSResolverTest.cpp FrameTest.cpp WebProcessTest.cpp EditorTest.cpp)
    9797
    9898ADD_WK2_TEST(InspectorTestServer InspectorTestServer.cpp)
     
    102102ADD_WK2_TEST(TestContextMenu TestContextMenu.cpp)
    103103ADD_WK2_TEST(TestCookieManager TestCookieManager.cpp)
     104ADD_WK2_TEST(TestDOMClientRect TestDOMClientRect.cpp)
    104105ADD_WK2_TEST(TestDOMNode TestDOMNode.cpp)
    105106ADD_WK2_TEST(TestDOMNodeFilter TestDOMNodeFilter.cpp)
Note: See TracChangeset for help on using the changeset viewer.