Diff
Modified: trunk/ChangeLog (113328 => 113329)
--- trunk/ChangeLog 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/ChangeLog 2012-04-05 16:46:22 UTC (rev 113329)
@@ -1,3 +1,14 @@
+2012-03-14 Antonio Gomes <ago...@rim.com>
+
+ Extend HitTestResult to support not "discarding" shadow content in favor of its DOM ancestor
+ https://bugs.webkit.org/show_bug.cgi?id=80847
+
+ Reviewed by David Hyatt.
+
+ Exporting Internals::nodesFromRect symbols for the Gtk build.
+
+ * Source/autotools/symbols.filter:
+
2012-04-05 Jonathan Dong <jonathan.d...@torchmobile.com.cn>
[BlackBerry] Clear local storage won't take effect until browser exit and relaunch
Modified: trunk/LayoutTests/ChangeLog (113328 => 113329)
--- trunk/LayoutTests/ChangeLog 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/LayoutTests/ChangeLog 2012-04-05 16:46:22 UTC (rev 113329)
@@ -1,3 +1,20 @@
+2012-03-14 Antonio Gomes <ago...@rim.com>
+
+ Extend HitTestResult to support not "discarding" shadow content in favor of its DOM ancestor
+ https://bugs.webkit.org/show_bug.cgi?id=80847
+
+ Reviewed by David Hyatt.
+
+ Adds a test that rect-hittest's a element known to have a shadow
+ tree (<video> with built-in controls), and check if its return type
+ contains its clickable shadow nodes.
+
+ * fast/dom/nodesFromRect-shadowContent-expected.txt: Added.
+ * fast/dom/nodesFromRect-shadowContent.html: Added.
+ * fast/dom/resources/nodesFromRect.js:
+ (check):
+ (checkShadowContent):
+
2012-04-05 Hans Muller <hmul...@adobe.com>
Rename CSS Exclusions "rect" value to "rectangle"
Added: trunk/LayoutTests/fast/dom/nodesFromRect-shadowContent-expected.txt (0 => 113329)
--- trunk/LayoutTests/fast/dom/nodesFromRect-shadowContent-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/dom/nodesFromRect-shadowContent-expected.txt 2012-04-05 16:46:22 UTC (rev 113329)
@@ -0,0 +1,6 @@
+PASS All correct nodes found for rect
+PASS All correct nodes found for rect
+This test only runs in DRT!
+
+EXPECTED (video.controls != 'null') OK
+
Added: trunk/LayoutTests/fast/dom/nodesFromRect-shadowContent.html (0 => 113329)
--- trunk/LayoutTests/fast/dom/nodesFromRect-shadowContent.html (rev 0)
+++ trunk/LayoutTests/fast/dom/nodesFromRect-shadowContent.html 2012-04-05 16:46:22 UTC (rev 113329)
@@ -0,0 +1,62 @@
+<html>
+<head>
+ <title>Document::nodesFromRect shadow content access - bug 80847 </title>
+ <style type="text/css" media="screen">
+ video {
+ margin: 50px;
+ }
+ </style>
+ <script src=""
+ <script src=""
+ <script src=""
+ <script src=""
+ <script type="text/_javascript_" charset="utf-8">
+ function runTest()
+ {
+ if (window.layoutTestController) {
+ layoutTestController.dumpAsText();
+ layoutTestController.waitUntilDone();
+ }
+
+ var e = {};
+
+ // Set up shortcut access to elements
+ e['html'] = document.getElementsByTagName("html")[0];
+ ['v1', 'body'].forEach(function(a) {
+ e[a] = document.getElementById(a);
+ });
+
+ window.scrollTo(0, 0);
+
+ var playCoords;
+ try {
+ playCoords = mediaControlsButtonCoordinates(video, "play-button");
+ } catch (exception) {
+ failTest(exception.description);
+ return;
+ }
+ var clickX = playCoords[0];
+ var clickY = playCoords[1];
+
+ check(clickX, clickY, 10, 10, 20, 20, [e.v1, e.body]);
+
+ var shadow =['-webkit-media-controls-timeline-container', '-webkit-media-controls-play-button', '-webkit-media-controls-panel', '-webkit-media-controls'];
+ checkShadowContent(clickX, clickY, 10, 10, 20, 20, shadow);
+
+ if (window.layoutTestController)
+ layoutTestController.notifyDone();
+ }
+
+ window._onload_ = runTest;
+ </script>
+</head>
+<body id="body">
+ <video id="v1" controls></video>
+ <p>This test only runs in DRT!</p>
+ <script src=""
+ <script>
+ testExpected("video.controls", null, '!=');
+ video.src = "" "content/test");
+ </script>
+</body>
+</html>
Modified: trunk/LayoutTests/fast/dom/resources/nodesFromRect.js (113328 => 113329)
--- trunk/LayoutTests/fast/dom/resources/nodesFromRect.js 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/LayoutTests/fast/dom/resources/nodesFromRect.js 2012-04-05 16:46:22 UTC (rev 113329)
@@ -11,7 +11,7 @@
if (!doc)
doc = document;
- var nodes = internals.nodesFromRect(doc, x, y, topPadding, rightPadding, bottomPadding, leftPadding, true /* ignoreClipping */);
+ var nodes = internals.nodesFromRect(doc, x, y, topPadding, rightPadding, bottomPadding, leftPadding, true /* ignoreClipping */, false /* allow shadow content */);
if (!nodes)
return;
@@ -37,6 +37,36 @@
testPassed("All correct nodes found for rect");
}
+function checkShadowContent(x, y, topPadding, rightPadding, bottomPadding, leftPadding, shadowContent, doc)
+{
+ if (!window.internals)
+ return;
+
+ if (!doc)
+ doc = document;
+
+ var nodes = internals.nodesFromRect(doc, x, y, topPadding, rightPadding, bottomPadding, leftPadding, true /* ignoreClipping */, true /* allowShadowContent */);
+ if (!nodes)
+ return;
+
+ for (var j = 0; j < shadowContent.length; j++) {
+ var found = false;
+ for (var i = 0; i < nodes.length; i++) {
+ if (internals.shadowPseudoId(nodes[i]) == shadowContent[j]) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ testFailed("Pseudo Id not found: " + shadowContent[j]);
+ return;
+ }
+ }
+
+ testPassed("All correct nodes found for rect");
+}
+
function getCenterFor(element)
{
var rect = element.getBoundingClientRect();
Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (113328 => 113329)
--- trunk/LayoutTests/platform/chromium/test_expectations.txt 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt 2012-04-05 16:46:22 UTC (rev 113329)
@@ -2298,6 +2298,10 @@
BUGWK46600 SKIP : fast/dom/nodesFromRect-links-and-text.html = TEXT
BUGWK46600 SKIP : fast/dom/nodesFromRect-inner-documents.html = TEXT
+// For some reason it seems to not properly rect hit-tests elements in shadow
+// content of <video> elements.
+BUGWK46600 SKIP : fast/dom/nodesFromRect-shadowContent.html = TEXT
+
BUGCR59671 LINUX : svg/custom/convolution-crash.svg = PASS TEXT
BUGJAMESR LINUX WIN : fast/text/international/vertical-text-glyph-test.html = IMAGE+TEXT
@@ -3972,4 +3976,4 @@
BUGWK83183 MAC : svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size.html = PASS IMAGE
BUGWK83185 MAC DEBUG : fast/writing-mode/relative-positioning-percentages.html = CRASH
BUGWK83219 LION : fonts/cursive.html = PASS IMAGE
-BUGWK83286 : fast/filesystem/file-writer-abort-continue.html = CRASH PASS
\ No newline at end of file
+BUGWK83286 : fast/filesystem/file-writer-abort-continue.html = CRASH PASS
Modified: trunk/Source/WebCore/ChangeLog (113328 => 113329)
--- trunk/Source/WebCore/ChangeLog 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/ChangeLog 2012-04-05 16:46:22 UTC (rev 113329)
@@ -1,3 +1,47 @@
+2012-03-14 Antonio Gomes <ago...@rim.com>
+
+ Extend HitTestResult to support not "discarding" shadow content in favor of its DOM ancestor
+ https://bugs.webkit.org/show_bug.cgi?id=80847
+
+ Reviewed by David Hyatt.
+
+ In order to improve touch precision on shadow tree content, patch
+ extends the rect-hittest'ing system to allow shadow content
+ to be stored as the rect-hittest result node list.
+
+ Primary use cases are for this extension is making it easier to
+ improve the clickability of default controls of <video> and <audio>
+ elements.
+
+ For the callee site, the use is simple: if shadow content in the rect-hittest
+ result is desired, just add an extra 'AllowShadowContent' parameter at the creation
+ of the HitTestResult object.
+
+ Test: fast/dom/nodesFromRect-shadowContent.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::nodesFromRect):
+ * dom/Document.h:
+ (Document):
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::hitTestResultAtPoint):
+ * rendering/HitTestResult.cpp:
+ (WebCore::HitTestResult::HitTestResult):
+ (WebCore::HitTestResult::addNodeToRectBasedTestResult):
+ * rendering/HitTestResult.h:
+ (HitTestResult):
+ (WebCore::HitTestResult::shadowContentFilterPolicy):
+ * rendering/RenderImage.cpp:
+ (WebCore::RenderImage::nodeAtPoint):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::hitTestLayer):
+ (WebCore::RenderLayer::hitTestList):
+ * testing/Internals.cpp:
+ (WebCore::Internals::nodesFromRect):
+ * testing/Internals.h:
+ (Internals):
+ * testing/Internals.idl:
+
2012-04-05 Hans Muller <hmul...@adobe.com>
Rename CSS Exclusions "rect" value to "rectangle"
Modified: trunk/Source/WebCore/WebCore.exp.in (113328 => 113329)
--- trunk/Source/WebCore/WebCore.exp.in 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/WebCore.exp.in 2012-04-05 16:46:22 UTC (rev 113329)
@@ -1475,7 +1475,7 @@
__ZNK7WebCore8Document10renderViewEv
__ZNK7WebCore8Document11completeURLERKN3WTF6StringE
__ZNK7WebCore8Document13axObjectCacheEv
-__ZNK7WebCore8Document13nodesFromRectEiijjjjb
+__ZNK7WebCore8Document13nodesFromRectEiijjjjbb
__ZNK7WebCore8Document14getElementByIdERKN3WTF12AtomicStringE
__ZNK7WebCore8Document16dashboardRegionsEv
__ZNK7WebCore8Document31displayStringModifiedByEncodingERKN3WTF6StringE
Modified: trunk/Source/WebCore/dom/Document.cpp (113328 => 113329)
--- trunk/Source/WebCore/dom/Document.cpp 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/dom/Document.cpp 2012-04-05 16:46:22 UTC (rev 113329)
@@ -1240,7 +1240,7 @@
// * making it receive a rect as parameter, i.e. nodesFromRect(x, y, w, h);
// * making it receive the expading size of each direction separately,
// i.e. nodesFromRect(x, y, topSize, rightSize, bottomSize, leftSize);
-PassRefPtr<NodeList> Document::nodesFromRect(int centerX, int centerY, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping) const
+PassRefPtr<NodeList> Document::nodesFromRect(int centerX, int centerY, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent) const
{
// FIXME: Share code between this, elementFromPoint and caretRangeFromPoint.
if (!renderer())
@@ -1272,7 +1272,8 @@
return handleZeroPadding(request, result);
}
- HitTestResult result(point, topPadding, rightPadding, bottomPadding, leftPadding);
+ enum ShadowContentFilterPolicy shadowContentFilterPolicy = allowShadowContent ? AllowShadowContent : DoNotAllowShadowContent;
+ HitTestResult result(point, topPadding, rightPadding, bottomPadding, leftPadding, shadowContentFilterPolicy);
renderView()->layer()->hitTest(request, result);
return StaticHashSetNodeList::adopt(result.rectBasedTestResult());
Modified: trunk/Source/WebCore/dom/Document.h (113328 => 113329)
--- trunk/Source/WebCore/dom/Document.h 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/dom/Document.h 2012-04-05 16:46:22 UTC (rev 113329)
@@ -370,7 +370,7 @@
* If false, this method returns null for coordinates outside of the viewport.
*/
PassRefPtr<NodeList> nodesFromRect(int centerX, int centerY, unsigned topPadding, unsigned rightPadding,
- unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping) const;
+ unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent) const;
Element* elementFromPoint(int x, int y) const;
PassRefPtr<Range> caretRangeFromPoint(int x, int y);
Modified: trunk/Source/WebCore/page/EventHandler.cpp (113328 => 113329)
--- trunk/Source/WebCore/page/EventHandler.cpp 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/page/EventHandler.cpp 2012-04-05 16:46:22 UTC (rev 113329)
@@ -1040,7 +1040,9 @@
HitTestResult EventHandler::hitTestResultAtPoint(const LayoutPoint& point, bool allowShadowContent, bool ignoreClipping, HitTestScrollbars testScrollbars, HitTestRequest::HitTestRequestType hitType, const LayoutSize& padding)
{
- HitTestResult result(point, padding.height(), padding.width(), padding.height(), padding.width());
+ enum ShadowContentFilterPolicy shadowContentFilterPolicy = allowShadowContent ? AllowShadowContent : DoNotAllowShadowContent;
+ HitTestResult result(point, padding.height(), padding.width(), padding.height(), padding.width(), shadowContentFilterPolicy);
+
if (!m_frame->contentRenderer())
return result;
if (ignoreClipping)
@@ -1061,7 +1063,7 @@
FrameView* view = static_cast<FrameView*>(widget);
LayoutPoint widgetPoint(result.localPoint().x() + view->scrollX() - renderWidget->borderLeft() - renderWidget->paddingLeft(),
result.localPoint().y() + view->scrollY() - renderWidget->borderTop() - renderWidget->paddingTop());
- HitTestResult widgetHitTestResult(widgetPoint, padding.height(), padding.width(), padding.height(), padding.width());
+ HitTestResult widgetHitTestResult(widgetPoint, padding.height(), padding.width(), padding.height(), padding.width(), shadowContentFilterPolicy);
frame->contentRenderer()->layer()->hitTest(HitTestRequest(hitType), widgetHitTestResult);
result = widgetHitTestResult;
Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (113328 => 113329)
--- trunk/Source/WebCore/rendering/HitTestResult.cpp 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp 2012-04-05 16:46:22 UTC (rev 113329)
@@ -54,6 +54,7 @@
, m_rightPadding(0)
, m_bottomPadding(0)
, m_leftPadding(0)
+ , m_shadowContentFilterPolicy(DoNotAllowShadowContent)
, m_region(0)
{
}
@@ -66,17 +67,19 @@
, m_rightPadding(0)
, m_bottomPadding(0)
, m_leftPadding(0)
+ , m_shadowContentFilterPolicy(DoNotAllowShadowContent)
, m_region(0)
{
}
-HitTestResult::HitTestResult(const LayoutPoint& centerPoint, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding)
+HitTestResult::HitTestResult(const LayoutPoint& centerPoint, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding, ShadowContentFilterPolicy allowShadowContent)
: m_point(centerPoint)
, m_isOverWidget(false)
, m_topPadding(topPadding)
, m_rightPadding(rightPadding)
, m_bottomPadding(bottomPadding)
, m_leftPadding(leftPadding)
+ , m_shadowContentFilterPolicy(allowShadowContent)
, m_region(0)
{
// If all padding values passed in are zero then it is not a rect based hit test.
@@ -95,6 +98,7 @@
, m_innerURLElement(other.URLElement())
, m_scrollbar(other.scrollbar())
, m_isOverWidget(other.isOverWidget())
+ , m_shadowContentFilterPolicy(other.shadowContentFilterPolicy())
, m_region(other.region())
{
// Only copy the padding and NodeSet in case of rect hit test.
@@ -572,7 +576,9 @@
if (!node)
return true;
- node = node->shadowAncestorNode();
+ if (m_shadowContentFilterPolicy == DoNotAllowShadowContent)
+ node = node->shadowAncestorNode();
+
mutableRectBasedTestResult().add(node);
if (node->renderer()->isInline()) {
@@ -603,7 +609,9 @@
if (!node)
return true;
- node = node->shadowAncestorNode();
+ if (m_shadowContentFilterPolicy == DoNotAllowShadowContent)
+ node = node->shadowAncestorNode();
+
mutableRectBasedTestResult().add(node);
if (node->renderer()->isInline()) {
Modified: trunk/Source/WebCore/rendering/HitTestResult.h (113328 => 113329)
--- trunk/Source/WebCore/rendering/HitTestResult.h 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/rendering/HitTestResult.h 2012-04-05 16:46:22 UTC (rev 113329)
@@ -42,6 +42,8 @@
class RenderRegion;
class Scrollbar;
+enum ShadowContentFilterPolicy { DoNotAllowShadowContent, AllowShadowContent };
+
class HitTestResult {
public:
typedef ListHashSet<RefPtr<Node> > NodeSet;
@@ -49,7 +51,7 @@
HitTestResult();
HitTestResult(const LayoutPoint&);
// Pass non-negative padding values to perform a rect-based hit test.
- HitTestResult(const LayoutPoint& centerPoint, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding);
+ HitTestResult(const LayoutPoint& centerPoint, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding, ShadowContentFilterPolicy);
HitTestResult(const HitTestResult&);
~HitTestResult();
HitTestResult& operator=(const HitTestResult&);
@@ -68,6 +70,8 @@
void setToNonShadowAncestor();
+ ShadowContentFilterPolicy shadowContentFilterPolicy() const { return m_shadowContentFilterPolicy; }
+
void setInnerNode(Node*);
void setInnerNonSharedNode(Node*);
void setPoint(const LayoutPoint& p) { m_point = p; }
@@ -146,6 +150,7 @@
int m_rightPadding;
int m_bottomPadding;
int m_leftPadding;
+ ShadowContentFilterPolicy m_shadowContentFilterPolicy;
RenderRegion* m_region; // The region we're inside.
Modified: trunk/Source/WebCore/rendering/RenderImage.cpp (113328 => 113329)
--- trunk/Source/WebCore/rendering/RenderImage.cpp 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/rendering/RenderImage.cpp 2012-04-05 16:46:22 UTC (rev 113329)
@@ -471,7 +471,7 @@
bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& result, const LayoutPoint& pointInContainer, const LayoutPoint& accumulatedOffset, HitTestAction hitTestAction)
{
- HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding());
+ HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding(), result.shadowContentFilterPolicy());
bool inside = RenderReplaced::nodeAtPoint(request, tempResult, pointInContainer, accumulatedOffset, hitTestAction);
if (tempResult.innerNode() && node()) {
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (113328 => 113329)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-04-05 16:46:22 UTC (rev 113329)
@@ -3517,7 +3517,7 @@
// Next we want to see if the mouse pos is inside the child RenderObjects of the layer.
if (fgRect.intersects(hitTestArea) && isSelfPaintingLayer()) {
// Hit test with a temporary HitTestResult, because we only want to commit to 'result' if we know we're frontmost.
- HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding());
+ HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding(), result.shadowContentFilterPolicy());
if (hitTestContents(request, tempResult, layerBounds, hitTestPoint, HitTestDescendants) &&
isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) {
if (result.isRectBasedTest())
@@ -3546,7 +3546,7 @@
return candidateLayer;
if (bgRect.intersects(hitTestArea) && isSelfPaintingLayer()) {
- HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding());
+ HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding(), result.shadowContentFilterPolicy());
if (hitTestContents(request, tempResult, layerBounds, hitTestPoint, HitTestSelf) &&
isHitCandidate(this, false, zOffsetForContentsPtr, unflattenedTransformState.get())) {
if (result.isRectBasedTest())
@@ -3602,7 +3602,7 @@
for (int i = list->size() - 1; i >= 0; --i) {
RenderLayer* childLayer = list->at(i);
RenderLayer* hitLayer = 0;
- HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding());
+ HitTestResult tempResult(result.point(), result.topPadding(), result.rightPadding(), result.bottomPadding(), result.leftPadding(), result.shadowContentFilterPolicy());
if (childLayer->isPaginated())
hitLayer = hitTestPaginatedChildLayer(childLayer, rootLayer, request, tempResult, hitTestRect, hitTestPoint, transformState, zOffsetForDescendants);
else
Modified: trunk/Source/WebCore/testing/Internals.cpp (113328 => 113329)
--- trunk/Source/WebCore/testing/Internals.cpp 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/testing/Internals.cpp 2012-04-05 16:46:22 UTC (rev 113329)
@@ -814,14 +814,14 @@
}
PassRefPtr<NodeList> Internals::nodesFromRect(Document* document, int x, int y, unsigned topPadding, unsigned rightPadding,
- unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, ExceptionCode& ec) const
+ unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, ExceptionCode& ec) const
{
if (!document || !document->frame() || !document->frame()->view()) {
ec = INVALID_ACCESS_ERR;
return 0;
}
- return document->nodesFromRect(x, y, topPadding, rightPadding, bottomPadding, leftPadding, ignoreClipping);
+ return document->nodesFromRect(x, y, topPadding, rightPadding, bottomPadding, leftPadding, ignoreClipping, allowShadowContent);
}
void Internals::emitInspectorDidBeginFrame()
Modified: trunk/Source/WebCore/testing/Internals.h (113328 => 113329)
--- trunk/Source/WebCore/testing/Internals.h 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/testing/Internals.h 2012-04-05 16:46:22 UTC (rev 113329)
@@ -141,7 +141,7 @@
unsigned touchEventHandlerCount(Document*, ExceptionCode&);
PassRefPtr<NodeList> nodesFromRect(Document*, int x, int y, unsigned topPadding, unsigned rightPadding,
- unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, ExceptionCode&) const;
+ unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, ExceptionCode&) const;
void emitInspectorDidBeginFrame();
void emitInspectorDidCancelFrame();
Modified: trunk/Source/WebCore/testing/Internals.idl (113328 => 113329)
--- trunk/Source/WebCore/testing/Internals.idl 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebCore/testing/Internals.idl 2012-04-05 16:46:22 UTC (rev 113329)
@@ -116,7 +116,7 @@
NodeList nodesFromRect(in Document document, in long x, in long y,
in unsigned long topPadding, in unsigned long rightPadding, in unsigned long bottomPadding, in unsigned long leftPadding,
- in boolean ignoreClipping) raises (DOMException);
+ in boolean ignoreClipping, in boolean allowShadowContent) raises (DOMException);
void emitInspectorDidBeginFrame();
void emitInspectorDidCancelFrame();
Modified: trunk/Source/WebKit/qt/Api/qwebpage.cpp (113328 => 113329)
--- trunk/Source/WebKit/qt/Api/qwebpage.cpp 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebKit/qt/Api/qwebpage.cpp 2012-04-05 16:46:22 UTC (rev 113329)
@@ -1567,7 +1567,7 @@
int x = touchPoint.x();
int y = touchPoint.y();
- RefPtr<NodeList> intersectedNodes = document->nodesFromRect(x, y, m_topPadding, m_rightPadding, m_bottomPadding, m_leftPadding, false);
+ RefPtr<NodeList> intersectedNodes = document->nodesFromRect(x, y, m_topPadding, m_rightPadding, m_bottomPadding, m_leftPadding, false /*ignoreClipping*/, false /*allowShadowContent*/);
if (!intersectedNodes)
return IntPoint();
Modified: trunk/Source/WebKit2/win/WebKit2.def (113328 => 113329)
--- trunk/Source/WebKit2/win/WebKit2.def 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/WebKit2/win/WebKit2.def 2012-04-05 16:46:22 UTC (rev 113329)
@@ -239,5 +239,5 @@
?utf8@String@WTF@@QBE?AVCString@2@_N@Z
?view@Document@WebCore@@QBEPAVFrameView@2@XZ
?willDetachPage@FrameDestructionObserver@WebCore@@UAEXXZ
- ?nodesFromRect@Document@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@HHIIII_N@Z
+ ?nodesFromRect@Document@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@HHIIII_N0@Z
?selectionStartHasMarkerFor@Editor@WebCore@@QBE_NW4MarkerType@DocumentMarker@2@HH@Z
Modified: trunk/Source/autotools/symbols.filter (113328 => 113329)
--- trunk/Source/autotools/symbols.filter 2012-04-05 16:41:51 UTC (rev 113328)
+++ trunk/Source/autotools/symbols.filter 2012-04-05 16:46:22 UTC (rev 113329)
@@ -128,7 +128,7 @@
_ZN7WebCore22RuntimeEnabledFeatures31isMultipleShadowSubtreesEnabledE;
_ZN7WebCore22RuntimeEnabledFeatures32setMultipleShadowSubtreesEnabledEb;
_ZN7WebCore22RuntimeEnabledFeatures18isShadowDOMEnabledE;
-_ZNK7WebCore8Document13nodesFromRectEiijjjjb;
+_ZNK7WebCore8Document13nodesFromRectEiijjjjbb;
_ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_8NodeListE;
_ZNK7WebCore6Editor26selectionStartHasMarkerForENS_14DocumentMarker10MarkerTypeEii;
local: