Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
* Source/autotools/symbols.filter: Export symbols for GTK.
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
Update tests to use internals.{ensureShadowRoot, shadowRoot,
shadowPseudoId, removeShadowRoot} instead of layoutTestController.
* fast/dom/HTMLKeygenElement/keygen-expected.txt:
* fast/dom/HTMLKeygenElement/keygen.html:
* fast/dom/HTMLMeterElement/meter-clone-expected.txt:
* fast/dom/HTMLMeterElement/meter-clone.html:
* fast/dom/HTMLProgressElement/progress-clone-expected.txt:
* fast/dom/HTMLProgressElement/progress-clone.html:
* fast/dom/shadow/activeelement-should-be-shadowhost.html:
* fast/dom/shadow/create-content-element.html:
* fast/dom/shadow/gc-shadow-expected.txt:
* fast/dom/shadow/gc-shadow.html:
* fast/dom/shadow/layout-tests-can-access-shadow-expected.txt: shadowRoot of non-element throws now, so verify new behavior.
* fast/dom/shadow/layout-tests-can-access-shadow.html:
* fast/dom/shadow/nodetype.html:
* fast/dom/shadow/tab-order-iframe-and-shadow.html:
* fast/events/shadow-boundary-crossing.html:
* fast/forms/resources/common.js:
(getValidationMessageBubbleNode):
* fast/html/clone-keygen-expected.txt:
* fast/html/clone-keygen.html:
* fast/html/clone-range-expected.txt:
* fast/html/clone-range.html:
* fast/html/details-clone.html:
* fullscreen/video-controls-override-expected.txt:
* fullscreen/video-controls-override.html:
* media/audio-controls-do-not-fade-out.html:
* media/media-controls.js:
(mediaControlsButtonCoordinates):
* media/video-controls-in-media-document.html:
* platform/win/Skipped: shadowRoot and friends now available on win.
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
* WebCore.exp.in: Exports for symbols used by WebCoreTestSupport.
* testing/Internals.cpp: The new home of shadowRoot and friends.
(WebCore::Internals::ensureShadowRoot):
(WebCore::Internals::shadowRoot):
(WebCore::Internals::removeShadowRoot):
(WebCore::Internals::shadowPseudoId):
* testing/Internals.h:
* testing/Internals.idl:
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
Remove shadow DOM-related methods from Chromium API. These are not
required any more.
* public/WebElement.h:
* src/WebElement.cpp:
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
Remove shadow-DOM related methods from GTK DRT API. These are not
required any more.
* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
* WebCoreSupport/DumpRenderTreeSupportGtk.h:
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
Remove shadow DOM-related methods from Mac API. These are not
required any more.
* DOM/WebDOMOperations.mm:
* DOM/WebDOMOperationsPrivate.h:
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow-DOM related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
Remove shadow-DOM related methods from Qt DRT API. These are not
required any more.
* WebCoreSupport/DumpRenderTreeSupportQt.cpp:
* WebCoreSupport/DumpRenderTreeSupportQt.h:
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
Remove shadow DOM-related methods from WebKit2 API. These are not
required any more.
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
* WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
* win/WebKit2.def: Re-exports for symbols used by WebCoreTestSupport.
* win/WebKit2CFLite.def: Same for Cairo.
2011-06-24 Dominic Cooney <dominicc@chromium.org>
Reviewed by Dimitri Glazkov.
Convert shadow DOM-related tests to use window.internals
https://bugs.webkit.org/show_bug.cgi?id=61671
Remove ensureShadowRoot, shadowRoot, shadowPseudoId and
removeShadowRoot from layoutTestController; these have been
replaced by equivalents in window.internals instead.
* DumpRenderTree/LayoutTestController.cpp:
(LayoutTestController::staticFunctions):
* DumpRenderTree/LayoutTestController.h:
* DumpRenderTree/chromium/LayoutTestController.cpp:
(LayoutTestController::LayoutTestController):
* DumpRenderTree/chromium/LayoutTestController.h:
* DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
* DumpRenderTree/mac/LayoutTestControllerMac.mm:
* DumpRenderTree/qt/LayoutTestControllerQt.cpp:
* DumpRenderTree/qt/LayoutTestControllerQt.h:
* DumpRenderTree/win/LayoutTestControllerWin.cpp:
* DumpRenderTree/wx/LayoutTestControllerWx.cpp:
* WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl:
* WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
* WebKitTestRunner/InjectedBundle/LayoutTestController.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@89682
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ * Source/autotools/symbols.filter: Export symbols for GTK.
+
2011-06-24 Carlos Garcia Campos <cgarcia@igalia.com>
Reviewed by Martin Robinson.
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ Update tests to use internals.{ensureShadowRoot, shadowRoot,
+ shadowPseudoId, removeShadowRoot} instead of layoutTestController.
+
+ * fast/dom/HTMLKeygenElement/keygen-expected.txt:
+ * fast/dom/HTMLKeygenElement/keygen.html:
+ * fast/dom/HTMLMeterElement/meter-clone-expected.txt:
+ * fast/dom/HTMLMeterElement/meter-clone.html:
+ * fast/dom/HTMLProgressElement/progress-clone-expected.txt:
+ * fast/dom/HTMLProgressElement/progress-clone.html:
+ * fast/dom/shadow/activeelement-should-be-shadowhost.html:
+ * fast/dom/shadow/create-content-element.html:
+ * fast/dom/shadow/gc-shadow-expected.txt:
+ * fast/dom/shadow/gc-shadow.html:
+ * fast/dom/shadow/layout-tests-can-access-shadow-expected.txt: shadowRoot of non-element throws now, so verify new behavior.
+ * fast/dom/shadow/layout-tests-can-access-shadow.html:
+ * fast/dom/shadow/nodetype.html:
+ * fast/dom/shadow/tab-order-iframe-and-shadow.html:
+ * fast/events/shadow-boundary-crossing.html:
+ * fast/forms/resources/common.js:
+ (getValidationMessageBubbleNode):
+ * fast/html/clone-keygen-expected.txt:
+ * fast/html/clone-keygen.html:
+ * fast/html/clone-range-expected.txt:
+ * fast/html/clone-range.html:
+ * fast/html/details-clone.html:
+ * fullscreen/video-controls-override-expected.txt:
+ * fullscreen/video-controls-override.html:
+ * media/audio-controls-do-not-fade-out.html:
+ * media/media-controls.js:
+ (mediaControlsButtonCoordinates):
+ * media/video-controls-in-media-document.html:
+ * platform/win/Skipped: shadowRoot and friends now available on win.
+
2011-06-24 Matthew Delaney <mdelaney@apple.com>
Reviewed by Simon Fraser.
PASS keygen.options is undefined
PASS shadow.firstChild.tagName is "SELECT"
-PASS layoutTestController.shadowRoot(shadow) is null
-PASS layoutTestController.shadowRoot(shadow.firstChild) is null
+PASS internals.shadowRoot(shadow.firstChild) is null
PASS successfullyParsed is true
TEST COMPLETE
var keygen = document.getElementById('keys');
shouldBe('keygen.options', 'undefined'); // keygen is not a select
-if (window.layoutTestController) {
- var shadow = layoutTestController.shadowRoot(keygen);
+if (window.internals) {
+ var shadow = internals.shadowRoot(keygen);
shouldBe('shadow.firstChild.tagName', '"SELECT"');
- shouldBe('layoutTestController.shadowRoot(shadow)', 'null');
- shouldBe('layoutTestController.shadowRoot(shadow.firstChild)', 'null');
+ shouldBe('internals.shadowRoot(shadow.firstChild)', 'null');
}
var successfullyParsed = true;
PASS cloned.value is target.value
-PASS layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild) is layoutTestController.shadowPseudoId(targetShadowRoot.firstChild)
-PASS layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild.firstChild) is layoutTestController.shadowPseudoId(targetShadowRoot.firstChild.firstChild)
+PASS internals.shadowPseudoId(clonedShadowRoot.firstChild) is internals.shadowPseudoId(targetShadowRoot.firstChild)
+PASS internals.shadowPseudoId(clonedShadowRoot.firstChild.firstChild) is internals.shadowPseudoId(targetShadowRoot.firstChild.firstChild)
PASS clonedShadowRoot.firstChild.firstChild.style.width is "70%"
PASS targetShadowRoot.firstChild.firstChild.style.width is "50%"
PASS successfullyParsed is true
cloned = target.cloneNode();
document.body.insertBefore(cloned, target.nextSibling);
- if (!window.layoutTestController) {
- debug("You need layoutTestController to run this test.");
+ if (!window.internals) {
+ debug("You need internals to run this test.");
return;
}
- targetShadowRoot = layoutTestController.shadowRoot(target);
- clonedShadowRoot = layoutTestController.shadowRoot(cloned);
+ targetShadowRoot = internals.shadowRoot(target);
+ clonedShadowRoot = internals.shadowRoot(cloned);
shouldBe("cloned.value", "target.value");
- shouldBe("layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild)", "layoutTestController.shadowPseudoId(targetShadowRoot.firstChild)");
- shouldBe("layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild.firstChild)", "layoutTestController.shadowPseudoId(targetShadowRoot.firstChild.firstChild)");
+ shouldBe("internals.shadowPseudoId(clonedShadowRoot.firstChild)", "internals.shadowPseudoId(targetShadowRoot.firstChild)");
+ shouldBe("internals.shadowPseudoId(clonedShadowRoot.firstChild.firstChild)", "internals.shadowPseudoId(targetShadowRoot.firstChild.firstChild)");
cloned.value = 70;
shouldBe("clonedShadowRoot.firstChild.firstChild.style.width", '"70%"');
shouldBe("targetShadowRoot.firstChild.firstChild.style.width", '"50%"');
PASS cloned.value is target.value
-PASS layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild) is layoutTestController.shadowPseudoId(targetShadowRoot.firstChild)
-PASS layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild.firstChild) is layoutTestController.shadowPseudoId(targetShadowRoot.firstChild.firstChild)
+PASS internals.shadowPseudoId(clonedShadowRoot.firstChild) is internals.shadowPseudoId(targetShadowRoot.firstChild)
+PASS internals.shadowPseudoId(clonedShadowRoot.firstChild.firstChild) is internals.shadowPseudoId(targetShadowRoot.firstChild.firstChild)
PASS clonedShadowRoot.firstChild.firstChild.style.width is "70%"
PASS targetShadowRoot.firstChild.firstChild.style.width is "50%"
PASS successfullyParsed is true
cloned = target.cloneNode();
document.body.insertBefore(cloned, target.nextSibling);
- if (!window.layoutTestController) {
- debug("You need layoutTestController to run this test.");
+ if (!window.internals) {
+ debug("You need internals to run this test.");
return;
}
- targetShadowRoot = layoutTestController.shadowRoot(target);
- clonedShadowRoot = layoutTestController.shadowRoot(cloned);
-
+ targetShadowRoot = internals.shadowRoot(target);
+ clonedShadowRoot = internals.shadowRoot(cloned);
+
shouldBe("cloned.value", "target.value");
- shouldBe("layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild)", "layoutTestController.shadowPseudoId(targetShadowRoot.firstChild)");
- shouldBe("layoutTestController.shadowPseudoId(clonedShadowRoot.firstChild.firstChild)", "layoutTestController.shadowPseudoId(targetShadowRoot.firstChild.firstChild)");
+ shouldBe("internals.shadowPseudoId(clonedShadowRoot.firstChild)", "internals.shadowPseudoId(targetShadowRoot.firstChild)");
+ shouldBe("internals.shadowPseudoId(clonedShadowRoot.firstChild.firstChild)", "internals.shadowPseudoId(targetShadowRoot.firstChild.firstChild)");
cloned.value = 70;
shouldBe("clonedShadowRoot.firstChild.firstChild.style.width", '"70%"');
layoutTestController.dumpAsText();
function shadowRoot(shadowHost) {
- return layoutTestController.ensureShadowRoot(shadowHost);
+ return internals.ensureShadowRoot(shadowHost);
}
function appendChildToShadow(shadowHost, child) {
{
var target = document.createElement("div");
target.innerHTML = "<span>content</span>";
- var root = layoutTestController.ensureShadowRoot(target);
+ var root = internals.ensureShadowRoot(target);
var child0 = document.createElement("span");
child0.innerHTML = "Hello,";
This tests that the JavaScript wrapper objects of shadow DOM objects
are not prematurely garbage collected.
-PASS layoutTestController.shadowRoot(ps[0]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[1]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[2]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[3]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[4]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[5]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[6]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[7]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[8]).tattoo is "I <3 WebKit"
-PASS layoutTestController.shadowRoot(ps[9]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[0]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[1]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[2]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[3]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[4]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[5]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[6]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[7]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[8]).tattoo is "I <3 WebKit"
+PASS internals.shadowRoot(ps[9]).tattoo is "I <3 WebKit"
PASS successfullyParsed is true
TEST COMPLETE
new String(i);
}
-if (window.layoutTestController) {
+if (window.internals) {
var ps = [];
for (var i = 0; i < 10; i++) {
var p = document.createElement('p');
ps.push(p);
- var shadow = layoutTestController.ensureShadowRoot(p);
+ var shadow = internals.ensureShadowRoot(p);
shadow.tattoo = 'I <3 WebKit';
shadow = null;
}
gc();
for (i = 0; i < ps.length; i++) {
- shouldBe('layoutTestController.shadowRoot(ps[' + i + ']).tattoo', '"I <3 WebKit"');
+ shouldBe('internals.shadowRoot(ps[' + i + ']).tattoo', '"I <3 WebKit"');
}
}
-This tests that LayoutTestController can access shadow DOM.
+This tests that layout tests can access shadow DOM.
PASS shadow.nodeName is "#shadow-root"
-PASS layoutTestController.shadowRoot(shadow) is null
-PASS layoutTestController.shadowRoot(p) is null
+PASS exceptionCode is DOMException.INVALID_ACCESS_ERR
+PASS internals.shadowRoot(p) is null
PASS shadow.nodeName is "#shadow-root"
-PASS shadow === layoutTestController.shadowRoot(p) is true
-PASS layoutTestController.shadowRoot(keygen) is null
+PASS shadow === internals.shadowRoot(p) is true
+PASS internals.shadowRoot(keygen) is null
PASS successfullyParsed is true
TEST COMPLETE
<keygen id="keys" />
<p id="peas" />
<pre id="console">
-This tests that LayoutTestController can access shadow DOM.
+This tests that layout tests can access shadow DOM.
</pre>
<script>
-if (window.layoutTestController) {
+if (window.internals) {
// Make assertions about a built-in shadow
var keygen = document.getElementById('keys');
- var shadow = layoutTestController.shadowRoot(keygen);
+ var shadow = internals.shadowRoot(keygen);
shouldBe('shadow.nodeName', '"#shadow-root"');
- // Shadow roots should not have shadows
- shouldBe('layoutTestController.shadowRoot(shadow)', 'null');
+ // Shadow roots aren't elements, so accessing their shadow should
+ // raise
+ var exceptionCode;
+ try {
+ internals.shadowRoot(shadow);
+ } catch (e) {
+ exceptionCode = e.code;
+ }
+ shouldBe('exceptionCode', 'DOMException.INVALID_ACCESS_ERR');
// Ordinary element should not have shadow
var p = document.getElementById('peas');
- shouldBe('layoutTestController.shadowRoot(p)', 'null');
+ shouldBe('internals.shadowRoot(p)', 'null');
- // LayoutTestController can bless ordinary elements with shadows
- shadow = layoutTestController.ensureShadowRoot(p);
+ // Can bless ordinary elements with shadows
+ shadow = internals.ensureShadowRoot(p);
shouldBe('shadow.nodeName', '"#shadow-root"');
- shouldBe('shadow === layoutTestController.shadowRoot(p)', 'true');
+ shouldBe('shadow === internals.shadowRoot(p)', 'true');
- // LayoutTestController can strip elements of shadows
- layoutTestController.removeShadowRoot(keygen);
- shouldBe('layoutTestController.shadowRoot(keygen)', 'null');
+ // Can strip elements of shadows
+ internals.removeShadowRoot(keygen);
+ shouldBe('internals.shadowRoot(keygen)', 'null');
}
var successfullyParsed = true;
layoutTestController.dumpAsText();
var keygen = document.getElementById('keys');
- var shadow = layoutTestController.shadowRoot(keygen);
+ var shadow = internals.shadowRoot(keygen);
var shadowChild = shadow.firstChild;
shouldBe('keygen.nodeType', 'Node.ELEMENT_NODE');
shouldBe('shadow.nodeType', '14');
function addShadowHost(doc) {
var shadowHost = doc.createElement('p');
shadowHost.tabIndex = -1; // This shadow host (and a shadow tree in that) should be skipped.
- var shadow = layoutTestController.ensureShadowRoot(shadowHost);
+ var shadow = internals.ensureShadowRoot(shadowHost);
doc.body.appendChild(shadowHost);
shadow.appendChild(createTextInputElement(doc, 'shadow-input-03', 0));
}
function addShadowHost(doc) {
var shadowHost = doc.createElement('p');
shadowHost.tabIndex = 1;
- var shadow = layoutTestController.ensureShadowRoot(shadowHost);
+ var shadow = internals.ensureShadowRoot(shadowHost);
doc.body.appendChild(shadowHost);
shadow.appendChild(createTextInputElement(doc, 'iframe-shadow-input-08', 0));
document.body.appendChild(relatedTarget);
var target = document.createElement('div');
target.style.cssText = 'width: 50px; height: 50px';
- layoutTestController.ensureShadowRoot(relatedTarget).appendChild(target);
+ internals.ensureShadowRoot(relatedTarget).appendChild(target);
moveOverLeftQuarterOf(relatedTarget);
var countEventDispatch = function()
{
document.body.appendChild(target);
var relatedTarget = document.createElement('div');
relatedTarget.style.cssText = 'width: 50px; height: 50px';
- layoutTestController.ensureShadowRoot(target).appendChild(relatedTarget);
+ internals.ensureShadowRoot(target).appendChild(relatedTarget);
moveOverRightQuarterOf(target);
var countEventDispatch = function(evt)
{
function getValidationMessageBubbleNode(host) {
// FIXME: We should search for a pseudo ID.
- return layoutTestController.shadowRoot(host).lastChild;
+ return internals.shadowRoot(host).lastChild;
}
function getAbsoluteRect(element) {
PASS specialK.clientHeight is k.clientHeight
-PASS layoutTestController.shadowPseudoId(cloneShadow.firstChild) is layoutTestController.shadowPseudoId(kShadow.firstChild)
+PASS internals.shadowPseudoId(cloneShadow.firstChild) is internals.shadowPseudoId(kShadow.firstChild)
PASS successfullyParsed is true
TEST COMPLETE
shouldBe('specialK.clientHeight', 'k.clientHeight');
-if (window.layoutTestController) {
- var kShadow = layoutTestController.shadowRoot(k);
- var cloneShadow = layoutTestController.shadowRoot(specialK);
- shouldBe('layoutTestController.shadowPseudoId(cloneShadow.firstChild)',
- 'layoutTestController.shadowPseudoId(kShadow.firstChild)');
+if (window.internals) {
+ var kShadow = internals.shadowRoot(k);
+ var cloneShadow = internals.shadowRoot(specialK);
+ shouldBe('internals.shadowPseudoId(cloneShadow.firstChild)',
+ 'internals.shadowPseudoId(kShadow.firstChild)');
}
var successfullyParsed = true;
PASS dolly.clientHeight is sheep.clientHeight
-PASS layoutTestController.shadowPseudoId(dollyShadow.firstChild) is layoutTestController.shadowPseudoId(sheepShadow.firstChild)
+PASS internals.shadowPseudoId(dollyShadow.firstChild) is internals.shadowPseudoId(sheepShadow.firstChild)
PASS successfullyParsed is true
TEST COMPLETE
// symptom of a broken clone.
shouldBe('dolly.clientHeight', 'sheep.clientHeight');
-if (window.layoutTestController) {
- var sheepShadow = layoutTestController.shadowRoot(sheep);
- var dollyShadow = layoutTestController.shadowRoot(dolly);
- shouldBe('layoutTestController.shadowPseudoId(dollyShadow.firstChild)',
- 'layoutTestController.shadowPseudoId(sheepShadow.firstChild)');
+if (window.internals) {
+ var sheepShadow = internals.shadowRoot(sheep);
+ var dollyShadow = internals.shadowRoot(dolly);
+ shouldBe('internals.shadowPseudoId(dollyShadow.firstChild)',
+ 'internals.shadowPseudoId(sheepShadow.firstChild)');
}
dolly.value = 0;
var clonedSummary = targetSummary.cloneNode(true);
targetDetails.appendChild(clonedSummary);
- if (!window.layoutTestController)
+ if (!window.internals)
return;
// On cloned <details>, marker shadow element should be created
- var targetDetailsSummaryShadow = layoutTestController.shadowRoot(targetDetails.querySelector("summary"));
- targetMarkerPseudoId = layoutTestController.shadowPseudoId(targetDetailsSummaryShadow.firstChild);
- var clonedDetailsSummaryShadow = layoutTestController.shadowRoot(clonedDetails.querySelector("summary"));
- clonedMarkerPseudoId = layoutTestController.shadowPseudoId(clonedDetailsSummaryShadow.firstChild);
+ var targetDetailsSummaryShadow = internals.shadowRoot(targetDetails.querySelector("summary"));
+ targetMarkerPseudoId = internals.shadowPseudoId(targetDetailsSummaryShadow.firstChild);
+ var clonedDetailsSummaryShadow = internals.shadowRoot(clonedDetails.querySelector("summary"));
+ clonedMarkerPseudoId = internals.shadowPseudoId(clonedDetailsSummaryShadow.firstChild);
shouldBe("targetMarkerPseudoId", "clonedMarkerPseudoId");
}
</script>
This tests that the video element's "controls" attribute is overridden in full screen mode, and that the controls are correctly hidden upon exiting full screen. Press any key to continue.
EVENT(webkitfullscreenchange)
-EXPECTED (shadowRoot = layoutTestController.shadowRoot(video) != 'null') OK
+EXPECTED (shadowRoot = internals.shadowRoot(video) != 'null') OK
EXPECTED (panel = shadowRoot.firstChild.firstChild != 'null') OK
-EXPECTED (layoutTestController.shadowPseudoId(panel) == '-webkit-media-controls-panel') OK
+EXPECTED (internals.shadowPseudoId(panel) == '-webkit-media-controls-panel') OK
EXPECTED (document.defaultView.getComputedStyle(panel)['display'] != 'none') OK
EVENT(webkitfullscreenchange)
EXPECTED (document.defaultView.getComputedStyle(panel)['display'] == 'none') OK
var video = document.getElementById('video');
var videoEnteredFullScreen = function() {
- if (layoutTestController) {
- testExpected("shadowRoot = layoutTestController.shadowRoot(video)", null, "!=");
+ if (window.internals) {
+ testExpected("shadowRoot = internals.shadowRoot(video)", null, "!=");
testExpected("panel = shadowRoot.firstChild.firstChild", null, "!=");
- testExpected("layoutTestController.shadowPseudoId(panel)", "-webkit-media-controls-panel");
+ testExpected("internals.shadowPseudoId(panel)", "-webkit-media-controls-panel");
testExpected("document.defaultView.getComputedStyle(panel)['display']", 'none', "!=");
}
callback = cancelledFullScreen;
};
var cancelledFullScreen = function() {
- if (layoutTestController)
+ if (window.layoutTestController)
testExpected("document.defaultView.getComputedStyle(panel)['display']", 'none');
endTest();
};
callback = videoEnteredFullScreen;
runWithKeyDown(function(){video.webkitRequestFullScreen()});
</script>
-</body>
\ No newline at end of file
+</body>
function playing() {
setTimeout(function() {
- var controls = layoutTestController.shadowRoot(document.getElementById("audio")).firstChild.firstChild;
+ var controls = internals.shadowRoot(document.getElementById("audio")).firstChild.firstChild;
var opacity = getComputedStyle(controls).opacity;
document.getElementById("result").innerText = opacity < 1 ? "FAIL" : "PASS";
layoutTestController.notifyDone();
function mediaControlsButtonCoordinates(element, id)
{
var button;
- var controlsShadow = layoutTestController.shadowRoot(element).firstChild.firstChild;
+ var controlsShadow = internals.shadowRoot(element).firstChild.firstChild;
for (child = controlsShadow.firstChild; child; child = child.nextSibling) {
- if (layoutTestController.shadowPseudoId(child) == "-webkit-media-controls-" + id) {
+ if (internals.shadowPseudoId(child) == "-webkit-media-controls-" + id) {
button = child;
break;
}
function timeupdate(event) {
var video = event.target;
- controls = layoutTestController.shadowRoot(video).firstChild.firstChild;
+ controls = internals.shadowRoot(video).firstChild.firstChild;
testExpected("controls.offsetTop + controls.offsetHeight", video.offsetHeight, "<=");
layoutTestController.notifyDone();
};
# https://bugs.webkit.org/show_bug.cgi?id=56496
fast/js/array-sort-modifying-tostring.html
-# https://bugs.webkit.org/show_bug.cgi?id=56573
-fast/dom/HTMLKeygenElement/keygen.html
-
# https://bugs.webkit.org/show_bug.cgi?id=57693
plugins/windowless_plugin_paint_test.html
# https://bugs.webkit.org/show_bug.cgi?id=59062
fast/images/animated-gif-restored-from-bfcache.html
-# Windows DRT needs an implementation of shadowRoot
-# https://bugs.webkit.org/show_bug.cgi?id=59081
-fast/dom/HTMLMeterElement/meter-clone.html
-fast/dom/HTMLProgressElement/progress-clone.html
-fast/dom/shadow
-fast/html/clone-keygen.html
-fast/html/clone-range.html
-fast/html/details-clone.html
-media/audio-controls-do-not-fade-out.html
-media/video-controls-visible-audio-only.html
-fast/events/shadow-boundary-crossing.html
-
# Causes the next test to fail http://webkit.org/b/59099
http/tests/security/contentSecurityPolicy/frame-src-blocked.html
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ * WebCore.exp.in: Exports for symbols used by WebCoreTestSupport.
+ * testing/Internals.cpp: The new home of shadowRoot and friends.
+ (WebCore::Internals::ensureShadowRoot):
+ (WebCore::Internals::shadowRoot):
+ (WebCore::Internals::removeShadowRoot):
+ (WebCore::Internals::shadowPseudoId):
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
2011-06-24 Tony Chang <tony@chromium.org>
Reviewed by Darin Adler.
__ZN7WebCore15ContextMenuItemC1ENS_19ContextMenuItemTypeENS_17ContextMenuActionERKN3WTF6StringEbb
__ZN7WebCore15ContextMenuItemC1EP10NSMenuItem
__ZN7WebCore15ContextMenuItemD1Ev
+__ZN7WebCore15setDOMExceptionEPN3JSC9ExecStateEi
__ZN7WebCore21ContextMenuController16clearContextMenuEv
__ZNK7WebCore21ContextMenuController21checkOrEnableIfNeededERNS_15ContextMenuItemE
__ZN7WebCore21ContextMenuController23contextMenuItemSelectedEPNS_15ContextMenuItemE
#include "CachedResourceLoader.h"
#include "Document.h"
+#include "Element.h"
+#include "ExceptionCode.h"
#include "RenderTreeAsText.h"
#include "ShadowContentElement.h"
+#include "ShadowRoot.h"
namespace WebCore {
return representation;
}
+Node* Internals::ensureShadowRoot(Element* host, ExceptionCode& ec)
+{
+ if (!host) {
+ ec = INVALID_ACCESS_ERR;
+ return 0;
+ }
+
+ return host->ensureShadowRoot();
+}
+
+Node* Internals::shadowRoot(Element* host, ExceptionCode& ec)
+{
+ if (!host) {
+ ec = INVALID_ACCESS_ERR;
+ return 0;
+ }
+
+ return host->shadowRoot();
+}
+
+void Internals::removeShadowRoot(Element* host, ExceptionCode& ec)
+{
+ if (!host) {
+ ec = INVALID_ACCESS_ERR;
+ return;
+ }
+
+ host->removeShadowRoot();
+}
+
+String Internals::shadowPseudoId(Element* element, ExceptionCode& ec)
+{
+ if (!element) {
+ ec = INVALID_ACCESS_ERR;
+ return String();
+ }
+
+ return element->shadowPseudoId().string();
+}
+
}
class Document;
class Element;
+class Node;
class Internals : public RefCounted<Internals> {
public:
static PassRefPtr<Internals> create();
virtual ~Internals();
+ String elementRenderTreeAsText(Element*, ExceptionCode&);
+
bool isPreloaded(Document*, const String& url);
+ Node* ensureShadowRoot(Element* host, ExceptionCode&);
+ Node* shadowRoot(Element* host, ExceptionCode&);
+ void removeShadowRoot(Element* host, ExceptionCode&);
+ String shadowPseudoId(Element*, ExceptionCode&);
PassRefPtr<Element> createShadowContentElement(Document*, ExceptionCode&);
- String elementRenderTreeAsText(Element*, ExceptionCode&);
+
private:
Internals();
};
interface [
OmitConstructor
] Internals {
- Element createShadowContentElement(in Document document) raises(DOMException);
DOMString elementRenderTreeAsText(in Element element) raises(DOMException);
boolean isPreloaded(in Document document, in DOMString url);
+
+ Node ensureShadowRoot(in Element host) raises (DOMException);
+ Node shadowRoot(in Element host) raises (DOMException);
+ void removeShadowRoot(in Element host) raises (DOMException);
+ DOMString shadowPseudoId(in Element element) raises (DOMException);
+ Element createShadowContentElement(in Document document) raises(DOMException);
};
}
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ Remove shadow DOM-related methods from Chromium API. These are not
+ required any more.
+
+ * public/WebElement.h:
+ * src/WebElement.cpp:
+
2011-06-24 Vsevolod Vlasov <vsevik@chromium.org>
Reviewed by Darin Fisher.
WEBKIT_API WebNamedNodeMap attributes() const;
WEBKIT_API WebString innerText() const;
- WEBKIT_API WebNode shadowRoot();
- WEBKIT_API WebNode ensureShadowRoot();
- WEBKIT_API void removeShadowRoot();
- WEBKIT_API WebString shadowPseudoId() const;
-
// Returns the language code specified for this element. This attribute
// is inherited, so the returned value is drawn from the closest parent
// element that has the lang attribute set, or from the HTTP
#include "Element.h"
#include "RenderBoxModelObject.h"
#include "RenderObject.h"
-#include "ShadowRoot.h"
#include <wtf/PassRefPtr.h>
#include "WebNamedNodeMap.h"
return constUnwrap<Element>()->innerText();
}
-WebNode WebElement::shadowRoot()
-{
- return PassRefPtr<Node>(static_cast<Node*>(unwrap<Element>()->shadowRoot()));
-}
-
-WebNode WebElement::ensureShadowRoot()
-{
- return PassRefPtr<Node>(static_cast<Node*>(unwrap<Element>()->ensureShadowRoot()));
-}
-
-void WebElement::removeShadowRoot()
-{
- unwrap<Element>()->removeShadowRoot();
-}
-
-WebString WebElement::shadowPseudoId() const
-{
- return WebString(constUnwrap<Element>()->shadowPseudoId().string());
-}
-
WebString WebElement::computeInheritedLanguage() const
{
return WebString(constUnwrap<Element>()->computeInheritedLanguage());
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ Remove shadow-DOM related methods from GTK DRT API. These are not
+ required any more.
+
+ * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
+ * WebCoreSupport/DumpRenderTreeSupportGtk.h:
+
2011-06-20 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Kent Tamura.
#include "RenderView.h"
#include "SecurityOrigin.h"
#include "Settings.h"
-#include "ShadowRoot.h"
#include "TextIterator.h"
#include "WebKitDOMRangePrivate.h"
#include "WorkerThread.h"
return WebCore::markerTextForListItem(element).utf8();
}
-CString DumpRenderTreeSupportGtk::shadowPseudoId(JSContextRef context, JSValueRef nodeObject)
-{
- JSC::ExecState* exec = toJS(context);
- Element* element = toElement(toJS(exec, nodeObject));
- if (!element)
- return CString();
-
- return element->shadowPseudoId().string().utf8();
-}
-
unsigned int DumpRenderTreeSupportGtk::numberOfActiveAnimations(WebKitWebFrame* frame)
{
Frame* coreFrame = core(frame);
coreFrame->loader()->setOpener(0);
}
-JSValueRef DumpRenderTreeSupportGtk::shadowRoot(JSContextRef context, JSValueRef value)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSC::ExecState* exec = toJS(context);
- Element* element = toElement(toJS(exec, value));
- if (!element)
- return JSValueMakeNull(context);
-
- return toRef(exec, toJS(exec, deprecatedGlobalObjectForPrototype(exec), element->shadowRoot()));
-}
-
-JSValueRef DumpRenderTreeSupportGtk::ensureShadowRoot(JSContextRef context, JSValueRef value)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSC::ExecState* exec = toJS(context);
- Element* element = toElement(toJS(exec, value));
- if (!element)
- return JSValueMakeNull(context);
-
- return toRef(exec, toJS(exec, deprecatedGlobalObjectForPrototype(exec), element->ensureShadowRoot()));
-}
-
-void DumpRenderTreeSupportGtk::removeShadowRoot(JSContextRef context, JSValueRef value)
-{
- JSLock lock(SilenceAssertionsOnly);
- JSC::ExecState* exec = toJS(context);
- Element* element = toElement(toJS(exec, value));
- if (!element)
- return;
-
- element->removeShadowRoot();
-}
-
unsigned int DumpRenderTreeSupportGtk::workerThreadCount()
{
#if ENABLE(WORKERS)
static void clearOpener(WebKitWebFrame*);
- static JSValueRef shadowRoot(JSContextRef, JSValueRef);
- static JSValueRef ensureShadowRoot(JSContextRef, JSValueRef);
- static void removeShadowRoot(JSContextRef, JSValueRef);
-
static WebKitDOMRange* jsValueToDOMRange(JSContextRef, JSValueRef);
// FIXME: Move these to webkitwebframe.h once their API has been discussed.
static bool pauseTransition(WebKitWebFrame*, const char* name, double time, const char* element);
static bool pauseSVGAnimation(WebKitWebFrame*, const char* animationId, double time, const char* elementId);
static WTF::CString markerTextForListItem(WebKitWebFrame*, JSContextRef, JSValueRef nodeObject);
- static WTF::CString shadowPseudoId(JSContextRef, JSValueRef nodeObject);
static unsigned int numberOfActiveAnimations(WebKitWebFrame*);
static void suspendAnimations(WebKitWebFrame*);
static void resumeAnimations(WebKitWebFrame*);
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ Remove shadow DOM-related methods from Mac API. These are not
+ required any more.
+
+ * DOM/WebDOMOperations.mm:
+ * DOM/WebDOMOperationsPrivate.h:
+
2011-06-24 Yuta Kitamura <yutak@chromium.org>
Reviewed by Adam Barth.
#import "WebKitNSStringExtras.h"
#import <JavaScriptCore/APICast.h>
#import <WebCore/Document.h>
-#import <WebCore/Element.h>
#import <WebCore/HTMLInputElement.h>
#import <WebCore/HTMLParserIdioms.h>
#import <WebCore/JSElement.h>
return WebCore::markerTextForListItem(core(self));
}
-- (NSString *)_shadowPseudoId
-{
- return core(self)->shadowPseudoId();
-}
-
-- (JSValueRef)_shadowRoot:(JSContextRef)context
-{
- JSLock lock(SilenceAssertionsOnly);
- ExecState* execState = toJS(context);
- return toRef(execState, toJS(execState, deprecatedGlobalObjectForPrototype(execState), core(self)->shadowRoot()));
-}
-
-- (JSValueRef)_ensureShadowRoot:(JSContextRef)context
-{
- JSLock lock(SilenceAssertionsOnly);
- ExecState* execState = toJS(context);
- return toRef(execState, toJS(execState, deprecatedGlobalObjectForPrototype(execState), core(self)->ensureShadowRoot()));
-}
-
-- (void)_removeShadowRoot
-{
- core(self)->removeShadowRoot();
-}
-
@end
@implementation DOMNode (WebDOMNodeOperations)
@interface DOMElement (WebDOMElementOperationsPrivate)
+ (DOMElement *)_DOMElementFromJSContext:(JSContextRef)context value:(JSValueRef)value;
- (NSString *)_markerTextForListItem;
-- (JSValueRef)_shadowRoot:(JSContextRef)context;
-- (JSValueRef)_ensureShadowRoot:(JSContextRef)context;
-- (void)_removeShadowRoot;
-- (NSString *)_shadowPseudoId;
@end
@interface DOMDocument (WebDOMDocumentOperationsPrivate)
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow-DOM related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ Remove shadow-DOM related methods from Qt DRT API. These are not
+ required any more.
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+
2011-06-23 Joe Wild <joseph.wild@nokia.com>
Reviewed by Laszlo Gombos.
#include "PrintContext.h"
#include "RenderListItem.h"
#include "RenderTreeAsText.h"
-#include "ShadowRoot.h"
#include "ScriptController.h"
#include "ScriptSourceCode.h"
#include "ScriptValue.h"
coreFrame->loader()->load(request, substituteData, false);
}
-QVariant DumpRenderTreeSupportQt::shadowRoot(const QWebElement& element)
-{
- WebCore::Element* webElement = element.m_element;
- if (!webElement)
- return QVariant();
-
- ShadowRoot* webShadowRoot = webElement->shadowRoot();
- if (!webShadowRoot)
- return QVariant();
-
- return QVariant::fromValue(QDRTNode(webShadowRoot));
-}
-
-QVariant DumpRenderTreeSupportQt::ensureShadowRoot(const QWebElement& element)
-{
- WebCore::Element* webElement = element.m_element;
- if (!webElement)
- return QVariant();
-
- return QVariant::fromValue(QDRTNode(webElement->ensureShadowRoot()));
-}
-
-void DumpRenderTreeSupportQt::removeShadowRoot(const QWebElement& element)
-{
- WebCore::Element* webElement = element.m_element;
- if (!webElement)
- return;
- webElement->removeShadowRoot();
-}
-
-QString DumpRenderTreeSupportQt::shadowPseudoId(const QWebElement& element)
-{
- WebCore::Element* webElement = element.m_element;
- QString pseudoId;
- if (webElement)
- pseudoId = webElement->shadowPseudoId().string();
- return pseudoId;
-}
-
void DumpRenderTreeSupportQt::confirmComposition(QWebPage* page, const char* text)
{
Frame* frame = page->handle()->page->focusController()->focusedOrMainFrame();
static QUrl mediaContentUrlByElementId(QWebFrame*, const QString& elementId);
static void setAlternateHtml(QWebFrame*, const QString& html, const QUrl& baseUrl, const QUrl& failingUrl);
- static QVariant shadowRoot(const QWebElement&);
- static QVariant ensureShadowRoot(const QWebElement&);
- static void removeShadowRoot(const QWebElement&);
- static QString shadowPseudoId(const QWebElement&);
-
static QString layerTreeAsText(QWebFrame*);
static void injectInternalsObject(QWebFrame*);
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ Remove shadow DOM-related methods from WebKit2 API. These are not
+ required any more.
+
+ * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
+ * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
+ * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
+ * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
+ * win/WebKit2.def: Re-exports for symbols used by WebCoreTestSupport.
+ * win/WebKit2CFLite.def: Same for Cairo.
+
2011-06-24 Carlos Garcia Campos <cgarcia@igalia.com>
Reviewed by Martin Robinson.
return toAPI(toImpl(elementHandleRef)->elementBounds());
}
-WKBundleNodeHandleRef WKBundleNodeHandleCopyElementShadowRoot(WKBundleNodeHandleRef elementHandleRef)
-{
- RefPtr<InjectedBundleNodeHandle> nodeHandle = toImpl(elementHandleRef)->elementShadowRoot();
- return toAPI(nodeHandle.release().releaseRef());
-}
-
-WKBundleNodeHandleRef WKBundleNodeHandleCopyElementEnsureShadowRoot(WKBundleNodeHandleRef elementHandleRef)
-{
- RefPtr<InjectedBundleNodeHandle> nodeHandle = toImpl(elementHandleRef)->elementEnsureShadowRoot();
- return toAPI(nodeHandle.release().releaseRef());
-}
-
-void WKBundleNodeHandleRemoveShadowRoot(WKBundleNodeHandleRef elementHandleRef)
-{
- toImpl(elementHandleRef)->elementRemoveShadowRoot();
-}
-
-WKStringRef WKBundleNodeHandleShadowPseudoId(WKBundleNodeHandleRef elementHandleRef)
-{
- return toCopiedAPI(toImpl(elementHandleRef)->elementShadowPseudoId());
-}
-
void WKBundleNodeHandleSetHTMLInputElementValueForUser(WKBundleNodeHandleRef htmlInputElementHandleRef, WKStringRef valueRef)
{
toImpl(htmlInputElementHandleRef)->setHTMLInputElementValueForUser(toWTFString(valueRef));
/* Element Specific Operations */
WK_EXPORT WKRect WKBundleNodeHandleGetElementBounds(WKBundleNodeHandleRef elementHandle);
-WK_EXPORT WKBundleNodeHandleRef WKBundleNodeHandleCopyElementShadowRoot(WKBundleNodeHandleRef elementHandle);
-WK_EXPORT WKBundleNodeHandleRef WKBundleNodeHandleCopyElementEnsureShadowRoot(WKBundleNodeHandleRef elementHandle);
-WK_EXPORT void WKBundleNodeHandleRemoveShadowRoot(WKBundleNodeHandleRef elementHandle);
-WK_EXPORT WKStringRef WKBundleNodeHandleShadowPseudoId(WKBundleNodeHandleRef elementHandle);
/* HTMLInputElement Specific Operations */
WK_EXPORT void WKBundleNodeHandleSetHTMLInputElementValueForUser(WKBundleNodeHandleRef htmlInputElementHandle, WKStringRef value);
#include <WebCore/IntRect.h>
#include <WebCore/JSNode.h>
#include <WebCore/Node.h>
-#include <WebCore/ShadowRoot.h>
#include <wtf/HashMap.h>
#include <wtf/text/WTFString.h>
return getOrCreate(static_cast<HTMLTableCellElement*>(m_node.get())->cellAbove());
}
-PassRefPtr<InjectedBundleNodeHandle> InjectedBundleNodeHandle::elementShadowRoot()
-{
- if (!m_node->isElementNode())
- return 0;
-
- return getOrCreate(static_cast<Element*>(m_node.get())->shadowRoot());
-}
-
-PassRefPtr<InjectedBundleNodeHandle> InjectedBundleNodeHandle::elementEnsureShadowRoot()
-{
- if (!m_node->isElementNode())
- return 0;
-
- return getOrCreate(static_cast<Element*>(m_node.get())->ensureShadowRoot());
-}
-
-void InjectedBundleNodeHandle::elementRemoveShadowRoot()
-{
- if (!m_node->isElementNode())
- return;
-
- static_cast<Element*>(m_node.get())->removeShadowRoot();
-}
-
-String InjectedBundleNodeHandle::elementShadowPseudoId()
-{
- if (!m_node->isElementNode())
- return String();
-
- return static_cast<Element*>(m_node.get())->shadowPseudoId();
-}
-
PassRefPtr<WebFrame> InjectedBundleNodeHandle::documentFrame()
{
if (!m_node->isDocumentNode())
PassRefPtr<InjectedBundleNodeHandle> htmlTableCellElementCellAbove();
- PassRefPtr<InjectedBundleNodeHandle> elementShadowRoot();
- PassRefPtr<InjectedBundleNodeHandle> elementEnsureShadowRoot();
- void elementRemoveShadowRoot();
- String elementShadowPseudoId();
-
PassRefPtr<WebFrame> documentFrame();
PassRefPtr<WebFrame> htmlFrameElementContentFrame();
PassRefPtr<WebFrame> htmlIFrameElementContentFrame();
?createThread@WTF@@YAIP6APAXPAX@Z0@Z
; Re-exports from WebCore for WebCoreTestSupport
- ?getCachedDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PBUClassInfo@3@@Z
- ?isPreloaded@CachedResourceLoader@WebCore@@QBE_NABVString@WTF@@@Z
+ ?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PAVStringImpl@2@@Z
?cacheDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PAV23@PBUClassInfo@3@@Z
- ?virtualFunctionToPreventWeakVtable@JSDOMWrapper@WebCore@@MAEXXZ
?create@ShadowContentElement@WebCore@@SA?AV?$PassRefPtr@VShadowContentElement@WebCore@@@WTF@@PAVDocument@2@@Z
+ ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
+ ?ensureShadowRoot@Element@WebCore@@QAEPAVShadowRoot@2@XZ
?externalRepresentation@WebCore@@YA?AVString@WTF@@PAVElement@1@I@Z
+ ?getCachedDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PBUClassInfo@3@@Z
+ ?isPreloaded@CachedResourceLoader@WebCore@@QBE_NABVString@WTF@@@Z
+ ?jsStringSlowCase@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@AAV?$HashMap@PAVStringImpl@WTF@@V?$Weak@VJSString@JSC@@@JSC@@UStringHash@2@U?$HashTraits@PAVStringImpl@WTF@@@2@U?$HashTraits@V?$Weak@VJSString@JSC@@@JSC@@@2@@WTF@@PAVStringImpl@6@@Z
+ ?removeShadowRoot@Element@WebCore@@QAEXXZ
?setDOMException@WebCore@@YAXPAVExecState@JSC@@H@Z
+ ?shadowRoot@Element@WebCore@@QBEPAVShadowRoot@2@XZ
?toDocument@WebCore@@YAPAVDocument@1@VJSValue@JSC@@@Z
- ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
?toElement@WebCore@@YAPAVElement@1@VJSValue@JSC@@@Z
- ?jsStringSlowCase@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@AAV?$HashMap@PAVStringImpl@WTF@@V?$Weak@VJSString@JSC@@@JSC@@UStringHash@2@U?$HashTraits@PAVStringImpl@WTF@@@2@U?$HashTraits@V?$Weak@VJSString@JSC@@@JSC@@@2@@WTF@@PAVStringImpl@6@@Z
\ No newline at end of file
+ ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
+ ?virtualFunctionToPreventWeakVtable@JSDOMWrapper@WebCore@@MAEXXZ
?createThread@WTF@@YAIP6APAXPAX@Z0@Z
; Re-exports from WebCore for WebCoreTestSupport
- ?getCachedDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PBUClassInfo@3@@Z
+ ?addSlowCase@AtomicString@WTF@@CA?AV?$PassRefPtr@VStringImpl@WTF@@@2@PAVStringImpl@2@@Z
?cacheDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PAV23@PBUClassInfo@3@@Z
+ ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
+ ?ensureShadowRoot@Element@WebCore@@QAEPAVShadowRoot@2@XZ
+ ?getCachedDOMStructure@WebCore@@YAPAVStructure@JSC@@PAVJSDOMGlobalObject@1@PBUClassInfo@3@@Z
+ ?jsStringSlowCase@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@AAV?$HashMap@PAVStringImpl@WTF@@V?$Weak@VJSString@JSC@@@JSC@@UStringHash@2@U?$HashTraits@PAVStringImpl@WTF@@@2@U?$HashTraits@V?$Weak@VJSString@JSC@@@JSC@@@2@@WTF@@PAVStringImpl@6@@Z
+ ?removeShadowRoot@Element@WebCore@@QAEXXZ
+ ?setDOMException@WebCore@@YAXPAVExecState@JSC@@H@Z
+ ?shadowRoot@Element@WebCore@@QBEPAVShadowRoot@2@XZ
+ ?toElement@WebCore@@YAPAVElement@1@VJSValue@JSC@@@Z
+ ?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z
?virtualFunctionToPreventWeakVtable@JSDOMWrapper@WebCore@@MAEXXZ
?create@ShadowContentElement@WebCore@@SA?AV?$PassRefPtr@VShadowContentElement@WebCore@@@WTF@@PAVDocument@2@@Z
?externalRepresentation@WebCore@@YA?AVString@WTF@@PAVElement@1@I@Z
_ZN7WebCore6JSNode13visitChildrenERN3JSC11SlotVisitorE;
_ZN7WebCore6JSNode3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
_ZN7WebCore6JSNode6s_infoE;
+_ZN7WebCore7Element16ensureShadowRootEv;
+_ZN7WebCore7Element16removeShadowRootEv;
_ZN7WebCore9JSElement3putEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE;
_ZN7WebCore9JSElement6s_infoE;
_ZN7WebCore9toElementEN3JSC7JSValueE;
_ZNK7WebCore20CachedResourceLoader11isPreloadedERKN3WTF6StringE;
_ZNK7WebCore6JSNode21pushEventHandlerScopeEPN3JSC9ExecStateEPNS1_14ScopeChainNodeE;
+_ZNK7WebCore7Element10shadowRootEv;
local:
_Z*;
cti*;
+2011-06-24 Dominic Cooney <dominicc@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Convert shadow DOM-related tests to use window.internals
+ https://bugs.webkit.org/show_bug.cgi?id=61671
+
+ Remove ensureShadowRoot, shadowRoot, shadowPseudoId and
+ removeShadowRoot from layoutTestController; these have been
+ replaced by equivalents in window.internals instead.
+
+ * DumpRenderTree/LayoutTestController.cpp:
+ (LayoutTestController::staticFunctions):
+ * DumpRenderTree/LayoutTestController.h:
+ * DumpRenderTree/chromium/LayoutTestController.cpp:
+ (LayoutTestController::LayoutTestController):
+ * DumpRenderTree/chromium/LayoutTestController.h:
+ * DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
+ * DumpRenderTree/mac/LayoutTestControllerMac.mm:
+ * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
+ * DumpRenderTree/qt/LayoutTestControllerQt.h:
+ * DumpRenderTree/win/LayoutTestControllerWin.cpp:
+ * DumpRenderTree/wx/LayoutTestControllerWx.cpp:
+ * WebKitTestRunner/InjectedBundle/Bindings/LayoutTestController.idl:
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
+ * WebKitTestRunner/InjectedBundle/LayoutTestController.h:
+
2011-06-24 Csaba Osztrogonác <ossy@webkit.org>
Reviewed by Dirk Schulze.
return JSValueMakeUndefined(context);
}
-static JSValueRef shadowRootCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
-{
- if (argumentCount != 1)
- return JSValueMakeUndefined(context);
- LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
- return controller->shadowRoot(context, arguments[0]);
-}
-
-static JSValueRef ensureShadowRootCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
-{
- if (argumentCount != 1)
- return JSValueMakeUndefined(context);
- LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
- return controller->ensureShadowRoot(context, arguments[0]);
-}
-
-static JSValueRef removeShadowRootCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
-{
- if (argumentCount != 1)
- return JSValueMakeUndefined(context);
-
- LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
- controller->removeShadowRoot(context, arguments[0]);
-
- return JSValueMakeUndefined(context);
-}
-
static JSValueRef showWebInspectorCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
{
LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
return JSValueMakeUndefined(context);
}
-static JSValueRef shadowPseudoIdCallback(JSContextRef context, JSObjectRef thisObject, JSObjectRef, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
-{
- if (argumentCount < 1)
- return JSValueMakeUndefined(context);
-
- LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
-
- return JSValueMakeString(context, controller->shadowPseudoId(context, arguments[0]).get());
-}
-
// Static Values
static JSValueRef getGlobalFlagCallback(JSContextRef context, JSObjectRef thisObject, JSStringRef propertyName, JSValueRef* exception)
{ "dumpWillCacheResponse", dumpWillCacheResponseCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "elementDoesAutoCompleteForElementWithId", elementDoesAutoCompleteForElementWithIdCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "encodeHostName", encodeHostNameCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "ensureShadowRoot", ensureShadowRootCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "evaluateInWebInspector", evaluateInWebInspectorCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "evaluateScriptInIsolatedWorld", evaluateScriptInIsolatedWorldCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "execCommand", execCommandCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "numberOfActiveAnimations", numberOfActiveAnimationsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "suspendAnimations", suspendAnimationsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "resumeAnimations", resumeAnimationsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "removeShadowRoot", removeShadowRootCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "overridePreference", overridePreferenceCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "pageNumberForElementById", pageNumberForElementByIdCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "pageSizeAndMarginsInPixels", pageSizeAndMarginsInPixelsCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setJavaScriptCanAccessClipboard", setJavaScriptCanAccessClipboardCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setXSSAuditorEnabled", setXSSAuditorEnabledCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setAsynchronousSpellCheckingEnabled", setAsynchronousSpellCheckingEnabledCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "shadowRoot", shadowRootCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "showWebInspector", showWebInspectorCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "testOnscreen", testOnscreenCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "testRepaint", testRepaintCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "originsWithLocalStorage", originsWithLocalStorageCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setShouldPaintBrokenImage", setShouldPaintBrokenImageCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ "setTextDirection", setTextDirectionCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
- { "shadowPseudoId", shadowPseudoIdCallback, kJSPropertyAttributeReadOnly | kJSPropertyAttributeDontDelete },
{ 0, 0, 0 }
};
int pageNumberForElementById(JSStringRef id, float pageWidthInPixels, float pageHeightInPixels);
JSRetainPtr<JSStringRef> pageProperty(const char* propertyName, int pageNumber) const;
JSRetainPtr<JSStringRef> pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) const;
- JSRetainPtr<JSStringRef> shadowPseudoId(JSContextRef, JSValueRef) const;
bool isPageBoxVisible(int pageNumber) const;
JSStringRef pathToLocalResource(JSContextRef, JSStringRef url);
void queueBackNavigation(int howFarBackward);
void setPageVisibility(const char* visibility) { }
void resetPageVisibility() { }
- JSValueRef shadowRoot(JSContextRef, JSValueRef);
- JSValueRef ensureShadowRoot(JSContextRef, JSValueRef);
- void removeShadowRoot(JSContextRef, JSValueRef);
-
void waitForPolicyDelegate();
size_t webHistoryItemCount();
unsigned workerThreadCount() const;
bindMethod("dumpStatusCallbacks", &LayoutTestController::dumpWindowStatusChanges);
bindMethod("dumpTitleChanges", &LayoutTestController::dumpTitleChanges);
bindMethod("elementDoesAutoCompleteForElementWithId", &LayoutTestController::elementDoesAutoCompleteForElementWithId);
- bindMethod("ensureShadowRoot", &LayoutTestController::ensureShadowRoot);
bindMethod("evaluateInWebInspector", &LayoutTestController::evaluateInWebInspector);
bindMethod("evaluateScriptInIsolatedWorld", &LayoutTestController::evaluateScriptInIsolatedWorld);
bindMethod("setIsolatedWorldSecurityOrigin", &LayoutTestController::setIsolatedWorldSecurityOrigin);
bindMethod("queueNonLoadingScript", &LayoutTestController::queueNonLoadingScript);
bindMethod("queueReload", &LayoutTestController::queueReload);
bindMethod("removeOriginAccessWhitelistEntry", &LayoutTestController::removeOriginAccessWhitelistEntry);
- bindMethod("removeShadowRoot", &LayoutTestController::removeShadowRoot);
bindMethod("repaintSweepHorizontally", &LayoutTestController::repaintSweepHorizontally);
bindMethod("resetPageVisibility", &LayoutTestController::resetPageVisibility);
bindMethod("resumeAnimations", &LayoutTestController::resumeAnimations);
bindMethod("setWindowIsKey", &LayoutTestController::setWindowIsKey);
bindMethod("setXSSAuditorEnabled", &LayoutTestController::setXSSAuditorEnabled);
bindMethod("setAsynchronousSpellCheckingEnabled", &LayoutTestController::setAsynchronousSpellCheckingEnabled);
- bindMethod("shadowRoot", &LayoutTestController::shadowRoot);
- bindMethod("shadowPseudoId", &LayoutTestController::shadowPseudoId);
bindMethod("showWebInspector", &LayoutTestController::showWebInspector);
bindMethod("simulateDesktopNotificationClick", &LayoutTestController::simulateDesktopNotificationClick);
bindMethod("suspendAnimations", &LayoutTestController::suspendAnimations);
result->setNull();
}
-void LayoutTestController::shadowRoot(const CppArgumentList& arguments, CppVariant* result)
-{
- if (arguments.size() != 1 || !arguments[0].isObject()) {
- result->setNull();
- return;
- }
-
- WebElement element;
- if (!WebBindings::getElement(arguments[0].value.objectValue, &element)) {
- result->setNull();
- return;
- }
-
- NPObject* shadowRoot = WebBindings::makeNode(element.shadowRoot());
- if (!shadowRoot) {
- result->setNull();
- return;
- }
-
- result->set(shadowRoot);
- WebBindings::releaseObject(shadowRoot);
-}
-
-void LayoutTestController::ensureShadowRoot(const CppArgumentList& arguments, CppVariant* result)
-{
- if (arguments.size() != 1 || !arguments[0].isObject()) {
- result->setNull();
- return;
- }
-
- WebElement element;
- if (!WebBindings::getElement(arguments[0].value.objectValue, &element)) {
- result->setNull();
- return;
- }
-
- NPObject* shadowRoot = WebBindings::makeNode(element.ensureShadowRoot());
- if (!shadowRoot) {
- result->setNull();
- return;
- }
-
- result->set(shadowRoot);
- WebBindings::releaseObject(shadowRoot);
-}
-
-void LayoutTestController::removeShadowRoot(const CppArgumentList& arguments, CppVariant* result)
-{
- if (arguments.size() != 1 || !arguments[0].isObject())
- return;
-
- WebElement element;
- if (!WebBindings::getElement(arguments[0].value.objectValue, &element))
- return;
-
- element.removeShadowRoot();
-}
-
-void LayoutTestController::shadowPseudoId(const CppArgumentList& arguments, CppVariant* result)
-{
- WebElement element;
- if (!WebBindings::getElement(arguments[0].value.objectValue, &element))
- result->setNull();
- else
- result->set(element.shadowPseudoId().utf8());
-}
-
void LayoutTestController::showWebInspector(const CppArgumentList&, CppVariant* result)
{
m_shell->showDevTools();
void evaluateScriptInIsolatedWorld(const CppArgumentList&, CppVariant*);
void setIsolatedWorldSecurityOrigin(const CppArgumentList&, CppVariant*);
- void shadowRoot(const CppArgumentList&, CppVariant*);
- void ensureShadowRoot(const CppArgumentList&, CppVariant*);
- void removeShadowRoot(const CppArgumentList&, CppVariant*);
- void shadowPseudoId(const CppArgumentList&, CppVariant*);
-
// The fallback method is called when a nonexistent method is called on
// the layout test controller object.
// It is usefull to catch typos in the JavaScript code (a few layout tests
return markerText;
}
-JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
-{
- CString id = DumpRenderTreeSupportGtk::shadowPseudoId(context, nodeObject);
- if (id.isNull())
- return 0;
-
- JSRetainPtr<JSStringRef> result(Adopt, JSStringCreateWithUTF8CString(id.data()));
- return result;
-}
-
void LayoutTestController::authenticateSession(JSStringRef, JSStringRef, JSStringRef)
{
}
g_object_set(G_OBJECT(settings), "editing-behavior", WEBKIT_EDITING_BEHAVIOR_UNIX, NULL);
}
-JSValueRef LayoutTestController::shadowRoot(JSContextRef context, JSValueRef element)
-{
- return DumpRenderTreeSupportGtk::shadowRoot(context, element);
-}
-
-JSValueRef LayoutTestController::ensureShadowRoot(JSContextRef context, JSValueRef element)
-{
- return DumpRenderTreeSupportGtk::ensureShadowRoot(context, element);
-}
-
-void LayoutTestController::removeShadowRoot(JSContextRef context, JSValueRef element)
-{
- DumpRenderTreeSupportGtk::removeShadowRoot(context, element);
-}
-
void LayoutTestController::abortModal()
{
}
return markerText;
}
-JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
-{
- DOMElement *element = [DOMElement _DOMElementFromJSContext:context value:nodeObject];
- if (!element)
- return JSRetainPtr<JSStringRef>();
-
- JSRetainPtr<JSStringRef> shadowId(Adopt, JSStringCreateWithCFString((CFStringRef)[element _shadowPseudoId]));
- return shadowId;
-}
-
int LayoutTestController::pageNumberForElementById(JSStringRef id, float pageWidthInPixels, float pageHeightInPixels)
{
RetainPtr<CFStringRef> idCF(AdoptCF, JSStringCopyCFString(kCFAllocatorDefault, id));
[editingBehaviorNS release];
}
-JSValueRef LayoutTestController::shadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- DOMElement* element = [DOMElement _DOMElementFromJSContext:context value:jsElement];
- if (!element)
- return JSValueMakeNull(context);
- return [element _shadowRoot:context];
-}
-
-JSValueRef LayoutTestController::ensureShadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- DOMElement* element = [DOMElement _DOMElementFromJSContext:context value:jsElement];
- if (!element)
- return JSValueMakeNull(context);
- return [element _ensureShadowRoot:context];
-}
-
-void LayoutTestController::removeShadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- DOMElement* element = [DOMElement _DOMElementFromJSContext:context value:jsElement];
- if (!element)
- return;
- [element _removeShadowRoot];
-}
-
void LayoutTestController::abortModal()
{
[NSApp abortModal];
DumpRenderTreeSupportQt::setMockDeviceOrientation(canProvideAlpha, alpha, canProvideBeta, beta, canProvideGamma, gamma);
}
-QVariant LayoutTestController::shadowRoot(const QWebElement& element)
-{
- return DumpRenderTreeSupportQt::shadowRoot(element);
-}
-
-QVariant LayoutTestController::ensureShadowRoot(const QWebElement& element)
-{
- return DumpRenderTreeSupportQt::ensureShadowRoot(element);
-}
-
-void LayoutTestController::removeShadowRoot(const QWebElement& element)
-{
- DumpRenderTreeSupportQt::removeShadowRoot(element);
-}
-
-QString LayoutTestController::shadowPseudoId(const QWebElement& element)
-{
- return DumpRenderTreeSupportQt::shadowPseudoId(element);
-}
-
void LayoutTestController::setGeolocationPermission(bool allow)
{
setGeolocationPermissionCommon(allow);
void setEditingBehavior(const QString& editingBehavior);
- QVariant shadowRoot(const QWebElement&);
- QVariant ensureShadowRoot(const QWebElement&);
- void removeShadowRoot(const QWebElement&);
- QString shadowPseudoId(const QWebElement&);
-
void evaluateScriptInIsolatedWorld(int worldID, const QString& script);
bool isPageBoxVisible(int pageIndex);
QString pageSizeAndMarginsInPixels(int pageIndex, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft);
return markerText;
}
-JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
-{
- COMPtr<IWebView> webView;
- if (FAILED(frame->webView(&webView)))
- return 0;
-
- COMPtr<IWebViewPrivate> webViewPrivate(Query, webView);
- if (!webViewPrivate)
- return 0;
-
- COMPtr<IDOMElement> element;
- if (FAILED(webViewPrivate->elementFromJS(context, nodeObject, &element)))
- return 0;
-
- COMPtr<IDOMElementPrivate> elementPrivate(Query, element);
- if (!elementPrivate)
- return 0;
-
- BSTR idBSTR = 0;
- if (FAILED(elementPrivate->shadowPseudoId(&idBSTR)))
- return 0;
-
- JSRetainPtr<JSStringRef> id(Adopt, JSStringCreateWithBSTR(idBSTR));
- SysFreeString(idBSTR);
- return id;
-}
-
void LayoutTestController::waitForPolicyDelegate()
{
COMPtr<IWebView> webView;
preferences->setEditingBehavior(WebKitEditingUnixBehavior);
}
-JSValueRef LayoutTestController::shadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- // FIXME: Implement this.
- return JSValueMakeUndefined(context);
-}
-
-JSValueRef LayoutTestController::ensureShadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- // FIXME: Implement this.
- return JSValueMakeUndefined(context);
-}
-
-void LayoutTestController::removeShadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- // FIXME: Implement this.
-}
-
void LayoutTestController::abortModal()
{
}
return 0;
}
-JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSContextRef context, JSValueRef nodeObject) const
-{
- return 0;
-}
-
JSValueRef LayoutTestController::computedStyleIncludingVisitedInfo(JSContextRef, JSValueRef)
{
return 0;
// FIXME: Implement.
}
-const OpaqueJSValue* LayoutTestController::shadowRoot(const OpaqueJSContext*, const OpaqueJSValue*)
-{
- // FIXME: Implement.
- return 0;
-}
-
-JSValueRef LayoutTestController::ensureShadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- // FIXME: Implement this.
- return JSValueMakeUndefined(context);
-}
-
-void LayoutTestController::removeShadowRoot(JSContextRef context, JSValueRef jsElement)
-{
- // FIXME: Implement this.
-}
-
void LayoutTestController::setTextDirection(JSStringRef direction)
{
// FIXME: Implement.
DOMString markerTextForListItem(in object element);
unsigned long windowCount();
- // Shadow DOM.
- object shadowRoot(in object element);
- object ensureShadowRoot(in object element);
- void removeShadowRoot(in object element);
- DOMString shadowPseudoId(in object element);
-
// Repaint testing.
void testRepaint();
void repaintSweepHorizontally();
return InjectedBundle::shared().pageCount();
}
-JSValueRef LayoutTestController::shadowRoot(JSValueRef element)
-{
- WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page());
- JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame);
-
- if (!element || !JSValueIsObject(context, element))
- return JSValueMakeNull(context);
-
- WKRetainPtr<WKBundleNodeHandleRef> domElement = adoptWK(WKBundleNodeHandleCreate(context, const_cast<JSObjectRef>(element)));
- if (!domElement)
- return JSValueMakeNull(context);
-
- WKRetainPtr<WKBundleNodeHandleRef> shadowRootDOMNode = adoptWK(WKBundleNodeHandleCopyElementShadowRoot(domElement.get()));
- if (!shadowRootDOMNode)
- return JSValueMakeNull(context);
-
- return WKBundleFrameGetJavaScriptWrapperForNodeForWorld(mainFrame, shadowRootDOMNode.get(), WKBundleScriptWorldNormalWorld());
-}
-
-JSValueRef LayoutTestController::ensureShadowRoot(JSValueRef element)
-{
- WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page());
- JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame);
-
- if (!element || !JSValueIsObject(context, element))
- return JSValueMakeNull(context);
-
- WKRetainPtr<WKBundleNodeHandleRef> domElement = adoptWK(WKBundleNodeHandleCreate(context, const_cast<JSObjectRef>(element)));
- if (!domElement)
- return JSValueMakeNull(context);
-
- WKRetainPtr<WKBundleNodeHandleRef> shadowRootDOMNode = adoptWK(WKBundleNodeHandleCopyElementEnsureShadowRoot(domElement.get()));
- if (!shadowRootDOMNode)
- return JSValueMakeNull(context);
-
- return WKBundleFrameGetJavaScriptWrapperForNodeForWorld(mainFrame, shadowRootDOMNode.get(), WKBundleScriptWorldNormalWorld());
-}
-
-void LayoutTestController::removeShadowRoot(JSValueRef element)
-{
- WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page());
- JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame);
-
- if (!element || !JSValueIsObject(context, element))
- return;
-
- WKRetainPtr<WKBundleNodeHandleRef> domElement = adoptWK(WKBundleNodeHandleCreate(context, const_cast<JSObjectRef>(element)));
- if (!domElement)
- return;
-
- WKBundleNodeHandleRemoveShadowRoot(domElement.get());
-}
-
-JSRetainPtr<JSStringRef> LayoutTestController::shadowPseudoId(JSValueRef element) const
-{
- WKBundleFrameRef mainFrame = WKBundlePageGetMainFrame(InjectedBundle::shared().page()->page());
- JSContextRef context = WKBundleFrameGetJavaScriptContext(mainFrame);
-
- if (!element || !JSValueIsObject(context, element))
- return 0;
-
- WKRetainPtr<WKBundleNodeHandleRef> domElement = adoptWK(WKBundleNodeHandleCreate(context, const_cast<JSObjectRef>(element)));
- if (!domElement)
- return 0;
-
- WKRetainPtr<WKStringRef> id(AdoptWK, WKBundleNodeHandleShadowPseudoId(domElement.get()));
- if (WKStringIsEmpty(id.get()))
- return 0;
- return toJS(id);
-}
-
void LayoutTestController::clearBackForwardList()
{
WKBundleBackForwardListClear(WKBundlePageGetBackForwardList(InjectedBundle::shared().page()->page()));
JSRetainPtr<JSStringRef> markerTextForListItem(JSValueRef element);
unsigned windowCount();
- // Shadow DOM.
- JSValueRef shadowRoot(JSValueRef element);
- JSValueRef ensureShadowRoot(JSValueRef element);
- void removeShadowRoot(JSValueRef element);
- JSRetainPtr<JSStringRef> shadowPseudoId(JSValueRef) const;
-
// Repaint testing.
void testRepaint() { m_testRepaint = true; }
void repaintSweepHorizontally() { m_testRepaintSweepHorizontally = true; }