[BlackBerry] Fix flicker due to introduction of the fence extension.
https://bugs.webkit.org/show_bug.cgi?id=96207

Reviewed by George Staikos.

Don't immediately add fence to garbage list, so it is destroyed
after only one swap, for a set of tiles just because one tile in
the set gets a new fence, the old fence may still not be signalled
and before rendering the other tiles in the set we have to wait for it.

* WebKitSupport/BackingStoreTile.cpp:
(BlackBerry::WebKit::Fence::~Fence):
(WebKit):
* WebKitSupport/BackingStoreTile.h:
(WebKit):
(Fence):
* WebKitSupport/SurfacePool.cpp:
(BlackBerry::WebKit::SurfacePool::initialize):
(BlackBerry::WebKit::SurfacePool::notifyBuffersComposited):
(WebKit):
(BlackBerry::WebKit::SurfacePool::destroyPlatformSync):
* WebKitSupport/SurfacePool.h:
(SurfacePool):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Gardening to make the bot green
https://bugs.webkit.org/show_bug.cgi?id=96208

Unreviewed EFL gardening.

Update TestExpectations to make the EFL WK2 bot green.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-09

* platform/efl-wk2/TestExpectations:
* platform/efl-wk2/fast/events/mouseup-from-button2-expected.txt: Added. Test
needs baseline for wk2 (better output).

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Add missing files to the WebKit2 build on Windows
https://bugs.webkit.org/show_bug.cgi?id=96177

Reviewed by Kenneth Rohde Christiansen.

For the build on Windows we can re-use existing functionality from the Safari/Windows
build, such as the IPC implementation.

* Target.pri:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127986 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rolled out <http://trac.webkit.org/changeset/127939> because it broke
fast/js/named-function-expression.html.

    Refactored bytecode generator initialization to support moving captured vars around
    https://bugs.webkit.org/show_bug.cgi?id=96159

    Reviewed by Gavin Barraclough.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127987 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] expose element rect for color input type
https://bugs.webkit.org/show_bug.cgi?id=91664

Reviewed by Simon Hausmann.

Source/WebKit2:

In the same way we do for select elements already. This allows placing the picker
in a sensible location.

* UIProcess/API/efl/PageClientImpl.cpp: Update the function's signature.
(WebKit::PageClientImpl::createColorChooserProxy): Ditto.
* UIProcess/API/efl/PageClientImpl.h: Ditto.
(PageClientImpl):
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createColorChooserProxy): Ditto.
* UIProcess/API/gtk/PageClientImpl.h: Ditto.
(PageClientImpl):
* UIProcess/API/mac/PageClientImpl.h: Ditto.
(PageClientImpl):
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::createColorChooserProxy): Ditto.
* UIProcess/API/qt/raw/qrawwebview.cpp:
(QRawWebViewPrivate::createColorChooserProxy): Ditto.
* UIProcess/API/qt/raw/qrawwebview_p_p.h: Ditto.
(QRawWebViewPrivate):
* UIProcess/PageClient.h: Ditto.
(PageClient):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showColorChooser): Compute the rect mapped to the current view's transform.
* UIProcess/WebPageProxy.h:
(WebPageProxy):
* UIProcess/WebPageProxy.messages.in:
* UIProcess/qt/QtPageClient.cpp:
(WebKit::QtPageClient::createColorChooserProxy):
* UIProcess/qt/QtPageClient.h:
(QtPageClient):
* UIProcess/qt/WebColorChooserProxyQt.cpp:
(ColorChooserContextObject):
(WebKit::ColorChooserContextObject::ColorChooserContextObject):
(WebKit::ColorChooserContextObject::elementRect):
(WebKit::ColorChooserContextObject::accept):
(WebKit::WebColorChooserProxyQt::WebColorChooserProxyQt):
* UIProcess/qt/WebColorChooserProxyQt.h:
(WebKit::WebColorChooserProxyQt::create):
(WebColorChooserProxyQt):
* UIProcess/win/WebView.cpp:
(WebKit::WebView::createColorChooserProxy): Update the function's signature.
* UIProcess/win/WebView.h:
(WebView): Ditto.
* WebProcess/WebCoreSupport/WebColorChooser.cpp:
(WebKit::WebColorChooser::WebColorChooser):

Tools:

Update the QML logic in MiniBrowser to take advantage of this.
The picker size is now hardcoded and we try to place it below the
input element if possible.

* MiniBrowser/qt/qml/ColorChooser.qml:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127988 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Mark fast/innerHTML/innerHTML-iframe.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=96209

Unreviewed EFL gardening.

Mark fast/innerHTML/innerHTML-iframe.html as flaky for
both WK1 and WK2 EFL.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-09

* platform/efl-wk2/TestExpectations:
* platform/efl/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Mark sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A5.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=96210

Unreviewed EFL gardening.

Mark additional sputnik test as flaky on WK2 EFL build bot.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-09

* platform/efl-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127990 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make the String initialization on the function side of String::number()
https://bugs.webkit.org/show_bug.cgi?id=95940

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:

Source/WebKit2:

* win/WebKit2.def:
* win/WebKit2CFLite.def:

Source/WTF:

Un-Inline String::number() to make the String initialization done on the function side
instead of being on the caller side.

* GNUmakefile.list.am:
* WTF.gypi:
* WTF.pro:
* WTF.vcproj/WTF.vcproj:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/text/IntegerToStringConversion.cpp: Removed.
* wtf/text/IntegerToStringConversion.h:
(WTF::numberToStringImpl):
(WTF::numberToStringSigned):
(WTF::numberToStringUnsigned):
* wtf/text/WTFString.cpp:
(WTF::String::number):
* wtf/text/WTFString.h:

Tools:

* TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp:
(testBoundaries):
(testNumbers):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127991 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r127963.
http://trac.webkit.org/changeset/127963
https://bugs.webkit.org/show_bug.cgi?id=96173

Inappropriately modified test, and not just expectations,
without review. Will land changes to expectations only, and then
upload a patch to modify the test for review.

* accessibility/transformed-element-expected.txt:
* platform/mac/accessibility/image-map2-expected.txt:
* platform/mac/accessibility/internal-link-anchors2-expected.txt:
* platform/mac/accessibility/table-detection-expected.txt:
* platform/mac/accessibility/table-one-cell-expected.txt:
* platform/mac/accessibility/update-children-when-aria-role-changes.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127992 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed.\n\nRebaselining 5 mac accessibility tests, skipping one.\n\nhttps://bugs.webkit.org/show_bug.cgi?id=96173

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127993 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Use WebCompositorSupport creation functions in GraphicsLayerChromiumTest
https://bugs.webkit.org/show_bug.cgi?id=96212

Reviewed by Adrienne Walker.

The static ::create()s the test references currently are going away soon.

* tests/GraphicsLayerChromiumTest.cpp:
(WebKit::GraphicsLayerChromiumTest::GraphicsLayerChromiumTest):
(WebKit::TEST_F):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127994 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] webkit_platform should only be linked into the webkit target
https://bugs.webkit.org/show_bug.cgi?id=96213

Reviewed by Adrienne Walker.

The Platform.gyp:webkit_platform target provides the implementation of several WEBKIT_EXPORTed symbols. It only
makes sense as a target of WebKit.gyp:webkit, other targets shouldn't directly depend on it.

Source/WebCore:

* WebCore.gyp/WebCore.gyp:

Source/WebKit/chromium:

* WebKit.gyp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127995 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Export WebFilterOperation(FilterType, SkScalar[20]) constructor
https://bugs.webkit.org/show_bug.cgi?id=96215

Reviewed by Adrienne Walker.

Unlike the other WebFilterOperation constructors this one is defined out-of-line and so must be exported to be
usable outside of WebKit.dll

* chromium/public/WebFilterOperation.h:
(WebFilterOperation):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127996 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r127979.
http://trac.webkit.org/changeset/127979
https://bugs.webkit.org/show_bug.cgi?id=96217

Appears to have broken the windows and linux builds (Requested
by jamesr_ on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-09-09

* bindings/scripts/CodeGeneratorV8.pm:
(NativeToJSValue):
* bindings/v8/V8DOMWrapper.h:
(WebCore::V8DOMWrapper::convertEventTargetToV8Object):
(V8DOMWrapper):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build Fix.  <rdar://problem/12260893>
        
* platform/graphics/mac/WebGLLayer.mm:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@127998 268f45cc-cd09-0410-ab3c-d52691b4dbfc
EventListenerMap: Use Vector instead of HashMap as backend.
<http://webkit.org/b/77982>

Reviewed by Geoff Garen.

Source/WebCore:

Refactor EventListenerMap to store pair<AtomicString, EventListenerVector> in a Vector
instead of using key/value HashMap stores. This is much more space efficient and actually
faster since we were spending more time/effort managing the hash map than it costs us
to iterate over and compare a couple of pointers. (It's very rare to have more than
4 different event types registered in a single EventListenerMap.)

This gets rid of the slightly hacky optimization for nodes with listeners of a single type,
reducing the complexity of EventListenerMap greatly.

~1.1MB progression on Membuster. Also strong (20+ MB on larger patches) savings on WebKit
bugzilla review pages, though they don't necessarily represent a common usecase.

* dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::contains):
(WebCore::EventListenerMap::clear):
(WebCore::EventListenerMap::eventTypes):
(WebCore::EventListenerMap::add):
(WebCore::EventListenerMap::remove):
(WebCore::EventListenerMap::find):
(WebCore::EventListenerMap::removeFirstEventListenerCreatedFromMarkup):
(WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
(WebCore::EventListenerIterator::EventListenerIterator):
(WebCore::EventListenerIterator::nextListener):
* dom/EventListenerMap.h:
(WebCore::EventListenerMap::isEmpty):
(WebCore::EventListenerMapEntry::EventListenerMapEntry):
(EventListenerMapEntry):
(EventListenerMap):
(EventListenerIterator):

LayoutTests:

Rebaseline inspector test whose output depended on the internal ordering of event
listeners (changed as listeners are no longer stored in an unordered HashMap.)

* inspector/console/command-line-api-getEventListeners-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128002 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Switch to entering the sandbox directly from main(), rather than waiting for the initialization message
https://bugs.webkit.org/show_bug.cgi?id=96194

Reviewed by Dan Bernstein.

Source/WebKit2: 

* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::launchProcess):
Pass a client identifier to WebProcess as a command line argument
so that it can be used to create private temporary and cache directories.

* WebProcess/WebProcess.h:
(WebProcess):
* WebProcess/mac/WebProcessMac.mm:
(WebKit::WebProcess::initializeSandbox):
(WebKit::WebProcess::platformInitializeWebProcess):
Expose the initializeSandbox() function and stop calling it from platformInitializeWebProcess()
since it is now going to be called from WebProcessMain.  Also, move changing the current working
directory to sandbox initialization function and replace use of creation parameters with just
the client identifier.

* WebProcess/com.apple.WebProcess.sb.in:
Add some new exceptions that come from entering the sandbox earlier in the AppKit
initialization process. Don't allow access to com.apple.coreservices.appleevents.

* WebProcess/mac/WebProcessMainMac.mm:
(WebKit::WebProcessMainXPC):
(WebKit::WebProcessMain):
Enter the sandbox explicitly, not waiting until the initialization message.  Also,
since we now have an extra parameter for the client identifier, make the WebProcess
launches the UIProcess code path work by extracting a client identifier from the 
client executable path.

WebKitLibraries: 

Update WKSI with SPI for getting the bundle URL from an executable URL.

* WebKitSystemInterface.h:
* libWebKitSystemInterfaceLion.a:
* libWebKitSystemInterfaceMountainLion.a:
* libWebKitSystemInterfaceSnowLeopard.a:
Adds WKCopyBundleURLForExecutableURL().


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaseline media/video-zoom-controls on chromium-mac for subpixel change.

* platform/chromium-mac/media/video-zoom-controls-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128004 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Do not delete texture backing structures on the main thread
https://bugs.webkit.org/show_bug.cgi?id=96018

Patch by Christopher Cameron <ccameron@chromium.org> on 2012-09-09
Reviewed by James Robinson.

Do not delete CCPrioritizedTexture::Backing structures on the main
thread.  Instead, unlink them from their owning CCPrioritizedTexture
in the main thread, and have the impl thread then delete all unlinked
textures.

This is towards having the main thread not access the m_backings set,
which will allow the impl thread to traverse that set when deleting
resources in response to GPU memory management events.

Tested by existing eviction tests (CCLayerTreeHostTest's
TestEvictTextures, LostContextAfterEvictTextures)

Fix a place where single thread proxy wasn't setting the main thread
blocked state correctly.

* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::unlinkAllContentTextures):
(WebCore):
(WebCore::CCLayerTreeHost::deleteUnlinkedTextures):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
(CCLayerTreeHost):
* platform/graphics/chromium/cc/CCPrioritizedTextureManager.cpp:
(WebCore::CCPrioritizedTextureManager::clearAllMemory):
(WebCore::CCPrioritizedTextureManager::unlinkAllBackings):
(WebCore):
(WebCore::CCPrioritizedTextureManager::deleteAllUnlinkedBackings):
* platform/graphics/chromium/cc/CCPrioritizedTextureManager.h:
(CCPrioritizedTextureManager):
* platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
(WebCore::CCSingleThreadProxy::commitAndComposite):
* platform/graphics/chromium/cc/CCThreadProxy.cpp:
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename Node::getRect/getPixelSnappedRect and remove ContainerNode::getRect
https://bugs.webkit.org/show_bug.cgi?id=81413

Reviewed by David Hyatt.

Source/WebCore:

Rename Node::getRect and getPixelSnappedRect to boundingBox and
pixelSnappedBoundingBox respectively.

Remove overridden getRect method from ContainerNode as it calculates the
same rect as the Node implementation but in a more complicated and
error-prone way. Also remove the getUpperLeftCorner/getLowerRightCorner
support functions as they are no longer needed.

No new tests, no change in functionality.

* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySliderThumb::elementRect):
Update to call boundingBox.

* dom/ContainerNode.cpp:
* dom/ContainerNode.h:
Remove overridden getRect method and the getUpperLeftCorner/
getLowerRightCorner support methods .

* dom/Element.cpp:
(WebCore::Element::scrollIntoView):
(WebCore::Element::scrollIntoViewIfNeeded):
(WebCore::Element::updateFocusAppearance):
Update to call boundingBox.

* dom/Node.h:
* dom/Node.cpp:
(WebCore::Node::boundingBox):
Rename getRect to boundingBox.

(WebCore::Node::pixelSnappedBoundingBox):
Rename getPixelSnappedRect to pixelSnappedBoundingBox.

* html/ColorInputType.cpp:
(WebCore::ColorInputType::elementRectRelativeToRootView):
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::buildBubbleTree):
* html/shadow/CalendarPickerElement.cpp:
(WebCore::CalendarPickerElement::openPopup):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::InputFieldSpeechButtonElement::startSpeechInput):
* page/FrameView.cpp:
(WebCore::FrameView::scrollElementToRect):
(WebCore::FrameView::scrollToAnchor):
* page/SpatialNavigation.cpp:
(WebCore::nodeRectInAbsoluteCoordinates):
Update to call boundingBox/pixelSnappedBoundingBox.

Source/WebKit/chromium:

Update WebViewImpl to call boundingBox/pixelSnappedBoundingBox.

* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::computeBlockBounds):
(WebKit::WebViewImpl::applyAutofillSuggestions):
(WebKit::WebViewImpl::refreshAutofillPopup):

Source/WebKit/efl:

Update ewk_frame to call pixelSnappedBoundingBox.

* ewk/ewk_frame.cpp:
(ewk_frame_focused_element_geometry_get):

Source/WebKit/gtk:

Update ChromeClientGtk and webkitwebview to call pixelSnappedBoundingBox.

* WebCoreSupport/ChromeClientGtk.cpp:
(WebKit::ChromeClient::mouseDidMoveOverElement):
* webkit/webkitwebview.cpp:
(getLocationForKeyboardGeneratedContextMenu):
(webkit_web_view_query_tooltip):

Source/WebKit/qt:

Update qwebelement and qwebpage to call pixelSnappedBoundingBox.

* Api/qwebelement.cpp:
(QWebElement::geometry):
(QWebElement::render):
* Api/qwebpage.cpp:
(QWebPagePrivate::TouchAdjuster::findCandidatePointForTouch):

Source/WebKit2:

Update WebPage to call pixelSnappedBoundingBox.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):


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