Add scroll view for new calendar picker
https://bugs.webkit.org/show_bug.cgi?id=110137

Reviewed by Kent Tamura.

Adding a scroll view class as part of the new calendar picker (Bug 109439).

No new tests. Code not yet used.

* Resources/pagepopups/calendarPicker.js:
(View):
(View.prototype.offsetRelativeTo): Returns the offset position of this view relative to the given ancestor element.
(View.prototype.attachTo): Attaches view to a node or view.
(View.prototype.bindCallbackMethods): Binds all methods starting with "on" to this.
(ScrollView): A custom scroll view that can contain extremely long content. CSS values have a limit. This can go beyond that.
(ScrollView.prototype.setWidth): Sets the view width.
(ScrollView.prototype.width):
(ScrollView.prototype.setHeight):Sets the view height.
(ScrollView.prototype.height):
(ScrollView.prototype.onScrollAnimatorStep): Callback for scroll animator step.
(ScrollView.prototype.scrollTo): Scrolls to a certain offset.
(ScrollView.prototype.scrollBy): Scrolls by a certain amount.
(ScrollView.prototype.contentOffset): Current content offset.
(ScrollView.prototype.onMouseWheel): Scroll with the mouse wheel.
(ScrollView.prototype.setContentOffset): Sets the content offset.
(ScrollView.prototype.contentPositionForContentOffset): Returns where the content element should be positioned.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused declaration: Element::removeCachedHTMLCollection()

Not reviewed by Antti Koivisto.

* dom/Element.h:
(Element):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143724 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: [Chromium] add a browser test for frames on timeline
https://bugs.webkit.org/show_bug.cgi?id=110592

- factor out timeline recording logic from testPageOverlayUpdate for reuse;
- record timeline while running a simple DOM-based animation;
- assure we have frames and Style Recalc/Layout/Paint events in between.

Reviewed by Yury Semikhatsky.

* src/js/Tests.js:
(.TestSuite.prototype.assertHasKey):
(.TestSuite.prototype.testTimelineFrames.step1):
(.TestSuite.prototype.testTimelineFrames.onTimelineRecorded):
(.TestSuite.prototype.testTimelineFrames):
(.TestSuite.prototype.testPageOverlayUpdate.step4):
(.TestSuite.prototype.testPageOverlayUpdate.onTimelineRecorded):
(.TestSuite.prototype.recordTimeline.addRecord):
(.TestSuite.prototype.recordTimeline.innerAddRecord):
(.TestSuite.prototype.recordTimeline.done):
(.TestSuite.prototype.recordTimeline):
(.TestSuite.prototype.stopTimeline):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143725 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ShareableElementData should use zero-length array for storage.
<http://webkit.org/b/109959>

Reviewed by Anders Carlsson.

Use a zero-length Attribute array instead of always casting from void* to an array.
It was done this way originally because I didn't know we could sidestep the MSVC
build error with some #pragma hackery and a default constructor for Attribute.

* dom/Attribute.cpp:
(WebCore::Attribute::Attribute):
* dom/DocumentSharedObjectPool.cpp:
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
* dom/Element.cpp:
(WebCore::sizeForShareableElementDataWithAttributeCount):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::ShareableElementData::~ShareableElementData):
(WebCore::UniqueElementData::UniqueElementData):
* dom/Element.h:
(ShareableElementData):
(WebCore::ElementData::attributeItem):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow child-frame content in hit-tests.
https://bugs.webkit.org/show_bug.cgi?id=95204

Reviewed by Julien Chaffraix.

Source/WebCore:

Refactors how EventHandler::hitTestResultAtPoint handles child-frame content,
it is now handled by the hit test itself controlled by the AllowChildFrameContent
flag in HitTestRequest.

This means that area-based hit-tests can now return elements from all the child frames
they intersect instead of just the one frame containing the center point. The improved
results from area-based hit-tests will among other things also improve touch adjustment
near frame boundaries.

Tests: fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html

* page/EventHandler.cpp:
(WebCore::EventHandler::hitTestResultAtPoint):
    Recursion into child-frames have been moved to RenderFrameBase::nodeAtPoint, so
    now hitTestResultAtPoint just needs to set AllowChildFrameContent.
* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::parentShadowHostOrOwner):
    New function to iterate up across frame boundaries.
(WebCore::TouchAdjustment::compileSubtargetList):
    We need to iterate up across frame boundaries to avoid iframes competing with their
    own content for touch adjustment.
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::allowsChildFrameContent):
(WebCore::HitTestRequest::isChildFrameHitTest):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::append):
(WebCore::HitTestResult::dictationAlternatives):
* rendering/HitTestResult.h:
(WebCore::HitTestResult::pointInMainFrame):
(WebCore::HitTestResult::pointInInnerNodeFrame):
(HitTestResult):
    m_hitTestLocation is now in main frame coordinates, which make m_pointInMainFrame
    unnecessary, but requires the introduction of m_pointInInnerFrame, to remember
    the coordinates of inner-node in its own frame.
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::nodeAtPoint):
    The recursion into child-frames is now handled here instead of in hitTestResultAtPoint, this
    allows us to recurse into multiple frames, instead of just one.
* rendering/RenderFrameBase.h:
(RenderFrameBase):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
    RenderLayer should not lie about being hit if the request is child-frame request.
* testing/Internals.cpp:
(WebCore::Internals::nodesFromRect):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
    Extended so nodesFromRect with child-frame content can be tested.

LayoutTests:

A new tests for nodesFromRect that returns result from child frames.

* fast/dom/nodesFromRect/nodesFromRect-child-frame-content-expected.txt: Added.
* fast/dom/nodesFromRect/nodesFromRect-child-frame-content.html: Added.
* fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html:
* fast/dom/nodesFromRect/resources/child-frame.html: Added.
* fast/dom/nodesFromRect/resources/nodesFromRect.js:
(check):
(checkShadowContent):
(nodesFromRectAsString):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143727 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed EFL gardening.

Skip failing tests on EFL bots.

* platform/efl/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143728 268f45cc-cd09-0410-ab3c-d52691b4dbfc