Changeset 85925 in webkit


Ignore:
Timestamp:
May 6, 2011 12:27:25 AM (13 years ago)
Author:
Philippe Normand
Message:

Tools:

2011-05-04 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

shadowPseudoId support in the various LayoutTestController
implementations.

  • DumpRenderTree/LayoutTestController.cpp: (shadowPseudoIdCallback): (LayoutTestController::staticFunctions):
  • DumpRenderTree/LayoutTestController.h:
  • DumpRenderTree/chromium/LayoutTestController.cpp: (LayoutTestController::LayoutTestController): (LayoutTestController::shadowPseudoId):
  • DumpRenderTree/chromium/LayoutTestController.h:
  • DumpRenderTree/gtk/LayoutTestControllerGtk.cpp: (LayoutTestController::shadowPseudoId):
  • DumpRenderTree/mac/LayoutTestControllerMac.mm: (LayoutTestController::shadowPseudoId):
  • DumpRenderTree/qt/LayoutTestControllerQt.cpp: (LayoutTestController::shadowPseudoId):
  • DumpRenderTree/qt/LayoutTestControllerQt.h:
  • DumpRenderTree/win/LayoutTestControllerWin.cpp: (LayoutTestController::shadowPseudoId):
  • DumpRenderTree/wx/LayoutTestControllerWx.cpp: (LayoutTestController::shadowPseudoId):
  • WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl:
  • WebKitTestRunner/InjectedBundle/LayoutTestController.cpp: (WTR::LayoutTestController::shadowPseudoId):
  • WebKitTestRunner/InjectedBundle/LayoutTestController.h:

WebKit2:

2011-05-05 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: (WKBundleNodeHandleShadowPseudoId):
  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: (WebKit::InjectedBundleNodeHandle::elementRemoveShadowRoot): (WebKit::InjectedBundleNodeHandle::elementShadowPseudoId):
  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:

WebKit/win:

2011-05-04 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

  • DOMCoreClasses.cpp: (DOMElement::shadowPseudoId):
  • DOMCoreClasses.h:

WebKit/qt:

2011-05-04 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

  • WebCoreSupport/DumpRenderTreeSupportQt.cpp: (DumpRenderTreeSupportQt::shadowPseudoId):
  • WebCoreSupport/DumpRenderTreeSupportQt.h:

WebKit/mac:

2011-05-04 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

  • DOM/WebDOMOperations.mm: (-[DOMElement _shadowPseudoId]):
  • DOM/WebDOMOperationsPrivate.h:

WebKit/gtk:

2011-05-04 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

  • WebCoreSupport/DumpRenderTreeSupportGtk.cpp: (DumpRenderTreeSupportGtk::shadowPseudoId):
  • WebCoreSupport/DumpRenderTreeSupportGtk.h:

WebKit/chromium:

2011-05-04 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

  • public/WebElement.h:
  • src/WebElement.cpp: (WebKit::WebElement::shadowPseudoId):

LayoutTests:

2011-05-04 Philippe Normand <pnormand@igalia.com>

Reviewed by Dimitri Glazkov.

Implement LayoutTestController::pseudoShadowId()
https://bugs.webkit.org/show_bug.cgi?id=60034

  • media/video-controls-transformed.html: Refactored to use the pseudoShadowId() LayoutTestController method.
Location:
trunk
Files:
38 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r85924 r85925  
     12011-05-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        * media/video-controls-transformed.html: Refactored to use the
     9        pseudoShadowId() LayoutTestController method.
     10
    1112011-05-06  MORITA Hajime  <morrita@google.com>
    212
  • trunk/LayoutTests/media/video-controls-transformed.html

    r85015 r85925  
    2020            if (window.eventSender) {
    2121                // Find the play button and click the middle of its bounding box.
    22                 // This approach hard-codes the construction order of the media
    23                 // controls, which is ugly, but sadly is also currently the only
    24                 // way to do it.
    25                 // http://bugs.webkit.org/show_bug.cgi?id=58584 is tracking fixing that.
    26                 var playButton = layoutTestController.shadowRoot(video).firstChild.firstChild.children[1];
     22                var playButton;
     23                var controlsShadow = layoutTestController.shadowRoot(video).firstChild.firstChild;
     24                for (child = controlsShadow.firstChild; child; child = child.nextSibling) {
     25                     if (layoutTestController.shadowPseudoId(child) == "-webkit-media-controls-play-button") {
     26                         playButton = child;
     27                         break;
     28                     }
     29                }
     30
    2731                if (!playButton) {
    2832                    failTest("Failed to find play/pause button.");
  • trunk/Source/WebKit/chromium/ChangeLog

    r85919 r85925  
     12011-05-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        * public/WebElement.h:
     9        * src/WebElement.cpp:
     10        (WebKit::WebElement::shadowPseudoId):
     11
    1122011-05-05  John Abd-El-Malek  <jam@chromium.org>
    213
  • trunk/Source/WebKit/chromium/public/WebElement.h

    r84472 r85925  
    6363        WEBKIT_API WebNode ensureShadowRoot();
    6464        WEBKIT_API void removeShadowRoot();
     65        WEBKIT_API WebString shadowPseudoId() const;
    6566
    6667        // Returns the language code specified for this element.  This attribute
  • trunk/Source/WebKit/chromium/src/WebElement.cpp

    r85644 r85925  
    107107}
    108108
     109WebString WebElement::shadowPseudoId() const
     110{
     111    return WebString(constUnwrap<Element>()->shadowPseudoId().string());
     112}
     113
    109114WebString WebElement::computeInheritedLanguage() const
    110115{
  • trunk/Source/WebKit/gtk/ChangeLog

    r85868 r85925  
     12011-05-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
     9        (DumpRenderTreeSupportGtk::shadowPseudoId):
     10        * WebCoreSupport/DumpRenderTreeSupportGtk.h:
     11
    1122011-05-05  Bharathwaaj Srinivasan  <bharathwaaj.s@gmail.com>
    213
  • trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp

    r85644 r85925  
    417417}
    418418
     419CString DumpRenderTreeSupportGtk::shadowPseudoId(JSContextRef context, JSValueRef nodeObject)
     420{
     421    JSC::ExecState* exec = toJS(context);
     422    Element* element = toElement(toJS(exec, nodeObject));
     423    if (!element)
     424        return CString();
     425
     426    return element->shadowPseudoId().string().utf8();
     427}
     428
    419429unsigned int DumpRenderTreeSupportGtk::numberOfActiveAnimations(WebKitWebFrame* frame)
    420430{
  • trunk/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h

    r84637 r85925  
    8282    static bool pauseSVGAnimation(WebKitWebFrame*, const char* animationId, double time, const char* elementId);
    8383    static WTF::CString markerTextForListItem(WebKitWebFrame*, JSContextRef, JSValueRef nodeObject);
     84    static WTF::CString shadowPseudoId(JSContextRef, JSValueRef nodeObject);
    8485    static unsigned int numberOfActiveAnimations(WebKitWebFrame*);
    8586    static void suspendAnimations(WebKitWebFrame*);
  • trunk/Source/WebKit/mac/ChangeLog

    r85901 r85925  
     12011-05-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        * DOM/WebDOMOperations.mm:
     9        (-[DOMElement _shadowPseudoId]):
     10        * DOM/WebDOMOperationsPrivate.h:
     11
    1122011-05-05  Dan Bernstein  <mitz@apple.com>
    213
  • trunk/Source/WebKit/mac/DOM/WebDOMOperations.mm

    r85644 r85925  
    7676}
    7777
     78- (NSString *)_shadowPseudoId
     79{
     80    return core(self)->shadowPseudoId();
     81}
     82
    7883- (JSValueRef)_shadowRoot:(JSContextRef)context
    7984{
  • trunk/Source/WebKit/mac/DOM/WebDOMOperationsPrivate.h

    r84472 r85925  
    3636- (JSValueRef)_ensureShadowRoot:(JSContextRef)context;
    3737- (void)_removeShadowRoot;
     38- (NSString *)_shadowPseudoId;
    3839@end
    3940
  • trunk/Source/WebKit/qt/ChangeLog

    r85870 r85925  
     12011-05-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
     9        (DumpRenderTreeSupportQt::shadowPseudoId):
     10        * WebCoreSupport/DumpRenderTreeSupportQt.h:
     11
    1122011-05-05  Prasanth Ullattil  <prasanth.ullattil@nokia.com>
    213
  • trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp

    r85851 r85925  
    11101110}
    11111111
     1112QString DumpRenderTreeSupportQt::shadowPseudoId(const QWebElement& element)
     1113{
     1114    WebCore::Element* webElement = element.m_element;
     1115    QString pseudoId;
     1116    if (webElement)
     1117        pseudoId = webElement->shadowPseudoId().string();
     1118    return pseudoId;
     1119}
     1120
    11121121// Provide a backward compatibility with previously exported private symbols as of QtWebKit 4.6 release
    11131122
  • trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h

    r84906 r85925  
    206206    static QVariant ensureShadowRoot(const QWebElement&);
    207207    static void removeShadowRoot(const QWebElement&);
     208    static QString shadowPseudoId(const QWebElement&);
    208209};
    209210
  • trunk/Source/WebKit/win/ChangeLog

    r85864 r85925  
     12011-05-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        * DOMCoreClasses.cpp:
     9        (DOMElement::shadowPseudoId):
     10        * DOMCoreClasses.h:
     11
    1122011-05-05  Ryosuke Niwa  <rniwa@webkit.org>
    213
  • trunk/Source/WebKit/win/DOMCoreClasses.cpp

    r84146 r85925  
    11611161}
    11621162
     1163HRESULT STDMETHODCALLTYPE DOMElement::shadowPseudoId(
     1164    /* [retval][out] */ BSTR* result)
     1165{
     1166    if (!result)
     1167        return E_POINTER;
     1168
     1169    ASSERT(m_element);
     1170
     1171    *result = BString(m_element->shadowPseudoId().string()).release();
     1172    return S_OK;
     1173}
     1174
    11631175// IDOMElementCSSInlineStyle --------------------------------------------------
    11641176
  • trunk/Source/WebKit/win/DOMCoreClasses.h

    r63710 r85925  
    780780        /* [retval][out] */ BSTR* markerText);
    781781
     782    virtual HRESULT STDMETHODCALLTYPE shadowPseudoId(
     783        /* [retval][out] */ BSTR* result);
     784
    782785    // IDOMElementCSSInlineStyle
    783786    virtual HRESULT STDMETHODCALLTYPE style(
  • trunk/Source/WebKit/win/Interfaces/DOMPrivate.idl

    r63710 r85925  
    4949    HRESULT renderedImage([out, retval] HBITMAP* image);
    5050    [local] HRESULT markerTextForListItem([out, retval] BSTR* markerText);
     51    [local] HRESULT shadowPseudoId([out, retval] BSTR* result);
    5152}
    5253
  • trunk/Source/WebKit/win/Interfaces/WebKit.idl

    r85691 r85925  
    302302    }
    303303}
     304
  • trunk/Source/WebKit2/ChangeLog

    r85908 r85925  
     12011-05-05  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
     9        (WKBundleNodeHandleShadowPseudoId):
     10        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
     11        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
     12        (WebKit::InjectedBundleNodeHandle::elementRemoveShadowRoot):
     13        (WebKit::InjectedBundleNodeHandle::elementShadowPseudoId):
     14        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
     15
    1162011-05-05  Sam Weinig  <sam@webkit.org>
    217
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp

    r84472 r85925  
    7979}
    8080
     81WKStringRef WKBundleNodeHandleShadowPseudoId(WKBundleNodeHandleRef elementHandleRef)
     82{
     83    return toCopiedAPI(toImpl(elementHandleRef)->elementShadowPseudoId());
     84}
     85
    8186void WKBundleNodeHandleSetHTMLInputElementValueForUser(WKBundleNodeHandleRef htmlInputElementHandleRef, WKStringRef valueRef)
    8287{
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h

    r84472 r85925  
    5050WK_EXPORT WKBundleNodeHandleRef WKBundleNodeHandleCopyElementEnsureShadowRoot(WKBundleNodeHandleRef elementHandle);
    5151WK_EXPORT void WKBundleNodeHandleRemoveShadowRoot(WKBundleNodeHandleRef elementHandle);
     52WK_EXPORT WKStringRef WKBundleNodeHandleShadowPseudoId(WKBundleNodeHandleRef elementHandle);
    5253
    5354/* HTMLInputElement Specific Operations */
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp

    r85644 r85925  
    191191}
    192192
     193String InjectedBundleNodeHandle::elementShadowPseudoId()
     194{
     195    if (!m_node->isElementNode())
     196        return String();
     197
     198    return static_cast<Element*>(m_node.get())->shadowPseudoId();
     199}
     200
    193201PassRefPtr<WebFrame> InjectedBundleNodeHandle::documentFrame()
    194202{
  • trunk/Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h

    r84472 r85925  
    7272    PassRefPtr<InjectedBundleNodeHandle> elementEnsureShadowRoot();
    7373    void elementRemoveShadowRoot();
     74    String elementShadowPseudoId();
    7475
    7576    PassRefPtr<WebFrame> documentFrame();
  • trunk/Tools/ChangeLog

    r85922 r85925  
     12011-05-04  Philippe Normand  <pnormand@igalia.com>
     2
     3        Reviewed by Dimitri Glazkov.
     4
     5        Implement LayoutTestController::pseudoShadowId()
     6        https://bugs.webkit.org/show_bug.cgi?id=60034
     7
     8        shadowPseudoId support in the various LayoutTestController
     9        implementations.
     10
     11        * DumpRenderTree/LayoutTestController.cpp:
     12        (shadowPseudoIdCallback):
     13        (LayoutTestController::staticFunctions):
     14        * DumpRenderTree/LayoutTestController.h:
     15        * DumpRenderTree/chromium/LayoutTestController.cpp:
     16        (LayoutTestController::LayoutTestController):
     17        (LayoutTestController::shadowPseudoId):
     18        * DumpRenderTree/chromium/LayoutTestController.h:
     19        * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
     20        (LayoutTestController::shadowPseudoId):
     21        * DumpRenderTree/mac/LayoutTestControllerMac.mm:
     22        (LayoutTestController::shadowPseudoId):
     23        * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
     24        (LayoutTestController::shadowPseudoId):
     25        * DumpRenderTree/qt/LayoutTestControllerQt.h:
     26        * DumpRenderTree/win/LayoutTestControllerWin.cpp:
     27        (LayoutTestController::shadowPseudoId):
     28        * DumpRenderTree/wx/LayoutTestControllerWx.cpp:
     29        (LayoutTestController::shadowPseudoId):
     30        * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl:
     31        * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
     32        (WTR::LayoutTestController::shadowPseudoId):
     33        * WebKitTestRunner/InjectedBundle/LayoutTestController.h:
     34
    1352011-05-06  Adam Barth  <abarth@webkit.org>
    236
  • trunk/Tools/DumpRenderTree/LayoutTestController.cpp

    r84472 r85925  
    20852085    LayoutTestController::setSerializeHTTPLoads(serialize);
    20862086    return JSValueMakeUndefined(context);
     2087}
     2088
     2089static JSValueRef shadowPseudoIdCallback(JSContextRef context, JSObjectRef thisObject, JSObjectRef, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
     2090{
     2091    if (argumentCount < 1)
     2092        return JSValueMakeUndefined(context);
     2093
     2094    LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
     2095
     2096    return JSValueMakeString(context, controller->shadowPseudoId(context, arguments[0]).get());
    20872097}
    20882098
     
    23312341        { "originsWithLocalStorage", originsWithLocalStorageCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    23322342        { "setShouldPaintBrokenImage", setShouldPaintBrokenImageCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
     2343        { "shadowPseudoId", shadowPseudoIdCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
    23332344        { 0, 0, 0 }
    23342345    };
  • trunk/Tools/DumpRenderTree/LayoutTestController.h

    r84472 r85925  
    7676    JSRetainPtr<JSStringRef> pageProperty(const char* propertyName, int pageNumber) const;
    7777    JSRetainPtr<JSStringRef> pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) const;
     78    JSRetainPtr<JSStringRef> shadowPseudoId(JSContextRef, JSValueRef) const;
    7879    bool isPageBoxVisible(int pageNumber) const;
    7980    JSStringRef pathToLocalResource(JSContextRef, JSStringRef url);
  • trunk/Tools/DumpRenderTree/chromium/LayoutTestController.cpp

    r84749 r85925  
    177177    bindMethod("setAsynchronousSpellCheckingEnabled", &LayoutTestController::setAsynchronousSpellCheckingEnabled);
    178178    bindMethod("shadowRoot", &LayoutTestController::shadowRoot);
     179    bindMethod("shadowPseudoId", &LayoutTestController::shadowPseudoId);
    179180    bindMethod("showWebInspector", &LayoutTestController::showWebInspector);
    180181    bindMethod("simulateDesktopNotificationClick", &LayoutTestController::simulateDesktopNotificationClick);
     
    709710
    710711    element.removeShadowRoot();
     712}
     713
     714void LayoutTestController::shadowPseudoId(const CppArgumentList& arguments, CppVariant* result)
     715{
     716    WebElement element;
     717    if (!WebBindings::getElement(arguments[0].value.objectValue, &element))
     718        result->setNull();
     719    else
     720        result->set(element.shadowPseudoId().utf8());
    711721}
    712722
  • trunk/Tools/DumpRenderTree/chromium/LayoutTestController.h

    r84472 r85925  
    275275    void ensureShadowRoot(const CppArgumentList&, CppVariant*);
    276276    void removeShadowRoot(const CppArgumentList&, CppVariant*);
     277    void shadowPseudoId(const CppArgumentList&, CppVariant*);
    277278
    278279    // The fallback method is called when a nonexistent method is called on
  • trunk/Tools/DumpRenderTree/gtk/LayoutTestControllerGtk.cpp

    r84985 r85925  
    906906}
    907907
     908JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
     909{
     910    CString id = DumpRenderTreeSupportGtk::shadowPseudoId(context, nodeObject);
     911    if (id.isNull())
     912        return 0;
     913
     914    JSRetainPtr<JSStringRef> result(Adopt, JSStringCreateWithUTF8CString(id.data()));
     915    return result;
     916}
     917
    908918void LayoutTestController::authenticateSession(JSStringRef, JSStringRef, JSStringRef)
    909919{
  • trunk/Tools/DumpRenderTree/mac/LayoutTestControllerMac.mm

    r85036 r85925  
    280280}
    281281
     282JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
     283{
     284    DOMElement *element = [DOMElement _DOMElementFromJSContext:context value:nodeObject];
     285    if (!element)
     286        return JSRetainPtr<JSStringRef>();
     287
     288    JSRetainPtr<JSStringRef> shadowId(Adopt, JSStringCreateWithCFString((CFStringRef)[element _shadowPseudoId]));
     289    return shadowId;
     290}
     291
    282292int LayoutTestController::pageNumberForElementById(JSStringRef id, float pageWidthInPixels, float pageHeightInPixels)
    283293{
  • trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.cpp

    r85667 r85925  
    800800}
    801801
     802QString LayoutTestController::shadowPseudoId(const QWebElement& element)
     803{
     804    return DumpRenderTreeSupportQt::shadowPseudoId(element);
     805}
     806
    802807int LayoutTestController::numberOfPendingGeolocationPermissionRequests()
    803808{
  • trunk/Tools/DumpRenderTree/qt/LayoutTestControllerQt.h

    r84906 r85925  
    254254    QVariant ensureShadowRoot(const QWebElement&);
    255255    void removeShadowRoot(const QWebElement&);
     256    QString shadowPseudoId(const QWebElement&);
    256257
    257258    void evaluateScriptInIsolatedWorld(int worldID, const QString& script);
  • trunk/Tools/DumpRenderTree/win/LayoutTestControllerWin.cpp

    r84472 r85925  
    228228}
    229229
     230JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
     231{
     232    COMPtr<IWebView> webView;
     233    if (FAILED(frame->webView(&webView)))
     234        return 0;
     235
     236    COMPtr<IWebViewPrivate> webViewPrivate(Query, webView);
     237    if (!webViewPrivate)
     238        return 0;
     239
     240    COMPtr<IDOMElement> element;
     241    if (FAILED(webViewPrivate->elementFromJS(context, nodeObject, &element)))
     242        return 0;
     243
     244    COMPtr<IDOMElementPrivate> elementPrivate(Query, element);
     245    if (!elementPrivate)
     246        return 0;
     247
     248    BSTR idBSTR = 0;
     249    if (FAILED(elementPrivate->shadowPseudoId(&idBSTR)))
     250        return 0;
     251
     252    JSRetainPtr<JSStringRef> id(Adopt, JSStringCreateWithBSTR(idBSTR));
     253    SysFreeString(idBSTR);
     254    return id;
     255}
     256
    230257void LayoutTestController::waitForPolicyDelegate()
    231258{
  • trunk/Tools/DumpRenderTree/wx/LayoutTestControllerWx.cpp

    r84743 r85925  
    509509}
    510510
     511JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
     512{
     513    return 0;
     514}
     515
    511516JSValueRef LayoutTestController::computedStyleIncludingVisitedInfo(JSContextRef, JSValueRef)
    512517{
  • trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl

    r85888 r85925  
    6767        object ensureShadowRoot(in object element);
    6868        void removeShadowRoot(in object element);
     69        DOMString shadowPseudoId(in object element);
    6970
    7071        // Repaint testing.
  • trunk/Tools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp

    r85888 r85925  
    424424}
    425425
     426JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSValueRef element) const
     427{
     428    WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page());
     429    JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame);
     430
     431    if (!element || !JSValueIsObject(context, element))
     432        return 0;
     433
     434    WKRetainPtr<WKBundleNodeHandleRef> domElement = adoptWK(WKBundleNodeHandleCreate(context, const_cast<JSObjectRef>(element)));
     435    if (!domElement)
     436        return 0;
     437
     438    WKRetainPtr<WKStringRef> id(AdoptWK, WKBundleNodeHandleShadowPseudoId(domElement.get()));
     439    if (WKStringIsEmpty(id.get()))
     440        return 0;
     441    return toJS(id);
     442}
     443
    426444void LayoutTestController::clearBackForwardList()
    427445{
  • trunk/Tools/WebKitTestRunner/InjectedBundle/LayoutTestController.h

    r85888 r85925  
    9696    JSValueRef ensureShadowRoot(JSValueRef element);
    9797    void removeShadowRoot(JSValueRef element);
     98    JSRetainPtr<JSStringRef> shadowPseudoId(JSValueRef) const;
    9899
    99100    // Repaint testing.
Note: See TracChangeset for help on using the changeset viewer.