Shrink EventTargetData by making firingEventListeners vector optional.
<http://webkit.org/b/99532>
<rdar://problem/12515099>

Reviewed by Anders Carlsson.

The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
by 48 bytes and progressing Membuster3 by 395kB.

* dom/EventTarget.cpp:
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::fireEventListeners):
(WebCore::EventTarget::removeAllEventListeners):
* dom/EventTarget.h:
(WebCore::EventTarget::isFiringEventListeners):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131620 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Remove legacy members from WebDraggableRegion
https://bugs.webkit.org/show_bug.cgi?id=99612

Reviewed by Adam Barth.

Those legacy members to support old syntax are not longer needed after
chromium side changes landed.

* public/WebDraggableRegion.h:
(WebDraggableRegion):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131621 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Prevent focus zoom on non-userscalable pages.
https://bugs.webkit.org/show_bug.cgi?id=99608

Reviewed by Rob Buis.

PR 222378.

Disable focus zoom when the page is non-user scalable.

Reviewed Internally by Nima Ghanavatian.

* WebKitSupport/InputHandler.cpp:
(BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131622 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Always use fastRealloc when growing or shrinking the Vector buffer
https://bugs.webkit.org/show_bug.cgi?id=99616

Reviewed by Andreas Kling.

Remove the pointless #if PLATFORM(BLACKBERRY) and always try to use fastRealloc to grow or shrink the
vector buffer when possible; realloc should always be at least as fast as free+malloc.

* wtf/Vector.h:
(WTF::VectorBufferBase::shouldReallocateBuffer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131623 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Create an accessibility watchlist.

* Scripts/webkitpy/common/config/committers.py:
* Scripts/webkitpy/common/config/watchlist:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131624 268f45cc-cd09-0410-ab3c-d52691b4dbfc
plugins: Allow a plugin to dictate whether it can receive drag events or not.
https://bugs.webkit.org/show_bug.cgi?id=99355

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2012-10-17
Reviewed by Tony Chang.

Source/WebCore:

When doing a drag over a plugin, ask the plugin whether it can accept
drag/drop to decide whether drag/drop is possible or not. At present,
plugins do not receive drag events through WebCore (i.e. various
implementations of PluginView::handleMouseEvent ignores the
drop-events). This change makes it possible for the ports to ask the
plugin first to decide whether it can (or wants to) accept drag events.
The default implementation remains the same, i.e. plugins do not receive
drag events. For chromium, the overridden implementation uses the
WebPlugin interface to check whether the plugin can accept drag events.

* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::canProcessDrag):
(WebCore):
* html/HTMLPlugInElement.h:
(WebCore):
(HTMLPlugInElement):
* page/DragController.cpp:
(WebCore::DragController::canProcessDrag):
* plugins/PluginViewBase.h:
(WebCore):
(WebCore::PluginViewBase::canProcessDrag):

Source/WebKit/chromium:

Introduce WebPlugin::canProcessDrag() and use that to implement PluginViewBase::canProcessDrag.

* public/WebPlugin.h:
(WebKit::WebPlugin::canProcessDrag):
(WebPlugin):
* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::canProcessDrag):
(WebKit):
(WebKit::WebPluginContainerImpl::handleMouseEvent):
* src/WebPluginContainerImpl.h:
(WebPluginContainerImpl):

Tools:

Update the TestWebPlugin to implement the new |canProcessDrag| interface.

* DumpRenderTree/chromium/TestWebPlugin.h:
(TestWebPlugin::canProcessDrag):

LayoutTests:

Update test to not set contentEditable on the plugin anymore.

* platform/chromium/plugins/drag-events-expected.txt:
* platform/chromium/plugins/drag-events.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
GraphicsLayer visible rect computation needs to use the current animating transform
https://bugs.webkit.org/show_bug.cgi?id=99529

Reviewed by Dean Jackson.

Source/WebCore:

If we're running an accelerated animation of transform
on a GraphicsLayerCA, the current value of the transform won't
be reflected in the GraphicsLayer's m_transform. However,
we need the current value of the transform in order to correctly
compute the visible rect of this layer and descendants.

Add a function to GraphicsLayerClient to retrieve the current
value of the transform from the client.

RenderLayer's currentTransform() used to return a transform
with transform-origin baked in; GraphicsLayerClient needs one
that excludes transform-origin, so enhance RenderLayer::currentTransform()
to be able to produce either.

Tests: compositing/visible-rect/animated-from-none.html
       compositing/visible-rect/animated.html

* platform/graphics/GraphicsLayerClient.h:
(WebCore):
(GraphicsLayerClient):
(WebCore::GraphicsLayerClient::getCurrentTransform):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::computeVisibleRect):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::currentTransform):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::currentTransform):
* rendering/RenderLayerBacking.h:
(RenderLayerBacking):

LayoutTests:

Tests that exercise visible-rect computation on an animating layer.

* compositing/visible-rect/animated-expected.txt: Added.
* compositing/visible-rect/animated-from-none-expected.txt: Added.
* compositing/visible-rect/animated-from-none.html: Added.
* compositing/visible-rect/animated.html: Added.

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