2009-09-15  Jungshik Shin  <jshin@chromium.org>

        Reviewed by Eric Seidel

        http://bugs.webkit.org/show_bug.cgi?id=26660

        Chromium Windows: When rotated, the baseline for a span of complex
        script is completely misaligned with that of the adjacent 
        simple script text. It's fixed by not applying the baseline offset for
        the Skia code path.

        Test: transforms/2d/hindi-rotated.html

        * platform/graphics/chromium/UniscribeHelper.cpp:
        (WebCore::UniscribeHelper::draw):

2009-09-15  Jungshik Shin  <jshin@chromium.org>

        Reviewed by Eric Seidel

        http://bugs.webkit.org/show_bug.cgi?id=26660

        Chromium Windows: When rotated, the baseline for a span of complex
        script is completely misaligned with that of the adjacent simple
        script text.

        * transforms/2d/hindi-rotated.html: Added.
        * platform/mac/transforms/2d/hindi-rotated-expected.checksum: Added.
        * platform/mac/transforms/2d/hindi-rotated-expected.png: Added.
        * platform/mac/transforms/2d/hindi-rotated-expected.txt: Added.
        * platform/win/transforms: Added.
        * platform/win/transforms/2d: Added.
        * platform/win/transforms/2d/hindi-rotated-expected.checksum: Added.
        * platform/win/transforms/2d/hindi-rotated-expected.png: Added.
        * platform/win/transforms/2d/hindi-rotated-expected.txt: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48397 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore: Document.elementFromPoint() and Document.caretRangeFromPoint() erroneously returning null at points visible only after scrolling.
https://bugs.webkit.org/show_bug.cgi?id=29245

Patch by Andrew Richards <randrew@gmail.com> on 2009-09-14
Reviewed by Sam Weinig.

Use visibleContentRect() instead of boundsRect() when checking hit point bounds on viewport.

* dom/Document.cpp:
(WebCore::Document::elementFromPoint):
(WebCore::Document::caretRangeFromPoint):

LayoutTests: Document.elementFromPoint() and Document.caretRangeFromPoint() returning null at points visible only after scrolling.
https://bugs.webkit.org/show_bug.cgi?id=29245

Patch by Andrew Richards <randrew@gmail.com> on 2009-09-14
Reviewed by Sam Weinig.

Extend tests to include hits in areas that are not in the initial containing block of the page.

* fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport-expected.txt:
* fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport.html:
* fast/dom/elementFromPoint-relative-to-viewport-expected.txt:
* fast/dom/elementFromPoint-relative-to-viewport.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48398 268f45cc-cd09-0410-ab3c-d52691b4dbfc
wx build fix. Allow waf build to support Python < 2.6.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48399 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Added ENABLE_MATHML feature define and build-webkit toggle

Patch by Alex Milowski <alex@milowski.com> on 2009-09-15
Reviewed by Tor Arne Vestbø.

JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

WebCore:

* Configurations/FeatureDefines.xcconfig:

WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

WebKitTools:

* Scripts/build-webkit:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2009-09-15  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Fixed position elements flash when CSS transforms are applied on page > 2048px tall
        https://bugs.webkit.org/show_bug.cgi?id=27272

        Update the previous workaround for misplaced compositing layers, which used a 4096px
        threshold, to 2048px since that's the GPU max texture size on some older hardware.

        * WebView/WebHTMLView.mm:
        (-[WebHTMLView _updateLayerHostingViewPosition]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48401 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Removed the jsEventListeners set from JSDOMGlobalObject, to simplify
creation and destruction of JSDOMGlobalObject and event listeners.
        
Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-15
Reviewed by Sam Weinig.

Added an abstract operator==() to EventListener, to replace the
jsEventListeners set's role in determining if two event listeners are
equal from the DOM's perspective.
        
Added a type field to EventListener, and casting operations, to support
operator==() and other abstract operations.

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSAbstractWorkerCustom.cpp:
(WebCore::JSAbstractWorker::addEventListener):
(WebCore::JSAbstractWorker::removeEventListener):
* bindings/js/JSDOMApplicationCacheCustom.cpp:
(WebCore::JSDOMApplicationCache::addEventListener):
(WebCore::JSDOMApplicationCache::removeEventListener):
* bindings/js/JSDOMGlobalObject.cpp:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::addEventListener):
(WebCore::JSDOMWindow::removeEventListener):
* bindings/js/JSDesktopNotificationsCustom.cpp:
(WebCore::JSNotification::addEventListener):
(WebCore::):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::~JSEventListener):
(WebCore::JSEventListener::markJSFunction):
(WebCore::JSEventListener::handleEvent):
(WebCore::JSEventListener::reportError):
(WebCore::JSEventListener::operator==):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::cast):
* bindings/js/JSEventSourceCustom.cpp:
(WebCore::JSEventSource::addEventListener):
(WebCore::JSEventSource::removeEventListener):
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::addEventListener):
(WebCore::JSMessagePort::removeEventListener):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::addEventListener):
(WebCore::JSNode::removeEventListener):
* bindings/js/JSSVGElementInstanceCustom.cpp:
(WebCore::JSSVGElementInstance::addEventListener):
(WebCore::JSSVGElementInstance::removeEventListener):
* bindings/js/JSWorkerContextCustom.cpp:
(WebCore::JSWorkerContext::addEventListener):
(WebCore::JSWorkerContext::removeEventListener):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::addEventListener):
(WebCore::JSXMLHttpRequest::removeEventListener):
* bindings/js/JSXMLHttpRequestUploadCustom.cpp:
(WebCore::JSXMLHttpRequestUpload::addEventListener):
(WebCore::JSXMLHttpRequestUpload::removeEventListener):
* bindings/objc/ObjCEventListener.h:
(WebCore::ObjCEventListener::cast):
* bindings/objc/ObjCEventListener.mm:
(WebCore::ObjCEventListener::ObjCEventListener):
(WebCore::ObjCEventListener::operator==):
* dom/EventListener.h:
(WebCore::EventListener::):
(WebCore::EventListener::type):
(WebCore::EventListener::EventListener):
* dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener):
(WebCore::MessagePort::removeEventListener):
* dom/Node.cpp:
(WebCore::Node::removeEventListener):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::mainFrameDocument):
(WebCore::InspectorDOMAgent::operator==):
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::cast):
* loader/ImageDocument.cpp:
(WebCore::ImageEventListener::cast):
(WebCore::ImageEventListener::ImageEventListener):
(WebCore::ImageEventListener::operator==):
* loader/appcache/DOMApplicationCache.cpp:
(WebCore::DOMApplicationCache::addEventListener):
(WebCore::DOMApplicationCache::removeEventListener):
* notifications/Notification.cpp:
(WebCore::Notification::removeEventListener):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::removeEventListener):
* page/EventSource.cpp:
(WebCore::EventSource::addEventListener):
(WebCore::EventSource::removeEventListener):
* svg/animation/SVGSMILElement.cpp:
(WebCore::ConditionEventListener::cast):
(WebCore::ConditionEventListener::ConditionEventListener):
(WebCore::ConditionEventListener::operator==):
(WebCore::ConditionEventListener::handleEvent):
* workers/AbstractWorker.cpp:
(WebCore::AbstractWorker::addEventListener):
(WebCore::AbstractWorker::removeEventListener):
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::addEventListener):
(WebCore::WorkerContext::removeEventListener):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::addEventListener):
(WebCore::XMLHttpRequest::removeEventListener):
* xml/XMLHttpRequestUpload.cpp:
(WebCore::XMLHttpRequestUpload::addEventListener):
(WebCore::XMLHttpRequestUpload::removeEventListener):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48402 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow anonymous storage inside JSObject
https://bugs.webkit.org/show_bug.cgi?id=29168

Reviewed by Geoff Garen

Add the concept of anonymous slots to Structures so that it is
possible to store references to values that need marking in the
standard JSObject storage buffer.  This allows us to reduce the
malloc overhead of some objects (by allowing them to store JS
values in the inline storage of the object) and reduce the
dependence of custom mark functions (if all an objects children
are in the standard object property storage there's no need to
mark them manually).

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48403 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2009-09-15  Brian Weinstein  <bweinstein@apple.com>

        Rubber-stamped by Steve Falkenburg.

        Add four currently failing tests to the Skipped list so we can figure out what's wrong
        with them and try to get the bot closer to green. Bugs have been filed for each test.

        * platform/win/Skipped:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48404 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
https://bugs.webkit.org/show_bug.cgi?id=28841

Reviewed by Beth Dakin.

WebCore: 

Allow certain ARIA roles to change value with AXIncrement and AXDecrement. 
Consolidate increment/decrement/changeValue methods. 

Test: accessibility/aria-slider-value-change.html

* accessibility/AccessibilityObject.cpp:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::increment):
(WebCore::AccessibilityRenderObject::decrement):
(WebCore::AccessibilityRenderObject::changeValueByPercent):
(WebCore::AccessibilityRenderObject::setValue):
(WebCore::AccessibilityRenderObject::canSetFocusAttribute):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySlider.cpp:
* accessibility/AccessibilitySlider.h:
* dom/Element.cpp:
(WebCore::Element::updateAfterAttributeChanged):

LayoutTests: 

* accessibility/aria-slider-value-change-expected.txt: Added.
* accessibility/aria-slider-value-change.html: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48405 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Removed the notion of "disconnected nodes with event listeners" because
it was vestigial. The reference cycle it tried to solve was solved another
way in https://bugs.webkit.org/show_bug.cgi?id=21260.

Patch by Geoffrey Garen <ggaren@apple.com> on 2009-09-15
Reviewed by Sam Weinig.

* dom/Document.cpp:
(WebCore::Document::removeAllEventListeners):
* dom/Document.h:
* dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::insertedIntoDocument):
(WebCore::Node::removedFromDocument):
(WebCore::Node::willMoveToNewOwnerDocument):
(WebCore::Node::didMoveToNewOwnerDocument):
(WebCore::Node::addEventListener):
(WebCore::Node::removeEventListener):
(WebCore::Node::clearAttributeEventListener):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48406 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Layout test fix. 
This test should only be for Mac, since the other platforms don't support the necessary features.

WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
https://bugs.webkit.org/show_bug.cgi?id=28841

* accessibility/aria-slider-value-change-expected.txt: Removed.
* accessibility/aria-slider-value-change.html: Removed.
* platform/mac/accessibility/aria-slider-value-change-expected.txt: Copied from LayoutTests/accessibility/aria-slider-value-change-expected.txt.
* platform/mac/accessibility/aria-slider-value-change.html: Copied from LayoutTests/accessibility/aria-slider-value-change.html.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48407 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WAI-ARIA: add support for ranges, including the progressbar, slider, and spinbutton roles
https://bugs.webkit.org/show_bug.cgi?id=28841

Layout test fix redux. 
The paths to the fast/js resources needed to be updated.

* platform/mac/accessibility/aria-slider-value-change.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fixed a typo found during translation.

Patch by Jure Repinc <jlp@holodeck1.com> on 2009-09-16
Reviewed by Simon Hausmann.

* WebCoreSupport/FrameLoaderClientQt.cpp:
(WebCore::FrameLoaderClientQt::interruptForPolicyChangeError):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48409 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix a crash in QWebFrame::hasFocus() with a simple null pointer check
when the focused frame is null. We do the same check in other places
where we call kit().

Patch by Warwick Allison <warwick.allison@nokia.com> on 2009-09-16
Reviewed by Simon Hausmann.

* Api/qwebframe.cpp:
(QWebFrame::hasFocus):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Build break fix on gcc ARM.

Patch by Jocelyn Turcotte <jocelyn.turcotte@nokia.com> on 2009-09-16
Reviewed by Tor Arne Vestbø.

* Api/qwebgraphicsitem.cpp:
(QWebGraphicsItemPrivate::_q_doLoadProgress):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48411 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2009-09-16  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>

        Reviewed by Simon Hausmann.

        [Qt] Fix wtf/ThreadSpecific.h under Qt to free thread local objects.
        https://bugs.webkit.org/show_bug.cgi?id=29295

        This is an important fix when JavaScript workers are in use, since
        unfreed ThreadGlobalDatas leak a big amount of memory (50-100k each).
        QThreadStorage calls the destructor of a given object, which is the
        ThreadSpecific::Data. Unlike pthread, Qt is object oriented, and does
        not support the calling of a static utility function when the thread
        is about to close. In this patch we call the ThreadSpecific::destroy()
        utility function from the destructor of ThreadSpecific::Data. Moreover,
        since Qt resets all thread local values to 0 before the calling of the
        appropriate destructors, we set back the pointer to its original value.
        This is necessary because the get() method of the ThreadSpecific
        object may be called during the exuction of the destructor.

        * wtf/ThreadSpecific.h:
        (WTF::ThreadSpecific::Data::~Data):
        (WTF::::~ThreadSpecific):
        (WTF::::set):
        (WTF::::destroy):




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

2009-09-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        [GTK] Crash when visiting http://flipper.googlelabs.com/
        https://bugs.webkit.org/show_bug.cgi?id=29293

        Check type for being null or empty before looking it up in the
        hash of supported types.

        Tested by http/tests/loading/redirect-with-no-location-crash.html

        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivate::supportsType):

LayoutTests:

2009-09-16  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        [GTK] Crash when visiting http://flipper.googlelabs.com/
        https://bugs.webkit.org/show_bug.cgi?id=29293

        * http/tests/loading/redirect-with-no-location-crash.html: Added.
        * http/tests/loading/redirect-with-no-location-crash-expected.html: Added.
        * http/tests/loading/resources/redirect-with-no-location-crash.php: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48413 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2009-09-16  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>

        Rubber-stamped by Simon Hausmann.

        [Qt] Typo fix. Pass the window object to the Format
        menu. In this way Qt can free its internal graphical
        objects during exit.

        * QtLauncher/main.cpp:
        (MainWindow::setupUI):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48414 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Build fix for 64-bit Qt on Mac OS X

Reviewed by Simon Hausmann.

* wtf/Platform.h: Use JSVALUE64 on DARWIN, not only on MAC

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48415 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a "Flip effect" to our GraphicsView based launcher.

Patch by Kenneth Rohde Christiansen <kenneth@webkit.org> on 2009-09-16
Reviewed by Simon Hausmann.

* QGVLauncher/main.cpp:
(MainView::resizeEvent):
(MainView::flip):
(MainWindow::flip):
(MainWindow::buildUI):

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